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]
'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 |