কেউ কি উবুন্টু 14.04.3 এলটিএস x86_64 এ সফলভাবে CUDA 7.5 ইনস্টল করেছেন?


12

আমার ওয়ার্কস্টেশনে সর্বশেষ দুটি এনভিআইডিআইএ ড্রাইভার ইনস্টলড (সংস্করণ: 352.41) সহ দুটি জিপিইউ রয়েছে (কোয়াড্রো কে 500 এবং কোয়াড্রো কে 2200)। CUDA 7.5 ডাউনলোডগুলিcuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb থেকে ফাইলটি ডাউনলোড করার পরে , আমি এটি ইনস্টল করার চেষ্টা করি, তবে ফলাফলটি নীচের হিসাবে সরিয়ে দেয়:

root@P700-Bruce:/home/bruce/Downloads# sudo apt-get install cuda
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 cuda : Depends: cuda-7-5 (= 7.5-18) but it is not going to be installed
 unity-control-center : Depends: libcheese-gtk23 (>= 3.4.0) but it is not going to be installed
                        Depends: libcheese7 (>= 3.0.1) but it is not going to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

আমি সমাধানটি চেষ্টা করেছি:

  1. sudo apt-get remove nvidia-cuda-* # পুরানো এনভিডিয়া-চুদা প্যাকেজগুলি সরান
  2. আনমেট নির্ভরতা ইনস্টল করুন:

    root@P700-Bruce:/home/bruce/Downloads# apt-get install cuda-7-5
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    Some packages could not be installed. This may mean that you have
    requested an impossible situation or if you are using the unstable
    distribution that some required packages have not yet been created
    or been moved out of Incoming.
    The following information may help to resolve the situation:
    
    The following packages have unmet dependencies:
     cuda-7-5 : Depends: cuda-toolkit-7-5 (= 7.5-18) but it is not going to be installed
                Depends: cuda-runtime-7-5 (= 7.5-18) but it is not going to be installed
     unity-control-center : Depends: libcheese-gtk23 (>= 3.4.0) but it is not going to be installed
                            Depends: libcheese7 (>= 3.0.1) but it is not going to be installed
    E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
    
    root@P700-Bruce:/home/bruce/Downloads# apt-get install cuda-toolkit-7-5
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    Some packages could not be installed. This may mean that you have
    requested an impossible situation or if you are using the unstable
    distribution that some required packages have not yet been created
    or been moved out of Incoming.
    The following information may help to resolve the situation:
    
    The following packages have unmet dependencies:
     cuda-toolkit-7-5 : Depends: cuda-core-7-5 (= 7.5-18) but it is not going to be installed
                        Depends: cuda-command-line-tools-7-5 (= 7.5-18) but it is not going to be installed
                        Depends: cuda-samples-7-5 (= 7.5-18) but it is not going to be installed
                        Depends: cuda-documentation-7-5 (= 7.5-18) but it is not going to be installed
                        Depends: cuda-visual-tools-7-5 (= 7.5-18) but it is not going to be installed
     unity-control-center : Depends: libcheese-gtk23 (>= 3.4.0) but it is not going to be installed
                            Depends: libcheese7 (>= 3.0.1) but it is not going to be installed
    E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
    
  3. প্রবণতা ইনস্টল করুন এবং ব্যবহার করুন

আমার উবুন্টু 14.04 ওএস সবেমাত্র ইনস্টল করা আছে এবং সফ্টওয়্যার আপডেট করেছে এবং সর্বশেষতম এনভিডিয়া ড্রাইভার ইনস্টল করেছে।

আপনি কিছু সাহায্য দিতে পারেন? আগাম ধন্যবাদ!

উত্তর:


8

চুদা ইনস্টলেশনটি কিছুটা জটিল। আমি নিম্নলিখিত পদক্ষেপগুলি অনুসরণ করেছি এবং এটি আমার পক্ষে কাজ করে। আপনি এই লিঙ্কটি উল্লেখ করতে পারেন ।

পরিবেশের নিশ্চয়তা:

  1. lspci | grep -i nvidia (এনভিআইডিআইএর বোর্ডের তথ্য প্রদর্শিত হয়েছে তা নিশ্চিত করুন)

  2. uname -m (নিশ্চিত হয়ে নিন যে এটি একটি x86_64)

  3. gcc --version (এটি ইনস্টল করা আছে তা নিশ্চিত করুন)

CUDA ইনস্টলেশন -

  1. Https://developer.nvidia.com/cuda-downloadscuda_7.5.18_linux.run থেকে ফাইল ডাউনলোড করুন

  2. নিম্নলিখিত আদেশগুলি চালান:

    sudo apt-get install build-essential
    echo blacklist nouveau option nouveau modeset=0 |sudo tee -a /etc/modprobe.d/blacklist-nouveau.conf 
    sudo update-initramfs -u
    
  3. কম্পিউটার পুনরায় বুট করুন

  4. লগইন স্ক্রিনে, Ctrl+ Alt+ টিপুন F1এবং আপনার ব্যবহারকারীর জন্য লগইন করুন।

  5. যে ডিরেক্টরিটিতে আপনার সি ইউ ডি এ ড্রাইভার রয়েছে সেখানে যান এবং চালান

    chmod a+x .
    sudo service lightdm stop
    sudo bash cuda-7.5.18_linux.run --no-opengl-libs
    
  6. ইনস্টলেশন চলাকালীন:

    • EULA শর্তাদি গ্রহণ করুন
    • হ্যাঁ NVIDIA ড্রাইভার ইনস্টল করতে বলুন
    • হ্যাঁ CUDA টুলকিট + ড্রাইভার ইনস্টল করতে বলুন
    • হ্যাঁ CUDA নমুনা ইনস্টল করতে বলুন
    • Nvidia দিয়ে কোনও Xserver কনফিগারেশন পুনর্নির্মাণ করবেন না বলুন
  7. /dev/nvidia*ফাইলগুলি বিদ্যমান কিনা তা পরীক্ষা করে দেখুন । যদি তারা না করে তবে নিম্নলিখিতগুলি করুন

    sudo modprobe nvidia
    
  8. পরিবেশের পাথ ভেরিয়েবল সেট করুন

    export PATH=/usr/local/cuda-7.5/bin:$PATH
    export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64:$LD_LIBRARY_PATH
    
  9. ড্রাইভার সংস্করণ যাচাই করুন

    cat /proc/driver/nvidia/version`
    
  10. চুদা ড্রাইভার সংস্করণ পরীক্ষা করুন

    nvcc –V
    
  11. আবার লাইটডিএম স্যুইচ করুন

    sudo service lightdm start
    
  12. Ctrl+ + Alt+ + F7এবং গুই মাধ্যমে সিস্টেমে লগ-ইন

  13. CUDA নমুনা তৈরি করুন, NVIDIA_CUDA-7.5_Samplesটার্মিনালের মাধ্যমে ফোল্ডারে যান , তারপরে নিম্নলিখিত কমান্ডটি চালান:

    make
    cd bin/x86_64/linux/release/
    ./deviceQuery
    ./bandwidthTest
    

    উভয় পরীক্ষা শেষ পর্যন্ত টার্মিনালে একটি 'পাস' আউটপুট করা উচিত

  14. সিস্টেমটি পুনরায় বুট করুন


অনেক ধন্যবাদ! এটি অবশেষে আমার আসুস ইউএক্স 32 ভিডি (জিফর্স 620 এম সহ অপটিমাস ল্যাপটপ) এ কাজ করে। আমি সবকিছু এবং সবকিছু চেষ্টা করেছিলাম। গতকাল আমি এনভিডিয়া -352 বাম্বলির সাথে কাজ করতে পেরেছিলাম, তবে সিইউডিএ টুলকিট ইনস্টল করার পরে, আমি কোনও নমুনা চালাতে পারিনি (যেন আমার কাছে চুদা কার্ড নেই, এবং হ্যাঁ, আমি ব্যবহার করছিলাম optirun)। অন্যান্য ড্রাইভাররা আমাকে লগইন লুপ বা কালোতে জাগিয়ে তুলল unity-greeter! আমি আপনাকে যথেষ্ট ধন্যবাদ দিতে পারি না:)
মাগৌমি

একমাত্র জিনিস যে আমি এখানে পরিবর্তন করা প্রয়োজন থেকে optionকরা optionsকালোতালিকা হঠাৎ অধ্যায় মধ্যে।
TheM00s3

আমার কাছে এনভিআইডিআইএ জিফোরস জিটিএক্স with৮০ সহ এইচপি ডেস্কটপ রয়েছে Your আপনার নির্দেশটি বেশিরভাগ ক্ষেত্রেই কাজ করেছিল, রান ফাইল ( cuda_7.5.18_linux.run) দিয়ে আসা গ্রাফিক কার্ড ড্রাইভারটি lightdmরিবুট করার পরে কাজ ছেড়ে দেওয়ার কারণ দেখায় (গ্রাবের পরে, আপনি অনন্ত ফ্ল্যাশিং কার্সার সহ একটি কালো পর্দা দেখতে পাবেন) )। আমার সমাধানটি প্রথমে সেই ড্রাইভারটি আনইনস্টল sudo apt-get purge nvidia-*করে এনভিআইডিআইএ অফিসিয়াল ওয়েবসাইট থেকে ডাউনলোড করা সর্বশেষ রান ফাইলটি ব্যবহার করে ইনস্টল করা ছিল। এবং এটি পুরোপুরি কাজ করে। বিকল্প সমাধানটি জিজ্ঞাসুবন্টু
জিন

2

স্যুটিং সিউডিএ-ড্রাইভার ইনস্টল করার দুটি উপায় রয়েছে (হাইপ্রিড মেইনবোর্ডগুলিতে অপ্টিমাস এবং অন্য অন্তর্নির্মিত গ্রাফিক্স-চিপসেটের জন্য) - এখানে বর্ণিত প্রথমটি সবচেয়ে সহজ এবং দ্বিতীয় বিবরণটি আরও জটিল কিন্তু কার্যকরও:

ক)

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-355 nvidia-prime
sudo reboot

বি)

বি পদ্ধতির বিবরণ এখানে, তবে ইতিমধ্যে বয়স্ক (ব্যবহারকারী dschinn1001 দ্বারা ব্যাখ্যা করেছেন) - এই পদ্ধতি বি আরও নম্র এবং ঝুঁকিপূর্ণ হতে পারে তবে ক্ষতিকারক নয়। :

আমি কীভাবে উবুন্টু 13.04 এ এনভিডিয়া ড্রাইভার জিটি 520 এবং চুদা 5.0 ইনস্টল করতে পারি?

লিনাক্সের জন্য এনভিডিয়া ডাউনলোডের জন্য বিটা-ড্রাইভার-প্যাকেজটি এখানে রয়েছে:

http://www.nvidia.de/object/cuda_1_1_beta.html

পদ্ধতি এ আরও সহজ, তবে পরিষ্কার নয় যে এটি কীভাবে এক্সস্ক্রেনসভার এবং পদ্ধতির বিয়ের সাথে মিথস্ক্রিয়া করে, তবে চালক-প্যাকেজটি সাম্প্রতিক সময়ে খুব আপডেট হয়েছে এবং পদ্ধতি বি সম্পন্ন হওয়ার পরে, এটি এক্সস্ক্রেনসভারের সাথে আরও ভাল কাজ করা উচিত শর্তযুক্ত যে এক্সস্ক্রেনসিভারটি ইনস্টল করা নেই। (১৩.১০ এ আমি বি পদ্ধতিটি পরীক্ষা করেছি এবং এটি এক্সস্ক্রিনসেভার দিয়েও খুব ভালভাবে কাজ করছিল And এবং আমি মনে করি এই থ্রেডের বাকী অংশটি হার্ডওয়্যার পর্যন্ত to

অপটিমাস-গ্রাফিক্স-চিপসেটের সাথে বুম্বলির পাশাপাশি এবং বাম্বলির প্রসঙ্গে বাম্বলির জন্য এই সমন্বয়গুলিও প্রয়োজনীয়:

14.04-এ কীভাবে এনভিডিয়া অপ্টিমাস / বোম্বলবি সেট করবেন to


1

এলপি বাগ 1428972 এর মত শোনাচ্ছে

ব্যবহারকারী fennytansy মন্তব্য # 10 একটি workaround যোগ করেছেন :

sudo apt-get install libglew-dev libcheese7 libcheese-gtk23 libclutter-gst-2.0-0 libcogl15 libclutter-gtk-1.0-0 libclutter-1.0-0


কমান্ড স্ক্রিনটি ব্ল্যাক হয়ে যাওয়ার পরে। আমি কি শুধু টিটিআই 1 অ্যাক্সেস করতে পারি? আপনি কি অন্য কোন সমাধান জানেন?
করেশ অরুণাকিরিনাথন

1

আমি রানফাইল পদ্ধতিটি ব্যবহার করে সফলভাবে সিউডিএ ইনস্টল করেছি। এটা তোলে সেটআপ একটু, trickier আপনার প্রাথমিক গ্রাফিক্স ড্রাইভার কারণ এছাড়াও runfile পদ্ধতি (ব্যবহার করে ইনস্টল করা হবে এখানে দেখতে )।

কেবল ড্রাইভার ইনস্টল করার চেষ্টা করুন । এটি রানফাইল পদ্ধতি ব্যবহার করে করা যেতে পারে। এটি আপনাকে ইনস্টলের প্রতিটি অংশের জন্য অনুরোধ করবে এবং আপনি GLগ্রন্থাগার এবং সরঞ্জামকিট অক্ষম করতে পারবেন । Uক্য নিয়ন্ত্রণ কেন্দ্র আমাকে CUDA নমুনার libGLU.soপরিবর্তে ব্যবহারের প্রয়োজনের কারণে সমস্যাগুলিও দিচ্ছে libGL.so। আপনার নিজের শেখার উদাহরণ তৈরি করার সময় এটি একটি সহজ সমাধান।


1

এনভিডিয়া ড্রাইভারটি আনইনস্টল করার চেষ্টা করুন এবং এটি ছাড়াই সরাসরি চুদা ইনস্টল করুন। একটি নতুন উবুন্টু ১৪.০৪-তে আমি এনভিডিয়া ওয়েবসাইটের নির্দেশাবলী অনুসরণ করেছি । জিনিসগুলির সামঞ্জস্যপূর্ণ সংস্করণগুলি (জিসিসি, কার্নেল) যাচাই করা বাদে, নির্দেশাবলী ছিল:

sudo dpkg -i cuda-repo-ubuntu1404_7.5-18_amd64.deb 
sudo apt-get update
sudo apt-get install cuda 

সুখের সাথে, সঠিক এনভিডিয়া ড্রাইভার উপরের পদক্ষেপগুলির উপ-পণ্য হিসাবে ইনস্টল করা হয়েছিল।


1

আমি এনভিআইডিআইএ ড্রাইভারদের 352 সংস্করণে আপডেট করতে " পিপিএ: গ্রাফিক্স-ড্রাইভার / পিপিএ " ব্যবহার করার সন্ধানে একটি পুরো দিন কাটিয়েছি Everything একটি ইনস্টল করার পরে, জিপিইউ-ম্যানেজার.লগ জানিয়েছে যে ড্রাইভারগুলি ইনস্টল করা হয়েছিল এবং এক্সর্গ .০.লগ বিপরীতে রিপোর্ট করবে।

নুয়াউ ড্রাইভারটি সরিয়ে কালো তালিকাভুক্ত করা হয়েছিল: sudo apt-get --purge xserver-xorg-video-nouveau cat /etc/modprobe.d/nouveau-nomodeset-jsrobin.conf ব্ল্যাকলিস্ট নুভু বিকল্পগুলি নুওউ মোডসেট = 0 ওরফে নুউউউ অফ অফ lbm-nouveau বন্ধ

অবশেষে আমি হাল ছেড়ে দিয়েছি এবং খাঁটি "এনভিআইডিএ ... বিন" সমাধানটি ব্যবহার করেছি।

  1. উপরে উল্লিখিত হিসাবে, কালো তালিকাভুক্ত নুওউ।
  2. উপরে উল্লিখিত হিসাবে সম্পূর্ণভাবে নুয়াউ জেসারভার আনইনস্টল করুন।
  3. সিস্টেম বায়োসকে প্রাথমিক হিসাবে পিসিআই (দুটি এনভিডিয়া কার্ড) রাখতে সেট করুন এবং মূলবোর্ড এইচডি 4600 ইন্টারফেস নিষ্ক্রিয় করুন।
  4. পুনরুদ্ধার মোডে বুট করা, সক্রিয় নেটওয়ার্ক, তারপরে কনসোল মোডে গিয়েছিল।
  5. "NVIDIA-Linux-x86_64-352.41.run -uninstall" রান করুন যাতে কিছুই বাকি ছিল না তা নিশ্চিত করতে।
  6. / ইত্যাদি, / ইউএসআর / স্থানীয় কোনও পুরানো ডিরেক্টরি মুছে ফেলা হয়েছে, যা দেখে মনে হয়েছিল অতীত চুদা বা এনভিডিয়া ইনস্টলের অবশিষ্টাংশের মতো।
  7. "NVIDIA-Linux-x86_64-352.41.run" রান করুন
  8. "NVIDIA-Linux-x86_64-352.41.run --check" রান করুন যা যাচাই করে যাচাই করতে সমস্ত কিছু সঠিক ছিল (এটি ছিল)।
  9. তারপরে ইনস্টলটি সম্পূর্ণ করতে "cuda_7.5.18_linux.run" দৌড়ে। বিষয়গুলি বর্তমানে কাজ করছে। উভয় মনিটর আপ এবং কাজ করছে। বর্তমানে চুদা স্যাম্পল ফাইল তৈরির কাজ চলছে। এনভিআইডিআইএ ইনস্টল বিনগুলিতে "--help" পতাকাগুলি ব্যবহার করার বিষয়ে নিশ্চিত হন। আমি বিন রুটে যাওয়ার সিদ্ধান্ত নেওয়ার মূল কারণটি (বিকল্পগুলির মধ্যে একটির সাথে কাজ না করা সহ, এটি হ'ল "বিন" পদ্ধতির একটি "মেসা" ওপেনএল আপডেটের পরে পুনরুদ্ধারের সহজ পথ সরবরাহ করে। ফলাফল

1

আমি আজ উবুন্টুকে রিবুট করেছি, এবং আরও একটি আনমেট নির্ভরতা পাওয়া গেছে এর মতো কিছু আছে libcog15 : Depends: mesa-driver...(আমি পুরো প্যাকেজের নামটি মনে করতে পারি না), তাই আমি apt-get install"মেসা-ড্রাইভার" ইনস্টল করতাম । এর পরে, CUDA 7.5 সফলভাবে ইনস্টল হয়েছে।

নোট করুন যে আমার কার্নেল সংস্করণটি 3.19.0-28-জেনেরিক এবং জিসিসি সংস্করণটি উবুন্টু 4.8.4-2ubuntu1 ~ 14.04 , যা CUDA 7.5 অফিসিয়াল ডকুমেন্টগুলিতে পাওয়া যায় না । সত্যিই এটি কাজ করে কিনা তা আমি খতিয়ে দেখব।


1
কোনও কারণে আমার কম্পিউটারে মেসা ড্রাইভার বুট আপ করার ক্ষেত্রে সমস্ত ধরণের unityক্য সমস্যা তৈরি করেছে এবং আমার সিস্টেমে সম্পূর্ণ ব্যর্থতার কারণ হয়েছে। সতর্ক হোন.
06

@ ব্রুস ইয়ো - এটি সাধারণভাবে কেবল মেলার বিষয় নয়, এটি হাইব্রিড এনভিডিয়া-গ্রাফিক্স কার্ডের চিপসেটগুলির উপর নির্ভর করে, যা সমস্ত আলাদা। আপনার আমার সমাধানটিও বিবেচনা করা উচিত। : o)
dschinn1001

0

আমি sudo su এবং Apt-get install চুদা এর পরিবর্তে sudo su এবং Apt-get install চুদা চেষ্টা করেছি। এটা কাজ করেছে.

 sudo dpkg -i cuda-repo-ubuntu1404_7.5-18_amd64.deb
 sudo apt-get update
 sudo su
 apt-get install cuda

উবুন্টুকে জিজ্ঞাসা করুন, আপনাকে জ্ঞান ভাগ করে নেওয়ার জন্য স্বাগতম nice তবে এটি কোনও ফোরাম নয়, এটি একটি প্রশ্নোত্তর সাইট, এই সহায়তা ভ্রমণটি পরীক্ষা করুন । অন্যের উত্তর সদৃশ (661266 ব্যবহারকারীর) সাহায্য করবে না, আপনি যথেষ্ট খ্যাতি পেলে আপনি ভোট দিতে সক্ষম হবেন।
user.dz

@ স্নিটার আপনার মন্তব্যের জন্য ধন্যবাদ আমি 661266 ব্যবহারকারীর উত্তরের চেষ্টা করেছি কিন্তু এটি কার্যকর হয়নি। যখন আমি "সুডো" এর পরিবর্তে "সু" ব্যবহার করি, এটি কাজ করে। আমি ঠিক জানি না কেন। যাইহোক, এটি আমার বিচারের সাথে কাজ করেছিল। আমি বিশ্বাস করি যে আমার সমাধানটি চেষ্টা করার সময় কারও পক্ষে এটি মূল্যবান।
সফ্টগার্কো

0

দয়া করে দেখুন: https://github.com/astorfi/Caffe_Deep_Learning/blob/master/Installation/readme.md । এটি সংক্ষেপে ক্যাফে স্থাপনের সাথে সম্পর্কিত তবে এটি সিউডিএ ইনস্টলেশনটিকেও সম্বোধন করে।


1
হাই @ আমিরসানি_টোরফি, জিজ্ঞাসা.বুন্টুকে স্বাগতম। নোট করুন যেহেতু আপনার লিঙ্কটি সম্ভবত জিজ্ঞাসিত প্রশ্নের সমাধানের জন্য প্রয়োজনীয় তথ্য সরবরাহ করতে পারে, লিঙ্কগুলি যে কোনও সময় সরিয়ে ফেলতে পারে। আমি আপনাকে পরামর্শ দিচ্ছি যে পরিবর্তে আপনার লিঙ্কটি থেকে গুরুত্বপূর্ণ তথ্য অন্তর্ভুক্ত করার জন্য আপনার প্রশ্নটি সম্পাদনা করুন।
তিশিলিদজী মুদাউ

-1

-লাইটডিএম লগ ইন সমস্যা (লগইন লুপ)

-ড্রাইভার আইটল নিয়ে সমস্যা ("ড্রাইভার ইনস্টলেশন ব্যর্থ হয়েছে: এটি প্রদর্শিত হচ্ছে যে একটি এক্স সার্ভার চলছে ...")

উবুন্টু 16.04 64 বিট এ সাফল্যের সাথে একটি এনভিডিয়া সিইউডিএ টুলকিট ইনস্টল করতে আমার এখনই করতে হয়েছিল:

  1. পেনড্রাইভে উবুন্টুর একটি লাইভ ইমেজ করুন (8 গিগাবাইট পেন যথেষ্ট) - আপনার হোস্ট লিনাক্স সিস্টেমে ব্যর্থ ইনস্টল করার আগে এই জাতীয় চেষ্টা এক টন স্নায়ু সংরক্ষণ করবে !!!
  2. পেনড্রাইভে লাইভ সেশনে লগইন করুন ("ইনস্টল করার আগে উবুন্টু চেষ্টা করুন")
  3. লাইভ সেশনে sudo ব্যবহারকারী যুক্ত করুন:

    সুডো অ্যাডুজার অ্যাডমিন (# পাস: অ্যাডমিন 1)

    sudo usermod -aG sudo প্রশাসক

  4. লাইভ সেশন থেকে লগআউট, # অ্যাডমিন হিসাবে লগ ইন করুন

  5. এনভিডিয়া অফিসিয়াল সাইট থেকে সিইউডিএ টুলকিট ডাউনলোড করুন (~ 1.5 গিগাবাইট)
  6. ডাউনলোড করা ইনস্টলার ফাইলের জন্য সুবিধাগুলি পরিবর্তন করুন (এই
    ধাপে ইনস্টল করবেন না!): sudo chmod + x cuda_X.X.run

  7. কনসোল ভিউতে স্যুইচ করুন:

    Ctr + Alt + F1 (টার্মিনাল দৃশ্যে স্যুইচ করতে) Ctr + Alt + F7 (টার্মিনাল ভিউ থেকে গ্রাফিকাল সার্ভারে স্যুইচ করতে)

  8. কনসোল ভিউতে (Ctr + Alt + F1) লগ ইন করুন:

    লগইন: অ্যাডমিন পাস: অ্যাডমিন 1

  9. গ্রাফিকাল চলমান পরিষেবা বন্ধ করুন:

    sudo পরিষেবা লাইটডিএম স্টপ

  10. গ্রাফিকাল সার্ভারটি বন্ধ আছে কিনা তা পরীক্ষা করে দেখুন - সিটিআর + অল্ট + এফ -7 স্যুইচ করার পরে মনিটরটি ফাঁকা কালো হওয়া উচিত, কনসোল ভিউতে ফিরে যেতে সিটিআর + আল্ট + এফ 1

  11. এই জাতীয় কনফিগারেশন সহ সিইউডিএ টুলকিট ইনস্টল করুন:

    সুডো।

  12. গ্রাফিকাল সার্ভার চালু করুন:

    sudo সার্ভিস লাইটডিএম শুরু

  13. ব্যবহারকারী হিসাবে লগ ইন করুন (আপনি যদি সরাসরি লাইভ সেশনে লগ আউটতে # বুন্টু হিসাবে লগইন করেন):

    লগইন: অ্যাডমিন পাস: অ্যাডমিন 1

  14. এনভিসিসি সংকলক জিপিইউ ব্লকগুলিতে প্রদত্ত সাধারণ সমান্তরাল ভেক্টর যোগফলের সাথে কাজ করে যাচাই করুন:

    নতুন ফাইলগুলিতে vecSum.cu এবং book.h সংরক্ষণ করুন, টার্মিনালে সংকলন করুন এবং চালনা করুন: /usr/local/cuda-8.0/bin/nvcc vecSum.cu&& Clear & ./a.out

  15. কনসোল প্রিন্টআউট চেক করুন - এটির মতো হওয়া উচিত: 0.000000 + 0.000000 = 0.000000

    -1.100000 + 0.630000 = -0.000000
    
    -2.200000 + 2.520000 = 0.319985
    
    -3.300000 + 5.670000 = 2.119756
    -4.400000 + 10.080000 = 5.679756
    -5.500000 + 15.750000 = 10.250000
    -6.600000 + 22.680000 = 16.017500
    -7.700000 + 30.870001 = 23.170002
    -8.800000 + 40.320000 = 31.519997
    -9.900000 + 51.029999 = 41.129967
    
  16. যদি পেনড্রাইভ লাইভ সেশনে সবকিছু ঠিকঠাক হয় তবে আপনার হোস্ট লিনাক্স সিস্টেমেও এটি করুন

পিএস দয়া করে নোট করুন যে এটি আদর্শ টিউটোরিয়াল নয়, তবে এটি আমার পক্ষে দুর্দান্ত কাজ করে!

======= vecSum.cu =====

#include "book.h"
#define N 50000
///usr/local/cuda-8.0/bin/nvcc vecSum.cu && clear && ./a.out

//"HOST" = CPU
//"Device" = GPU

__global__ void add( float *a, float *b, float *c )
{
    int tid = blockIdx.x;
    if ( tid < N )
        c[ tid ] = a[ tid ] + b[ tid ];
}

int main ( void )
{
    float a[ N ], b[ N ], c[ N ];
    float *dev_a, *dev_b, *dev_c;
    //GPU memory allocation
    HANDLE_ERROR( cudaMalloc( ( void** )&dev_a, N * sizeof( float ) ) );
    HANDLE_ERROR( cudaMalloc( ( void** )&dev_b, N * sizeof( float ) ) );
    HANDLE_ERROR( cudaMalloc( ( void** )&dev_c, N * sizeof( float ) ) );

    //sample input vectors CPU generation
    for ( int i = 0; i < N; i++ )
    {
        a[ i ] = -i * 1.1;
        b[ i ] = i * i * 0.63;
    }

    //copy/load from CPU to GPU data vectors a[], b[] HostToDevice
    HANDLE_ERROR( cudaMemcpy( dev_a, a, N * sizeof( float ), cudaMemcpyHostToDevice ) );
    HANDLE_ERROR( cudaMemcpy( dev_b, b, N * sizeof( float ), cudaMemcpyHostToDevice ) );

    //calculate sum of vectors on GPU
    add<<<N,1>>> ( dev_a, dev_b, dev_c );

    //copy/load result vector from GPU to CPU c[] DeviceToHost
    HANDLE_ERROR( cudaMemcpy( c, dev_c, N * sizeof( float ), cudaMemcpyDeviceToHost ) );

    //printout results
    for ( int i = 0; i < 10; i++ ) printf( "%f + %f = %f\n", a[ i ], b[ i ], c[ i ] );

    //free memory and constructed objects on GPU
    cudaFree( dev_a );
    cudaFree( dev_b );
    cudaFree( dev_c );

    return 0;
}

========= book.h ======

/*
 * Copyright 1993-2010 NVIDIA Corporation.  All rights reserved.
 *
 * NVIDIA Corporation and its licensors retain all intellectual property and
 * proprietary rights in and to this software and related documentation.
 * Any use, reproduction, disclosure, or distribution of this software
 * and related documentation without an express license agreement from
 * NVIDIA Corporation is strictly prohibited.
 *
 * Please refer to the applicable NVIDIA end user license agreement (EULA)
 * associated with this source code for terms and conditions that govern
 * your use of this NVIDIA software.
 *
 */


#ifndef __BOOK_H__
#define __BOOK_H__
#include <stdio.h>

static void HandleError( cudaError_t err,
                         const char *file,
                         int line ) {
    if (err != cudaSuccess) {
        printf( "%s in %s at line %d\n", cudaGetErrorString( err ),
                file, line );
        exit( EXIT_FAILURE );
    }
}
#define HANDLE_ERROR( err ) (HandleError( err, __FILE__, __LINE__ ))


#define HANDLE_NULL( a ) {if (a == NULL) { \
                            printf( "Host memory failed in %s at line %d\n", \
                                    __FILE__, __LINE__ ); \
                            exit( EXIT_FAILURE );}}

template< typename T >
void swap( T& a, T& b ) {
    T t = a;
    a = b;
    b = t;
}


void* big_random_block( int size ) {
    unsigned char *data = (unsigned char*)malloc( size );
    HANDLE_NULL( data );
    for (int i=0; i<size; i++)
        data[i] = rand();

    return data;
}

int* big_random_block_int( int size ) {
    int *data = (int*)malloc( size * sizeof(int) );
    HANDLE_NULL( data );
    for (int i=0; i<size; i++)
        data[i] = rand();

    return data;
}


// a place for common kernels - starts here

__device__ unsigned char value( float n1, float n2, int hue ) {
    if (hue > 360)      hue -= 360;
    else if (hue < 0)   hue += 360;

    if (hue < 60)
        return (unsigned char)(255 * (n1 + (n2-n1)*hue/60));
    if (hue < 180)
        return (unsigned char)(255 * n2);
    if (hue < 240)
        return (unsigned char)(255 * (n1 + (n2-n1)*(240-hue)/60));
    return (unsigned char)(255 * n1);
}

__global__ void float_to_color( unsigned char *optr,
                              const float *outSrc ) {
    // map from threadIdx/BlockIdx to pixel position
    int x = threadIdx.x + blockIdx.x * blockDim.x;
    int y = threadIdx.y + blockIdx.y * blockDim.y;
    int offset = x + y * blockDim.x * gridDim.x;

    float l = outSrc[offset];
    float s = 1;
    int h = (180 + (int)(360.0f * outSrc[offset])) % 360;
    float m1, m2;

    if (l <= 0.5f)
        m2 = l * (1 + s);
    else
        m2 = l + s - l * s;
    m1 = 2 * l - m2;

    optr[offset*4 + 0] = value( m1, m2, h+120 );
    optr[offset*4 + 1] = value( m1, m2, h );
    optr[offset*4 + 2] = value( m1, m2, h -120 );
    optr[offset*4 + 3] = 255;
}

__global__ void float_to_color( uchar4 *optr,
                              const float *outSrc ) {
    // map from threadIdx/BlockIdx to pixel position
    int x = threadIdx.x + blockIdx.x * blockDim.x;
    int y = threadIdx.y + blockIdx.y * blockDim.y;
    int offset = x + y * blockDim.x * gridDim.x;

    float l = outSrc[offset];
    float s = 1;
    int h = (180 + (int)(360.0f * outSrc[offset])) % 360;
    float m1, m2;

    if (l <= 0.5f)
        m2 = l * (1 + s);
    else
        m2 = l + s - l * s;
    m1 = 2 * l - m2;

    optr[offset].x = value( m1, m2, h+120 );
    optr[offset].y = value( m1, m2, h );
    optr[offset].z = value( m1, m2, h -120 );
    optr[offset].w = 255;
}


#if _WIN32
    //Windows threads.
    #include <windows.h>

    typedef HANDLE CUTThread;
    typedef unsigned (WINAPI *CUT_THREADROUTINE)(void *);

    #define CUT_THREADPROC unsigned WINAPI
    #define  CUT_THREADEND return 0

#else
    //POSIX threads.
    #include <pthread.h>

    typedef pthread_t CUTThread;
    typedef void *(*CUT_THREADROUTINE)(void *);

    #define CUT_THREADPROC void
    #define  CUT_THREADEND
#endif

//Create thread.
CUTThread start_thread( CUT_THREADROUTINE, void *data );

//Wait for thread to finish.
void end_thread( CUTThread thread );

//Destroy thread.
void destroy_thread( CUTThread thread );

//Wait for multiple threads.
void wait_for_threads( const CUTThread *threads, int num );

#if _WIN32
    //Create thread
    CUTThread start_thread(CUT_THREADROUTINE func, void *data){
        return CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)func, data, 0, NULL);
    }

    //Wait for thread to finish
    void end_thread(CUTThread thread){
        WaitForSingleObject(thread, INFINITE);
        CloseHandle(thread);
    }

    //Destroy thread
    void destroy_thread( CUTThread thread ){
        TerminateThread(thread, 0);
        CloseHandle(thread);
    }

    //Wait for multiple threads
    void wait_for_threads(const CUTThread * threads, int num){
        WaitForMultipleObjects(num, threads, true, INFINITE);

        for(int i = 0; i < num; i++)
            CloseHandle(threads[i]);
    }

#else
    //Create thread
    CUTThread start_thread(CUT_THREADROUTINE func, void * data){
        pthread_t thread;
        pthread_create(&thread, NULL, func, data);
        return thread;
    }

    //Wait for thread to finish
    void end_thread(CUTThread thread){
        pthread_join(thread, NULL);
    }

    //Destroy thread
    void destroy_thread( CUTThread thread ){
        pthread_cancel(thread);
    }

    //Wait for multiple threads
    void wait_for_threads(const CUTThread * threads, int num){
        for(int i = 0; i < num; i++)
            end_thread( threads[i] );
    }

#endif




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