Как судить по выводу журнала, работает ли Tensorflow с GPU или нет? - PullRequest
1 голос
/ 26 сентября 2019

Если я попытаюсь запустить команду, которая скажет вам, использует ли Tensorflow графический процессор или нет.

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

Команда возвращает это, теперь я не могу понять, использует ли тензор поток с использованием графического процессора или нет.

2019-09-25 17:08:47.509729: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1640] Found device 0 with properties: 
name: Quadro P4000 major: 6 minor: 1 memoryClockRate(GHz): 1.48
pciBusID: 0000:03:00.0
2019-09-25 17:08:47.509929: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Could not dlopen library 'libcudart.so.10.0'; dlerror: libcudart.so.10.0: cannot open shared object file: No such file or directory
2019-09-25 17:08:47.510040: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Could not dlopen library 'libcublas.so.10.0'; dlerror: libcublas.so.10.0: cannot open shared object file: No such file or directory
2019-09-25 17:08:47.510139: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Could not dlopen library 'libcufft.so.10.0'; dlerror: libcufft.so.10.0: cannot open shared object file: No such file or directory
2019-09-25 17:08:47.510234: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Could not dlopen library 'libcurand.so.10.0'; dlerror: libcurand.so.10.0: cannot open shared object file: No such file or directory
2019-09-25 17:08:47.510328: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Could not dlopen library 'libcusolver.so.10.0'; dlerror: libcusolver.so.10.0: cannot open shared object file: No such file or directory
2019-09-25 17:08:47.510440: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Could not dlopen library 'libcusparse.so.10.0'; dlerror: libcusparse.so.10.0: cannot open shared object file: No such file or directory
2019-09-25 17:08:47.510483: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcudnn.so.7
2019-09-25 17:08:47.510498: W tensorflow/core/common_runtime/gpu/gpu_device.cc:1663] Cannot dlopen some GPU libraries. Skipping registering GPU devices...
2019-09-25 17:08:47.510524: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1181] Device interconnect StreamExecutor with strength 1 edge matrix:
2019-09-25 17:08:47.510536: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1187]      0 
2019-09-25 17:08:47.510556: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1200] 0:   N 
Device mapping:
/job:localhost/replica:0/task:0/device:XLA_CPU:0 -> device: XLA_CPU device
/job:localhost/replica:0/task:0/device:XLA_GPU:0 -> device: XLA_GPU device
2019-09-25 17:08:47.510713: I tensorflow/core/common_runtime/direct_session.cc:296] Device mapping:
/job:localhost/replica:0/task:0/device:XLA_CPU:0 -> device: XLA_CPU device
/job:localhost/replica:0/task:0/device:XLA_GPU:0 -> device: XLA_GPU device

Команда nvidia-smi возвращает это ..

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 387.26                 Driver Version: 387.26                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Quadro P4000        Off  | 00000000:03:00.0  On |                  N/A |
| 46%   40C    P8    11W / 105W |   1240MiB /  8111MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1943      G   /usr/libexec/Xorg                            317MiB |
|    0      2047      G   /usr/bin/gnome-shell                           5MiB |
|    0      5505      G   /usr/libexec/Xorg                            109MiB |
|    0     10091      G   /usr/libexec/Xorg                            165MiB |
|    0     10952      G   ...uest-channel-token=14061294616847102337    87MiB |
+-----------------------------------------------------------------------------+

1 Ответ

0 голосов
/ 26 сентября 2019

tenorflow имеет несколько этапов перед запуском обучающего ядра (функции) на графическом процессоре

  1. физически проверяет доступные устройства
  2. проверяет относящиеся к ним файлы библиотеки (файлы CuDNN и т. Д.)
  3. выделение необходимой памяти
  4. запуск процесса

Ваш процесс застрял на этапе 2

Для запуска тензорного потока с графическим процессором требуется несколько вещей

  1. Драйвер Nvidia
  2. Cuda (компилятор)
  3. Файлы библиотеки CuDNN

как их тестировать

  1. run Nvidia-smiчтобы проверить доступность драйвера
  2. , запустите nvcc --version, чтобы проверить доступность компилятора cuda
  3. , запустите import tensorflow as tf
  4. , запустите сеанс в тензорном потоке

, есливы получаете ошибку на 3-м этапе, потому что тензор потока не нашел файлы CuDNN

, если вы получаете ошибку на 4-м этапе, потому что у вас несовместимость версий, вы можете проверить это решение внутри стека переполненияили найдите проблему

как узнатькогда тензор потока не использует графический процессор

, есть несколько способов узнать:

  • журнал, похожий на тот, который находится внутри вашего: Cannot dlopen some GPU libraries. Skipping registering GPU devices...

  • это можно обнаружить с помощью команды nvidia-smi: если вы используете python, он покажет процесс python внутри процессов с очень большим потреблением памяти (он будет использовать почти всю доступную память GPU)

...