ฉันจะติดตั้ง CuDNN บน Ubuntu 16.04 ได้อย่างไร


101

สำหรับ TensorFlow ฉันต้องการติดตั้ง cuda และ CuDNN ฉันจะทำสิ่งนั้นบน Ubuntu 16.04 ได้อย่างไร


4
คำเตือน: หากคุณพยายามเรียกใช้ tensorflow และต้องการ cudnn ตรวจสอบให้แน่ใจว่าได้ติดตั้ง 5.1 และไม่ใช่ 6.0 ในตอนนี้
Wordsforthewise

ขณะนี้ได้รับการสนับสนุน @wordsforthewise CuDNN 6.0 (สำหรับ TF 1.4 เป็นอย่างน้อย)
วิทยาศาสตร์คอมพิวเตอร์

คำตอบ:


134

ขั้นตอนที่ 0: ติดตั้ง cuda จากที่เก็บมาตรฐาน (ดูฉันจะติดตั้ง CUDA บน Ubuntu 16.04 ได้อย่างไร )

ขั้นตอนที่ 1: ลงทะเบียนบัญชีนักพัฒนา nvidia และดาวน์โหลด cudnn ที่นี่ (ประมาณ 80 MB)

ขั้นตอนที่ 2: ตรวจสอบว่าการติดตั้ง cuda ของคุณอยู่ที่ไหน สำหรับการติดตั้งจากพื้นที่เก็บข้อมูลที่มันเป็นและ/usr/lib/... /usr/includeมิฉะนั้นก็จะเป็นหรือ/usr/local/cuda/ /usr/local/cuda-<version>คุณสามารถตรวจสอบกับwhich nvccหรือldconfig -p | grep cuda

ขั้นตอนที่ 3: คัดลอกไฟล์:

การติดตั้งที่เก็บ:

$ cd folder/extracted/contents
$ sudo cp -P include/cudnn.h /usr/include
$ sudo cp -P lib64/libcudnn* /usr/lib/x86_64-linux-gnu/
$ sudo chmod a+r /usr/lib/x86_64-linux-gnu/libcudnn*

การติดตั้ง Runfile:

$ cd folder/extracted/contents
$ sudo cp include/cudnn.h /usr/local/cuda/include
$ sudo cp lib64/libcudnn* /usr/local/cuda/lib64
$ sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

14
การเพิ่มการ-Pรักษาลิงก์สัญลักษณ์คือsudo cp -P lib64/libcudnn* /usr/lib/x86_64-linux-gnu/และหลีกเลี่ยงข้อความ:/sbin/ldconfig.real: /usr/lib/x86_64-linux-gnu/libcudnn.so.5 is not a symbolic link
Max Gordon

1
อัปเดตจากที่นี่ : "ดาวน์โหลด cuDNN v4 (v5 ปัจจุบันเป็นตัวเลือกการวางจำหน่ายและสนับสนุนเฉพาะเมื่อติดตั้ง TensorFlow จากแหล่งที่มา)"
nobar

36
สำหรับ Tensorflow เพื่อค้นหาทุกสิ่งฉันต้องคัดลอกinclude/cudnn.hและไลบรารีlib64/ไปที่/usr/local/cuda-8.0/includeและ/usr/local/cuda-8.0/lib64(ใช้ CUDA 8.0, Ubuntu 14.04, Tensorflow 0.12.0rc0) - อาจเป็นประโยชน์สำหรับใครบางคน
David Stutz

@ MaxGordon สวัสดีมันสำคัญไหมถ้าฉันใช้ไลบรารีรันไทม์สำหรับ ubuntu16.04 power8 หรือไลบรารี่สำหรับ linux?
ทดลองใช้

1
เคล็ดลับอื่น - ตรวจสอบให้แน่ใจว่าคุณติดตั้ง cuda ก่อนติดตั้ง cudnn มิฉะนั้นตัวติดตั้ง cuda จะไม่เขียนทับไดเรกทอรีใด ๆ / usr / local / cuda ที่คุณอาจสร้างขึ้น
kevins

38

ตั้งแต่ 5.1 เป็นต้นไปคุณจะไม่สามารถติดตั้งได้ตามที่ @Martin พูดถึง ดาวน์โหลดlibcudnn6_6.0.21-1+cuda8.0_amd64.deb, libcudnn6-dev_6.0.21-1+cuda8.0_amd64.deb, libcudnn6-doc_6.0.21-1+cuda8.0_amd64.debจากเว็บไซต์ nvidia และติดตั้งทีละหนึ่งทาง

 sudo dpkg -i <library_name>.deb

แก้ไข : ก่อนอื่นคุณต้องติดตั้งรันไทม์ (libcudnn6_6.0.21-1 + cuda8.0_amd64.deb) เพราะ dev ขึ้นอยู่กับรันไทม์ (ขอบคุณ @tinmarino)


1
ขอบคุณ ฉันพบปัญหานี้หลายครั้ง มาสร้างกฎง่ายๆกันเถอะ เมื่อสิ่งต่าง ๆ ไม่ทำงานให้ติดตั้งโดยใช้แพ็คเกจ. deb
Anuraag Vaidya

8
เมื่อทำการรวบรวม Tensorflow จากแหล่งที่มามันเป็นเรื่องดีที่จะรู้ว่าเส้นทางการติดตั้งไลบรารี cuDNN คือ/usr/lib/x86_64-linux-gnu/
Visionscaper

1
ก่อนอื่นคุณต้องติดตั้งruntimedecause devขึ้นอยู่กับมัน
tinmarino

12
  1. ลงทะเบียนบนเว็บไซต์ของ NVidia อาจใช้เวลาหนึ่งวันหรือสองวันก่อนที่พวกเขาจะได้รับการอนุมัติบัญชีของคุณ อย่างน้อยก็เคยเป็นกรณีที่กลับเมื่อฉันลงทะเบียน
  2. ดาวน์โหลดและติดตั้ง CUDA ล่าสุดจาก NVidiaหรือรุ่นล่าสุดที่เหมาะกับซอฟต์แวร์ที่คุณใช้งานได้หากมีในกรณีนี้เวอร์ชัน T-Flow ของคุณ

    โปรดทราบว่าการติดตั้งผ่านตัวจัดการแพคเกจมาตรฐานของอูบุนตูด้วยการคลิกอาจไม่ทำงานอย่างเหมาะสม

    คุณอาจต้องทำตามคำแนะนำเหล่านี้ในเทอร์มินัลเพื่อติดตั้ง.debpakage แทน หลังจากนั้นคุณจะต้องเพิ่มไม่กี่บรรทัดไป.bashrcหรือที่ใดก็ตามที่เหมาะสมในกรณีของคุณ ตัวอย่างเช่นหากคุณกำลังกำหนดค่าเซิร์ฟเวอร์ก็อาจจะเป็นสถานที่ที่แตกต่างกันอาจจะอยู่ที่ไหนสักแห่งก่อนที่จะปิดอัตโนมัติของแอปของคุณเพราะ.bashrcอาจจะไม่ถูกดำเนินการในกรณีนี้

  3. ดาวน์โหลด CuDNN จาก NVidia

    ฉันใช้เวอร์ชัน "Library for Linux" ไม่ค่อยมีโชคกับ.debแพ็คเกจเลย

  4. คุณสามารถค้นหาว่า CUDA ตั้งอยู่ที่ which nvccใด โดยปกติ/usr/local/cuda/จะเป็นลิงก์สัญลักษณ์ไปยังเวอร์ชันที่คุณติดตั้งในปัจจุบัน

  5. เปิดไฟล์เก็บถาวร CuDNN และคัดลอกเนื้อหาที่เหมาะสมลงในตำแหน่งที่เหมาะสมภายในโฟลเดอร์การติดตั้ง CUDA ( cuda/lib64/และcuda/include/) ฉันมักจะsudo nautilusและทำจากที่นั่นสายตา

8

กรอไปข้างหน้า 2018 และ NVIDIA ตอนนี้มี cuDNN 7.x สำหรับดาวน์โหลด ขั้นตอนการติดตั้งยังคงคล้ายกับที่อธิบายโดย @GPrathap แต่ถ้าคุณต้องการแทนที่เวอร์ชั่น cuDNN เก่าด้วยอันใหม่กว่าคุณต้องลบมันออกก่อนที่จะทำการติดตั้ง

วิธีการสรุป:

ขั้นตอนที่ 0 ตรวจสอบว่าคุณได้ติดตั้งชุดเครื่องมือ CUDA แล้ว ดำเนินการกับการติดตั้งชุดเครื่องมือ CUDA หากคุณยังไม่มี

ขั้นตอน 1. ไปที่พอร์ทัลผู้พัฒนา NVIDIA https://developer.nvidia.com/cudnnและดาวน์โหลด cuDNN

ขั้นตอนที่ 2 หากคุณเคยติดตั้ง cuDNN มาก่อนให้ลบออก

sudo dpkg -r <old-cudnn-runtime>.deb
sudo dpkg -r <old-cudnn-dev>.deb

ขั้นตอน 3. ติดตั้งไลบรารี cuDNN (รันไทม์, dev, doc) โดยใช้ dpkg

sudo dpkg -i <new-cudnn-runtime>.deb
sudo dpkg -i <new-cudnn-dev>.deb
sudo ldconfig

ขั้นตอนที่ 4 หากคุณต้องการค้นหาตำแหน่งที่ติดตั้งไลบรารีคุณสามารถอัพเดตดัชนีการค้นหาแล้วค้นหาตำแหน่งไลบรารี

sudo updatedb
locate libcudnn

หากคุณติดตั้ง cuDNN 7.x โดยเฉพาะกับชุดเครื่องมือ CUDA 9.1 บทความนี้จะให้รายละเอียดเพิ่มเติมที่สามารถช่วยได้: http://tech.amikelive.com/node-679/quick-tip-installing-cuda-deep- ประสาทเครือข่าย-7-cudnn-7-x-ห้องสมุดสำหรับ CUDA-เครื่องมือ-9-1-on-อูบุนตู-16-04 /


ขอบคุณ @ ไมค์คุณรู้ไหมว่าความแตกต่างระหว่างการใช้ไฟล์ deb กับไฟล์. tar ธรรมดาคืออะไร? แนะนำแบบไหนและทำไม (โดยวิธีการที่ฉันเองเคยติดตั้ง CUDA โดยใช้ runfile และยังใช้แพ็คเกจ. tar สำหรับ cuDNN ใน Ubuntu)
Rika

ตามเอกสารการติดตั้งที่เกี่ยวข้องจากNvidiaสิ่งที่คุณพูดเกี่ยวกับการลบเวอร์ชันเก่าไม่ถูกต้อง:cuDNN v7 can coexist with previous versions of cuDNN, such as v5 or v6.
n1k31t4

3

นอกจากนี้คุณยังสามารถดาวน์โหลดแพ็คเกจ deb สำหรับ Debian based distributions

จากหน้าเว็บ NVIDIA สำหรับโปรไฟล์นักพัฒนาจะมีไฟล์ถัดไป:

  • รันไทม์ cuDNN v5.1 ไลบรารีสำหรับ Linux (Deb)
  • cuDNN v5.1 Developer Library สำหรับ Linux (Deb)
  • ตัวอย่างโค้ด cuDNN v5.1 และคู่มือผู้ใช้ Linux (Deb)

ฉันทดสอบสิ่งนี้กับเครื่องของฉันด้วย Debian (Stretch) และ TensorFlow ทำงานได้!


6
โปรดทราบว่า ณ ตอนนี้ (กรกฎาคม 2016) cuDNN v5.1 จะไม่ทำงานกับ TensorFlow เว้นแต่คุณจะรวบรวมจากแหล่งข้อมูลดูtenorflow.org/versions/r0.9/get_started/os_setup.html
mastazi

2

การเพิ่มรายละเอียดที่สำคัญไปยังคำตอบที่ถูกต้องโดย @Martin Thoma และ @ ÍhorMé: หลังจากคัดลอกไฟล์ libcudnn ไปยังไดเรกทอรี cuda คุณต้องอัปเดตไฟล์. bashrc ของคุณ:

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"
export CUDA_HOME=/usr/local/cuda

จากนั้นคุณต้องเพิ่มไดเร็กทอรี include ลงในไฟล์ config ใด ๆ ที่ใช้งาน Caffe เช่นมีไฟล์ปรับแต่งที่คุณต้องแก้ไขก่อนทำการคอมไพล์ด้วย make สำหรับสิ่งนี้แก้ไข caffe / Makefile.config เพื่อเพิ่มพา ธ ไปยังตัวแปร config เหล่านี้ (เพิ่มช่องว่างระหว่างพา ธ ):

INCLUDE_DIRS: /usr/local/caffe/cuda/include/ 
LIBRARY_DIRS: /usr/local/cuda/lib64/

สำหรับหน้าต่างเทอร์มินัลปัจจุบันที่คุณต้องการให้การเปลี่ยนแปลงเหล่านี้มีผลบังคับใช้อย่าลืมเรียกใช้ไฟล์หนึ่งครั้ง!

. ~/.bashrc

0

คำตอบนั้นถูกต้อง แต่สำหรับ cuDNN 5.1 บางชื่อมีการเปลี่ยนแปลง ดังนั้นหากคุณใช้เวอร์ชันนี้หลังจากแตกไฟล์ cuDNN คุณจะพบสองโฟลเดอร์: lib และ include เปลี่ยนชื่อของไฟล์ * .h ในรวมถึงโฟลเดอร์ cudnn.h แล้วทำตามhttps://askubuntu.com/a/767270/641589 การเปลี่ยนแปลงนี้เป็นสิ่งจำเป็นหากคุณต้องการใช้ cuDNN สำหรับ Caffe!


โปรดแก้ไขคำตอบของคุณและเพิ่มการอ้างอิง 'คำแนะนำด้านบน'
sudodus

0

ใน 16.04 หากคุณติดตั้ง CUDA โดยตรงจากเว็บไซต์ของ Nvidia และคุณกำลังสร้าง Tensorflow จากแหล่งที่มาคุณสามารถระบุไดเรกทอรีที่คุณต้องการระบุว่าเป็น Cudnn ได้ โดยค่าเริ่มต้นคือ:

/usr/include/x86_64-linux-gnu

เมื่อคุณกำลังสร้าง Tensorflow มันจะถามคุณว่าคุณต้องการใช้เวอร์ชั่นใดสำหรับ Cudnn หลังจากนั้นมันจะถามว่ามันอยู่ที่ไหน เพียงระบุไดเรกทอรีข้างต้นและมันจะทำงานได้ดี มันควรสร้างไฟล์ล้อ ณ จุดนั้นและคุณสามารถติดตั้งได้ด้วย pip

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