Comment puis-je installer CuDNN sur Ubuntu 16.04?

102

Pour TensorFlow, j'aimerais installer cuda et CuDNN. Comment puis-je faire cela sur Ubuntu 16.04?

Martin Thoma
la source
4
Attention: si vous essayez d’exécuter tensorflow et que vous avez besoin de Cudnn, assurez-vous d’installer 5.1 et non 6.0 pour le moment.
wordsforthewise
@wordsforthewise CuDNN 6.0 est maintenant supporté (pour TF 1.4 au moins).
ComputerScientist

Réponses:

135

Étape 0: Installez cuda à partir des référentiels standard. (Voir Comment puis-je installer CUDA sur Ubuntu 16.04? )

Étape 1: Enregistrez un compte de développeur nvidia et téléchargez cudnn ici (environ 80 Mo)

Étape 2: Vérifiez où se trouve votre installation cuda. Pour l'installation du référentiel est /usr/lib/...et /usr/include. Sinon, ce sera /usr/local/cuda/ou /usr/local/cuda-<version>. Vous pouvez vérifier avec which nvccouldconfig -p | grep cuda

Étape 3: Copiez les fichiers:

Installation du référentiel:

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

Installation du fichier d'exécution:

$ 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
la source
14
L'ajout -Pconserve les liens symboliques, c'est-à-dire sudo cp -P lib64/libcudnn* /usr/lib/x86_64-linux-gnu/, et évite le message:/sbin/ldconfig.real: /usr/lib/x86_64-linux-gnu/libcudnn.so.5 is not a symbolic link
Max Gordon
1
Mettre à jour à partir d’ ici : "Télécharger cuDNN v4 (la v5 est actuellement une version candidate et est prise en charge uniquement lors de l’installation de TensorFlow à partir de sources)."
vendredi
36
Pour tensorflow de trouver tout, je devais copier include/cudnn.het les bibliothèques lib64/à /usr/local/cuda-8.0/includeet /usr/local/cuda-8.0/lib64( en utilisant CUDA 8.0, Ubuntu 14.04, tensorflow 0.12.0rc0) - c'est peut - être utile pour quelqu'un.
David Stutz
@ MaxGordon Bonjour, est-ce important d'utiliser la bibliothèque d'exécution pour ubuntu16.04 power8 ou la bibliothèque pour linux?
Tryingtolearn
1
Un autre conseil: assurez-vous d’installer cuda avant Cudnn. Sinon, les installateurs cuda ne remplaceront aucun des répertoires / usr / local / cuda que vous avez créés.
kevins
39

A partir de la version 5.1, vous ne pouvez pas installer conformément à ce que @Martin a mentionné. Téléchargez 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.debdepuis le site nvidia et installez-les un par un de la manière suivante.

 sudo dpkg -i <library_name>.deb

Edit : Vous devez d'abord installer le runtime (libcudnn6_6.0.21-1 + cuda8.0_amd64.deb) car dev dépend du runtime (Merci @tinmarino)

GPrathap
la source
1
Merci. Je suis tombé dans ce problème plusieurs fois. Établissons simplement une règle du pouce. Lorsque les choses ne fonctionnent pas, continuez à installer à l’aide des paquets .deb.
Anuraag Vaidya
8
Lors de la compilation de Tensorflow à partir du code source, il est bon de savoir que le chemin d'installation de la bibliothèque cuDNN est/usr/lib/x86_64-linux-gnu/
Visionscaper
1
Vous devez d’abord installer runtimedecause en devdépend
tinmarino
13
  1. Inscrivez-vous sur le site Web de NVidia. Cela peut prendre un jour ou deux avant que votre compte soit approuvé. Du moins, c'était le cas lorsque je me suis inscrit.
  2. Téléchargez et installez la dernière version de CUDA de NVidia ou la version la plus récente compatible avec le logiciel avec lequel vous travaillerez, le cas échéant, dans ce cas, votre version de T-Flow.

    Notez que l'installation via le gestionnaire de paquets standard d'ubuntu via un clic ne fonctionnera probablement pas correctement.

    Au lieu de cela, vous devrez probablement suivre ces instructions dans le terminal pour installer .debpakage. Après cela, vous devrez ajouter quelques lignes à .bashrcvotre cas, ou le cas échéant. Par exemple, si vous configurez un serveur, ce sera probablement un endroit différent, peut-être quelque part avant le lancement automatique de votre application, car .bashrcil ne sera probablement pas exécuté dans ce cas.

  3. Télécharger CuDNN à partir de NVidia

    J'ai utilisé la version "Library for Linux", je n'ai pas eu beaucoup de chance avec les .debpaquets.

  4. Vous pouvez trouver où se trouve CUDA via which nvcc. Ce /usr/local/cuda/sera généralement un lien symbolique vers votre version actuellement installée.

  5. Ouvrez l’archive CuDNN et copiez le contenu approprié aux emplacements appropriés dans le dossier d’installation de CUDA ( cuda/lib64/et cuda/include/). Je l'habitude sudo nautiluset le fais visuellement à partir de là.
Íhor Mé
la source
8

En 2018, NVIDIA fournit maintenant cuDNN 7.x pour le téléchargement. Les étapes d'installation sont toujours similaires à celles décrites par @GPrathap. Toutefois, si vous souhaitez remplacer l'ancienne version de cuDNN par la plus récente, vous devez la supprimer avant l'installation.

Récapituler:

Étape 0. Vérifiez que vous avez déjà installé le toolkit CUDA. Procédez à l'installation de la boîte à outils CUDA si vous ne l'avez pas déjà fait.

Étape 1. Accédez au portail de développement NVIDIA https://developer.nvidia.com/cudnn et téléchargez cuDNN.

Étape 2. Si vous avez déjà installé cuDNN, supprimez-le

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

Étape 3. Installez la bibliothèque cuDNN (runtime, dev, doc) à l'aide de dpkg

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

Étape 4. Si vous souhaitez rechercher l'emplacement d'installation de la bibliothèque, vous pouvez mettre à jour l'index de localisation, puis rechercher l'emplacement de la bibliothèque.

sudo updatedb
locate libcudnn

Si vous installez spécifiquement cuDNN 7.x par rapport à CUDA Toolkit 9.1, cet article fournit des informations plus détaillées pouvant vous être utiles: 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
la source
Merci @ Mike, savez-vous quelle est la différence entre utiliser les fichiers deb et le fichier .tar ordinaire? lequel est recommandé et pourquoi? (En passant, j'ai moi-même utilisé CUDA à l'aide du fichier runfile et j'utilisais également le paquetage .tar pour le fichier uDN de uDNU)
Rika
Selon les documents d'installation pertinents de Nvidia , ce que vous dites à propos de la suppression des anciennes versions n'est pas correct:cuDNN v7 can coexist with previous versions of cuDNN, such as v5 or v6.
n1k31t4
3

Vous pouvez également télécharger les packages deb pour les distributions basées sur Debian.

À partir de la page Web NVIDIA, les fichiers suivants sont disponibles pour le profil du développeur:

  • Bibliothèque d'exécution cuDNN v5.1 pour Linux (Deb)
  • Bibliothèque de développeurs cuDNN v5.1 pour Linux (Deb)
  • Fichiers cuDNN v5.1 et exemples de code Linux (Deb)

J'ai testé cela sur ma machine avec Debian (Stretch) et TensorFlow fonctionne!

LAraque
la source
6
Veuillez noter que pour l'instant (juillet 2016), cuDNN v5.1 ne fonctionnera pas avec TensorFlow à moins que vous ne l'ayez compilé à partir des sources, voir tensorflow.org/versions/r0.9/get_started/os_setup.html
mastazi
2

Ajouter un détail important aux réponses encore valables de @Martin Thoma et @ Íhor Mé: Après avoir copié les fichiers libcudnn dans les répertoires cuda, vous devez mettre à jour votre fichier .bashrc:

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

Vous devez ensuite ajouter le répertoire include à tout fichier de configuration qui l'utilise. Caffe par exemple a un fichier de configuration que vous devez éditer avant de compiler avec make. Pour cela, éditez caffe / Makefile.config pour ajouter les chemins d'accès à ces variables de configuration (ajoutez des espaces entre les chemins):

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

Pour chaque fenêtre de terminal actuelle dans laquelle vous souhaitez que ces modifications soient effectives, n'oubliez pas d'exécuter le fichier une fois!

. ~/.bashrc
Haricot agile
la source
0

la réponse est correcte, mais pour CUDNN 5.1, certains noms ont été modifiés. Donc, si vous utilisez cette version après avoir extrait le fichier cuDNN, vous trouverez deux dossiers: lib et include. remplacez le nom du fichier * .h dans le dossier d'inclusion par cudnn.h, puis suivez les instructions https://askubuntu.com/a/767270/641589 . Ce changement est nécessaire si vous vouliez utiliser cuDNN pour Caffe!

abolfazl taghribi
la source
Veuillez éditer votre réponse et ajouter la référence 'l'instruction ci-dessus'.
sudodus
0

Dans 16.04, si vous installez CUDA directement à partir du site Web de Nvidia et que vous construisez également Tensorflow à partir de la source, vous pouvez spécifier le répertoire que vous souhaitez indiquer comme étant Cudnn. Par défaut c'est:

/usr/include/x86_64-linux-gnu

Lorsque vous construisez Tensorflow, il vous demandera quelle version vous souhaitez indiquer que vous utilisez pour Cudnn. Ensuite, il vous demandera où il se trouve. Indiquez simplement le répertoire ci-dessus et cela fonctionnera bien. Il devrait créer un fichier de roue à ce stade et vous pouvez l'installer avec pip.

Goddard
la source