web-dev-qa-db-fra.com

où est le fichier ./configure de TensorFlow et comment activer le support GPU?

Lors de l'installation de TensorFlow sur mon Ubuntu, j'aimerais utiliser le GPU avec CUDA. 

Mais je suis arrêté à cette étape du Tutorial officiel :

 enter image description here

Où se trouve exactement ce ./configure? Ou où est ma racine d'arbre source.

Mon TensorFlow se trouve ici /usr/local/lib/python2.7/dist-packages/tensorflow. Mais je n'ai toujours pas trouvé ./configure

MODIFIER

J'ai trouvé le ./configure d'après La réponse de Salvador Dali . Mais en faisant l’exemple de code, j’ai eu l’erreur suivante:

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

Le périphérique cuda est introuvable. 

Réponse

Voir la réponse à propos de comment ai-je activé le support GPU ici .

13
fluency03
  • Réponse à la première question: ./configure a déjà été trouvé selon la réponse ici . Il se trouve sous le dossier source tensorflow, comme indiqué ici

  • Réponse à la deuxième question: 

En fait, j'ai le _NVIDIA Corporation GK208GLM [Quadro K610M] du GPU. J'ai également installé CUDA + cuDNN. (Par conséquent, la réponse suivante est basée sur le fait que vous avez déjà installé CUDA 7.0+ + cuDNN correctement avec les versions correctes.) Cependant, le problème est le suivant: le pilote est installé, mais le processeur graphique ne fonctionne pas. Je l'ai fait fonctionner dans les étapes suivantes:

Au début, j'ai fait cette lspci et obtenu: 

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

Le statut ici est rev ff. Ensuite, j'ai fait Sudo update-pciids, et vérifié à nouveau lspci, et obtenu:

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

Maintenant, le statut de Nvidia GPU est correct en tant que rev a1. Mais maintenant, la tensorflow ne supporte pas encore le GPU. Les prochaines étapes sont les suivantes (le pilote Nvidia que j'ai installé est la version nvidia-352): 

Sudo modprobe nvidia_352
Sudo modprobe nvidia_352_uvm

afin d'ajouter le pilote en mode correct. Revérifier: 

cliu@cliu-ubuntu:~$ 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
cliu@cliu-ubuntu:~$ lsmod | grep nvidia
nvidia_uvm             77824  0 
nvidia               8646656  1 nvidia_uvm
drm                   348160  7 i915,drm_kms_helper,nvidia

Nous pouvons trouver que le Kernel driver in use: nvidia est affiché et que nvidia est en mode correct. 

A présent, utilisez l'exemple ici pour tester le GPU: 

cliu@cliu-ubuntu:~$ 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.]]

Comme vous pouvez le constater, le GPU est utilisé. 

3
fluency03

Ceci est un script bash qui suppose être dans 

la racine de votre arbre source

quand vous avez cloné le repo . La voici https://github.com/tensorflow/tensorflow/blob/master/configure

7
Salvador Dali

Pour votre deuxième question: Avez-vous un GPU compatible (capacité de calcul NVIDIA version 3.5 ou supérieure) installé et avez-vous installé CUDA 7.0 + nuDN conformément aux instructions? C'est la raison la plus probable pour laquelle vous voyez un échec. Cela pourrait être un problème d’installation de Cuda si la réponse est oui. Voyez-vous votre GPU répertorié lorsque vous exécutez nvidia-smi? Sinon, vous devez d'abord résoudre ce problème. Cela peut nécessiter l’obtention d’un pilote plus récent et/ou la relance de nvidia-xconfig, etc.

2
dga

vous ne pouvez reconstruire une version de GPU à partir de la source que si vous avez les bibliothèques 7.0 cuda et les bibliothèques 6.5 cudnn .. __

0
Emergix