Вам не нужно использовать nvidia-docker-compose. Правильно настроив плагин nvdia-docker, вы можете просто использовать компоновку docker!
Через nvidia docker git repo: (может подтвердить это работает для меня)
Шаг 1:
Выяснить версия драйвера NVIDIA (это важно). пробег:
nvidia-smi
выход:
+ --------------------------------- ------------------------------ +
NVIDIA-SMI 367,57 Driver Версия: 367,57
| - ----------------------------- + -------- + ----------- ----------- +
Этап 2:
создать том докера, который использует плагин nvidia-docker, должен выполняться вне компоновки, поскольку compose будет управлять именем тома, если он его создает.
docker volume create --name=nvidia_driver_367.57 -d nvidia-docker
Шаг 3
в Докер-compose.yml файла:
version: '2'
volumes:
nvidia_driver_367.57: # same name as one created above
external: true #this will use the volume we created above
services:
cuda:
command: nvidia-smi
devices: #this is required
- /dev/nvidiactl
- /dev/nvidia-uvm
- /dev/nvidia0 #in general: /dev/nvidia# where # depends on which gpu card is wanted to be used
image: nvidia/cuda
volumes:
- nvidia_driver_367.57:/usr/local/nvidia/:ro
добавить 'TTY: true' решить эту проблему. –
@oneklc - Я знаю, что это не сейчас ... но, может быть, вы можете мне помочь ... пытаетесь использовать метод, который вы написали, но я думаю, что я что-то упустил? это полный файл yml? – boaz
@boaz Это полный файл yml, который я использую. Ключевым моментом здесь является создание внешнего объема докеров. Обратите внимание на версию 2 для докеры, поэтому вам понадобится совместимая версия docker-compose. И Nvidia-docker необходимо установить, если это неясно. В зависимости от os устройства могут быть названы по-разному (мой был протестирован на centos 7 и ubuntu 14.04). Также я могу проверить, что это не работает над роутом докеров, мне не удавалось запускать службы GPU удаленно с этой настройкой (ну, они начали, но не работали). – oneklc