2018/2/8 hinzugefügt Ich habe in TensorFlows persönlicher definitiver GPU-Umgebung (Ubuntu 16.04) einen vorläufigen Hinweis geschrieben, dass dies vorerst gut ist.
Ich wollte GPU für die Berechnung verwenden, deshalb habe ich die Umgebung in Centos7 eingeführt. Ziel ist es, Tensorflow oder Keras auf der GPU berechnen zu können.
$ lspci | grep VGA
01:00.0 VGA compatible controller: NVIDIA Corporation GK208 [GeForce GT 710B](rev a1)
http://blog.amedama.jp/entry/2017/03/13/123742 Laut diesem Artikel ist es nicht mit dem derzeit beliebten CUDA 8.0 kompatibel, es sei denn, die Rechenkapazität beträgt 3.0 oder höher. Diese GPU ist eine super alte, aber es scheint kaum möglich zu sein, da die Rechenkapazität 3,5 beträgt.
http://blog.amedama.jp/entry/2017/02/26/120215 Gemäß diesem Artikel können Sie die folgenden drei herunterladen.
Ich folgte dem folgenden Dokument von nvidia. http://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#axzz4l4RhQh5L
Überprüfen Sie zunächst die Umgebung.
$ python --version
# Python 3.5.2 :: Anaconda 4.2.0 (64-bit)
$ uname -m && cat /etc/*release
# CentOS Linux release 7.3.1611 (Core)
$ gcc --version
# gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-11)
$ uname -r
# 3.10.0-514.10.2.el7.x86_64
Alle erfüllen die Systemanforderungen der obigen URL.
Installieren Sie also cuda. https://developer.nvidia.com/cuda-downloads
Wie in der obigen Abbildung gezeigt, kann das Basisinstallationsprogramm installiert werden, indem der folgende Befehl ausgeführt wird, wie in cuda-downloads gezeigt.
sudo rpm -i cuda-repo-rhel7-8.0.61-1.x86_64.rpm
sudo yum clean all
sudo yum install cuda
Installieren Sie als Nächstes cuDNN. https://developer.nvidia.com/developer-program Erstellen Sie hier ein Entwicklerkonto https://developer.nvidia.com/rdp/cudnn-download Laden Sie cuDNN hier herunter. Ich habe die cuda-8.0-Version von Linux heruntergeladen.
$ tar -xvzf cudnn-8.0-linux-x64-v5.1.tgz
Die hier erweiterten wurden in die Verzeichnisse `/ usr / local / cuda``` und`
/ usr / local / cuda-8.0``` include und lib64 verschoben. Siehe 6.1 für Details.
Ich habe den folgenden Pfad hinzugefügt, der auf andere Artikel verweist, aber es kann zusätzliche geben.
.bash_profile
# CUDA path
export CUDA_ROOT="/usr/local/cuda"
export LIBRARY_PATH=$CUDA_ROOT/lib:$CUDA_ROOT/lib64:$LIBRARY_PATH
export LD_LIBRARY_PATH=$CUDA_ROOT/lib64/
source ~/.bash_profile
$ pip install tensorflow-gpu
In [2]: import keras
(Auch bei Importtensorfluss)
ImportError: libcudnn.so.5: cannot open shared object file: No such file or directory
Ursprünglich befand sich das Verzeichnis, in dem cuda gespeichert wurde, in `/ usr / local / cuda```. Bewegen Sie cuDNN dorthin. Unter
/ usr / local /
gibt es
cuda``` und
`` cuda-8.0```, und ich bin zu beiden gewechselt.
$ sudo cp ./cudnn.h /usr/local/cuda/include
$ sudo cp ./cudnn.h /usr/local/cuda-8.0/include
$ sudo cp ./* /usr/local/cuda/lib64
$ sudo cp ./* /usr/local/cuda-8.0/lib64
Wenn nur einer von ihnen```ImportError: libcudnn.so.5: cannot open shared object file: No such file or directory
# 6.2. Fehler beim Fehlen des Treibers
```text
In [1]: %timeit -n 1 -r 1 %run mnist_cnn.py
Using TensorFlow backend.
x_train shape: (60000, 28, 28, 1)
60000 train samples
10000 test samples
Train on 60000 samples, validate on 10000 samples
Epoch 1/12
2017-06-26 14:03:56.377779: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
2017-06-26 14:03:56.377825: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
2017-06-26 14:03:56.418415: E tensorflow/stream_executor/cuda/cuda_driver.cc:406] failed call to cuInit: CUDA_ERROR_UNKNOWN
2017-06-26 14:03:56.418677: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:145] kernel driver does not appear to be running on this host (cosmos): /proc/driver/nvidia/version does not exist
3584/60000 [>.............................] - ETA: 127s - loss: 1.4717 - acc: 0.5474
Wie Sie sehen, wurde die Meldung angezeigt, dass die GPU ohne den Treiber nicht erkannt werden konnte.
http://www.nvidia.co.jp/Download/index.aspx?lang=jp
Ich habe versucht, den Treiber zu installieren, habe jedoch den folgenden Fehler bezüglich des Nouveau-Kerneltreibers erhalten.
https://www.softek.co.jp/SPG/Pgi/TIPS/public/accel/cuda40_install.html
Von diesem Artikel,
Was tun, wenn der CUDA-Treiber aufgrund des Nouveau-Kerneltreibers nicht installiert werden kann?
In Bezug auf habe ich Nouveau zur schwarzen Liste hinzugefügt und neu gestartet. Infolgedessen könnte der Treiber normal installiert werden.
gerührt!
In [1]: %timeit -n 1 -r 1 %run mnist_cnn.py
Using TensorFlow backend.
x_train shape: (60000, 28, 28, 1)
60000 train samples
10000 test samples
Train on 60000 samples, validate on 10000 samples
Epoch 1/12
2017-06-26 16:53:56.009383: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
2017-06-26 16:53:56.009431: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
2017-06-26 16:53:56.848793: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:893] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2017-06-26 16:53:56.849080: I tensorflow/core/common_runtime/gpu/gpu_device.cc:940] Found device 0 with properties:
name: GeForce GT 710
major: 3 minor: 5 memoryClockRate (GHz) 0.954
pciBusID 0000:01:00.0
Total memory: 980.75MiB
Free memory: 970.88MiB
2017-06-26 16:53:56.849126: I tensorflow/core/common_runtime/gpu/gpu_device.cc:961] DMA: 0
2017-06-26 16:53:56.849143: I tensorflow/core/common_runtime/gpu/gpu_device.cc:971] 0: Y
2017-06-26 16:53:56.849180: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 710, pci bus id: 0000:01:00.0)
60000/60000 [==============================] - 114s - loss: 0.3256 - acc: 0.9009 - val_loss: 0.0758 - val_acc: 0.9759
Epoch 2/12
60000/60000 [==============================] - 110s - loss: 0.1120 - acc: 0.9670 - val_loss: 0.0527 - val_acc: 0.9831
Epoch 3/12
60000/60000 [==============================] - 110s - loss: 0.0855 - acc: 0.9745 - val_loss: 0.0443 - val_acc: 0.9858
Epoch 4/12
60000/60000 [==============================] - 110s - loss: 0.0719 - acc: 0.9789 - val_loss: 0.0370 - val_acc: 0.9865
Epoch 5/12
60000/60000 [==============================] - 110s - loss: 0.0621 - acc: 0.9817 - val_loss: 0.0362 - val_acc: 0.9879
Epoch 6/12
60000/60000 [==============================] - 110s - loss: 0.0570 - acc: 0.9835 - val_loss: 0.0326 - val_acc: 0.9885
Epoch 7/12
60000/60000 [==============================] - 110s - loss: 0.0499 - acc: 0.9853 - val_loss: 0.0344 - val_acc: 0.9894
Epoch 8/12
60000/60000 [==============================] - 110s - loss: 0.0485 - acc: 0.9855 - val_loss: 0.0298 - val_acc: 0.9911
Epoch 9/12
60000/60000 [==============================] - 110s - loss: 0.0441 - acc: 0.9874 - val_loss: 0.0304 - val_acc: 0.9899
Epoch 10/12
60000/60000 [==============================] - 109s - loss: 0.0416 - acc: 0.9878 - val_loss: 0.0289 - val_acc: 0.9910
Epoch 11/12
60000/60000 [==============================] - 110s - loss: 0.0398 - acc: 0.9882 - val_loss: 0.0295 - val_acc: 0.9899
Epoch 12/12
60000/60000 [==============================] - 109s - loss: 0.0374 - acc: 0.9888 - val_loss: 0.0274 - val_acc: 0.9909
Test loss: 0.0273571792022
Test accuracy: 0.9909
1 loop, best of 1: 22min 31s per loop
Übrigens dauert es mit Multiprozess von Core i7 28 Minuten und mit GPU 22 Minuten, sodass sich nicht so viel ändert (Geforce 710, daher kann nicht geholfen werden).
Ich habe am 11.12.2017 eine neue GPU gekauft und eingerichtet, also damals ein Memo. Ich habe eine GTX1060 gekauft. Übrigens hat sich die Umgebung von Centos zu Ubuntu verändert.
17-12-11 20:23:00.970215: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:189] libcuda reported version is: 384.90.0
2017-12-11 20:23:00.970253: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:369] driver version file contents: """NVRM version: NVIDIA UNIX x86_64 Kernel Module 384.98 Thu Oct 26 15:16:01 PDT 2017
GCC version: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.5)
"""
2017-12-11 20:23:00.970277: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:193] kernel reported version is: 384.98.0
2017-12-11 20:23:00.970288: E tensorflow/stream_executor/cuda/cuda_diagnostics.cc:303] kernel version 384.98.0 does not match DSO version 384.90.0 -- cannot find working devices in this configuration
Nachdem ich den Treiber gelöscht und den 384.98.0-Treiber wie in 6.3 eingegeben hatte, verschwand er. Es ist ein Rätsel, dass der Treiber für "384.98.0" auf der englischen Website schwer zu finden war und sofort auf der japanischen Website gefunden wurde.
~~ Stand 11.12.2017 ~~ Wenn man sich ~~ Release von Tensorflow ansieht, scheint es mit cuda9.0 ab 1.5.0 kompatibel zu sein. Derzeit wird (1.4.0) nicht unterstützt. ~~ Es wurde veröffentlicht und unterstützt.
Installieren Sie den Nvidia GPU-Treiber + CUDA unter Ubuntu (GTX 1080-kompatible Version)
Recommended Posts