it-swarm.com.de

wo ist die ./configure von TensorFlow und wie kann ich die GPU-Unterstützung aktivieren?

Bei der Installation von TensorFlow unter Ubuntu möchte ich GPU mit CUDA verwenden. 

Aber ich bin in diesem Schritt im Official Tutorial angehalten:

enter image description here

Wo genau ist dieser ./configure? Oder wo ist meine Wurzel des Quellbaums?.

Mein TensorFlow befindet sich hier /usr/local/lib/python2.7/dist-packages/tensorflow. ./configure habe ich immer noch nicht gefunden. 

EDIT

Ich habe den ./configure nach Salvador Dalis Antwort gefunden. Beim Ausführen des Beispielcodes erhielt ich jedoch den folgenden Fehler:

>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
I tensorflow/core/common_runtime/local_device.cc:25] Local device intra op parallelism threads: 8
E tensorflow/stream_executor/cuda/cuda_driver.cc:466] failed call to cuInit: CUDA_ERROR_NO_DEVICE
I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:86] kernel driver does not appear to be running on this Host (cliu-ubuntu): /proc/driver/nvidia/version does not exist
I tensorflow/core/common_runtime/gpu/gpu_init.cc:112] DMA: 
I tensorflow/core/common_runtime/local_session.cc:45] Local session inter op parallelism threads: 8

Das cuda-Gerät kann nicht gefunden werden. 

Antworten

In der Antwort erfahren Sie, wie ich die GPU-Unterstützung hier aktiviert habe.

13
fluency03
  • Antwort auf die erste Frage: ./configure wurde bereits anhand der Antwort hier gefunden. Es befindet sich unter dem Quellordner von tensorflow wie hier hier

  • Antwort auf die zweite Frage: 

Eigentlich habe ich die GPU NVIDIA Corporation GK208GLM [Quadro K610M]. Ich habe auch CUDA + cuDNN installiert. (Die folgende Antwort basiert daher darauf, dass Sie CUDA 7.0+ + cuDNN korrekt mit den richtigen Versionen installiert haben.) Das Problem ist jedoch: Ich habe Treiber installiert, aber die GPU funktioniert einfach nicht. Ich habe es in den folgenden Schritten zum Laufen gebracht:

Zuerst habe ich diese lspci gemacht und bekam: 

01:00.0 VGA compatible controller: NVIDIA Corporation GK208GLM [Quadro K610M] (rev ff)

Der Status hier ist rev ff. Dann habe ich Sudo update-pciids gemacht und noch einmal lspci überprüft und Folgendes erhalten:

01:00.0 VGA compatible controller: NVIDIA Corporation GK208GLM [Quadro K610M] (rev a1)

Nun ist der Status der Nvidia-GPU mit rev a1 korrekt. Aber jetzt unterstützt die tensorflow GPU noch nicht. Die nächsten Schritte sind (der von mir installierte Nvidia-Treiber ist Version nvidia-352): 

Sudo modprobe nvidia_352
Sudo modprobe nvidia_352_uvm

um den Treiber in den richtigen Modus zu bringen. Nochmal Überprüfen: 

[email protected]:~$ lspci -vnn | grep -i VGA -A 12
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK208GLM [Quadro K610M] [10de:12b9] (rev a1) (prog-if 00 [VGA controller])
    Subsystem: Hewlett-Packard Company Device [103c:1909]
    Flags: bus master, fast devsel, latency 0, IRQ 16
    Memory at cb000000 (32-bit, non-prefetchable) [size=16M]
    Memory at 50000000 (64-bit, prefetchable) [size=256M]
    Memory at 60000000 (64-bit, prefetchable) [size=32M]
    I/O ports at 5000 [size=128]
    Expansion ROM at cc000000 [disabled] [size=512K]
    Capabilities: <access denied>
    Kernel driver in use: nvidia
[email protected]:~$ lsmod | grep nvidia
nvidia_uvm             77824  0 
nvidia               8646656  1 nvidia_uvm
drm                   348160  7 i915,drm_kms_helper,nvidia

Wir können feststellen, dass der Kernel driver in use: nvidia angezeigt wird und nvidia im korrekten Modus ist. 

Verwenden Sie nun das Beispiel here , um die GPU zu testen: 

[email protected]:~$ python
Python 2.7.9 (default, Apr  2 2015, 15:33:21) 
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>> a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
>>> b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
>>> c = tf.matmul(a, b)
>>> sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
I tensorflow/core/common_runtime/local_device.cc:25] Local device intra op parallelism threads: 8
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:888] 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:88] Found device 0 with properties: 
name: Quadro K610M
major: 3 minor: 5 memoryClockRate (GHz) 0.954
pciBusID 0000:01:00.0
Total memory: 1023.81MiB
Free memory: 1007.66MiB
I tensorflow/core/common_runtime/gpu/gpu_init.cc:112] DMA: 0 
I tensorflow/core/common_runtime/gpu/gpu_init.cc:122] 0:   Y 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:643] Creating TensorFlow device (/gpu:0) -> (device: 0, name: Quadro K610M, pci bus id: 0000:01:00.0)
I tensorflow/core/common_runtime/gpu/gpu_region_allocator.cc:47] Setting region size to 846897152
I tensorflow/core/common_runtime/local_session.cc:45] Local session inter op parallelism threads: 8
Device mapping:
/job:localhost/replica:0/task:0/gpu:0 -> device: 0, name: Quadro K610M, pci bus id: 0000:01:00.0
I tensorflow/core/common_runtime/local_session.cc:107] Device mapping:
/job:localhost/replica:0/task:0/gpu:0 -> device: 0, name: Quadro K610M, pci bus id: 0000:01:00.0

>>> print sess.run(c)
b: /job:localhost/replica:0/task:0/gpu:0
I tensorflow/core/common_runtime/simple_placer.cc:289] b: /job:localhost/replica:0/task:0/gpu:0
a: /job:localhost/replica:0/task:0/gpu:0
I tensorflow/core/common_runtime/simple_placer.cc:289] a: /job:localhost/replica:0/task:0/gpu:0
MatMul: /job:localhost/replica:0/task:0/gpu:0
I tensorflow/core/common_runtime/simple_placer.cc:289] MatMul: /job:localhost/replica:0/task:0/gpu:0
[[ 22.  28.]
 [ 49.  64.]]

Wie Sie sehen, wird die GPU verwendet. 

3
fluency03

Dies ist ein bash-Skript, von dem angenommen wird, dass es in ist 

die Wurzel Ihres Quellbaums

wenn Sie das Repo geklont haben . Hier ist es https://github.com/tensorflow/tensorflow/blob/master/configure

7
Salvador Dali

Für Ihre zweite Frage: Haben Sie eine kompatible GPU (NVIDIA-Rechenfunktion 3.5 oder höher) installiert und haben Sie CUDA 7.0 + cuDNN gemäß den Anweisungen installiert? Das ist der wahrscheinlichste Grund, warum Sie einen Fehler sehen. Es könnte ein Problem bei der Installation von cuda sein, wenn die Antwort ja lautet. Sehen Sie Ihre GPU aufgelistet, wenn Sie nvidia-smi ausführen? Wenn nicht, müssen Sie das zuerst beheben. Möglicherweise müssen Sie einen neueren Treiber installieren und/oder nvidia-xconfig usw. erneut ausführen.

2
dga

sie können eine GPU-Version aus der Quelle nur dann neu erstellen, wenn Sie die 7.0-cuda-Bibliotheken und die 6.5-cudnn-Bibliotheken haben

0
Emergix