본문 바로가기

Technology

[Docker] Nvidia-docker VS docker run --gpus all

728x90
반응형

nvidia-docker logo

GPU를 활용가능한 도커 컨테이너들을 관리하기 위해 nvidia가 만든 nvidia-docker가 명령어가 기존의 docker 커맨드에 통합되어 가는 것 같다.

기존에 cpu 버전은 docker 명령어로 gpu버전은 nvidia-docker 명령어를 사용했는데 최근 (2019년 11월 현재 기준) 다시 서버를 세팅하면서 보니 docker 버전에 따라 다르지만 점차 docker 명령어의 태그 표현으로 사용할 수 있게 바뀌었다. 

docker를 설치하고 나서 nvidia-docker를 설치하고 나서 보니 nvidia-docker 명령어가 아예 없어서 처음엔 설치가 잘못된 것을 의심했는데 그게 아니었다.

 

<예시>

1. Starting a GPU enabled CUDA container; using --gpus

$ docker run --rm --gpus all nvidia/cuda nvidia-smi

<출처> docs.nvidia.com/datacenter/cloud-native/container-toolkit/user-guide.html

 

User Guide — NVIDIA Cloud Native Technologies documentation

GPUs can be specified to the Docker CLI using either the --gpus option starting with Docker 19.03 or using the environment variable NVIDIA_VISIBLE_DEVICES. This variable controls which GPUs will be made accessible inside the container. Note When using the

docs.nvidia.com

 

GPU 옵션

1. GPU 모두 사용하기

  • --gpus 옵션에 all

docker run --gpus all [container_name]

2. GPU 지정해서 사용하기

  • 따옴표 안에 쌍따옴표로 되어 있음에 유의
  • device 번호는 0부터 시작한다.
  • device 번호는 nvidia-smi에서 보이는 gpu 순서와 동일하다.

docker run --gpus '"device=0"' [container_name]

3. GPU 여러개 지정해서 사용하기

  • device 번호를 콤마로 구분해서 여러개 지정할 수 있다.

docker run --gpus '"device=0,1"' [container_name]

728x90
반응형

'Technology' 카테고리의 다른 글

[RabbitMQ] EC2에 RabbitMQ 서버 만들기  (0) 2023.05.04
[Ubuntu] apt update && apt upgrade  (0) 2023.05.04
[SQL] 속성(Attribute)의 이해  (0) 2023.05.04
[Go] for, range 구문  (0) 2023.05.04
[Git] .gitignore 와 .gitattributes 차이점  (0) 2023.04.29