[PYTHON] J'étais accro à l'exécution de tensorflow sur GPU avec le pilote NVIDIA 440 + CUDA 10.2

Une histoire difficile à déplacer tensorflow. En conclusion, CUDA 10.2 seul ne fonctionne pas, il est nécessaire d'inclure 10.1. (* Pour tensorflow 2.2.0)

Préparation préalable

Installez la dernière version (10.2) du pilote et CUDA à partir de la page NVIDIA.

$ nvidia-smi  
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.82       Driver Version: 440.82       CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce RTX 207...  Off  | 00000000:01:00.0  On |                  N/A |

+-------------------------------+----------------------+----------------------+

Préparations pour l'utilisation du GPU Tensorflow

https://www.tensorflow.org/install/gpu?hl=ja Installez le package qui correspond à CUDA 10.2 en référence à. La dernière version est incluse à compter du 10 mai 2020.

$ sudo apt-get install --no-install-recommends \
        libcudnn7=7.6.5.32-1+cuda10.2  \
        libcudnn7-dev=7.6.5.32-1+cuda10.2

Installer tensorflow

$ python -m pip install -U pip #Gardez pip à jour
$ pip install tensorflow
$ pip install tf-nightly #Ces deux recommandations
$ pip install tensorflow-gpu #Je vais le mettre pour le moment
$ pip install tensorflow-addons 
#Vérifier la version
$ pip list |grep tensor
tensorboard             2.2.1
tensorboard-plugin-wit  1.6.0.post3
tensorflow              2.2.0
tensorflow-addons       0.9.1
tensorflow-estimator    2.2.0
tensorflow-gpu          2.2.0

On dirait qu'il est entré en toute sécurité

Vérifiez si le GPU fonctionne avec tensorflow

$ python
Python 3.6.9 (default, Apr 18 2020, 01:56:04) 
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>> tf.test.is_gpu_available()
WARNING:tensorflow:From <stdin>:1: is_gpu_available (from tensorflow.python.framework.test_util) is deprecated and will be removed in a future version.
Instructions for updating:
Use `tf.config.list_physical_devices('GPU')` instead.
2020-05-12 22:03:50.049513: I tensorflow/core/platform/cpu_feature_guard.cc:143] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2020-05-12 22:03:50.095310: I tensorflow/core/platform/profile_utils/cpu_utils.cc:102] CPU Frequency: 3000000000 Hz
2020-05-12 22:03:50.097049: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x7fc6ec000b20 initialized for platform Host (this does not guarantee that XLA will be used). Devices:
2020-05-12 22:03:50.097116: I tensorflow/compiler/xla/service/service.cc:176]   StreamExecutor device (0): Host, Default Version
2020-05-12 22:03:50.109698: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcuda.so.1
2020-05-12 22:03:50.217541: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-05-12 22:03:50.217838: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x4703970 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:
2020-05-12 22:03:50.217852: I tensorflow/compiler/xla/service/service.cc:176]   StreamExecutor device (0): GeForce RTX 2070 SUPER, Compute Capability 7.5
2020-05-12 22:03:50.218622: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-05-12 22:03:50.218835: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1561] Found device 0 with properties: 
pciBusID: 0000:01:00.0 name: GeForce RTX 2070 SUPER computeCapability: 7.5
coreClock: 1.77GHz coreCount: 40 deviceMemorySize: 7.79GiB deviceMemoryBandwidth: 417.29GiB/s
2020-05-12 22:03:50.218998: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libcudart.so.10.1'; dlerror: libcudart.so.10.1: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/cuda/lib64:
2020-05-12 22:03:50.244848: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcublas.so.10
2020-05-12 22:03:50.263385: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcufft.so.10
2020-05-12 22:03:50.267797: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcurand.so.10
2020-05-12 22:03:50.304564: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusolver.so.10
2020-05-12 22:03:50.311052: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusparse.so.10
2020-05-12 22:03:50.378673: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudnn.so.7
2020-05-12 22:03:50.378768: W tensorflow/core/common_runtime/gpu/gpu_device.cc:1598] Cannot dlopen some GPU libraries. Please make sure the missing libraries mentioned above are installed properly if you would like to use GPU. Follow the guide at https://www.tensorflow.org/install/gpu for how to download and setup the required libraries for your platform.
Skipping registering GPU devices...
2020-05-12 22:03:50.378827: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1102] Device interconnect StreamExecutor with strength 1 edge matrix:
2020-05-12 22:03:50.378855: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1108]      0 
2020-05-12 22:03:50.378904: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1121] 0:   N 
False

Échec ... Impossible de charger la bibliothèque dynamique'libcudart.so.10.1 '; dlerror: libcudart.so.10.1: impossible d'ouvrir le fichier objet partagé, il semble donc que cuda 10.1 doit être inséré.

Relancer le défi avec cuda 10.1

$sudo apt-get install --no-install-recommends cuda-10-1
Contenu du processus d'installation
$ python
Python 3.6.9 (default, Apr 18 2020, 01:56:04) 
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>> tf.test.is_gpu_available()
Omission
TRUE

En particulier, cela fonctionnait sans qu'il soit nécessaire de rétrograder le paquet libcudnn7.

Recommended Posts

J'étais accro à l'exécution de tensorflow sur GPU avec le pilote NVIDIA 440 + CUDA 10.2
J'étais accro à Flask sur dotCloud
Une note à laquelle j'étais accro lors de l'exécution de Python avec Visual Studio Code
J'étais accro au grattage avec Selenium (+ Python) en 2020
[IOS] Animation GIF avec Pythonista3. J'en étais accro.
J'étais accro au multitraitement + psycopg2
Le record auquel j'étais accro en mettant MeCab dans Heroku
Ce à quoi j'étais accro avec json.dumps dans l'encodage base64 de Python
Une note à laquelle j'étais accro lors de l'émission d'un bip sous Linux
Une note à laquelle j'étais accro lors de la création d'une table avec SQL Alchemy
J'ai essayé d'implémenter Autoencoder avec TensorFlow
J'ai essayé de visualiser AutoEncoder avec TensorFlow
J'étais accro à pip installer mysqlclient
J'ai essayé d'installer TensorFlow (version GPU) sur Ubuntu
Ce que j'étais accro à Python autorun
Deux choses dont j'étais accro à la construction de Django + Apache + Nginx sous Windows
Je veux tweeter Twitter avec Python, mais j'y suis accro
Une histoire à laquelle j'étais accro à essayer d'installer LightFM sur Amazon Linux
J'étais accro à la création d'un environnement Python venv avec VS Code
Une histoire à laquelle j'étais accro à essayer d'obtenir une URL de vidéo avec tweepy
Utilisez Python de Java avec Jython. J'étais aussi accro.
J'étais accro à ne pas pouvoir utiliser Markdown pour la description longue de pypi
J'étais accro à essayer Cython avec PyCharm, alors prenez note
Essayez Tensorflow avec une instance GPU sur AWS
[Introduction à json] Non, j'en étais accro. .. .. ♬
Trois choses auxquelles j'étais accro lors de l'utilisation de Python et MySQL avec Docker
J'ai essayé la détection d'objets avec YOLO v3 (TensorFlow 2.1) sur le GPU de windows!
Une histoire à laquelle j'étais accro après la communication SFTP avec python
J'ai essayé d'implémenter Mine Sweeper sur un terminal avec python
J'ai essayé d'exécuter BERT avec Sakura VPS (sans GPU)
Je veux AWS Lambda avec Python sur Mac!
Une histoire à laquelle j'étais accro chez np.where
Exécution de MINST dans TensorFlow 2.0 et visualisation dans TensorBoard (version 2019)
[TensorFlow] Je souhaite traiter des fenêtres avec Ragged Tensor
J'ai essayé d'implémenter Grad-CAM avec keras et tensorflow
J'étais accro à essayer logging.getLogger avec Flask 1.1.x
Ce à quoi j'étais accro lors de l'utilisation de Python tornado
J'ai essayé de trouver la classe alternative avec tensorflow
J'ai essayé d'exécuter TensorFlow
Ce à quoi j'étais accro en traitant d'énormes fichiers dans un environnement Linux 32 bits
Mémo (mars 2020) auquel j'étais accro lors de l'installation d'Arch Linux sur MacBook Air 11'Early 2015
J'ai essayé de trouver la moyenne de plusieurs colonnes avec TensorFlow
J'ai pu implémenter l'authentification d'application Web avec flask-login
Ce à quoi j'étais accro lorsque l'utilisateur de traitement est passé à Python
Je suis tombé sur TensorFlow (Quelle est la mémoire du GPU)
[Réparer] J'étais accro au jugement alphanumérique des chaînes Python
J'étais un peu accro à l'installation de Python3.3 + mod_wsgi3.4 sur Sakura VPS (CentOS), donc une note de révision
Notez que j'étais accro à accéder à la base de données avec mysql.connector de Python en utilisant une application Web
J'étais accro à ne pas pouvoir obtenir une adresse e-mail de Google avec l'authentification django-allauth
Lorsque j'ai mis Django dans mon répertoire personnel, je suis devenu accro à un fichier statique avec une erreur d'autorisation
Une histoire à laquelle j'étais accro à appeler Lambda depuis AWS Lambda.
Construction d'environnement de Tensorflow et Chainer par Window avec CUDA (avec GPU)
Ce à quoi j'étais accro en présentant ALE à Vim pour Python
Notez que j'étais accro à l'interpolation des valeurs manquantes de sklearn (Imputer)
J'ai essayé de résumer ce qui était sorti avec Qiita avec Word cloud
J'ai essayé de démarrer avec Bitcoin Systre le week-end
J'ai essayé d'afficher l'interface graphique sur Mac avec le système X Window
J'ai essayé de résumer les remarques de tout le monde sur le slack avec wordcloud (Python)
J'étais accro aux variables de classe et aux variables d'instance erronées en Python
J'ai essayé d'exécuter le didacticiel TensorFlow avec des commentaires (_TensorFlow_2_0_Introduction pour les débutants)