it-swarm.com.de

Tensorflow: Cuda-Berechnungsfähigkeit 3.0. Die minimal erforderliche Cuda-Fähigkeit beträgt 3,5

Ich installiere Tensorflow von der Quelle (Dokumentation)

Cuda-Treiberversion:

nvcc: NVIDIA (R) Cuda compiler driver
Cuda compilation tools, release 7.5, V7.5.17

Wenn ich den folgenden Befehl ausgeführt habe:

bazel-bin/tensorflow/cc/tutorials_example_trainer --use_gpu

es gab mir den folgenden fehler:

I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcurand.so locally
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:925] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_init.cc:118] Found device 0 with properties: 
name: GeForce GT 640
major: 3 minor: 0 memoryClockRate (GHz) 0.9015
pciBusID 0000:05:00.0
Total memory: 2.00GiB
Free memory: 1.98GiB
I tensorflow/core/common_runtime/gpu/gpu_init.cc:138] DMA: 0 
I tensorflow/core/common_runtime/gpu/gpu_init.cc:148] 0:   Y 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:843] Ignoring gpu device (device: 0, name: GeForce GT 640, pci bus id: 0000:05:00.0) with Cuda compute capability 3.0. The minimum required Cuda capability is 3.5.
I tensorflow/core/common_runtime/gpu/gpu_device.cc:843] Ignoring gpu device (device: 0, name: GeForce GT 640, pci bus id: 0000:05:00.0) with Cuda compute capability 3.0. The minimum required Cuda capability is 3.5.
I tensorflow/core/common_runtime/gpu/gpu_device.cc:843] Ignoring gpu device (device: 0, name: GeForce GT 640, pci bus id: 0000:05:00.0) with Cuda compute capability 3.0. The minimum required Cuda capability is 3.5.
I tensorflow/core/common_runtime/gpu/gpu_device.cc:843] Ignoring gpu device (device: 0, name: GeForce GT 640, pci bus id: 0000:05:00.0) with Cuda compute capability 3.0. The minimum required Cuda capability is 3.5.
I tensorflow/core/common_runtime/gpu/gpu_device.cc:843] Ignoring gpu device (device: 0, name: GeForce GT 640, pci bus id: 0000:05:00.0) with Cuda compute capability 3.0. The minimum required Cuda capability is 3.5.
I tensorflow/core/common_runtime/gpu/gpu_device.cc:843] Ignoring gpu device (device: 0, name: GeForce GT 640, pci bus id: 0000:05:00.0) with Cuda compute capability 3.0. The minimum required Cuda capability is 3.5.
I tensorflow/core/common_runtime/gpu/gpu_device.cc:843] Ignoring gpu device (device: 0, name: GeForce GT 640, pci bus id: 0000:05:00.0) with Cuda compute capability 3.0. The minimum required Cuda capability is 3.5.
I tensorflow/core/common_runtime/gpu/gpu_device.cc:843] Ignoring gpu device (device: 0, name: GeForce GT 640, pci bus id: 0000:05:00.0) with Cuda compute capability 3.0. The minimum required Cuda capability is 3.5.
I tensorflow/core/common_runtime/gpu/gpu_device.cc:843] Ignoring gpu device (device: 0, name: GeForce GT 640, pci bus id: 0000:05:00.0) with Cuda compute capability 3.0. The minimum required Cuda capability is 3.5.
I tensorflow/core/common_runtime/gpu/gpu_device.cc:843] Ignoring gpu device (device: 0, name: GeForce GT 640, pci bus id: 0000:05:00.0) with Cuda compute capability 3.0. The minimum required Cuda capability is 3.5.
F tensorflow/cc/tutorials/example_trainer.cc:128] Check failed: ::tensorflow::Status::OK() == (session->Run({{"x", x}}, {"y:0", "y_normalized:0"}, {}, &outputs)) (OK vs. Invalid argument: Cannot assign a device to node 'Cast': Could not satisfy explicit device specification '/gpu:0' because no devices matching that specification are registered in this process; available devices: /job:localhost/replica:0/task:0/cpu:0
     [[Node: Cast = Cast[DstT=DT_FLOAT, SrcT=DT_INT32, _device="/gpu:0"](Const)]])
F tensorflow/cc/tutorials/example_trainer.cc:128] Check failed: ::tensorflow::Status::OK() == (session->Run({{"x", x}}, {"y:0", "y_normalized:0"}, {}, &outputs)) (OK vs. Invalid argument: Cannot assign a device to node 'Cast': Could not satisfy explicit device specification '/gpu:0' because no devices matching that specification are registered in this process; available devices: /job:localhost/replica:0/task:0/cpu:0
     [[Node: Cast = Cast[DstT=DT_FLOAT, SrcT=DT_INT32, _device="/gpu:0"](Const)]])
F tensorflow/cc/tutorials/example_trainer.cc:128] Check failed: ::tensorflow::Status::OK() == (session->Run({{"x", x}}, {"y:0", "y_normalized:0"}, {}, &outputs)) (OK vs. Invalid argument: Cannot assign a device to node 'Cast': Could not satisfy explicit device specification '/gpu:0' because no devices matching that specification are registered in this process; available devices: /job:localhost/replica:0/task:0/cpu:0
     [[Node: Cast = Cast[DstT=DT_FLOAT, SrcT=DT_INT32, _device="/gpu:0"](Const)]])
F tensorflow/cc/tutorials/example_trainer.cc:128] Check failed: ::tensorflow::Status::OK() == (session->Run({{"x", x}}, {"y:0", "y_normalized:0"}, {}, &outputs)) (OK vs. Invalid argument: Cannot assign a device to node 'Cast': Could not satisfy explicit device specification '/gpu:0' because no devices matching that specification are registered in this process; available devices: /job:localhost/replica:0/task:0/cpu:0
     [[Node: Cast = Cast[DstT=DT_FLOAT, SrcT=DT_INT32, _device="/gpu:0"](Const)]])
Aborted (core dumped)

Benötige ich eine andere gpu, um das auszuführen?

12

Ich habe Tensorflow Revision 1.8 installiert. Es empfiehlt CUDA 9.0. Ich verwende eine GTX 650M-Karte, die über CUDA-Berechnungsfunktionen 3.0 verfügt und nun wie ein Zauber arbeitet. OS ist Ubuntu 18.04. Nachfolgend sind detaillierte Schritte aufgeführt:

Abhängigkeiten installieren

Ich habe ffmpeg und einige verwandte Pakete für meine opencv 3.4-Kompilierung enthalten. Wenn dies nicht erforderlich ist, installieren Sie es nicht Führen Sie die folgenden Befehle aus:

Sudo apt-get update 
Sudo apt-get dist-upgrade -y
Sudo apt-get autoremove -y
Sudo apt-get upgrade
Sudo add-apt-repository ppa:jonathonf/ffmpeg-3 -y
Sudo apt-get update
Sudo apt-get install build-essential -y
Sudo apt-get install ffmpeg -y
Sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev -y
Sudo apt-get install python-dev libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev -y
Sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev -y
Sudo apt-get install libxvidcore-dev libx264-dev -y
Sudo apt-get install unzip qtbase5-dev python-dev python3-dev python-numpy python3-numpy -y
Sudo apt-get install libopencv-dev libgtk-3-dev libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev >libjasper-dev -y
Sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev -y
Sudo apt-get install libv4l-dev libtbb-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev -y
Sudo apt-get install libvorbis-dev libxvidcore-dev v4l-utils vtk6 -y
Sudo apt-get install liblapacke-dev libopenblas-dev libgdal-dev checkinstall -y
Sudo apt-get install libgtk-3-dev -y
Sudo apt-get install libatlas-base-dev gfortran -y
Sudo apt-get install qt-sdk -y
Sudo apt-get install python2.7-dev python3.5-dev python-tk -y
Sudo apt-get install cython libgflags-dev -y
Sudo apt-get install tesseract-ocr -y
Sudo apt-get install tesseract-ocr-eng -y 
Sudo apt-get install tesseract-ocr-ell -y
Sudo apt-get install gstreamer1.0-python3-plugin-loader -y
Sudo apt-get install libdc1394-22-dev -y
Sudo apt-get install openjdk-8-jdk
Sudo apt-get install pkg-config Zip g++-6 gcc-6 zlib1g-dev unzip  git
Sudo wget https://bootstrap.pypa.io/get-pip.py
Sudo python get-pip.py
Sudo pip install -U pip
Sudo pip install -U numpy
Sudo pip install -U pandas
Sudo pip install -U wheel
Sudo pip install -U six

Nvidia-Treiber installieren

Führen Sie die folgenden Befehle aus:

Sudo add-apt-repository ppa:graphics-drivers/ppa
Sudo apt-get update
Sudo apt-get install nvidia-390 -y

Starten Sie den folgenden Befehl neu und führen Sie ihn aus. Daraufhin sollten Sie Details wie in der folgenden Abbildung beschrieben erhalten: enter image description here

gcc-6 und g ++ - 6 prüft.

für CUDA 9.0 ist gcc-6 und g ++ - 6 erforderlich. Führen Sie die folgenden Befehle aus:

cd /usr/bin 
Sudo rm -rf gcc gcc-ar gcc-nm gcc-ranlib g++
Sudo ln -s gcc-6 gcc
Sudo ln -s gcc-ar-6 gcc-ar
Sudo ln -s gcc-nm-6 gcc-nm
Sudo ln -s gcc-ranlib-6 gcc-ranlib
Sudo ln -s g++-6 g++

CUDA 9.0 installieren

Gehen Sie zu https://developer.nvidia.com/cuda-90-download-archive . Wählen Sie Optionen: Linux-> x86_64-> Ubuntu-> 17.04-> deb (local) . Laden Sie die Hauptdatei und die beiden Patches ..__ herunter. Führen Sie die folgenden Befehle aus:

Sudo dpkg -i cuda-repo-ubuntu1704-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

Navigieren Sie zum ersten Patch auf Ihrem PC und doppelklicken Sie darauf. Der Patch wird automatisch ausgeführt. Folgen Sie dem zweiten Patch.

Fügen Sie unten in Ihre ~/.bashrc-Datei Zeilen ein und führen Sie einen Neustart durch:

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

Cudnn 7.1.4 für CUDA 9.0 installieren

Laden Sie die TAR-Datei von https://developer.nvidia.com/cudnn herunter und entpacken Sie sie in den Ordner "Downloads"Download erfordert ein von nvidia entwickeltes Login :

cd ~/Downloads/cudnn-9.0-linux-x64-v7.1/cuda
Sudo cp include/* /usr/local/cuda/include/
Sudo cp lib64/libcudnn.so.7.1.4 lib64/libcudnn_static.a /usr/local/cuda/lib64/
cd /usr/lib/x86_64-linux-gnu
Sudo ln -s libcudnn.so.7.1.4 libcudnn.so.7
Sudo ln -s libcudnn.so.7 libcudnn.so

NCCL 2.2.12 für CUDA 9.0 installieren

Laden Sie die TAR-Datei von https://developer.nvidia.com/nccl herunter und entpacken Sie sie in den Ordner "Downloads"Download erfordert ein von nvidia entwickeltes Login :

Sudo mkdir -p /usr/local/cuda/nccl/lib /usr/local/cuda/nccl/include
cd ~/Downloads/nccl-repo-ubuntu1604-2.2.12-ga-cuda9.0_1-1_AMD64/
Sudo cp *.txt /usr/local/cuda/nccl
Sudo cp include/*.h /usr/include/
Sudo cp lib/libnccl.so.2.1.15 lib/libnccl_static.a /usr/lib/x86_64-linux-gnu/
Sudo ln -s /usr/include/nccl.h /usr/local/cuda/nccl/include/nccl.h
cd /usr/lib/x86_64-linux-gnu
Sudo ln -s libnccl.so.2.1.15 libnccl.so.2
Sudo ln -s libnccl.so.2 libnccl.so
for i in libnccl*; do Sudo ln -s /usr/lib/x86_64-linux-gnu/$i /usr/local/cuda/nccl/lib/$i; done

Installieren Sie Bazel (die empfohlene manuelle Installation von Bazel hat als Referenz funktioniert: https://docs.bazel.build/versions/master/install-ubuntu.html#install-with-installer-ubuntu )

Laden Sie "bazel-0.13.1-installer-darwin-x86_64.sh" von https://github.com/bazelbuild/bazel/releases .__ herunter. Führen Sie die folgenden Befehle aus:

chmod +x bazel-0.13.1-installer-darwin-x86_64.sh
./bazel-0.13.1-installer-darwin-x86_64.sh --user
export PATH="$PATH:$HOME/bin"

Tensorflow zusammenstellen

Wir werden mit CUDA, mit XLA JIT (oh yeah) und Jemalloc als Malloc-Unterstützung kompilieren. Also geben wir für diese Dinge "Ja" ein. Führen Sie den folgenden Befehl aus und beantworten Sie die Abfragen, wie für die Ausführung der Konfiguration beschrieben

git clone https://github.com/tensorflow/tensorflow 
git checkout r1.8
./configure
You have bazel 0.13.0 installed.
Please specify the location of python. [Default is /usr/bin/python]:
Please input the desired Python library path to use.  Default is [/usr/local/lib/python2.7/dist-packages]
Do you wish to build TensorFlow with jemalloc as malloc support? [Y/n]: y
jemalloc as malloc support will be enabled for TensorFlow.
Do you wish to build TensorFlow with Google Cloud Platform support? [Y/n]: n
No Google Cloud Platform support will be enabled for TensorFlow.
Do you wish to build TensorFlow with Hadoop File System support? [Y/n]: n
No Hadoop File System support will be enabled for TensorFlow.
Do you wish to build TensorFlow with Amazon S3 File System support? [Y/n]: n
No Amazon S3 File System support will be enabled for TensorFlow.
Do you wish to build TensorFlow with Apache Kafka Platform support? [Y/n]: n
No Apache Kafka Platform support will be enabled for TensorFlow.
Do you wish to build TensorFlow with XLA JIT support? [y/N]: y
XLA JIT support will be enabled for TensorFlow.
Do you wish to build TensorFlow with GDR support? [y/N]: n
No GDR support will be enabled for TensorFlow.
Do you wish to build TensorFlow with VERBS support? [y/N]: n
No VERBS support will be enabled for TensorFlow.
Do you wish to build TensorFlow with OpenCL SYCL support? [y/N]: n
No OpenCL SYCL support will be enabled for TensorFlow.
Do you wish to build TensorFlow with CUDA support? [y/N]: y
CUDA support will be enabled for TensorFlow.
Please specify the CUDA SDK version you want to use, e.g. 7.0. [Leave empty to default to CUDA 9.0]:
Please specify the location where CUDA 9.1 toolkit is installed. Refer to README.md for more details. [Default is /usr/local/cuda]:
Please specify the cuDNN version you want to use. [Leave empty to default to cuDNN 7.0]: 7.1.4
Please specify the location where cuDNN 7 library is installed. Refer to README.md for more details. [Default is /usr/local/cuda]:
Do you wish to build TensorFlow with TensorRT support? [y/N]: n
No TensorRT support will be enabled for TensorFlow.
Please specify the NCCL version you want to use. [Leave empty to default to NCCL 1.3]: 2.2.12
Please specify the location where NCCL 2 library is installed. Refer to README.md for more details. [Default is /usr/local/cuda]:/usr/local/cuda/nccl
Please specify a list of comma-separated Cuda compute capabilities you want to build with.
You can find the compute capability of your device at: https://developer.nvidia.com/cuda-gpus.
Please note that each additional compute capability significantly increases your build time and binary size. [Default is: 3.0]
Do you want to use clang as CUDA compiler? [y/N]: n
nvcc will be used as CUDA compiler.
Please specify which gcc should be used by nvcc as the Host compiler. [Default is /usr/bin/x86_64-linux-gnu-gcc-7]: /usr/bin/gcc-6
Do you wish to build TensorFlow with MPI support? [y/N]: n
No MPI support will be enabled for TensorFlow.
Please specify optimization flags to use during compilation when bazel option "--config=opt" is specified [Default is -march=native]:
Would you like to interactively configure ./WORKSPACE for Android builds? [y/N]: n
Not configuring the WORKSPACE for Android builds.
Preconfigured Bazel build configs. You can use any of the below by adding "--config=<>" to your build command. See tools/bazel.rc for more details.
 --config=mkl          # Build with MKL support.

 --config=monolithic   # Config for mostly static monolithic build.

Configuration finished

Um nun den Tensorflow zu kompilieren, führen Sie den folgenden Befehl aus. Dies ist sehr RAM und kostet Zeit. Sie können "--local_resources 2048, .5,1.0" aus der unteren Zeile entfernen, wenn Sie viel RAM haben, oder dies funktioniert mit 2 GB RAM. 

bazel build --config=opt --config=cuda --local_resources 2048,.5,1.0 //tensorflow/tools/pip_package:build_pip_package

Sobald die Kompilierung abgeschlossen ist, erscheint das folgende Bild, um zu bestätigen, dass es erfolgreich war enter image description here

Erstellen Sie die Raddatei, und führen Sie sie unten aus:

bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

Installieren Sie die erzeugte Raddatei mit pip

Sudo pip install /tmp/tensorflow_pkg/tensorflow*.whl

Um die Geräte jetzt zu erkunden, können Sie den Tensorflow ausführen. Das folgende Bild zeigt das Showcase auf dem ipython-Terminal

enter image description here

9
Manoj Kumar Das

@Taako, entschuldige mich für diese späte Antwort. Ich habe die Raddatei der oben angezeigten Zusammenstellung nicht gespeichert. Hier ist jedoch ein neuer für Tensorflow 1.9. Hoffe das hilft dir genug. Bitte stellen Sie sicher, dass die unten angegebenen Details für den Build verwendet werden.

Tensorfluss: 1.9 CUDA Toolkit: 9.2 CUDNN: 7.1.4 NCCL: 2.2.13

Unten ist der Link zur Wheel-Datei: Wheel-Datei

1
Manoj Kumar Das