도커로 Nvidia GPU 사용하기

Key Kim
Neuralworks
Published in
3 min readApr 11, 2021

뉴럴웍스는 Python 기반의 다양한 딥러닝 모델을 제공하고 있습니다.

딥러닝 모델의 효율적인 학습을 위해서 Nvidia의 cuda 플랫폼을 사용하고 있는데요,

이번 포스팅에서는 Nvidia GPU를 사용할 수 있는 환경을 도커 컨테이너 안에 구축해보겠습니다.

+ 2021.07.19 포스팅에서 다루는 컨테이너 분리 방식은 Stateful합니다. (개인적으로 안티패턴인 것 같습니다) 멀티 스테이징을 통해 컨테이너를 하나로 압축하여 Stateless하게 배포하는 방식이 더 나을 수 있으니, 아래에서 다루는 볼륨을 활용한 컨테이너 공유 방식은 참고만 해주세요

만들어볼 전체적인 내용

이 포스팅에서 다루는 모든 내용은 아래 레포지토리에 있으니 참고해주시기 바랍니다 :)

먼저 Cuda runtime이 설치될 도커 이미지를 만들어줍니다. 컨테이너가 실행되면, 소스코드를 mount한 볼륨인 /usr/src/app 에서 app.py를 실행시킵니다.

그 다음, 소스코드만을 담은 도커 이미지를 만들어줍니다.

위 도커 이미지에 들어갈 소스코드 app.py 입니다.

텐서플로우에서 제공하는 GPU test 함수를 호출해줍니다.

python 패키지들이 설치될 도커 이미지를 만들어줍니다.

위 도커 파일에서 사용한 requirements.txt 입니다.

마지막으로 지금까지 작성한 도커 이미지를 실행시킬 수 있는 docker-compose 파일을 만들어줍니다.

docker-compose를 사용해 도커 이미지들을 빌드하고, 컨테이너를 실행합니다.

$ docker-compose build
$ docker-compose up
정상적으로 gpu가 로딩된 것을 볼 수 있습니다.

감사합니다 :)

Reference

--

--