Comment savoir si tensorflow utilise l'accélération gpu depuis l'intérieur de python shell?


4 Answers

En plus d'utiliser sess = tf.Session(config=tf.ConfigProto(log_device_placement=True)) qui est décrit dans d'autres réponses ainsi que dans la documentation officielle de TF, vous pouvez essayer d'assigner un calcul au GPU et voir si vous avez un Erreur.

import tensorflow as tf
with tf.device('/gpu:0'):
    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)

with tf.Session() as sess:
    print (sess.run(c))

Ici

  • "/ cpu: 0": Le CPU de votre machine.
  • "/ gpu: 0": Le GPU de votre machine, si vous en avez un.

Si vous avez un GPU et que vous pouvez l'utiliser, vous verrez le résultat. Sinon, vous verrez une erreur avec une longue pile. En fin de compte, vous aurez quelque chose comme ceci:

Impossible d'affecter un périphérique au noeud 'MatMul': Impossible de satisfaire la spécification de périphérique explicite '/ device: GPU: 0' car aucun périphérique correspondant à cette spécification n'est enregistré dans ce processus

Question

J'ai installé tensorflow dans mon Ubuntu 16.04 en utilisant la deuxième réponse here avec l'installation intégrée d'ubuntu apt cuda.

Maintenant, ma question est comment puis-je tester si tensorflow utilise vraiment gpu? J'ai un gpu gtx 960m. Quand import tensorflow c'est l'outp

I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcurand.so locally

Cette sortie est-elle suffisante pour vérifier si tensorflow utilise gpu?




Je trouve que l'interrogation du GPU à partir de la ligne de commande est la plus simple:

nvidia-smi

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 384.98                 Driver Version: 384.98                    |
|-------------------------------+----------------------+----------------------+
| 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 GTX 980 Ti  Off  | 00000000:02:00.0  On |                  N/A |
| 22%   33C    P8    13W / 250W |   5817MiB /  6075MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1060      G   /usr/lib/xorg/Xorg                            53MiB |
|    0     25177      C   python                                      5751MiB |
+-----------------------------------------------------------------------------+

si votre apprentissage est un processus d'arrière-plan, le pid des jobs -p doit correspondre au pid de nvidia-smi




Je préfère utiliser nvidia-smi pour surveiller l'utilisation du GPU. Si elle augmente de façon significative lorsque vous démarrez votre programme, c'est un signe fort que votre tensorflow utilise GPU.




Cela va confirmer que tensorflow en utilisant GPU lors de l'entraînement aussi?

Code

sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))

Sortie

I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 0 with properties: 
name: GeForce GT 730
major: 3 minor: 5 memoryClockRate (GHz) 0.9015
pciBusID 0000:01:00.0
Total memory: 1.98GiB
Free memory: 1.72GiB
I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0:   Y 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 730, pci bus id: 0000:01:00.0)
Device mapping:
/job:localhost/replica:0/task:0/gpu:0 -> device: 0, name: GeForce GT 730, pci bus id: 0000:01:00.0
I tensorflow/core/common_runtime/direct_session.cc:255] Device mapping:
/job:localhost/replica:0/task:0/gpu:0 -> device: 0, name: GeForce GT 730, pci bus id: 0000:01:00.0



En plus des autres réponses, ce qui suit devrait vous aider à vous assurer que votre version de tensorflow inclut le support GPU.

import tensorflow as tf
print(tf.test.is_built_with_cuda())



Related