এনভিসিসি এবং এনভিআইডিআইএ-এসএমআই দ্বারা প্রদর্শিত বিভিন্ন সিউডিএ সংস্করণ


101

চলমান which nvccএবং এর মাধ্যমে প্রদর্শিত বিভিন্ন সিউডিএ সংস্করণ দেখে আমি খুব বিভ্রান্ত nvidia-smi

আমি আমার উবুন্টু 16.04 এ চুদা 9.2 এবং চুদা 10 ইনস্টল করেছি। এখন আমি PATH কে চুদা 9.2 তে নির্দেশ করব। সুতরাং আমি যখন চালানো:

 $ which nvcc
 /usr/local/cuda-9.2/bin/nvcc

যাইহোক, আমি যখন চালানো

$ nvidia-smi
Wed Nov 21 19:41:32 2018       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 410.72       Driver Version: 410.72       CUDA Version: 10.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 106...  Off  | 00000000:01:00.0 Off |                  N/A |
| N/A   53C    P0    26W /  N/A |    379MiB /  6078MiB |      2%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1324      G   /usr/lib/xorg/Xorg                           225MiB |
|    0      2844      G   compiz                                       146MiB |
|    0     15550      G   /usr/lib/firefox/firefox                       1MiB |
|    0     19992      G   /usr/lib/firefox/firefox                       1MiB |
|    0     23605      G   /usr/lib/firefox/firefox                       1MiB |

সুতরাং আমি কি which nvccপ্রস্তাব হিসাবে cuda9.2 ব্যবহার করছি , বা আমি nvidia-smiপরামর্শ হিসাবে cuda10 ব্যবহার করছি ?

আমি এই উত্তরটি দেখেছি কিন্তু এটি বিভ্রান্তির সরাসরি উত্তর সরবরাহ করে না, এটি কেবল আমাদের চুদাটুলকিট পুনরায় ইনস্টল করতে বলে যা আমি ইতিমধ্যে করেছি।


24
আমি মনে করি গত কয়েকদিন ধরে আমি এই সঠিক প্রশ্নটি একাধিকবার আসতে দেখেছি। তবে আমি এখন একটি সদৃশ খুঁজে পাচ্ছি না। উত্তরটি হল: এনভিডিয়া-এসএমআই আপনাকে আপনার ড্রাইভারটি সমর্থন করে এমন সিউডিএ সংস্করণ দেখায়। আপনার কাছে সাম্প্রতিক 410.x ড্রাইভার ইনস্টল করা আছে যা সিইউডিএ 10 সমর্থন করে। ড্রাইভারটি যে সংস্করণটি সমর্থন করে তা আপনার সংকলিত সংস্করণটির সাথে কিছুই করার নেই এবং আপনার প্রোগ্রামটির সাথে লিঙ্ক করেছেন। CUDA 10.0 সমর্থন করে এমন একটি ড্রাইভারও CUDA 9.2 এর জন্য নির্মিত একটি অ্যাপ্লিকেশন চালাতে সক্ষম হবে ...
মাইকেল কেনজেল

@ মিশেল কেনজেল ​​আমি দেখতে পাচ্ছি স্পষ্টতার জন্য ধন্যবাদ! অনুমান করুন আমি তখন CUDA9.2 ব্যবহার করছি ..
yuqli

একটি অনুরূপ প্রশ্ন এখানে । @ মিশেল কেনজেল ​​আপনি যদি একটি উত্তর যুক্ত করতে চান তবে আমি উত্থিত করব।
রবার্ট ক্রোভেলা

পছন্দ করেছেন আমি কেবল সেখানে আপনার মন্তব্যে উত্তরটি শিখেছি, সুতরাং যদি কেউ কোনও উপাধির দাবি রাখে তবে তা আপনি নিজেই;)
মাইকেল কেনজেল

উত্তর:


156

সিইউডিএর 2 টি প্রাথমিক এপিআই, রানটাইম এবং ড্রাইভার এপিআই রয়েছে। উভয়ের একই সংস্করণ রয়েছে (যেমন 8.0, 9.0 ইত্যাদি)

জিপিইউ ড্রাইভার ইনস্টলার দ্বারা ড্রাইভার এপিআইয়ের জন্য প্রয়োজনীয় সমর্থন (যেমন লিনাক্সে libcuda.so) ইনস্টল করা আছে।

রানটাইম এপিআইয়ের জন্য প্রয়োজনীয় সমর্থন (যেমন লিনাক্সের উপর libcudart.so, এবং এছাড়াও nvcc) সিইউডিএ টুলকিট ইনস্টলার দ্বারা ইনস্টল করা আছে (এটিতে একটি GPU ড্রাইভার ইনস্টলারও বান্ডিল থাকতে পারে)।

যে কোনও ইভেন্টে, (ইনস্টল করা) ড্রাইভার এপিআই সংস্করণ সর্বদা (ইনস্টলড) রানটাইম এপিআই সংস্করণটির সাথে মেলে না, বিশেষত আপনি যদি কোনও জিপিইউ ড্রাইভার সিউডিএ (অর্থাত্ সিউডিএ টুলকিট) ইনস্টল করে স্বতন্ত্রভাবে ইনস্টল করেন।

nvidia-smiটুল জিপিইউ চালক ইনস্টলার দ্বারা ইনস্টল পরার, এবং সাধারণত দৃশ্য জিপিইউ চালক আছে, কিছু CUDA টুলকিট ইনস্টলার দ্বারা ইনস্টল করা নেই।

সম্প্রতি (লিনাক্সে 410.48 এবং 410.73 ড্রাইভারের মধ্যে কোথাও কোথাও) এনভিআইডিএ-র থেকে পাওয়ারগুলি ড্রাইভারের দ্বারা ইনস্টলিত সিইউডিএ ড্রাইভার এপিআই সংস্করণটির রিপোর্টিংয়ের আউটপুট যুক্ত করার সিদ্ধান্ত নিয়েছে nvidia-smi

এটি ইনস্টল করা CUDA রানটাইম সংস্করণে কোনও সংযোগ নেই।

nvcc, সিইউডিএ সংকলক-ড্রাইভার সরঞ্জাম যা সিইউডিএ টুলকিট ইনস্টল করা আছে সর্বদা CUDA রানটাইম সংস্করণটি জানাবে যা এটি সনাক্ত করার জন্য নির্মিত হয়েছিল। কোন ড্রাইভার সংস্করণ ইনস্টল করা হয়েছে তা, বা জিপিইউ ড্রাইভার ইনস্টল করা থাকলেও এটি কিছুই জানে না।

অতএব, নকশা অনুসারে, এই দুটি সংখ্যা অগত্যা মেলে না, কারণ তারা দুটি পৃথক জিনিসের প্রতিচ্ছবি।

আপনি যদি ভাবছেন যে কেন nvcc -Vআপনি প্রত্যাশা করছেন না এমন সিউডিএর কোনও সংস্করণ প্রদর্শন করে (যেমন এটি আপনি যেটিকে ইনস্টল করেছেন বলে মনে করেন সেগুলি ছাড়া অন্য কোনও সংস্করণ প্রদর্শন করে) বা সংস্করণ অনুসারে কিছুই প্রদর্শন করে না, এটি কারণ হতে পারে আপনি না করেন চুদা লিনাক্স ইনস্টল গাইডের step ম ধাপে (সিইউডিএ 11 এর পূর্বে) বা সিইউডিএ 11 লিনাক্স ইনস্টল গাইডের 6 ধাপে বাধ্যতামূলক নির্দেশাবলী অনুসরণ করা হয়েছে

নোট করুন যে যদিও এই প্রশ্নের বেশিরভাগ দৃষ্টিতে লিনাক্স রয়েছে তবে উইন্ডোজ সিউডিএ ইনস্টলগুলির ক্ষেত্রে একই ধারণাগুলি প্রযোজ্য । ড্রাইভারের সাথে এটির সাথে সম্পর্কিত একটি সিইউডিএ ড্রাইভার সংস্করণ রয়েছে ( nvidia-smiউদাহরণস্বরূপ যার সাথে অনুসন্ধান করা যেতে পারে )। চুদা রানটাইমের সাথে এটির সাথে সম্পর্কিত একটি কুডিএ রানটাইম সংস্করণও রয়েছে has দুটোই অগত্যা সব ক্ষেত্রে মিলবে না।

বেশিরভাগ ক্ষেত্রে, যদি nvidia-smiকোনও সিউডিএ সংস্করণ রিপোর্ট করে যা সংখ্যার সাথে সমান বা তার দ্বারা উল্লিখিত সংস্করণটির চেয়ে বেশি, তবে nvcc -Vএটি উদ্বেগের কারণ নয়। এটি সিউডিএ-র একটি সংজ্ঞায়িত সামঞ্জস্যতা পাথ (নতুন ড্রাইভার / ড্রাইভার এপিআই সমর্থন "পুরানো" সিইউডিএ টুলকিটস / রানটাইম এপিআই)। উদাহরণস্বরূপ, যদি nvidia-smiCUDA 10.2 nvcc -Vপ্রতিবেদন করে এবং CUDA 10.1 প্রতিবেদন করে, তবে এটি সাধারণত উদ্বেগের কারণ নয়। এটি কেবল কাজ করা উচিত, এবং এর অর্থ এই নয় যে আপনি "CUDA 10.1 ইনস্টল করার সময়" CUDA 10.2 ইনস্টল করেছেন "

যদি nvccকমান্ড কিছুতেই রিপোর্ট না করে (উদাহরণস্বরূপ Command 'nvcc' not found...), এটিও ভুল সিউডিএ ইনস্টলের কারণে হতে পারে, যেমন উপরে বর্ণিত বাধ্যতামূলক পদক্ষেপগুলি সঠিকভাবে সম্পাদন করা হয়নি। আপনি আপনার এক্সিকিউটেবলকে খুঁজে পেতে কীভাবে ( findবা locateকীভাবে ম্যান পেজগুলি ব্যবহার করবেন তা শিখতে ম্যান পেজগুলি ব্যবহার করে) লিনাক্স ইউটিলিটি ব্যবহার করে এটি নির্ধারণ করতে পারেন nvcc। ধরে নিই যে কেবল একটি আছে, এরপথটি তখন আপনার PATH পরিবেশের পরিবর্তনশীল স্থির করতে ব্যবহার করা যেতে পারে।



4
@ রবার ক্রোভেলা পরিষ্কারতার জন্য ধন্যবাদ। আমার একই অবস্থা এনভিডিয়া-এসমি সিউডিএ সংস্করণ 10.1 দেখায় এবং এনভিসিসি 9.1 দেখায়। এখন নেটওয়ার্ক প্রশিক্ষণ দেওয়া ঠিক আছে বা ইনস্টলেশন ঠিক আছে কি এখনও কাজ করে?
ধীরেন হামাল

আমি ইনস্টলেশন-পরবর্তী পদক্ষেপগুলি অনুসরণ করেছি, কিন্তু এখনও, এনভিসিসি এবং এনভিডিয়া-এসএমআই বিভিন্ন
চুদা

এটা সম্পূর্ণ সম্ভব। আপনি যদি সর্বশেষতম ড্রাইভারটি ইনস্টল করেন ( nvidia-smiবর্তমানে CUDA 10.2 প্রদর্শন করার কারণ হয়ে থাকে) তবে CUDA এর পূর্ববর্তী সংস্করণ (বলুন, 10.1) তবে তার nvidia-smiতুলনায় একটি পার্থক্য জানা যাবে nvcc। সেক্ষেত্রে এটি কোনও সমস্যা নয়।
রবার্ট ক্রোভেলা

মন্তব্যটি সহায়ক, তবে কী হবে তা ব্যাখ্যা করে না (10.1 বলুন nvcc) এর চেয়ে বেশি সংস্করণ (10.2 বলুন) রিপোর্ট করলে কী হয় nvidia-smi। সেক্ষেত্রে চুদা এটি 10.2 হিসাবে সংকলন করার চেষ্টা করে এবং এটি 10.1 তে চালানোর চেষ্টা করে। "RuntimeError: CUDA error: no kernel image is available for execution on the device"উদাহরণস্বরূপ এটি সাধারণত রানটাইম ত্রুটির ফলস্বরূপ ।
থ্রেসরাস

3

nvccCUDA বিন ফোল্ডারে রয়েছে - যেমন CUDA বিন ফোল্ডারটি আপনার সাথে যুক্ত করা হয়েছে কিনা তা পরীক্ষা করুন $PATH

বিশেষ করে, নিশ্চিত করুন যে আপনি CUDA পোস্ট-ইনস্টলেশান কর্ম সম্পন্ন করেছেন (থেকে যেমন এখানে ):

  1. CUDA বিনটিতে $PATHযুক্ত করুন (যেমন নীচের লাইনটি আপনার যুক্ত করুন ~/.bashrc)
export PATH=/usr/local/cuda-10.1/bin:/usr/local/cuda-10.1/NsightCompute-2019.1${PATH:+:${PATH}}

পুনশ্চ. উপরোক্ত নিম্নলিখিত দুটি পাথটি নিশ্চিত করুন, প্রথমে উপস্থিত থাকুন: /usr/local/cuda-10.1/binএবং /usr/local/cuda-10.1/NsightCompute-2019.1(এনসাইটকম্পিউট পাথটি ইনস্টল করা নাইটসাইট গণনার সংস্করণের উপর নির্ভর করে কিছুটা আলাদা শেষ হতে পারে ...

  1. আপডেট করুন $LD_LIBRARY_PATH(যেমন আপনার সাথে নিম্নলিখিত লাইনটি যুক্ত করুন ~/bashrc)।
export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64\
                         ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

এর পরে, উভয় nvccএবং nvidia-smi(বা nvtop) সিইউডিএর একই সংস্করণটি রিপোর্ট করে ...


এটি কারণ $ পাঠ C CUDA 10 ব্যবহার করে নির্দিষ্ট করে But
ইউক্লি

NsightCompute-2019.1NsightCompute-1.0CUDA 10.0 এ বলা হয়।
অ্যাস্ট্রিড

আমি ইনস্টলেশন-পরবর্তী পদক্ষেপগুলি অনুসরণ করেছি, কিন্তু এখনও, এনভিসিসি এবং এনভিডিয়া-এসএমআই বিভিন্ন
চুদা

প্রতিবার আমি টার্মিনালটি খুললে আমাকে দুটি পাথ কমান্ড চালাতে হবে (চুদা পোস্ট ইনস্টলেশন থেকে ধাপ 7)। আমি কি রাষ্ট্র চালিয়ে যেতে পারি এবং বার বার পথ কমান্ড চালাতে হয় না?
মন্টি

@ মোন্টি হ্যাঁ আপনি আদেশটি লিখতে পারেন .bashrcবা bash_profileতাই এটি প্রতিটি বাশ সেশনের জন্য স্বয়ংক্রিয়ভাবে লোড হয়। এখানে দেখুন: stackoverflow.com/questions/14637979/...
yuqli

-1

আপনি যদি চুদা 10.2 ব্যবহার করছেন:

export PATH=/usr/local/cuda-10.2/bin:/opt/nvidia/nsight-compute/2019.5.0${PATH:+:${PATH}}

সাহায্য করতে পারে কারণ যখন আমি চেক করেছি, চুদা -10.2-তে নাইটসাইট-কম্পিউটের জন্য কোনও ডিরেক্টরি নেই। আমি নিশ্চিত না যে এটি আমার সাথে কেবল সমস্যা ছিল বা অন্যথায় কেন তারা সরকারী নথিতে এটি উল্লেখ করবেন না।

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