Bagaimana saya bisa menginstal CuDNN di Ubuntu 16.04?

101

Untuk TensorFlow saya ingin menginstal cuda dan CuDNN. Bagaimana saya melakukannya di Ubuntu 16.04?

Martin Thoma
sumber
4
Peringatan: jika Anda mencoba menjalankan tensorflow dan perlu cudnn, pastikan untuk menginstal 5.1 dan bukan 6.0 untuk saat ini.
kata
@wordsfatnya CuDNN 6.0 sekarang didukung (setidaknya untuk TF 1.4).
ComputerScientist

Jawaban:

134

Langkah 0: Instal cuda dari repositori standar. (Lihat Bagaimana saya bisa menginstal CUDA di Ubuntu 16.04? )

Langkah 1: Daftarkan akun pengembang nvidia dan unduh cudnn di sini (sekitar 80 MB)

Langkah 2: Periksa di mana instalasi cuda Anda. Untuk instalasi dari repositori itu /usr/lib/...dan /usr/include. Kalau tidak, itu akan menjadi /usr/local/cuda/atau /usr/local/cuda-<version>. Anda dapat memeriksanya dengan which nvccatauldconfig -p | grep cuda

Langkah 3: Salin file:

Instalasi repositori:

$ 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*

Instalasi 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*
Martin Thoma
sumber
14
Menambahkan -Pmempertahankan tautan simbolis, yaitu sudo cp -P lib64/libcudnn* /usr/lib/x86_64-linux-gnu/, dan menghindari pesan:/sbin/ldconfig.real: /usr/lib/x86_64-linux-gnu/libcudnn.so.5 is not a symbolic link
Max Gordon
1
Pembaruan dari sini : "Unduh cuDNN v4 (v5 saat ini adalah kandidat rilis dan hanya didukung ketika menginstal TensorFlow dari sumber)."
nobar
36
Untuk Tensorflow untuk menemukan semuanya, saya harus menyalin include/cudnn.hdan perpustakaan lib64/ke /usr/local/cuda-8.0/includedan /usr/local/cuda-8.0/lib64(menggunakan CUDA 8.0, Ubuntu 14.04, Tensorflow 0.12.0rc0) - mungkin ini bermanfaat bagi seseorang.
David Stutz
@ Maxgordon Hai, apakah penting jika saya menggunakan perpustakaan runtime untuk ubuntu16.04 power8 atau perpustakaan untuk linux?
Mencoba belajar tanggal
1
Kiat lain - pastikan Anda menginstal cuda sebelum menginstal cudnn. Jika tidak, pemasang cuda tidak akan menimpa direktori / usr / local / cuda yang mungkin Anda buat.
Kevin
38

Dari 5.1 dan seterusnya Anda tidak dapat menginstal sesuai dengan apa yang disebutkan @Martin. Unduh 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.debdari situs nvidia dan instal satu per satu dengan cara berikut.

 sudo dpkg -i <library_name>.deb

Sunting : Pertama-tama Anda harus menginstal runtime (libcudnn6_6.0.21-1 + cuda8.0_amd64.deb) karena dev bergantung pada runtime (Terima kasih @tinmarino)

GPrathap
sumber
1
Terima kasih. Saya telah jatuh ke dalam masalah ini beberapa kali. Mari kita buat aturan praktis. Ketika hal-hal tidak berfungsi, tetap gunakan untuk menginstal menggunakan paket deb.
Anuraag Vaidya
8
Ketika mengkompilasi Tensorflow dari sumber, ada baiknya untuk mengetahui bahwa jalur instalasi pustaka cuDNN adalah/usr/lib/x86_64-linux-gnu/
Visionscaper
1
Anda harus terlebih dahulu menginstal runtimejeda devtergantung padanya
tinmarino
12
  1. Daftar di situs web NVidia. Mungkin diperlukan satu atau dua hari sebelum akun Anda disetujui. Setidaknya itu dulu kasusnya ketika saya mendaftar.
  2. Unduh dan Instal CUDA terbaru dari NVidia , atau versi terbaru yang sesuai dengan perangkat lunak yang akan Anda gunakan, jika ada, dalam hal ini versi T-Flow Anda.

    Perhatikan, bahwa menginstal melalui manajer paket standar Ubuntu melalui mengklik mungkin tidak akan berfungsi dengan baik.

    Sebagai gantinya, Anda mungkin harus mengikuti instruksi ini di terminal untuk menginstal .debpakage. Setelah itu Anda harus menambahkan beberapa baris untuk .bashrc, atau di mana pun yang sesuai dalam kasus Anda. Misalnya, jika Anda mengonfigurasi server, itu mungkin akan menjadi tempat yang berbeda, mungkin di suatu tempat sebelum autolaunch aplikasi Anda, karena .bashrcmungkin tidak akan dieksekusi dalam kasus itu.

  3. Unduh CuDNN dari NVidia

    Saya menggunakan versi "Library for Linux", tidak terlalu beruntung dengan .debpaket.

  4. Anda dapat menemukan di mana CUDA berada which nvcc. Biasanya /usr/local/cuda/akan menjadi tautan simbolis ke versi Anda saat ini diinstal.

  5. Buka arsip CuDNN dan salin konten yang sesuai ke tempat yang sesuai dalam folder instalasi CUDA ( cuda/lib64/dan cuda/include/). Saya biasanya sudo nautilusdan melakukannya dari sana secara visual.
Íhor Mé
sumber
8

Maju cepat 2018 dan NVIDIA sekarang menyediakan cuDNN 7.x untuk diunduh. Langkah-langkah instalasi masih serupa dengan yang dijelaskan oleh @GPrathap. Tetapi jika Anda ingin mengganti versi cuDNN lama dengan yang lebih baru, Anda harus menghapusnya terlebih dahulu sebelum instalasi.

Untuk rekap:

Langkah 0. Pastikan Anda sudah menginstal CUDA toolkit. Lanjutkan dengan instalasi CUDA toolkit jika Anda belum.

Langkah 1. Pergi ke portal pengembang NVIDIA https://developer.nvidia.com/cudnn dan unduh cuDNN.

Langkah 2. Jika sebelumnya Anda telah menginstal cuDNN, hapus saja

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

Langkah 3. Instal pustaka cuDNN (runtime, dev, doc) menggunakan dpkg

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

Langkah 4. Jika Anda ingin menemukan di mana perpustakaan diinstal, Anda dapat memperbarui indeks temukan dan kemudian menemukan lokasi perpustakaan.

sudo updatedb
locate libcudnn

Jika Anda secara khusus menginstal cuDNN 7.x terhadap CUDA toolkit 9.1, artikel ini menyediakan elaborasi lebih lanjut yang dapat membantu: http://tech.amikelive.com/node-679/quick-tip-installing-cuda-deep- neural-network-7-cudnn-7-x-library-for-cuda-toolkit-9-1-on-ubuntu-16-04 /

Mike
sumber
Terima kasih @ Mike, tahukah Anda apa perbedaan antara menggunakan file deb dan file .tar biasa? mana yang direkomendasikan dan mengapa? (Ngomong-ngomong saya sendiri pernah menginstal CUDA menggunakan runfile dan juga menggunakan paket .tar untuk cuDNN di ubuntu)
Rika
Menurut dokumen instalasi yang relevan dari Nvidia , apa yang Anda katakan tentang harus menghapus versi lama tidak benar:cuDNN v7 can coexist with previous versions of cuDNN, such as v5 or v6.
n1k31t4
3

Anda juga dapat mengunduh paket deb untuk distribusi berbasis Debian.

Dari halaman web NVIDIA, untuk profil pengembang tersedia file selanjutnya:

  • cuDNN v5.1 Runtime Library untuk Linux (Deb)
  • cuDNN v5.1 Perpustakaan Pengembang untuk Linux (Deb)
  • cuDNN v5.1 Sampel Kode dan Panduan Pengguna Linux (Deb)

Saya menguji ini, melalui mesin saya dengan Debian (Stretch) dan TensorFlow berfungsi!

LAraque
sumber
6
Harap perhatikan bahwa mulai sekarang (Juli 2016) cuDNN v5.1 tidak akan berfungsi dengan TensorFlow kecuali Anda mengkompilasinya dari sumber, lihat tensorflow.org/versions/r0.9/get_started/os_setup.html
mastazi
2

Menambahkan detail penting ke jawaban yang masih valid oleh @Martin Thoma dan @ Íhor Mé: Setelah menyalin file libcudnn ke direktori cuda, Anda harus memperbarui file .bashrc Anda:

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

Anda kemudian harus menambahkan direktori include ke file config apa pun yang menggunakannya. Caffe misalnya memiliki file konfigurasi yang harus Anda edit sebelum kompilasi dengan make. Untuk ini, edit caffe / Makefile.config untuk menambahkan path ke variabel config ini (tambahkan spasi putih di antara path):

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

Untuk setiap jendela terminal saat ini yang Anda inginkan agar perubahan ini efektif, jangan lupa untuk mengeksekusi file sekali!

. ~/.bashrc
Kacang Agile
sumber
0

jawabannya benar tetapi untuk cuDNN 5.1 beberapa nama telah diubah. Jadi, jika Anda menggunakan versi ini setelah mengekstrak file cuDNN Anda akan menemukan dua folder: lib dan sertakan. ganti nama file * .h di folder include ke cudnn.h dan kemudian ikuti https://askubuntu.com/a/767270/641589 . perubahan ini diperlukan jika Anda ingin menggunakan cuDNN untuk Caffe!

abolfazl taghribi
sumber
Harap edit jawaban Anda dan tambahkan referensi, 'instruksi di atas'.
sudodus
0

Dalam 16,04 jika Anda menginstal CUDA langsung dari situs web Nvidia dan Anda juga membangun Tensorflow dari sumber, maka Anda dapat secara spesifik menentukan direktori yang ingin Anda indikasikan sebagai Cudnn. Secara default adalah:

/usr/include/x86_64-linux-gnu

Saat Anda sedang membangun Tensorflow, ia akan menanyakan versi mana yang ingin Anda tandai digunakan untuk Cudnn. Kemudian setelah itu ia akan bertanya di mana letaknya. Cukup tunjukkan direktori di atas dan itu akan berfungsi dengan baik. Seharusnya membuat file roda pada saat itu dan Anda dapat menginstalnya dengan pip.

Dewi
sumber