설치를 위해 Dockerfile에 컨테이너를 만들었습니다 docker
.FROM nvidia/cuda:8.0-devel-ubuntu16.04
CUDA Toolkit
내 아키텍처는 공식적으로 설명된 아키텍처입니다.Nvidia-docker환매 계약
빌드하고 실행한 후
$ nvidia-smi
bash: nvidia-smi: command not found
DOCKER_HOST
다음과 같이 실행 중인 Docker Nvidia 컨테이너(GPU 시스템)에 대한 포인터가 있습니다 .
export DOCKER_HOST=tcp://x.x.x.x:2376
export DOCKER_TLS_VERIFY=1
set NVIDIA_VER=367.57
머신에 터널링할 때 포트에 바인딩된 Docker 인스턴스에 연결합니다.
$ 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
내 도커 인스턴스가 평소처럼 시작됩니다.
$ docker run --rm -it --name $CONTAINER_NAME -p 3000:3000 $CONTAINER_IMG:$CONTAINER_VERSION $CMD
Docker 호스트에서 Docker Nvidia 인스턴스에 연결할 수 있습니다.
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 |
+-----------------------------------------------------------------------------+
그리고 심지어
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 |
그리고 내 컨테이너에서 $CONTAINER_NAME
실행할 때는 볼 수 없습니다.
$ docker exec -it $CONTAINER_NAME bash
$ nvidia-smi
nvidia-smi: command not found
$CONTAINER_NAME
건설 FROM nvidia/cuda:8.0-devel-ubuntu16.04
이 문제를 nvidia-docker github repo에 제기했습니다.여기.
[업데이트] 런타임에 장치를 연결하고 컨테이너에 드라이버를 다음과 같이 설정하여 문제를 해결했습니다.
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
물론 DOCKER_HOST
설정이 되어 있어야 하고 터널이 열려 있어야 합니다.
답변1
nvidia-docker
일반적으로 설치된 버전에 설치합니다 docker
.
명령은 다음과 같습니다:
곱슬https://get.docker.com| sh
&& sudo systemctl - 이제 도커를 활성화합니다.
그 다음에
distribution=$(./etc/os-release;echo $ID$VERSION_ID)
&& 컬 -fsSLhttps://nvidia.github.io/libnvidia-container/gpgkeysudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
&&curl -s -Lhttps://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list|
sed 's#deb https://#deb [서명자=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g'
| list.d/nvidia-container-toolkit.list
그 다음에
sudo apt-get 업데이트
그 다음에
sudo apt-get 설치 -y nvidia-docker2
이제 설치가 완료된 후 nvidia-docker2
- 먼저 groups 명령을 사용하여 사용자 ID가 속한 그룹을 확인하십시오.
그룹
docker
나열된 그룹이 표시되지 않으면 먼저 이 명령을 실행하세요.
sudo 그룹도커 추가
sudo usermod -aG docker $USER
이제 로그아웃했다가 다시 로그인해야 합니다(원격 SSH 서버로 인해 이것이 가능하지 않은 경우 동일한 서버에 대해 SSH를 사용하여 새 터미널을 엽니다).
달리기
sudo systemctl 재시작 도커
이제 다시 확인해 보세요 groups
. 사용자 ID에 docker
그룹이 포함되어 있는지 확인해야 합니다. 그렇지 않은 경우 먼저 이 문제를 해결하십시오. 그런 다음 다음을 실행하십시오.
sudo docker run --rm --gpus 모든 nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi
nvidia-smi
지금은 다음 장소에 있어야 합니다 .docker
이 링크에서 애플리케이션에 사용할 적절한 Docker 버전과 올바른 nvidia-driver 버전 및 ubuntu 버전을 선택하세요.https://hub.docker.com/r/nvidia/cuda/tags