Host 기준 사양
RTX A6000 (Ampere Arch)
Nvidia driver 470.xx
Ubuntu 20.04 LTS
https://docs.docker.com/engine/install/ubuntu/
NVIDIA Container Toolkit은 GPU accelerated Docker container를 구축하고 실행 할 수 있다. 즉 NVIDIA GPU를 활용할 수 있도록 컨테이너를 자동으로 구성해주는 다양한 요소를 포함하고 있다.
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html
https://github.com/NVIDIA/nvidia-docker
기본적으로 적절한 Linux kernel의 버전의 OS와 Nvidia driver는 설치되어 있다고 가정한다.
sudo apt-get remove docker docker-engine docker.io containerd runc
if there is docker-ce, ..
sudo apt-get remove docker-ce
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
특정 버전을 설치 하고자 한다면 아래와 같이 버전을 확인하고 버전을 지정해서 설치 한다.
apt-cache madison docker-ce # [print example] # docker-ce | 5:20.10.12~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages # docker-ce | 5:20.10.11~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages # docker-ce | 5:20.10.10~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages # ...
https://docs.docker.com/engine/install/linux-postinstall/
# Create the docker group.
sudo groupadd docker
# Add your user to the docker group.
sudo usermod -aG docker $USER
sudo usermod -aG docker {other user}
# reboot or type below for activate new group
newgrp docker
docker run hello-world
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
&& curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \
&& curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
sudo apt-get install -y nvidia-docker2
sudo systemctl restart docker
sudo docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.86 Driver Version: 470.86 CUDA Version: 11.4 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA RTX A6000 Off | 00000000:0B:00.0 Off | Off |
| 30% 40C P8 24W / 300W | 17MiB / 48685MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
| 1 NVIDIA RTX A6000 Off | 00000000:0C:00.0 Off | Off |
| 30% 36C P8 20W / 300W | 5MiB / 48685MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
+-----------------------------------------------------------------------------+
tensorflow와 pytorch 버전 정보와 compatibility, 그리고 사용방법은 다음글에서 자세히 다룬다.
https://hub.docker.com/r/tensorflow/tensorflow/
다음과 같이 원하는 버전의 tensoflow image를 받아서 사용하면 된다.
docker pull tensorflow/tensorflow:2.7.0-gpu-jupyter
https://hub.docker.com/r/pytorch/pytorch
다음과 같이 원하는 버전의 pytorch image를 받아서 사용하면 된다. pytorch에서 제공해주는 이미지는 기본적으로 jupyter notebook을 제공하고 있지 않으나 anaconda를 기반으로 동작하고 있기 때문에 conda install -c conda-forge jupyterlab
을 통해 쉽게 설치 하고 사용 할 수 있다.
docker pull pytorch/pytorch:1.10.0-cuda11.3-cudnn8-runtime
(GPU용 reference docker file을 만들고 관리하는 방법 - 작성중)