본문 바로가기

Dev

[Linux] Nvidia-Docker 설치하기 - 도커에서 TorchServe 모델 배포 (3)

도커에서 컨테이너를 띄우면 현재 호스트와 공유되지 않기 때문에 GPU 사용이 불가하다!

하지만 GPU를 사용하여 모델 inference를 해야하기 때문에,

호스트와 컨테이너를 연결하여 호스트 GPU 사용을 가능하게 해주는 Nvidia-Docker 설치는 필수다

 

공식 문서는 여기

 

Nvidia-Docker에서 지원하는 리눅스 목록

 

22.04도 지원한다

 

도커가 잘 돌아간다는 가정하에 아래 순서대로 설치를 하면 된다

 

0. 패키지 저장소 및 GPG 키 추가

 

distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
      && 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/$distribution/libnvidia-container.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

 

1. 패키지 리스팅 업데이트 후 nvidia-container-toolkit 설치

 

sudo apt-get update

sudo apt-get install -y nvidia-container-toolkit

 

2. NVIDIA Container Runtime 인식하게 도커 데몬 구성

 

sudo nvidia-ctk runtime configure --runtime=docker

 

3. 도커 재시작 및 확인

 

sudo systemctl restart docker

sudo docker run --rm --runtime=nvidia --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi

 

짜잔

 

이렇게 뜨면 성공

 

 


 

GPU 할당하기

 

모든 GPU 사용 : 

 

docker run -it --gpus all ~

 

원하는 GPU 할당 :

 

# NV_GPU
NV_GPU=0,1 nvidia-docker run -it ~

# NVIDIA_VISIBLE_DEVICE
docker run -it --runtime=nvidia -e NVIDIA_VISIBLE_DEVICE=0,1 ~

# --gpus
docker run -it --gpus '"device=0,1"' ~

 

 

끝!