설치환경
- OS: Ubuntu-22.04 LTS (WSL)
- CPU: Intel i9-9900k
- GPU: RTX 2080 8G
- RAM: 32G
- CUDA: 11.8
- cuDNN: v8.9.7
NVIDIA Container Toolkit
개념
- Nvidia Container Toolkit은 Docker 엔진 위에서 특정 버전의 CUDA Toolkit 만 실행하는 개념
- Host PC의 GPU 및 CUDA 드라이버를 사용하기 때문에 Host PC에는 Nvidia-Driver가 설치되어 있어야함
- 호스트 Nvidia Driver 버전에 따라 CUDA 버전을 다르게 실행할 수 있음
Docker 이미지 실행 시
--gpus all
옵션을 사용할 수 있게함
설치
apt repository에서 설치
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
컨테이너 설정 및 도커 재시작
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
설치확인
docker run --rm --gpus all nvidia/cuda:11.8.0-base-ubuntu20.04 nvidia-smi
NVIDIA-Docker
개념
아래 패키지들의 포함을 Nvidia-Docker라고 칭하며 위에서 부터 아래로 의존하는 형태 (nvidia-docker2를 설치하면 나머지가 모두 설치됨)
nvidia-docker2
- Docker 19.03 이상부터 지원 중단
- 권장되는 해결 방법은 docker 19.03으로 업데이트하고 nvidia-container-toolkit을 설치
- 하지만 —gpus 플래그를 지원하지 않는 시스템(e.g. Kubernetes with Docker 19.03) 을 사용할 경우 nvidia-docker2를 사용해야함
참고
- NVIDIA Container Toolkit 설치
- [Docker] NVIDIA Container Toolkit(NVIDIA Docker)의 동작원리
- What’s the difference between the lastest nvidia-docker and nvidia container runtime? · Issue #1268 · NVIDIA/nvidia-docker · GitHub
- nvidia-docker 와 nvidia container runtime의 차이