Nvidia Docker: nvidia-smi: comando não encontrado Ask Ask Question

0

Eu construo um docker container FROM nvidia/cuda:8.0-devel-ubuntu16.04 no meu Dockerfile para ter o CUDA Toolkit instalado.

Minha arquitetura é a descrita no repositório nvidia-docker oficial

Apósacriaçãoeexecução,obtenho

$nvidia-smibash:nvidia-smi:commandnotfound

EutenhoumDOCKER_HOSTqueapontaparaocontêinerDockerNvidiaemexecução(amáquinaGPUs)como

exportDOCKER_HOST=tcp://x.x.x.x:2376exportDOCKER_TLS_VERIFY=1setNVIDIA_VER=367.57

eeumeconectoàinstânciadockerligandoasportasaofazerotúnelparaamáquina:

$ssh-i"$DOCKER_CERT" docker@$IP -g -R 10250:localhost:10250 -L 0.0.0.0:3000:127.0.0.1:3000  -L 0.0.0.0:8181:127.0.0.1:8181 -L 5858:127.0.0.1:5858 -L 4567:127.0.0.1:4567

Minha instância do Docker é iniciada normalmente

$ docker run --rm -it --name $CONTAINER_NAME -p 3000:3000 $CONTAINER_IMG:$CONTAINER_VERSION $CMD

Eu posso me conectar à instância docker nvidia do host do docker:

loreto@nvidia-docker:~$ sudo nvidia-docker run --rm nvidia/cuda nvidia-smi
Fri Mar 17 09:08:03 2017       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 367.57                 Driver Version: 367.57                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GRID K520           Off  | 0000:00:03.0     Off |                  N/A |
| N/A   35C    P8    17W / 125W |      0MiB /  4036MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

e até mesmo

loreto@nvidia-docker:~$ nvidia-smi
Fri Mar 17 09:12:59 2017       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 367.57                 Driver Version: 367.57                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GRID K520           Off  | 0000:00:03.0     Off |                  N/A |
| N/A   35C    P8    17W / 125W |      0MiB /  4036MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|  No running processes found                                                 |

enquanto do meu contêiner $CONTAINER_NAME quando estou em execução não consigo ver

$ docker exec -it $CONTAINER_NAME bash
$ nvidia-smi
nvidia-smi: command not found

O $CONTAINER_NAME foi criado em FROM nvidia/cuda:8.0-devel-ubuntu16.04

Eu fiz esta pergunta como um problema para o repositório github nvidia-docker aqui .

[UPDATE] Eu resolvi o problema, conectando os dispositivos e configurando o driver no contêiner ao executá-lo da seguinte forma:

docker run --rm -it --device=/dev/nvidiactl --device=/dev/nvidia-uvm --device=/dev/nvidia0 -v nvidia_driver_367.57:/usr/local/nvidia:ro --name $CONTAINER_NAME -p 3000:3000 $CONTAINER_IMG:$CONTAINER_VERSION $CMD

É claro que o DOCKER_HOST deve ser definido e o túnel deve estar aberto.

    
por loretoparisi 20.03.2017 / 18:23

0 respostas

Tags