Я пытаюсь запустить простой пример тензорного потока с использованием предоставленного gpu образа докера с тензорным потоком из среды разработки Pycharm. Все работает, за исключением того, что при запуске tenorflow не обнаруживает GPU из контейнера и по умолчанию возвращается к CPU:
tensorflow/stream_executor/cuda/cuda_driver.cc:318] failed call to cuInit:
Работает: Ubuntu 18.04.3 Docker 19.03.3 последняя версия поддержки докера NVIDIA согласно: https://github.com/NVIDIA/nvidia-docker
Я настроил свой проект Pycharm с функцией удаленного интерпретатора для запуска образа: tenorflow: latest-gpu
Если я запускаю контейнер из командной строки с помощью:
docker run --gpus all --rm tensorflow/tensorflow:latest-gpu nvidia-smi
Я получаю это:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 430.26 Driver Version: 430.26 CUDA Version: 10.2 |
|-------------------------------+----------------------+----------------------+
| 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 108... Off | 00000000:41:00.0 On | N/A |
| 28% 26C P8 9W / 250W | 443MiB / 11177MiB | 1% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
+-----------------------------------------------------------------------------+
.., который говорит мне, что установка докера, образ и поддержка док-станции nvidia все в порядке.
Теперь, когдаPycharm запускает контейнер, он НЕ включает параметр командной строки «--gpus all».
Если я запускаю ту же команду выше без параметра --gpus all:
docker run --rm tensorflow/tensorflow:latest-gpu nvidia-smi
Iget:
docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused "exec: \"nvidia-smi\": executable file not found in $PATH": unknown.
Таким образом, это указывает на то, что Pycharm не добавляет флаг в качестве виновника.
Однако согласно документации по адресу: https://docs.docker.com/config/containers/resource_constraints/ (нижняя часть графического процессора)переменная окружения NVIDIA_VISIBLE_DEVICES = все должновыполнить то же самое. Я подтвердил, что эта переменная окружения устанавливается даже без параметра --gpus all.
Кроме того, похоже, нет способа добавить дополнительные параметры командной строки из Pycharm. Так что я застрял. Я чувствую, что эта установка не слишком экзотична, и надеюсь, что мне не хватает чего-то простого.