web-dev-qa-db-fra.com

Comment vérifier l'installation de CuDNN?

J'ai cherché beaucoup d'endroits mais TOUT ce que je reçois, c'est comment l'installer, pas comment vérifier qu'il est installé. Je peux vérifier que mon pilote NVIDIA est installé et que CUDA est installé, mais je ne sais pas comment vérifier si CuDNN est installé. L'aide sera très appréciée, merci!

PS.
Ceci est pour une implémentation caffe. Actuellement, tout fonctionne sans CuDNN activé.

118
alfredox

Installer CuDNN implique simplement de placer les fichiers dans le répertoire CUDA. Si vous avez correctement spécifié les itinéraires et l'option CuDNN lors de l'installation de caffe, il sera compilé avec CuDNN.

Vous pouvez vérifier cela en utilisant cmake. Créez un répertoire caffe/build et exécutez cmake .. à partir de cet emplacement. Si la configuration est correcte, vous verrez ces lignes:

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

Si tout est correct, exécutez simplement les commandes make pour installer caffe à partir de là.

36
cesans

L'installation de CuDNN ne fait que copier certains fichiers. Par conséquent, pour vérifier si CuDNN est installé (et quelle version vous avez), il vous suffit de vérifier ces fichiers.

Installer CuDNN

Étape 1: Enregistrez un compte de développeur nvidia et téléchargez cudnn ici (environ 80 Mo). Vous aurez peut-être besoin de nvcc --version pour obtenir votre version cuda.

Étape 2: Vérifiez où se trouve votre installation cuda. Pour la plupart des gens, ce sera /usr/local/cuda/. Vous pouvez le vérifier avec which nvcc.

Étape 3: Copiez les fichiers:

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

Vérifier la version

Vous devrez peut-être ajuster le chemin. Voir l'étape 2 de l'installation.

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

Remarques

Quand vous obtenez une erreur comme

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

avec TensorFlow, vous pouvez envisager d’utiliser CuDNN v4 au lieu de v5.

Les utilisateurs d'Ubuntu qui l'ont installé via apt: https://askubuntu.com/a/767270/10425

150
Martin Thoma

Vous devez d’abord trouver le fichier cudnn installé, puis l’analyser. Pour trouver le fichier, vous pouvez utiliser:

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

Si cela ne fonctionne pas, voir "Distributions Redhat" ci-dessous.

Une fois que vous avez trouvé cet emplacement, procédez comme suit (en remplaçant ${CUDNN_H_PATH} par le chemin):

cat ${CUDNN_H_PATH} | grep CUDNN_MAJOR -A 2

Le résultat devrait ressembler à ceci:

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

Ce qui signifie que la version est 7.5.0.

Ubuntu 18.04 (via Sudo apt install nvidia-cuda-toolkit)

Cette méthode d'installation installe cuda dans/usr/include et/usr/lib/cuda/lib64. Par conséquent, le fichier à regarder se trouve dans /usr/include/cudnn.h.

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

Debian et Ubuntu

À partir de CuDNN v5 (du moins lorsque vous installez via les packages Sudo dpkg -i <library_name>.deb), il semble que vous deviez peut-être utiliser les éléments suivants:

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

Par exemple:

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

indique que la version 6.0.21 de CuDNN est installée.

Distributions Redhat

Sur CentOS, j'ai trouvé l'emplacement de CUDA avec:

$ whereis cuda
cuda: /usr/local/cuda

J'ai ensuite utilisé la procédure sur le fichier cudnn.h que j'ai trouvé à partir de cet emplacement:

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

Pour vérifier l’installation de CUDA, exécutez la commande ci-dessous, s’il est correctement installé, la commande ci-dessous ne déclenchera aucune erreur et imprimera la version correcte de la bibliothèque.

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

Pour vérifier l'installation de CuDNN, exécutez la commande ci-dessous, si CuDNN est installé correctement, vous n'obtiendrez aucune erreur.

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 

OU

vous pouvez exécuter la commande ci-dessous à partir de n'importe quel répertoire

nvcc -V

il devrait donner à la sortie quelque chose comme ça

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

Obtenir la version de CUDNN [Linux]

Utilisez ce qui suit pour trouver le chemin d'accès à cuDNN:

$ whereis cuda
cuda: /usr/local/cuda

Ensuite, utilisez ceci pour obtenir la version du fichier d’en-tête,

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

Obtenir la version de CuDNN [Windows]

Utilisez ce qui suit pour trouver le chemin d'accès à cuDNN:

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

Ensuite, utilisez ceci pour vider la version du fichier d’en-tête,

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

Obtenir la version CUDA

Cela fonctionne aussi bien sous Linux que Windows:

nvcc --version
20
Shital Shah

Lors de l'installation sur ubuntu via .deb, vous pouvez utiliser Sudo apt search cudnn | grep installed

12
Vlad

Exécuter ./mnistCUDNN dans /usr/src/cudnn_samples_v7/mnistCUDNN

Voici un exemple:

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
6
jeff wang