Bagaimana cara memverifikasi pemasangan CuDNN?

145

Saya telah mencari banyak tempat tetapi SEMUA yang saya dapatkan adalah BAGAIMANA untuk menginstalnya, bukan bagaimana memverifikasi bahwa itu diinstal. Saya dapat memverifikasi driver NVIDIA saya diinstal, dan CUDA diinstal, tetapi saya tidak tahu bagaimana memverifikasi CuDNN diinstal. Bantuan akan sangat dihargai, terima kasih!

PS.
Ini untuk implementasi caffe. Saat ini semuanya berfungsi tanpa CuDNN diaktifkan.

alfredox
sumber
1
apakah Anda mencoba menjalankan beberapa contoh dengan dan tanpa USE_CUDNNdiaktifkan?
pQB
bagaimana Anda memverifikasi bahwa driver NVIDIA dan CUDA Anda terinstal?
Charlie Parker

Jawaban:

43

Menginstal CuDNN hanya melibatkan menempatkan file di direktori CUDA. Jika Anda telah menentukan rute dan opsi CuDNN dengan benar saat memasang caffe, itu akan dikompilasi dengan CuDNN.

Anda dapat memeriksa menggunakan itu cmake. Buat direktori caffe/builddan jalankan cmake ..dari sana. Jika konfigurasi sudah benar Anda akan melihat baris-baris ini:

-- Found cuDNN (include: /usr/local/cuda-7.0/include, library: /usr/local/cuda-7.0/lib64/libcudnn.so)

-- NVIDIA CUDA:
--   Target GPU(s)     :   Auto
--   GPU arch(s)       :   sm_30
--   cuDNN             :   Yes

Jika semuanya benar jalankan makeperintah untuk menginstal caffe dari sana.

cesans
sumber
Luar biasa, terima kasih atas jawabannya. Saya memang telah mengaktifkan cuDNN setelah mengaktifkannya di file make dan kompilasi ulang berfungsi: D.
alfredox
72
Apakah ada cara untuk mengetahui apakah cuDNN diinstal tanpa menggunakan Caffe. Sesuatu seperti contoh yang Anda dapatkan dengan CUDA?
gokul_uf
6
@ gokul_uf per jawaban martin di bawah ini, Anda dapat menggunakan yang berikut (dengan asumsi Anda telah symlinked / usr / local / cuda ke /usr/local/cuda-#.#):cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
matt
2
@ Booooooooooms Dia hanya mengambil isi dari "file header" untuk bahasa pemrograman C, dan menggunakan program "grep" untuk membacakan variabel tertentu untuk kita
Greg Hilston
Saya tidak punya Caffe.
rjurney
167

Instalasi CuDNN hanya menyalin beberapa file. Oleh karena itu untuk memeriksa apakah CuDNN diinstal (dan versi mana yang Anda miliki), Anda hanya perlu memeriksa file-file itu.

Instal CuDNN

Langkah 1: Daftarkan akun pengembang nvidia dan unduh cudnn di sini (sekitar 80 MB). Anda mungkin perlu nvcc --versionmendapatkan versi cuda Anda.

Langkah 2: Periksa di mana instalasi cuda Anda. Bagi kebanyakan orang, itu akan terjadi /usr/local/cuda/. Anda dapat memeriksanya which nvcc.

Langkah 3: Salin file:

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

Periksa versi

Anda mungkin harus menyesuaikan jalurnya. Lihat langkah 2 instalasi.

$ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

Catatan

Ketika Anda mendapatkan kesalahan seperti

F tensorflow/stream_executor/cuda/cuda_dnn.cc:427] could not set cudnn filter descriptor: CUDNN_STATUS_BAD_PARAM

dengan TensorFlow, Anda mungkin mempertimbangkan untuk menggunakan CuDNN v4 bukan v5.

Pengguna Ubuntu yang menginstalnya melaluiapt : https://askubuntu.com/a/767270/10425

Martin Thoma
sumber
2
Langkah-langkah untuk CuDNN ini baik. Apakah Anda mengatakan bahwa mereka dapat sedikit ditingkatkan jika salinannya mempertahankan symlink (-av flags)?
auro
8
memodifikasi jalan sedikit bekerja untuk instal sayacat /usr/include/cudnn.h | grep CUDNN_MAJOR -A 2
Micah Stubbs
Saya harus mengubah jalur saya ke/usr/local/cuda/**/*.h
bwest87
Tautan yang Anda poskan untuk mengunduh tautan cudnn ke file deb. Di sinilah Anda dapat mengunduh file tar: developer.nvidia.com/rdp/cudnn-archive
BourbonCreams
Baru-baru ini, untuk mendapatkan versi, berikut ini berfungsi. cat /usr/include/x86_64-linux-gnu/cudnn_v7.h | grep CUDNN_MAJOR -A 2
auro
106

Pertama-tama Anda perlu menemukan file cudnn yang diinstal dan kemudian mengurai file ini. Untuk menemukan file, Anda dapat menggunakan:

whereis cudnn.h
CUDNN_H_PATH=$(whereis cudnn.h)

Jika itu tidak berhasil, lihat "Distribusi Redhat" di bawah ini.

Setelah Anda menemukan lokasi ini, Anda dapat melakukan hal berikut (mengganti ${CUDNN_H_PATH}dengan path):

cat ${CUDNN_H_PATH} | grep CUDNN_MAJOR -A 2

Hasilnya akan terlihat seperti ini:

#define CUDNN_MAJOR 7
#define CUDNN_MINOR 5
#define CUDNN_PATCHLEVEL 0
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

Yang berarti versinya adalah 7.5.0.

Ubuntu 18.04 (melalui sudo apt install nvidia-cuda-toolkit)

Metode instalasi ini menginstal cuda di / usr / include dan / usr / lib / cuda / lib64, maka file yang perlu Anda lihat adalah di /usr/include/cudnn.h.

CUDNN_H_PATH=/usr/include/cudnn.h
cat ${CUDNN_H_PATH} | grep CUDNN_MAJOR -A 2

Debian dan Ubuntu

Dari CuDNN v5 dan seterusnya (setidaknya ketika Anda menginstal melalui sudo dpkg -i <library_name>.debpaket), sepertinya Anda mungkin perlu menggunakan yang berikut:

cat /usr/include/x86_64-linux-gnu/cudnn_v*.h | grep CUDNN_MAJOR -A 2

Sebagai contoh:

$ cat /usr/include/x86_64-linux-gnu/cudnn_v*.h | grep CUDNN_MAJOR -A 2                                                         
#define CUDNN_MAJOR      6
#define CUDNN_MINOR      0
#define CUDNN_PATCHLEVEL 21
--
#define CUDNN_VERSION    (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

#include "driver_types.h"

menunjukkan bahwa CuDNN versi 6.0.21 diinstal.

Distribusi redhat

Di CentOS, saya menemukan lokasi CUDA dengan:

$ whereis cuda
cuda: /usr/local/cuda

Saya kemudian menggunakan prosedur tentang pada file cudnn.h yang saya temukan dari lokasi ini:

$ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
Jonathan
sumber
47

Untuk memeriksa instalasi CUDA, jalankan perintah di bawah ini , jika diinstal dengan benar maka perintah di bawah ini tidak akan menimbulkan kesalahan dan akan mencetak versi perpustakaan yang benar.

function lib_installed() { /sbin/ldconfig -N -v $(sed 's/:/ /' <<< $LD_LIBRARY_PATH) 2>/dev/null | grep $1; }
function check() { lib_installed $1 && echo "$1 is installed" || echo "ERROR: $1 is NOT installed"; }
check libcuda
check libcudart

Untuk memeriksa instalasi CuDNN, jalankan perintah di bawah ini , jika CuDNN diinstal dengan benar maka Anda tidak akan mendapatkan kesalahan.

function lib_installed() { /sbin/ldconfig -N -v $(sed 's/:/ /' <<< $LD_LIBRARY_PATH) 2>/dev/null | grep $1; }
function check() { lib_installed $1 && echo "$1 is installed" || echo "ERROR: $1 is NOT installed"; }
check libcudnn 

ATAU

Anda dapat menjalankan perintah di bawah ini dari direktori mana saja

nvcc -V

seharusnya menghasilkan output seperti ini

 nvcc: NVIDIA (R) Cuda compiler driver
 Copyright (c) 2005-2016 NVIDIA Corporation
 Built on Tue_Jan_10_13:22:03_CST_2017
 Cuda compilation tools, release 8.0, V8.0.61
Sherlock
sumber
Saya menjalankan perintah nvcc -V dan itu melemparkan kesalahan. perintah seperti itu tidak ditemukan.
Infinite Loops
@InfiniteLoops Anda sudah menginstal nvidia cuda toolkit?
Sherlock
@Sherlock saya langsung menjalankan cmd dari panduan instalasi TensorFlow, yang saya anggap menginstal Cuda n cudnn. Dikatakan itu menambahkan repo paket Nvidia dan Instal cuda dan alat-alat. Tetapi fungsi yang Anda nyatakan sebelumnya berfungsi. Ini menampilkan sesuatu seperti libcudnn.so.7 -> libcudnn.so.7.2.1
Infinite Loops
@InfiniteLoops jika Anda mendapatkan kesalahan bahwa "perintah seperti itu tidak ditemukan" itu berarti nvidia tool kit tidak diinstal. coba perintah nvccdan periksa output Anda. periksa tautan di bawah ini juga devtalk.nvidia.com/default/topic/457664/…
Sherlock
32

Mendapatkan Versi cuDNN [Linux]

Gunakan berikut ini untuk menemukan jalur untuk cuDNN:

cat $(whereis cudnn.h) | grep CUDNN_MAJOR -A 2

Jika di atas tidak berhasil coba ini:

cat $(whereis cuda)/include/cudnn.h | grep CUDNN_MAJOR -A 2

Mendapatkan Versi cuDNN [Windows]

Gunakan berikut ini untuk menemukan jalur untuk cuDNN:

C:\>where cudnn*
C:\Program Files\cuDNN6\cuda\bin\cudnn64_6.dll

Kemudian gunakan ini untuk membuang versi dari file header,

type "%PROGRAMFILES%\cuDNN6\cuda\include\cudnn.h" | findstr "CUDNN_MAJOR CUDNN_MINOR CUDNN_PATCHLEVEL"

Mendapatkan Versi CUDA

Ini berfungsi di Linux dan juga Windows:

nvcc --version
Shital Shah
sumber
1
Hanya untuk menambahkan case pengguna: Saya tidak dapat menemukan cudnn.hfile di instalasi cuda saya dan saya pikir saya tidak menginstal cudnn. Tapi saya kemudian menjalankan kode sampel cuda yang diunduh dari situs web resmi, dan itu berlalu ...
yuqli
2
Perintah penuh yang saya gunakan untuk menemukan nomor versi lengkap adalah:type "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\include\cudnn.h" | findstr "CUDNN_MAJOR CUDNN_MINOR CUDNN_PATCHLEVEL"
Taran
Keren! Saya memperbarui jawaban jadi sekarang ia mencetak rincian ini.
Shital Shah
16

Saat memasang di ubuntu via .debAnda dapat menggunakansudo apt search cudnn | grep installed

Vlad
sumber
6

Jalankan ./mnistCUDNNdi/usr/src/cudnn_samples_v7/mnistCUDNN

Berikut ini sebuah contoh:

cudnnGetVersion() : 7005 , CUDNN_VERSION from cudnn.h : 7005 (7.0.5)
Host compiler version : GCC 5.4.0
There are 1 CUDA capable devices on your machine :
device 0 : sms 30  Capabilities 6.1, SmClock 1645.0 Mhz, MemSize (Mb) 24446, MemClock 4513.0 Mhz, Ecc=0,    boardGroupID=0
Using device 0
jeff wang
sumber
4
Ini sebenarnya bukan saran yang buruk, kecuali jika itu salah. mnistCUDNNseharusnya tidak berada di direktori itu karena itu tidak seharusnya menjadi direktori yang dapat ditulis. Sebaliknya sampel harus disalin sebagai sub-direktori ke direktori home pengguna dan dibangun di sana. Jadi jika itu dipasang dan dibangun dengan benar sesuai dengan instruksi di situs Nvidia, mnistCUDNN akan berada di~/cudnn_samples_v7
Mike Wise
Hanya dengan menambahkan Anda bisa mendapatkan sampel kode dari situs web resmi NVIDIA, ikuti instruksi di sini ( docs.nvidia.com/deeplearning/sdk/cudnn-install/… ) untuk cara memasang dan memverifikasi.
yuqli
1
Saya melihat. Saya cudnn.hdiinstal pada /usr/include/cudnn.h, tidak yakin mengapa tetapi ini terjadi sebelumnya ketika saya menginstal CUDA apt-getjuga. Kali ini saya menggunakan dpkgdan tidak mengubah apa pun ...
yuqli