카테고리 없음

Nvidia docker 사용법

hs_kim 2020. 3. 10. 19:12

 

1. nvidia-driver 설치

nvidia-smi 가 안먹힐 경우 nvidia-driver 설치가 필요. 아래 링크에서 2.1, 2.2 진행

https://docs.nvidia.com/ngc/ngc-titan-setup-guide/index.html#installing-nvidia-driver

 

2. Docker 설치 및 nvidia-docker 설치

아래 링크에서 3.1, 3.2 진행

https://docs.nvidia.com/ngc/ngc-titan-setup-guide/index.html#installing-docker-nv-docker

 

3. NGC 계정 생성 및 API 키 발급

아래 링크 따라서 3번, 4번 진행해서 API키까지 발급. API 키는 언제든 재발급 받을 수 있음.

https://docs.nvidia.com/ngc/ngc-getting-started-guide/index.html#account-signup

 

 

4. NGC API 인증

docker를 돌릴 서버 쉘창에서 다음을 입력

$ docker login nvcr.io

 

Username 에는  "$oauthtoken" 을 입력하고 Password에는 발급받은 API키를 붙여넣는다.

 

 

5. Image pull

원하는 컨테이너를 탐색하고 해당 페이지에 나와있는 pull 명령어를 입력하여 서버에 이미지를 다운받음.

https://ngc.nvidia.com/catalog/containers

 

아래 사진에 보이는 Tags를 들어가면 다른 버전의 이미지를 볼 수 있음. 다른 버전을 다운받으려면 pull 명령어의 콜론 뒤에 붙는 태그를 바꾸면 됨. e.g.) docker pull nvcr.io/nvidia/tensorflow:19.06-py3

 

6. 실행

GPU 사용을 활성화하면서 docker 이미지를 실행하기 위해서는 실행 커맨드 옵션을 넣어줘야함

 

sudo docker version 으로 Docker-CE 버전을 확인. sudo nvidia-docker version 으로 NVIDIA Docker 버전을 확인.

다음 세 가지 경우에 대해 컨테이너 실행 명령이 달라짐 (이 링크의 내용을 요약: https://docs.nvidia.com/ngc/ngc-titan-setup-guide/index.html#gpu-support)

 

1. Docker-ce 버전이 19.03 이상일 때

2. 1번이 아니면서, NVIDIA Docker 버전이 2.0 이상일 때

3. 1번이 아니면서, NVIDIA Docker 버전이 1.x 일 때

 

1번의 경우 다음의 명령어로 nvidia-container-toolkit 설치

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

실행할 때 다음과 같이 "--gpu" 옵션을 넣어주면 됨

$ docker run --gpus all ~~~

$ docker run --gpus "device=1,2"  ~~~

 

2번, 3번의 경우 다음과 같이 nvidia-docker로 실행

$ nvidia-docker run ~~~

$ nvidia-docker run -e NVIDIA_VISIBLE_DEVICES=1,2,3 ~~~

 

컨테이너가 실행된 후 nvidia-smi 명령어를 통해 GPU 목록이 올바르게 뜨는지 확인.

 

 

 

예시

아래는 docker 버전이 구버전일 때 실행방법. 

$ sudo nvidia-docker run -it -v /home/hskim/dockershare/:/workspace/dockershare/ --shm-size=64G --ulimit memlock=-1 --ulimit stack=-1 --ulimit core=-1 -p 16666:8888 -p 16667:8088 -e NVIDIA_VISIBLE_DEVICES=1 --name=ista_dev nvcr.io/nvidia/tensorflow:19.06-py3

 

참고) --shm-size, --ulimt ~~ 옵션은 Tensorflow 컨테이너 실행 시 뜨는 권장 옵션

 

 

아래는 docker가 19.03 버전 이상일 때 실행방법

$ sudo docker run -it --rm=True -v /home/hskim/dockershare/:/workspace/dockershare/ --shm-size=64G --ulimit memlock=-1 --ulimit stack=-1 --ulimit core=-1 --gpus '"device=5"' --name=gpu5 nvcr.io/nvidia/tensorflow:19.06-py3