본문 바로가기
인공지능/MLOps

[docker] docker GPU 설정

by judy@ 2022. 10. 23.

예전 글들을 보면 docker container에서 gpu 를 사용하기 위해서는 nvidia-docker를 새로 설치해야된다고 합니다. 하지만, docker 19.*.* 이후부터는 docker 자체에서도 gpu를 지원하게 되었습니다. 따라서 현 시점에서 접할 수 있는 대부분의 docker는 nvidia-docker의 설치 없이, nvidia-container-runtime의 설치와 docker 재실행만으로 gpu 인식 및 활용이 가능합니다.

 

Prerequisites:

  • docker (me: 20.10.20)
  • nvidia-driver (nvidia-smi 입력 시, gpu 인식이 되어야 함, me: 470.63.01)

설정 방법

1. nvidia-container-runtime 설치

$ apt-get install nvidia-container-runtime

2. 설치가 잘 되었는지 확인

 which nvidia-container-runtime-hook

3. docker restart

재실행하지 않으면, gpu가 인식되지 않음.

sudo systemctl restart docker

4. 확인

gpu의 인식은 다음과 같은 명령어를 통해 확인할 수 있음.

(해석: ubuntu container를 생성하여 모든 gpu를 사용한다는 옵션을 준 뒤, nvidia-smi 실행 시 gpu가 인식되는지 확인하는 방법)

$ docker run -it --rm --gpus all ubuntu nvidia-smi
Fri Oct 21 09:00:42 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.63.01    Driver Version: 470.63.01    CUDA Version: 11.4     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:3B:00.0 Off |                  N/A |
|  0%   32C    P8    20W / 260W |      5MiB / 11019MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   1  NVIDIA GeForce ...  Off  | 00000000:5E:00.0 Off |                  N/A |
|  0%   31C    P8     4W / 260W |      5MiB / 11019MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   2  NVIDIA GeForce ...  Off  | 00000000:86:00.0 Off |                  N/A |
|  0%   32C    P8    10W / 260W |      5MiB / 11019MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   3  NVIDIA GeForce ...  Off  | 00000000:AF:00.0  On |                  N/A |
|  0%   32C    P8    15W / 260W |    159MiB / 11011MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
+-----------------------------------------------------------------------------+

 

참고: https://docs.docker.com/config/containers/resource_constraints/#gpu

반응형