จะติดตั้ง CUDA Toolkit 7/8/9 บน Debian 8 (Jessie) หรือ 9 (Stretch) ได้อย่างไร


26

จะติดตั้งCuda Toolkit 7.0หรือ 8 บน Debian 8 ได้อย่างไร

ฉันรู้ว่า Debian 8 มาพร้อมกับตัวเลือกในการดาวน์โหลดและติดตั้ง CUDA Toolkit 6.0โดยใช้apt-get install nvidia-cuda-toolkitแต่คุณจะทำเช่นนี้สำหรับ CUDA toolkit เวอร์ชั่น 7.0 หรือ 8 ได้อย่างไร

ฉันพยายามติดตั้งโดยใช้ตัวติดตั้ง Ubuntu ดังที่อธิบายไว้ด้านล่าง:

sudo wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_7.0-28_amd64.deb

dpkg -i cuda-repo-ubuntu1404_7.0-28_amd64.deb

sudo apt-get update

sudo apt-get install -y 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-0 (= 7.0-28) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

@nullgeppetto: โปรดลองทำตามคำแนะนำในคำตอบของฉันด้านล่าง :-)
einpoklum - reinstate Monica

คำตอบ:


30

คำแนะนำต่อไปนี้ใช้ได้สำหรับ CUDA 7.0, 7.5 และเวอร์ชันก่อนหน้า (และอาจภายหลัง) หลายรุ่น เท่าที่มีการแจกแจงแบบเดเบียนพวกมันใช้ได้กับ Jessie and Stretch และอาจเป็นรุ่นอื่น ๆ พวกเขาถือว่าสถาปัตยกรรม amd64 (x86_64) แต่คุณสามารถปรับให้เข้ากับ x86 (x86_32) ได้อย่างง่ายดาย

ข้อกำหนดเบื้องต้นในการติดตั้ง

  • g ++ - คุณควรใช้รุ่น GCC ใหม่ล่าสุดที่รองรับโดย CUDA เวอร์ชันของคุณ สำหรับ CUDA 7.x จะเป็นรุ่น 4.9.3 ซึ่งเป็นบรรทัดสุดท้ายของ 4.x สำหรับ CUDA 8.0 รองรับ GCC 5.x เวอร์ชั่น หากการกระจายของคุณใช้ GCC 5.x เป็นค่าเริ่มต้นให้ใช้ GCC 5.4.0 มิฉะนั้นควรทำ เวอร์ชันก่อนหน้านี้สามารถใช้งานได้ แต่ฉันจะไม่แนะนำพวกเขาหากเพียงเพื่อรองรับการทำงานของคุณสมบัติ Modern-C ++ ที่ดีกว่าสำหรับรหัสโฮสต์
  • gcc - มาพร้อมกับ g ++ ฉันคิดว่า CMake อาจใช้ค่าเริ่มต้นในการมี nvcc เรียกใช้ gcc แทน g ++ ในบางกรณีด้วย-xสวิตช์ (แต่ไม่แน่ใจเกี่ยวกับเรื่องนี้)
  • libGLU - ไลบรารี Mesa OpenGL (+ ไฟล์สำหรับการพัฒนา?)
  • libXi - ไลบรารีส่วนขยาย Xinput X Window System (+ ไฟล์สำหรับการพัฒนา?)
  • libXmu - X Window System "คลังเก็บของเบ็ดเตล็ด" (+ ไฟล์พัฒนา?)
  • เคอร์เนล Linux - ส่วนหัวสำหรับเวอร์ชันเคอร์เนลที่คุณใช้งาน

หากคุณต้องการรายชื่อของแพ็คเกจที่เฉพาะเจาะจงขึ้นอยู่กับการกระจายที่แน่นอน แต่ลองต่อไปนี้ (สำหรับ CUDA 7.x):

sudo apt-get install gcc g++ gcc-4.9 g++-4.9 libxi libxi6 libxi-dev libglu1-mesa libglu1-mesa-dev libxmu6 libxmu6-dev linux-headers-amd64 linux-source

และคุณอาจเพิ่ม-dbgแพ็คเกจเหล่านั้นบางรุ่นสำหรับสัญลักษณ์การดีบัก

ฉันค่อนข้างแน่ใจว่ามันครอบคลุมทั้งหมด - แต่ฉันอาจพลาดบางสิ่งที่ฉันเพิ่งติดตั้งไปแล้ว นอกจากนี้CUDA สามารถทำงานกับเสียงดังกราวด์อย่างน้อยทดลอง แต่ฉันไม่ได้ลอง

การติดตั้งไดรเวอร์เคอร์เนล CUDA

  1. ไปของ NVIDIA หน้า CUDA ดาวน์โหลด
  2. เลือกLinux> x86_64> Ubuntuจากนั้นรุ่นล่าสุดใด ๆ ก็ตามที่พวกเขามี (ตอนที่เขียน: Ubuntu 15.04)
  3. เลือกตัวเลือกไฟล์. run
  4. ดาวน์โหลดไฟล์. run (ปัจจุบันเป็นไฟล์นี้ ) ตรวจสอบให้แน่ใจไม่ได้/tmpที่จะนำมันใน
  5. ทำให้แฟ้มที่ปฏิบัติการ chmod a+x cuda_7.5.18_linux.run.run:
  6. กลายเป็นราก
  7. ดำเนินการไฟล์. run: สมมติว่ายอมรับใบอนุญาตการหดห่อที่โง่ของพวกเขา พูดว่า "ใช่" เพื่อติดตั้งเฉพาะไดรเวอร์เคอร์เนล NVIDIA และพูดว่า "ไม่" กับทุกอย่าง

การติดตั้งควรบอกคุณว่าคาดว่าจะมีการติดตั้งไดรเวอร์เคอร์เนล NVIDIA แต่คุณควรรีบูตก่อนที่จะทำการติดตั้งชุดเครื่องมือต่อไป ดังนั้น...

  1. ดูเหมือนจะประสบความสำเร็จในการรีบูต

การติดตั้ง CUDA เอง

  1. เป็นราก
  2. ค้นหาและดำเนินการ cuda_7.5.18_linux.run
  3. คราวนี้พูดว่าไม่เพื่อติดตั้งไดรเวอร์ แต่ใช่เพื่อติดตั้งทุกอย่างและยอมรับเส้นทางเริ่มต้น (หรือเปลี่ยนแปลงสิ่งใดก็ได้ที่เหมาะกับคุณ)

โปรแกรมติดตั้งมีแนวโน้มที่จะตอนนี้ล้มเหลว นั่นเป็นสิ่งที่ดีหากสมมติว่าเป็นความล้มเหลวที่เราคาดหวัง: ควรบอกคุณว่าคอมไพเลอร์เวอร์ชั่นของคุณไม่รองรับ - CUDA 7.0 หรือ 7.5 รองรับได้ถึง gcc 4.9 และคุณมีค่าเริ่มต้น 5.x ตอนนี้หากคุณได้รับข้อความเกี่ยวกับห้องสมุดที่หายไปนั่นหมายถึงคำแนะนำของฉันด้านบนเกี่ยวกับสิ่งที่จำเป็นต้องมีก่อนหน้านี้ล้มเหลวอย่างใดอย่างหนึ่งและคุณควรแสดงความคิดเห็นที่นี่เพื่อให้ฉันสามารถแก้ไขได้ สมมติว่าคุณได้รับ "ความล้มเหลวที่ดี" ไปที่:

  1. เรียกใช้ไฟล์. run อีกครั้งคราวนี้ด้วยตัวเลือก - โอเวอร์ไรด์
  2. เลือกตัวเลือกเช่นเดียวกับในขั้นตอนที่ 11

ตอนนี้ควรติดตั้ง CUDA ตามค่าเริ่มต้นภายใต้/usr/local/cuda(นั่นคือ symlink) แต่เราไม่ได้ทำ!

กำหนดให้คอมไพเลอร์ nvcc ของ NVIDIA ใช้รุ่น g ++ ที่ถูกต้อง

คอมไพเลอร์ CUDA ของ NVIDIA เรียก g ++ เป็นส่วนหนึ่งของกระบวนการเชื่อมโยงและ / หรือเพื่อรวบรวม C ++ จริงแทนที่จะเป็นไฟล์. cu ฉันคิด. อย่างไรก็ตามเป็นค่าเริ่มต้นการทำงานเป็นสิ่งที่อยู่ในเส้นทางของคุณเป็นg++; แต่ถ้าคุณวางอีกg++ภายใต้/usr/local/cuda/binก็จะใช้ที่แรก! ดังนั้น...

  1. ดำเนินการ(และสำหรับมาตรการที่ดีอาจจะยังsymlink /usr/bin/g++-4.9 /usr/local/cuda/bin/g++symlink /usr/bin/gcc-4.9 /usr/local/cuda/bin/gcc

แค่นั้นแหละ.

ลองใช้การติดตั้ง

  1. cd /root/NVIDIA_CUDA-7.5_Samples/0_Simple/vectorAdd
  2. make

การสร้างควรสรุปได้สำเร็จและเมื่อคุณทำ

  1. ./vectorAdd

คุณควรได้รับผลลัพธ์ต่อไปนี้:

root@mymachine:~/NVIDIA_CUDA-7.5_Samples/0_Simple/vectorAdd# ./vectorAdd
[Vector addition of 50000 elements]
Copy input data from the host memory to the CUDA device
CUDA kernel launch with 196 blocks of 256 threads
Copy output data from the CUDA device to the host memory
Test PASSED
Done

หมายเหตุ

  • คุณไม่จำเป็นต้องติดตั้ง NVIDIA GDK (ชุดพัฒนา GPU) แต่ก็ไม่เจ็บและอาจมีประโยชน์สำหรับบางคน ติดตั้งลงในไดเรกทอรีรากของระบบของคุณ /usr/bin/uninstall_gdk.plมันปลอดภัยที่สวยและมีการถอนการติดตั้งหลังจากนั้น: ใน CUDA 8 มันรวมเข้ากับ CUDA เองแล้ว IIANM
  • ห้ามติดตั้งแพ็กเกจเพิ่มเติมที่มีชื่อเช่น nvidia -... หรือ cuda ... ; พวกเขาอาจไม่เจ็บ แต่แน่นอนพวกเขาจะไม่ช่วย
  • ก่อนที่จะทำสิ่งใดสิ่งเหล่านี้คุณอาจต้องการให้แน่ใจว่า GPU lspci | grep -i nvidiaของคุณได้รับการยอมรับที่ทุกคนใช้

... ดีเกือบทั้งหมดนี้คุณไม่สามารถติดตั้งไดรเวอร์เคอร์เนลได้ถ้าคุณไม่รูทแน่นอน แต่คุณสามารถสร้างรหัส CUDA (ไม่ทำงาน) หากไม่มีรหัสนี้
einpoklum - คืนสถานะโมนิก้า

เพิ่งลองสิ่งนี้ ตัวติดตั้ง cuda ไม่ยอมติดตั้ง มันออกคำเตือนว่าคุณควรใช้ไฟล์. deb

@WernerVanBelle: คุณสามารถโพสต์เป็นคำถามแยกต่างหากได้หรือไม่ หรืออย่างน้อยอ้างคำเตือนถ้ามันสั้นเกินไป? นอกจากนี้ IIRC ยังมีตัวเลือกบรรทัดคำสั่ง "บังคับ" คุณลองแล้วหรือยัง
einpoklum - คืนสถานะโมนิก้า

ทั้งหมดนี้ - ยกเว้นการติดตั้งไดรเวอร์ - สามารถทำได้ในฐานะผู้ใช้ที่ไม่ใช่รูทในโฮมไดเร็กตอรี่ของคุณ, แต่นั่นก็เพียงพอแล้วที่จะสร้างรหัส CUDA, ไม่ให้เรียกใช้ . คุณต้องการไดรเวอร์ nVIDIA ที่เหมาะสมในเคอร์เนลของคุณสำหรับสิ่งนั้นและมีเพียงผู้ใช้รูทเท่านั้นที่สามารถทำสิ่งนี้ได้ ขออภัยสำหรับความคิดเห็นก่อนหน้าของฉันซึ่งแนะนำเป็นอย่างอื่น นอกจากนี้ในการสร้างในฐานะผู้ใช้ที่ไม่ใช่รูทคุณอาจต้องสร้าง gcc / g ++ เวอร์ชันของคุณเองหากการแจกจ่ายของคุณมีเวอร์ชันที่ใหม่กว่า (สำหรับ CUDA 7.x คุณต้องมี gcc 4.9.3)
einpoklum - คืนสถานะโมนิก้า

@celavek: ถ้าคุณคิดว่าคำตอบนี้ไม่ครอบคลุม Debian 9 อย่างเพียงพอโปรดอธิบายว่าทำไมก่อนที่คุณจะทำการแก้ไขที่แนะนำ
einpoklum - คืนสถานะโมนิก้า

6

ฉันคิดว่าคุณควรทำโดยใช้ backport จริง ๆ แล้วฉันติดตั้งnvidia-cuda-toolkit7.5 บนเดเบียนเจสซี่อย่างราบรื่น

เพิ่ม backport ของคุณให้/etc/apt/sources.listฟรี สำหรับฉัน (ในเจสซี) ฉันเพิ่งวางไว้ที่ด้านล่างของไฟล์ของฉัน:

# jessie-backports
deb http://httpredir.debian.org/debian jessie-backports main contrib non-free

บันทึก, apt-get update, และสุดท้าย:

apt-get install -t jessie-backports nvidia-cuda-toolkit


1

ด้วย Debian 9 "stretch" ที่มีขั้นตอนเพิ่มเติม GPU (GT 720) เป็นสิ่งจำเป็น ฉันเห็นคนข้างต้น (@celavek) มีสิ่งนี้ดังนั้นฉันจะเติมสิ่งที่ใช้งานได้สำหรับฉัน คำตอบที่ได้รับการยอมรับครอบคลุมเกือบทุกอย่างที่จำเป็น การรับรู้นี้เป็นตัวอย่างที่ค่อนข้างดี แต่หวังว่าอาจมีบางสิ่งที่มีประโยชน์ในที่นี่ซึ่งจะช่วยประหยัดการค้นหาของ Google ได้เล็กน้อย

สำหรับ CUDA 8.0 ในขั้นตอนที่ 1 คลิก "Legacy Release" และเลือก "CUDA Toolkit 8.0 GA 2" จากนั้น Linux, x86_64, Ubuntu, 16.04, runfile (เฉพาะที่)

ฉันไม่ยอมรับไดรเวอร์แพ็คเกจและใช้ไดรเวอร์ 384.130 ที่ติดตั้งไว้ก่อนหน้านี้แทน GPU ของฉัน ข้อมูลเพิ่มเติมเกี่ยวกับที่นี่: เดวิกิพีเดีย ระยะของคุณอาจแตกต่างกันไปฉันไม่สามารถพูดกับการ์ดอื่นนอกเหนือจาก GT 720 นี่เป็นเส้นทางที่ฉันเลือกฉันยังไม่เสียใจเลย

เมื่อการติดตั้งล้มเหลวเนื่องจากไม่สามารถติดตั้ง InstallUtils.pm แบบโลคัลในขั้นตอนที่ 12 คุณจะต้องคลายไฟล์ cuda_8.0.61_375.26_linux.run แต่จะรันด้วยแฟล็ก --tar mxvf จากนั้นคัดลอก InstallUtils.pm (เป็น root) ไปยัง / usr / lib / x86_64-linux-gnu / pearl-base:

./cuda_8.0.61_375.26_linux.run --tar mxvf
sudo cp InstallUtils.pm /usr/lib/x86_64-linux-gnu/perl-base

ตอนนี้คำสั่งขั้นตอนที่ 12 ควรจะประสบความสำเร็จ

Debian 9.0 ของคุณมาพร้อมกับ g ++ เวอร์ชัน 6+ สิ่งนี้จะไม่เกิดขึ้น การรวบรวม vectorAdd ในขั้นตอนที่ 15 จะล้มเหลว ฉันติดตามเอกสารไวท์เปเปอร์นี้: การติดตั้ง GCC หลายเวอร์ชันเพื่อติดตั้งเวอร์ชัน 5.5.0 สำหรับ 5.5.0 คุณจะต้องการไฟล์นี้

wget http://mirrors.concertpass.com/gcc/releases/gcc-5.5.0/gcc-5.5.0.tar.xz

และแกะ tarball ออกด้วยสิ่งนี้:

tar -xJf gcc-5.5.0.tar.xz

ฉันต้องการอัปเดตบางสิ่ง (ไลบรารีและเพิ่มการคอมไพล์ 32 บิต) เพื่อให้การทำงานสำหรับฉัน:

sudo apt-get install libgmp3-dev libmpfr-dev libmpc-dev
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install build-essential gcc-multilib rpm libstdc++6:i386 libgcc1:i386 zlib1g:i386 libncurses5:i386

ตอนนี้คุณสามารถกำหนดค่าสร้างและติดตั้งคอมไพเลอร์

โปรดจำไว้ว่าการกำหนดค่าที่มีคำนำหน้า = / usr / local / gcc / 5.5.0ธง

ตอนนี้คุณสามารถรวบรวมตัวอย่าง vectorAdd ในขั้นตอนที่ 15 ด้วยสิ่งนี้:

make HOST_COMPILER=/usr/local/gcc/5.5.0/bin/g++

หรือสิ่งนี้:

export HOST_COMPILER=/usr/local/gcc/5.5.0/bin/g++
make

ไม่จำเป็นต้องแก้ไข Makefile แต่จะจัดการกับการลบล้างคอมไพเลอร์ได้อย่างถูกต้อง

ตอนนี้คุณควรมีการติดตั้ง CUDA 8.0 ที่ใช้งานได้


0

ลองใช้ Network Installers สำหรับ Ubuntu จากหน้านี้:

https://developer.nvidia.com/cuda-downloads#linux

โปรแกรมติดตั้งสำหรับ Ubuntu 14. * ควรเข้ากันได้ดีพอ


1
ฉันควรได้กล่าวว่าตัวติดตั้ง Ubuntu ไม่ทำงาน - อัปเดตการโพสต์เพื่อสะท้อนถึงนี้
เกร็ก

@Greg คุณคิดวิธีการติดตั้ง Cuda บน Debian ไหม?
nullgeppetto

@nullgeppetto ฉันสิ้นสุดความคิดเกี่ยวกับ Debian เนื่องจากฉันพบปัญหาความเข้ากันได้มากเกินไปที่ฉันไม่สามารถเอาชนะได้
เกร็ก

@ Greg, hmmm นั่นคือสิ่งที่ฉันกลัว .. ดังนั้นคุณไปเพื่อ * อูบุนตูหรืออะไรอย่างอื่น? โดยส่วนตัวฉันยังคงรอ gtx 960 ของฉันอยู่ดังนั้นฉันจะลองใช้ Debian ... ฉันจะแจ้งให้คุณทราบหากคุณต้องการ
nullgeppetto

0

การยืนยันการติดตั้งบน Debian 9 การยืดและเปลี่ยน PATH & LD_LIBRARY_PATH

คำตอบของEinpoklumข้างต้นช่วยฉันติดตั้ง CUDA 10.0 บน Debian 9 Stretch

หลังจากติดตั้ง CUDA สำเร็จฉันไม่สามารถตรวจสอบรุ่นและแก้ไขปัญหาได้เนื่องจากฉันต้องการเปลี่ยน PATH & LD_LIBRARY_PATH อย่างถาวรโดยแก้ไขไฟล์. bashrc


เอกสารประกอบชุดเครื่องมือ CUDA ที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.