Come verificare l'installazione di CuDNN?


145

Ho cercato in molti luoghi ma TUTTO quello che ottengo è COME installarlo, non come verificare che sia installato. Posso verificare che il mio driver NVIDIA sia installato e che CUDA sia installato, ma non so come verificare che CuDNN sia installato. L'aiuto sarà molto apprezzato, grazie!

PS.
Questo è per un'implementazione del caffe. Attualmente tutto funziona senza CuDNN abilitato.


1
hai provato a fare qualche esempio con e senza USE_CUDNNabilitato?
— pQB,

come si verifica che il driver NVIDIA e CUDA sia installato?
— Charlie Parker,

Risposte:


43

L'installazione di CuDNN implica solo l'inserimento dei file nella directory CUDA. Se hai specificato correttamente i percorsi e l'opzione CuDNN durante l'installazione di caffe, verrà compilato con CuDNN.

Puoi verificarlo usando cmake. Crea una directory caffe/builded esegui cmake ..da lì. Se la configurazione è corretta vedrai queste righe:

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

Se tutto è corretto, esegui gli makeordini per installare caffe da lì.


Fantastico, grazie per la risposta. Avevo abilitato cuDNN dopo averlo abilitato nel file make e averlo ricompilato funzionava: D.
— Alfredox,

72
C'è un modo per scoprire se cuDNN è installato senza usare Caffe. Qualcosa come gli esempi che ottieni con CUDA?
— gokul_uf,

6
@gokul_uf per la risposta di martin qui sotto, puoi usare quanto segue (supponendo che tu abbia link simbolico / usr / local / cuda a /usr/local/cuda-#.#):cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
— matt

2
@Boooooooooms Sta semplicemente prendendo il contenuto di un "file di intestazione" per il linguaggio di programmazione C, e usando il programma "grep" per leggere una variabile specifica per noi
— Greg Hilston,

Non ho un caffe.
— rjurney,

167

L'installazione di CuDNN sta solo copiando alcuni file. Quindi per verificare se CuDNN è installato (e quale versione hai), devi solo controllare quei file.

Installa CuDNN

Passaggio 1: registra un account sviluppatore nvidia e scarica cudnn qui (circa 80 MB). Potresti aver bisogno dinvcc --version ottenere la versione di cuda.

Passaggio 2: controlla dove si trova l'installazione di cuda. Per la maggior parte delle persone, lo sarà /usr/local/cuda/. Puoi verificarlo conwhich nvcc .

Passaggio 3: copia i 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*

Controlla la versione

Potrebbe essere necessario regolare il percorso. Vedere la fase 2 dell'installazione.

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

Appunti

Quando viene visualizzato un errore simile

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

con TensorFlow, potresti prendere in considerazione l'utilizzo di CuDNN v4 anziché v5.

Utenti Ubuntu che lo hanno installato tramiteapt : https://askubuntu.com/a/767270/10425


2
Questi passaggi per CuDNN sono validi. Diresti che possono essere leggermente migliorati se le copie conservassero il collegamento simbolico (-av flags)?
— auro,

8
la modifica del percorso ha funzionato leggermente per la mia installazionecat /usr/include/cudnn.h | grep CUDNN_MAJOR -A 2
— Micah Stubbs,

Ho dovuto cambiare il mio percorso in/usr/local/cuda/**/*.h
— bwest87

Il link che hai pubblicato per scaricare link cudnn ai file deb. Ecco dove è possibile scaricare i file tar: developer.nvidia.com/rdp/cudnn-archive
— BourbonCreams

Più recentemente, per ottenere la versione, i seguenti lavori. cat /usr/include/x86_64-linux-gnu/cudnn_v7.h | grep CUDNN_MAJOR -A 2
— auro

106

Devi prima trovare il file cudnn installato e quindi analizzare questo file. Per trovare il file, è possibile utilizzare:

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

Se il problema persiste, vedi "Distribuzioni Redhat" di seguito.

Una volta trovata questa posizione è quindi possibile effettuare le seguenti operazioni (sostituendo ${CUDNN_H_PATH}con il percorso):

cat ${CUDNN_H_PATH} | grep CUDNN_MAJOR -A 2

Il risultato dovrebbe assomigliare a questo:

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

Ciò significa che la versione è 7.5.0.

Ubuntu 18.04 (tramite sudo apt installa nvidia-cuda-toolkit)

Questo metodo di installazione installa cuda in / usr / include e / usr / lib / cuda / lib64, quindi il file che devi guardare è in /usr/include/cudnn.h.

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

Debian e Ubuntu

Da CuDNN v5 in poi (almeno quando si installa tramite sudo dpkg -i <library_name>.debpacchetti), sembra che potrebbe essere necessario utilizzare quanto segue:

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

Per esempio:

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

indica che CuDNN versione 6.0.21 è installata.

Distribuzioni Redhat

Su CentOS, ho trovato la posizione di CUDA con:

$ whereis cuda
cuda: /usr/local/cuda

Ho quindi utilizzato la procedura sul file cudnn.h che ho trovato da questa posizione:

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

47

Per verificare l'installazione di CUDA, esegui il comando di seguito , se installato correttamente, il comando di seguito non genererà alcun errore e stamperà la versione corretta della libreria.

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

Per verificare l'installazione di CuDNN, esegui il comando seguente , se CuDNN è installato correttamente, non otterrai alcun errore.

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 

O

puoi eseguire il comando di seguito da qualsiasi directory

nvcc -V

dovrebbe dare in uscita qualcosa del genere

 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

Eseguo il comando nvcc -V e ha generato un errore. tale comando non trovato.
— Infinite Loops

@InfiniteLoops hai installato nvidia cuda toolkit?
— Sherlock,

@Sherlock eseguo direttamente il cmd dalla guida all'installazione di TensorFlow, che presumo abbia installato Cuda n cudnn. Dice che aggiunge il repository di pacchetti Nvidia e installa cuda e strumenti. Ma la funzione che hai dichiarato in precedenza funziona. Visualizza qualcosa come libcudnn.so.7 -> libcudnn.so.7.2.1
— Infinite Loops

@InfiniteLoops se si riceve l'errore che "tale comando non è stato trovato" significa che il kit di strumenti nvidia non è installato. prova il comando nvcce controlla il tuo output. controlla sotto il link anche devtalk.nvidia.com/default/topic/457664/…
— Sherlock

32

Ottenere la versione cuDNN [Linux]

Utilizzare quanto segue per trovare il percorso per cuDNN:

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

Se sopra non funziona prova questo:

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

Ottenere la versione cuDNN [Windows]

Utilizzare quanto segue per trovare il percorso per cuDNN:

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

Quindi utilizzalo per scaricare la versione dal file di intestazione,

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

Ottenere la versione CUDA

Funziona su Linux e Windows:

nvcc --version

1
Solo per aggiungere un caso utente: non riesco a trovare il cudnn.hfile nella mia installazione di cuda e pensavo di non aver installato cudnn. Ma in seguito ho eseguito il codice di esempio cuda scaricato dal sito Web ufficiale, ed è passato ...
— yuqli

2
Il comando completo che ho usato per trovare il numero di versione completo era:type "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\include\cudnn.h" | findstr "CUDNN_MAJOR CUDNN_MINOR CUDNN_PATCHLEVEL"
— Taran

Freddo! Ho aggiornato la risposta, quindi ora stampa questi dettagli.
— Shital Shah,

16

Quando si installa su Ubuntu tramite .debè possibile utilizzaresudo apt search cudnn | grep installed


6

Corri ./mnistCUDNNdentro/usr/src/cudnn_samples_v7/mnistCUDNN

Ecco un esempio:

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

4
Questo in realtà non è un cattivo consiglio, tranne dove è sbagliato. mnistCUDNNnon dovrebbe trovarsi in quella directory poiché non si suppone che sia una directory scrivibile. Piuttosto, gli esempi avrebbero dovuto essere copiati come sottodirectory nella home directory degli utenti e costruiti lì. Quindi, se è stato correttamente installato e costruito secondo le istruzioni sul sito Nvidia, mnistCUDNN sarà presente~/cudnn_samples_v7
— Mike Wise,

Solo per aggiungere è possibile ottenere l'esempio di codice dal sito Web ufficiale NVIDIA, seguendo le istruzioni qui ( docs.nvidia.com/deeplearning/sdk/cudnn-install/… ) per come installare e verificare.
— yuqli,

1
Vedo. Il mio è cudnn.hstato installato su /usr/include/cudnn.h, non so perché, ma questo è successo anche quando installo CUDA apt-get. Questa volta stavo usando dpkge non ho cambiato nulla ...
— yuqli,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.