이번 포스팅에서는 도커 컨테이너에서 gpu를 사용하기 위한 초기 세팅법에 대해 알아보려고 합니다.
이때 로컬 pc에는 nvidia driver만 설치되어 있으면 됩니다.
이 글과 읽으면 좋은 글
1. 기존 설치되어 있는 도커 삭제
기존 버전과 충돌이 나면 문제가 생길 수 있기 때문에 깔끔하게 삭제해줍니다.
$ sudo apt-get remove docker docker-engine docker.io containerd runc
$ sudo rm -rf /var/lib/docker
$ sudo apt-get autoclean
$ sudo apt-get update
2. Docker ce 설치
docker ce 는 Community Edition의 약자로 개인이 사용할 수 있는 무료 버전입니다.
$ sudo apt install apt-transport-https ca-certificates curl software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
$ sudo apt update
$ apt-cache policy docker-ce
$ sudo systemctl status docker
3. sudo 없이 도커를 사용하고 싶을 때(선택사항)
기본적으로 도커 명령어를 기입할 때마다 sudo 명령어를 함께 작성해야 합니다.
이 부분이 귀찮으신 분은 아래 명령어 기입하시면 sudo 작성없이 작성이 가능합니다.
$ sudo usermod -aG docker ${USER}
$ su - ${USER}
$ id -nG
output:
4. nvidia 도커 설치
$ 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-container-toolkit
5. 사용방법
설치를 마치고 난 뒤 컨테이너를 run 할 때 3가지 방법 중 아무거나 사용하시면 됩니다.
1) docker run -it --gpus all 이미지명
2) docker run -it --runtime nvidia 이미지명
3) nvidia-docker run -it 이미지명
+ 추가
모델을 학습시킬때 간혹 memory가 부족하다는 에러를 만날 수 있습니다.
이때는 host pc 메모리를 가져와 사용해야 하는데요.
이를 위해 명령어에 --ipc host 를 추가해주면 됩니다.
이는 default로 리소스를 제한하는 도커의 제한을 풀어주는 역할을 합니다.
6. 예제 실습
https://hub.docker.com/r/pytorch/pytorch
예제에서는 pytorch/pytorch 이미지로 container를 만들어보겠습니다.
1) image pull
docker pull pytorch/pytorch
2) gpu 사용 가능하도록 container 실행
docker run -it --ipc host --gpus all pytorch/pytorch
3) gpu 사용 가능 여부 확인
(1) python 환경 진입
(2) torch cuda 사용 가능 여부 확인
import torch
print(torch.cuda.is_available()) # gpu 사용가능 확인 True or False
print(torch.cuda.device_count()) # 사용 가능 gpu 갯수 출력
True, 4 를 반환하는걸 보면 정상적으로 gpu가 동작하는걸 알 수 있습니다.
'리눅스' 카테고리의 다른 글
[docker] docker: Error response from daemon: failed to create shim task: OCI runtime create failed: 도커 에러 해결방법 (0) | 2022.12.13 |
---|---|
[Docker] 도커에서 주피터 노트북 원격 접속 방법 (1) | 2022.12.12 |
우분투 1> 2> 꺽쇠 무엇일까? (0) | 2022.12.07 |
리눅스 grep 사용법 (문자열 찾기) (0) | 2022.12.06 |
우분투 dev/nvme0n1p2 clean 부팅 오류 해결 방법 (0) | 2022.12.05 |
댓글