관련 포스팅
NVIDIA Container Toolkit
Docker 컨테이너 내에서도 NVIDIA GPU를 사용할 수 있도록 지원하는 도구
Installation
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
Configuration
`nvidia-ctk` 명령어로 default runtime으로 nvidia runtime이 설정되도록 한다.
sudo nvidia-ctk runtime configure --runtime=docker --set-as-default
해당 명령어는 `/etc/docker/daemon.json`을 아래와 같이 수정한다.
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"args": [],
"path": "nvidia-container-runtime"
}
}
}
Docker daemon 재시작
sudo systemctl restart docker
버전 확인
nvidia-container-toolkit --version
CUDA container 검증
`--gpus` 옵션으로 CUDA 컨테이너 실행
sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi
`NVIDIA_VISIBLE_DEVICES` 옵션으로 CUDA 컨테이너 실행
docker run --rm --runtime=nvidia \
-e NVIDIA_VISIBLE_DEVICES=all nvidia/cuda nvidia-smi
2개의 GPU를 사용할 때
docker run --rm --gpus 2 nvidia/cuda nvidia-smi
특정 GPU를 사용할 때
docker run --gpus '"device=1,2"' \
nvidia/cuda nvidia-smi --query-gpu=uuid --format=csv
또는
docker run --rm --runtime=nvidia \
-e NVIDIA_VISIBLE_DEVICES=1,2 \
nvidia/cuda nvidia-smi --query-gpu=uuid --format=csv
참고
Installing the NVIDIA Container Toolkit — NVIDIA Container Toolkit
Note These instructions should work for any Debian-derived distribution.
docs.nvidia.com
User Guide — container-toolkit 1.12.1 documentation
GPUs can be specified to the Docker CLI using either the --gpus option starting with Docker 19.03 or using the environment variable NVIDIA_VISIBLE_DEVICES. This variable controls which GPUs will be made accessible inside the container. Note When using the
docs.nvidia.com