들어가며
- Docker에서 container가 GPU 자원을 사용하기 위해서는, nvidia-docker2 설치가 필요합니다.
- 그렇다면, nvidia-docker2를 설치한 후 어떤 설정을 해주어야 container가 GPU 자원을 사용할 수 있는지 알아보겠습니다.
nvidia-container-runtime
예전 docker는 GPU 자원을 사용하기 위해 nvidia-docker 명령어 설치가 따로 필요했습니다.
그러나 현재는 별도의 명령어를 설치하지 않고 nvidia-container-runtime 패키지를 설치하는 것으로 docker 자체 명령어로 GPU 자원을 사용할 수 있게 되었습니다.
GPU자원을 사용하기 위해서는 docker 커맨드 라인에 옵션을 추가해 주어야 합니다.
docker run -it --gpus all ubuntu nvidia-smi
위와 같이 실행하면 매번 --gpus 옵션을 붙여 사용하기 불편한 점이 있습니다.
따라서 docker의 daemon.json파일에 default runtime을 설정해 줄 수 있습니다.
docker default runtime
docker의 daemon.json파일은 아래 경로에서 확인할 수 있습니다.
cat /etc/docker/daemon.json { "log-opts": { "max-size": "10m", "max-file": "5" }, "data-root": "/k8s_images/docker", "storage-driver": "overlay2", "insecure-registries": ["hub.sparklingsoda.io:80", "devainexus:80"], "default-runtime": "nvidia", "runtimes": { "nvidia": { "path": "nvidia-container-runtime", "runtimeArgs": [] } }
위 파일에서 확인할 수 있듯이, default runtime을 nvidia-docker2 패키지의 nvidia runtime을 설정할 수 있습니다.
또한, nvidia runtime은 nvidia-container-runtime 패키지 라는 것을 명시해 주면 됩니다.
위 파일을 적용하고자 한다면, daemon을 다시 읽어들이면 됩니다.
systemctl daemon-reload
이제 docker의 설정을 확인해보면 default runtime이 nvidia로 설정되어 있음을 확인할 수 있습니다.
docker info | grep "Default Runtime" Default Runtime: nvidia
마무리
- docker container가 GPU 자원을 사용하게 하려면, 어떤 설정을 해주어야 하는지 알아보았습니다.
아티클이 유용했나요?
훌륭합니다!
피드백을 제공해 주셔서 감사합니다.
도움이 되지 못해 죄송합니다!
피드백을 제공해 주셔서 감사합니다.
피드백 전송
소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.