web-dev-qa-db-fra.com

Meilleure pratique pour mettre à niveau CUDA et cuDNN pour tensorflow

Je suis actuellement en charge de faire fonctionner tensorflow-gpu 1.8 sur ma machine. J'utilise tf-gpu 1.2 jusqu'à présent, mais en raison de certaines fonctionnalités requises, je dois mettre à niveau mon installation.

Avant de le faire, je voulais vérifier s'il existe une meilleure pratique pour ce faire. Ma configuration actuelle ressemble à ceci:

  • Ubuntu 16.04
  • NVIDIA GeForce GTX 1080 Ti
  • Version du pilote NVIDIA: 384.111
  • Anaconda 4.4.0 pour Python 3
  • CUDA v8.0
  • cuDNN v5.1
  • tensorflow-gpu v1.2

Comme écrit sur la page d'accueil tf, je devrais utiliser CUDA v9.0 ainsi que cuDNN v7.1. Comme toutes ces instructions se réfèrent à une installation propre et non à une mise à jour, je ne sais pas s'il serait préférable de désinstaller les anciennes versions en premier.

Veuillez partager vos expériences si vous avez déjà eu le même problème. Je vous remercie!

6
DocDriven

Voir cette documentation . Ils disent de toujours supprimer l'ancienne version de cuda en premier.

et puisque cuda 9.1 nécessite un pilote> = 390 version. Il serait bon de supprimer votre pilote actuel. Mais pas de soucis, car le pilote 390 est livré avec cuda 9.1 à l'installation.

Maintenant, à titre de conseil personnel, je dirais de supprimer presque tout (à l'exception de python) lié à nvidia/cuda. Pour certaines raisons, il est assez facile de le gâcher lors de l'installation et de la configuration de CUDA dans Ubuntu.

Si vous avez des problèmes après l'installation, voir buntu-16-04-lts-login-loop-after-update-driver-nvidia , c'est un message auquel j'ai répondu il y a un certain temps.

3

Merci @ joão gabriel s.f. J'ai réussi à désinstaller CUDA 8.0/cuDNN 5.1 et à installer la dernière version de tensorflow. Comme toute la procédure était un peu déroutante pour moi, j'ai décidé de poster une procédure pas à pas et peut-être d'aider les gens dans la même situation.

[~ # ~] désinstaller [~ # ~]

Tout d'abord, j'ai désinstallé cuda et toutes ses dépendances. Comme je l'ai installé via le gestionnaire de paquets, j'ai utilisé apt-get pour le supprimer. Pour les installations de runfile, vous pouvez vérifier this .

Sudo apt-get --purge remove cuda
Sudo apt-get autoremove
dpkg --list |grep "^rc" | cut -d " " -f 3 | xargs Sudo dpkg --purge

De plus, j'ai vérifié les dossiers cuda dans /usr/local/ et les a supprimés. Concernant cuDNN, grâce à la suppression de tous les dossiers cuda, les en-têtes et librairies cuda correspondants ont été supprimés.

[~ # ~] installez [~ # ~]

Vérifiez d'abord le pilote de la carte graphique. CUDA 9.0 fonctionne avec le pilote v384.111 (donc pas de 390.xxx nécessaire), donc je n'avais rien à faire ici.

J'ai téléchargé CUDA Toolkit 9.0 ici en deb (local). Dans le même dossier, j'ai exécuté

dpkg -i cuda-repo-ubuntu1604-9-0-local_9.0.176-1_AMD64-deb
Sudo apt-key add /var/cuda-repo-9-0-local/7fa2af80.pub
Sudo apt-get update
Sudo apt-get install cuda

Définissez ensuite les variables d'environnement:

export PATH=${PATH}:/usr/local/cuda-9.0/bin
export CUDA_HOME=${CUDA_HOME}:/usr/local/cuda:/usr/local/cuda-9.0
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/cuda-9.0/lib64

Ensuite, j'ai vérifié mon installation comme décrit ici .

J'ai téléchargé cuDNN 7.1 depuis l'archive en tant que tarball et l'ai installé via

tar -xzvf cudnn-9.0-linux-x64-v7.1.tgz
Sudo cp cuda/include/cudnn.h /usr/local/cuda/include
Sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
Sudo chmod a+r /usr/local/cuda/include/cudnn.h \ 
/usr/local/cuda/lib64/libcudnn*

Après avoir démarré le Python bash, j'ai pu importer tensorflow et exécuter un graphique simple.

Merci encore et bonne semaine!

8
DocDriven