도커에서 컨테이너를 띄우면 현재 호스트와 공유되지 않기 때문에 GPU 사용이 불가하다!
하지만 GPU를 사용하여 모델 inference를 해야하기 때문에,
호스트와 컨테이너를 연결하여 호스트 GPU 사용을 가능하게 해주는 Nvidia-Docker 설치는 필수다
공식 문서는 여기
Nvidia-Docker에서 지원하는 리눅스 목록
도커가 잘 돌아간다는 가정하에 아래 순서대로 설치를 하면 된다
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"' ~
끝!
'Dev' 카테고리의 다른 글
[Linux] 파일 해시(hash) 값 추출하기 (0) | 2023.07.17 |
---|---|
[Linux] requirements.txt 생성하기 (0) | 2023.06.05 |
[Linux] MAR 파일 생성하기 - 도커에서 TorchServe 모델 배포 (2) (0) | 2023.05.31 |
[Linux] Docker 설치하기 - 도커에서 TorchServe 모델 배포 (1) (0) | 2023.05.22 |
[Linux] Ubuntu 22.04 원격 리눅스 서버에서 파일 또는 폴더 가져오기 (0) | 2023.05.10 |