[PYTHON] Ich war süchtig danach, Tensorflow auf einer GPU mit dem NVIDIA-Treiber 440 + CUDA 10.2 auszuführen

Eine schwierige Geschichte, um Tensorflow zu bewegen. Zusammenfassend lässt sich sagen, dass CUDA 10.2 allein nicht funktioniert. Es ist erforderlich, 10.1 einzuschließen. (* Für Tensorflow 2.2.0)

Vorbereitungen

Installieren Sie die neueste Version (10.2) des Treibers und der CUDA von der NVIDIA-Seite.

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

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

Vorbereitungen für die Verwendung von Tensorflow GPU

https://www.tensorflow.org/install/gpu?hl=ja Installieren Sie das Paket, das CUDA 10.2 mit Bezug auf entspricht. Die neueste Version ist ab dem 10. Mai 2020 enthalten.

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

Tensorflow installieren

$ python -m pip install -U pip #Pip auf dem neuesten Stand halten
$ pip install tensorflow
$ pip install tf-nightly #Diese beiden Empfehlungen
$ pip install tensorflow-gpu #Ich werde es vorerst einsetzen
$ pip install tensorflow-addons 
#Version prüfen
$ 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

Es sieht so aus, als wäre es sicher eingetreten

Überprüfen Sie, ob die GPU mit Tensorflow funktioniert

$ 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

Fehler ... Dynamische Bibliothek konnte nicht geladen werden'libcudart.so.10.1 '; dlerror: libcudart.so.10.1: Freigegebene Objektdatei kann nicht geöffnet werden, daher muss anscheinend cuda 10.1 eingefügt werden.

Fordern Sie mit cuda 10.1 erneut heraus

$sudo apt-get install --no-install-recommends cuda-10-1
Inhalt des Installationsprozesses
$ 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()
Unterlassung
TRUE

Insbesondere funktionierte es, ohne dass das Paket libcudnn7 heruntergestuft werden musste.

Recommended Posts

Ich war süchtig danach, Tensorflow auf einer GPU mit dem NVIDIA-Treiber 440 + CUDA 10.2 auszuführen
Ich war auf dotCloud süchtig nach Flask
Ein Hinweis, dem ich beim Ausführen von Python mit Visual Studio Code verfallen war
Ich war süchtig danach, 2020 mit Selen (+ Python) zu kratzen
[IOS] GIF-Animation mit Pythonista3. Ich war süchtig danach.
Ich war süchtig nach Multiprocessing + Psycopg2
Die Platte, von der ich süchtig war, als ich MeCab in Heroku einsetzte
Was ich mit json.dumps in Pythons base64-Codierung süchtig gemacht habe
Ein Hinweis, von dem ich süchtig war, als ich unter Linux einen Piepton machte
Ein Hinweis, dem ich beim Erstellen einer Tabelle mit SQL Alchemy verfallen war
Ich habe versucht, Autoencoder mit TensorFlow zu implementieren
Ich habe versucht, AutoEncoder mit TensorFlow zu visualisieren
Ich war süchtig danach, mysqlclient zu installieren
Ich habe versucht, TensorFlow (GPU-Version) unter Ubuntu zu installieren
Was ich süchtig nach Python Autorun war
Zwei Dinge, die ich süchtig danach war, Django + Apache + Nginx unter Windows zu erstellen
Ich möchte Twitter mit Python twittern, bin aber süchtig danach
Eine Geschichte, die mich süchtig nach dem Versuch machte, LightFM unter Amazon Linux zu installieren
Ich war süchtig danach, eine Python-Venv-Umgebung mit VS Code zu erstellen
Eine Geschichte, die ich süchtig danach war, eine Video-URL mit Tweepy zu bekommen
Verwenden Sie Python aus Java mit Jython. Ich war auch süchtig danach.
Ich war süchtig danach, Markdown nicht für die lange Beschreibung von Pypi verwenden zu können
Ich war süchtig danach, Cython mit PyCharm auszuprobieren, also machen Sie sich eine Notiz
Versuchen Sie Tensorflow mit einer GPU-Instanz unter AWS
[Einführung in json] Nein, ich war süchtig danach. .. .. ♬
Drei Dinge, von denen ich süchtig war, als ich Python und MySQL mit Docker verwendete
Ich habe versucht, Objekte mit YOLO v3 (TensorFlow 2.1) auf der GPU von Windows zu erkennen!
Eine Geschichte, der ich nach der SFTP-Kommunikation mit Python verfallen war
Ich habe versucht, Mine Sweeper auf dem Terminal mit Python zu implementieren
Ich habe versucht, BERT mit Sakura VPS (ohne GPU) auszuführen.
Ich möchte Lambda mit Python auf Mac AWS!
Eine Geschichte, von der ich bei np.where süchtig war
Ausführung von MINST in TensorFlow 2.0 und Visualisierung in TensorBoard (Version 2019)
[TensorFlow] Ich möchte Fenster mit Ragged Tensor verarbeiten
Ich habe versucht, Grad-CAM mit Keras und Tensorflow zu implementieren
Ich war süchtig danach, logging.getLogger mit Flask 1.1.x zu versuchen
Wovon ich süchtig war, als ich Python Tornado benutzte
Ich habe versucht, die alternative Klasse mit Tensorflow zu finden
Ich habe versucht, TensorFlow auszuführen
Wovon ich süchtig war, als ich mit riesigen Dateien in einer Linux 32-Bit-Umgebung umging
Memo (März 2020), dem ich bei der Installation von Arch Linux auf dem MacBook Air 11'Early 2015 verfallen war
Ich habe versucht, mit TensorFlow den Durchschnitt mehrerer Spalten zu ermitteln
Ich konnte die Web-App-Authentifizierung mit Flask-Login implementieren
Wovon ich süchtig war, als der Processing-Benutzer zu Python wechselte
Ich bin auf TensorFlow gestoßen (Was ist außerhalb des GPU-Speichers)?
[Fix] Ich war süchtig nach dem alphanumerischen Urteil über Python-Strings
Ich war ein wenig süchtig nach der Installation von Python3.3 + mod_wsgi3.4 auf Sakura VPS (CentOS), also ein Hinweis zur Überprüfung
Beachten Sie, dass ich süchtig danach war, mit Pythons mysql.connector über eine Webanwendung auf die Datenbank zuzugreifen
Ich war süchtig danach, keine E-Mail-Adresse von Google mit Django-Allauth-Authentifizierung zu erhalten
Als ich Django in mein Home-Verzeichnis legte, wurde ich mit einem Berechtigungsfehler in eine statische Datei eingebunden
Eine Geschichte, die ich süchtig danach war, Lambda von AWS Lambda anzurufen.
Umgebungskonstruktion von Tensorflow und Chainer durch Fenster mit CUDA (mit GPU)
Wovon ich süchtig war, als ich ALE in Vim für Python einführte
Beachten Sie, dass ich süchtig nach der fehlenden Wertinterpolation von sklearn war (Imputer)
Ich habe versucht zusammenzufassen, was mit Qiita mit Word Cloud ausgegeben wurde
Ich habe am Wochenende versucht, mit Bitcoin Systre zu beginnen
Ich habe versucht, die GUI auf einem Mac mit X Window System anzuzeigen
Ich habe versucht, alle Bemerkungen von Slack mit Wordcloud (Python) zusammenzufassen.
Ich war süchtig nach falschen Klassenvariablen und Instanzvariablen in Python
Ich habe versucht, das TensorFlow-Tutorial mit Kommentaren auszuführen (_TensorFlow_2_0_Einführung für Anfänger).