Я пытаюсь заставить Keras CNN работать на GPU, но это не так, и я не могу понять, как.
Вывод из nvidia-smi
:
Sat Jun 22 22:28:01 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.116 Driver Version: 390.116 |
|-------------------------------+----------------------+----------------------+
| 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 GT 755M Off | 00000000:01:00.0 N/A | N/A |
| N/A 79C P0 N/A / N/A | 179MiB / 1991MiB | N/A Default |
+-------------------------------+----------------------+----------------------+
| 1 GeForce GT 755M Off | 00000000:07:00.0 N/A | N/A |
| N/A 64C P0 N/A / N/A | 2MiB / 1999MiB | N/A Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 Not Supported |
| 1 Not Supported |
+-----------------------------------------------------------------------------+
Я использую этот скрипт, запускаемый с python3
, чтобы увидеть устройства, на которых работает tf:
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
Вывод из него я получаю:
2019-06-22 21:17:07.250488: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2019-06-22 21:17:07.269140: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcuda.so.1
2019-06-22 21:17:07.327260: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:1005] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2019-06-22 21:17:07.328750: I tensorflow/compiler/xla/service/platform_util.cc:197] StreamExecutor cuda device (0) is of insufficient compute capability: 3.5 required, device is 3.0
2019-06-22 21:17:07.329374: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:1005] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2019-06-22 21:17:07.330012: I tensorflow/compiler/xla/service/platform_util.cc:197] StreamExecutor cuda device (1) is of insufficient compute capability: 3.5 required, device is 3.0
2019-06-22 21:17:07.330278: F tensorflow/stream_executor/lib/statusor.cc:34] Attempting to fetch value instead of handling error Internal: no supported devices found for platform CUDA
Aborted (core dumped)
Исходя из этого, я понимаю, что не могу использовать правильную версию CUDA, поскольку мой GPU (GeForce 755M) имеет вычислительную способность 3.0, а поскольку требуется 3.5, где-то должна быть несовместимость.
На веб-сайте NVIDIA я прочитал, что мне нужна CUDA 9.0 для совместимости с возможностью вычислений 3.0, но мой CUDA - 9.0.
Выход nvcc -V
:
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176
В чем здесь проблема, и как я могу ее решить, чтобы тензорный поток работал на GPU?