컴퓨터/ML

docker에서 gpu 자원 활용하기(Nvidia)

OrehOnyah 2020. 1. 21. 10:16

분명 구버전 도커에서는 nvidia-docker라는 다른 버전의 도커를 사용해야 했던 걸로 알지만, 요즘은 그렇지 않은가보다.

우선 텐서플로우 도커 문서를 보겠다.

https://www.tensorflow.org/install/docker?hl=ko

 

Docker  |  TensorFlow

Docker는 컨테이너를 사용하여 TensorFlow 설치를 나머지 시스템에서 격리하는 가상 환경을 만듭니다. TensorFlow 프로그램은 호스트 시스템과 리소스를 공유(디렉터리 액세스, GPU 사용, 인터넷 연결 등)할 수 있는 이 가상 환경 내에서 실행됩니다. TensorFlow Docker 이미지는 각 출시에 대해 테스트되었습니다. Docker는 Linux에서 TensorFlow GPU 지원을 사용하는 가장 간편한 방법입니다. 호스트 시스템에 NV

www.tensorflow.org

텐서플로우 공식 사이트에서는 다음과 같은 명령어를 알려 준다.

docker run --runtime=nvidia -it tensorflow/tensorflow:latest-gpu bash

그러나 실행해 보면 다음과 같은 오류가 난다.

docker: Error response from daemon: Unknown runtime specified nvidia.

그래서 방법을 찾아본 결과,

https://github.com/NVIDIA/nvidia-docker

 

NVIDIA/nvidia-docker

Build and run Docker containers leveraging NVIDIA GPUs - NVIDIA/nvidia-docker

github.com

Nvidia 깃허브에 있는 nvidia-docker 리포지토리의 리드미 파일에 답이 있었다.

docker run --gpus all -it tensorflow/tensorflow:latest-gpu bash

위의 명령어는 오류 없이 잘 실행된다.

결과적으로 --runtime=nvidia 대신 --gpus all 을 사용하여 도커에서 텐서플로우 gpu버전을 사용할 수 있다.