কোন টেনসরফ্লো এবং সিইউডিএ সংস্করণ সমন্বয় সামঞ্জস্যপূর্ণ?


145

আমি লক্ষ্য করেছি যে কয়েকটি নতুন টেনসরফ্লো সংস্করণগুলি পুরানো সিউডিএ এবং cUDNN সংস্করণের সাথে সামঞ্জস্যপূর্ণ নয়। সামঞ্জস্যপূর্ণ সংস্করণগুলির একটি সংক্ষিপ্তসার বা এমনকি আনুষ্ঠানিকভাবে পরীক্ষিত সংমিশ্রণের একটি তালিকা উপস্থিত রয়েছে? টেনসরফ্লো ডকুমেন্টেশনে এটি খুঁজে পাচ্ছি না।


1
সমস্ত প্রয়োজনীয়তা ইনস্টলেশন সংক্রান্ত নির্দেশাবলী দিয়ে দেওয়া হয় , " জিপিইউ সমর্থন সহ টেনসরফ্লো চালানোর জন্য এনভিআইডিআইএ প্রয়োজনীয়তা " নামে পরিচিত বিভাগটি ।
পি-জিএন

10
প্রশ্নটি সামঞ্জস্যতা এবং (আনুষ্ঠানিকভাবে) পরীক্ষিত সংমিশ্রণগুলিকে সম্বোধন করছে যা আমার দৃষ্টিতে, ইনস্টলেশন সংক্রান্ত নির্দেশিকায় সরবরাহ করা হয়নি। এছাড়াও, আপনি যে বিভাগটি উল্লেখ করছেন সেটি আমি খুঁজে পাচ্ছি না। এই পর্যবেক্ষণগুলির ফলে আমার সামগ্রিক দৃষ্টিভঙ্গির ফলস্বরূপ যে অনুরোধ করা তথ্য খুঁজে পাওয়া শক্ত এবং তাই উত্তরে পোস্ট করা লিঙ্কটিতে সহজেই অ্যাক্সেস সরবরাহকে ন্যায্যতা দেয়।
Fiobio

আপনি যে পৃষ্ঠায় উল্লেখ করেছেন সিউডিএ এবং সিইউডিএনএন সংস্করণ ইনস্টলেশন নির্দেশগুলির সাথে একটির সাথে মেলে।
পি-জিএন

ইনস্টলেশন সংক্রান্ত নির্দেশাবলী সন্ধান করতে, আমি উপরে উল্লিখিত পৃষ্ঠায় যান এবং আপনার OS এর লিঙ্কটি অনুসরণ করুন।
পি-জিএন

1
ওহ আমি কী বলতে চাই তা দেখতে পেয়েছি - কোন টেনস্রফ্লো সংস্করণটি কোনও নির্দিষ্ট সিউডিএ / সিইউডিএনএন সংমিশ্রণে ফিট করে তা দেখার চেষ্টা করছে। আপনি টিএফের প্রকাশের নোটগুলি ব্রাউজ করতে পারেন তবে আপনি যে টেবিলটির সাথে লিঙ্ক করেছেন সেটি হ'ল একটি ভাল সংক্ষিপ্তসার।
পি-জিএন

উত্তর:


212

সাধারণত:

চুদা সংস্করণ পরীক্ষা করুন:

cat /usr/local/cuda/version.txt

এবং cUDNN সংস্করণ:

grep CUDNN_MAJOR -A 2 /usr/local/cuda/include/cudnn.h

এবং চিত্রগুলিতে বা এখানে নীচে প্রদত্ত সংমিশ্রণটি ইনস্টল করুন

নিম্নলিখিত চিত্রগুলি এবং লিঙ্কটি লিনাক্স, ম্যাকোস এবং উইন্ডোজগুলিতে সিইউডিএ এবং টেনসরফ্লোয়ের সরকারীভাবে সমর্থিত / পরীক্ষিত সংমিশ্রণের একটি ওভারভিউ সরবরাহ করে:

গৌণ কনফিগারেশন:

যেহেতু কিছু ক্ষেত্রে নীচে প্রদত্ত বিবরণগুলি খুব বিস্তৃত হতে পারে, তাই এখানে একটি নির্দিষ্ট কনফিগারেশন রয়েছে যা কাজ করে:

  • tensorflow-gpu==1.12.0
  • cuda==9.0
  • cuDNN==7.1.4

সংশ্লিষ্ট চুডন এখানে ডাউনলোড করা যেতে পারে ।

(পরিসংখ্যান 20 মে 2020 আপডেট হয়েছে)

লিনাক্স জিপিইউ

এখানে চিত্র বর্ণনা লিখুন

লিনাক্স

এখানে চিত্র বর্ণনা লিখুন

ম্যাকোস জিপিইউ

এখানে চিত্র বর্ণনা লিখুন

ম্যাক অপারেটিং সিস্টেম

এখানে চিত্র বর্ণনা লিখুন

(চিত্র 31 মে, 2018 আপডেট হয়েছে)

উইন্ডোজ

এখানে চিত্র বর্ণনা লিখুন

14 তম জানুয়ারী 2020-এ আপডেট: আপডেট তথ্যের জন্য পড়ুন দয়া লিনাক্সের জন্য লিংক এবং লিংক Windows এর জন্য


1
আমি লক্ষ্য করেছি যে টেনসরফ্লো সংস্করণ <1.0 পর্যালোচনা থেকে বাদ দেওয়া হয়েছে। পুরানো সংস্করণগুলির জন্য একই তালিকাটি কোথায় পাওয়া যাবে কারও কি ধারণা আছে?
Fiobio

2
দেখে মনে হচ্ছে তারা চুদা এবং চুদের জন্য ছোটখাটো সংস্করণ নির্দিষ্ট করে না
mrgloom

1
আপডেট: পরীক্ষিত টিএফ-জিপিইউ 1.12, উইন্ডোজ 10, সিইউডিএ 9.0, কুডএনএন 7.3.1, পাইথন 3.6.6
মজনিক

1
পরিসংখ্যান আপডেট করুন না, ডকুমেন্টেশন লিঙ্ক। টেবিলের চেয়ে লিংকটি প্রায়শই পরিবর্তিত হয়
ট্রাইলিক্স

1
@ ফ্যাবিও: আপনার অনুরোধ অনুসারে সর্বশেষ লিঙ্কগুলির সাথে আপনার উত্তর আপডেট করেছেন।
টেনসরফ্লো সমর্থন

23

টেনসরফ্লো সাইটে দেওয়া সামঞ্জস্যতা সারণীতে চুদা এবং সিইউডিএনএন-এর জন্য নির্দিষ্ট ছোটখাটো সংস্করণ থাকে না। তবে, যদি নির্দিষ্ট সংস্করণগুলি পূরণ না করা হয়, আপনি যখন টেনসরফ্লো ব্যবহার করার চেষ্টা করবেন তখন একটি ত্রুটি ঘটবে।

জন্য tensorflow-gpu==1.12.0এবং cuda==9.0, সামঞ্জস্যপূর্ণ cuDNNসংস্করণ 7.1.4থেকে ডাউনলোড করা যাবে যা এখানে নিবন্ধীকরণের পরে।

আপনি আপনার চুদা সংস্করণ ব্যবহার করে পরীক্ষা করতে পারেন
nvcc --version

cuDNN সংস্করণ ব্যবহার করে
cat /usr/include/cudnn.h | grep CUDNN_MAJOR -A 2

টেনসরফ্লো-জিপিইউ সংস্করণ ব্যবহার করে
pip freeze | grep tensorflow-gpu

আপডেট: যেহেতু টেনসরফ্লো ২.০ প্রকাশিত হয়েছে, আমি এর জন্য সামঞ্জস্যপূর্ণ চুদা এবং সিইউডিএনএন সংস্করণগুলিও ভাগ করব (উবুন্টু 18.04 এর জন্য)।

  • tensorflow-gpu = 2.0.0
  • cuda = 10.0
  • cuDNN = 7.6.0

1
আপনার উত্তরটি খুব কার্যকর ছিল। আপনি যেমন ডকুমেন্টেশন গৌণ সংস্করণ কল করতে খুব পরিষ্কার ছিল না। আমি আপনার কনফিগারেশন অনুসরণ এবং এটি কাজ!
বিক্রম

2

যদি আপনি জুপিটার নোটবুকে কোডিং করে থাকেন এবং কোন চুদা সংস্করণ টিএফ ব্যবহার করছেন তা পরীক্ষা করতে চান তবে ফ্রি কমান্ডটি সরাসরি জুপিটার সেলটিতে চালান:

!conda list cudatoolkit

!conda list cudnn

এবং জিপিইউ টিএফ-তে দৃশ্যমান কিনা তা পরীক্ষা করে দেখুন:

tf.test.is_gpu_available(
    cuda_only=False, min_cuda_compute_capability=None
)

1

আপনি এই কনফিগারেশনটি চুদা 10.0 এর জন্য ব্যবহার করতে পারেন (10.1 3/18 এর মতো কাজ করে না), এটি আমার জন্য চলে:

  • tensorflow> = 1.12.0
  • tensorflow_gpu> = 1.4

সংস্করণ টেনসরফ্লো জিপিইউ ইনস্টল করুন:

pip install tensorflow-gpu==1.4.0

1

আমি ভুল করে CUDA 10.1 এবং CUDNN 7.6 ইনস্টল করেছি। আপনি নিম্নলিখিত কনফিগারেশন ব্যবহার করতে পারেন (এটি আমার জন্য কাজ করেছে - 9/10 হিসাবে)। :

  • টেনসরফ্লো-জিপিইউ == 1.14.0
  • চুদা 10.1
  • CUDNN 7.6
  • উবুন্টু 18.04

তবে টেনস্রোফ্লো মূলত CUDA 10 এর সাথে কাজ করে বলে কাজ করার জন্য আমার প্রতিলিপি তৈরি করতে হয়েছিল।

sudo ln -s /opt/cuda/targets/x86_64-linux/lib/libcublas.so /opt/cuda/targets/x86_64-linux/lib/libcublas.so.10.0
sudo cp /usr/lib/x86_64-linux-gnu/libcublas.so.10 /usr/local/cuda-10.1/lib64/
sudo ln -s /usr/local/cuda-10.1/lib64/libcublas.so.10 /usr/local/cuda-10.1/lib64/libcublas.so.10.0
sudo ln -s /usr/local/cuda/targets/x86_64-linux/lib/libcusolver.so.10 /usr/local/cuda/lib64/libcusolver.so.10.0
sudo ln -s /usr/local/cuda/targets/x86_64-linux/lib/libcurand.so.10 /usr/local/cuda/lib64/libcurand.so.10.0
sudo ln -s /usr/local/cuda/targets/x86_64-linux/lib/libcufft.so.10 /usr/local/cuda/lib64/libcufft.so.10.0
sudo ln -s /usr/local/cuda/targets/x86_64-linux/lib/libcudart.so /usr/local/cuda/lib64/libcudart.so.10.0
sudo ln -s /usr/local/cuda/targets/x86_64-linux/lib/libcusparse.so.10 /usr/local/cuda/lib64/libcusparse.so.10.0

এবং আমার। / .Bashrc- এ নিম্নলিখিতগুলি যুক্ত করুন -

export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-10.1/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/cuda/targets/x86_64-linux/lib/

0

টিএফ ২.০ এ আপগ্রেড করার পরেও আমার একই সমস্যা ছিল। টিউএফ যে সিউডিএ সংস্করণটির প্রতিবেদন করছিল তা উবুন্টু 18.04 যা আমি ইনস্টল করেছিলাম তার সাথে মেলে না। এটি বলেছিল আমি CUDA 7.5.0 ব্যবহার করছি, তবে সঠিক ধারণা ছিল আমার সঠিক সংস্করণটি ইনস্টল করা আছে।

আমার শেষ পর্যন্ত যা করতে হয়েছিল তা ছিল পুনরাবৃত্তিমূলকভাবে গ্রেপ্তার করার /usr/localজন্য CUDNN_MAJOR, এবং আমি খুঁজে পেয়েছি যে /usr/local/cuda-10.0/targets/x86_64-linux/include/cudnn.hপ্রকৃতরূপে সংস্করণটি নির্দিষ্ট করেছে 7.5.0
/usr/local/cuda-10.1এটি সঠিকভাবে পেয়েছে এবং তার /usr/local/cudaদিকে ইঙ্গিত করেছে /usr/local/cuda-10.1, সুতরাং এটি টিএফ কেন খুঁজছিল তা আমার কাছে একটি রহস্য (এবং অবশেষ) ছিল /usr/local/cuda-10.0

যাই হোক, আমি শুধু সরানো /usr/local/cuda-10.0করতে /usr/local/old-cuda-10.0তাই মেমরি খুঁজে পাইনি এটা কোন এবং সবকিছু তারপর একটি যাদুমন্ত্র মত কাজ করেন।

এটি সমস্ত খুব হতাশাব্যঞ্জক ছিল, এবং আমার এখনও মনে হচ্ছে আমি কেবল একটি এলোমেলো হ্যাক করেছি। তবে এটি কার্যকর হয়েছে :) এবং সম্ভবত এটি একই সমস্যাযুক্ত কাউকে সহায়তা করবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.