뭐 해요?
3076 단어 Dockernvidia-docker
vidia-docker의wiki에 쓰여 있어요.
은비디아 도커랑?
nvidia-docker를 사용하면 docker 용기 내부에서 NVIDIA의 GPU를 간단하게 사용할 수 있습니다.$ nvidia-docker run --rm nvidia/cuda nvidia-smi
nvidia-docker를 사용하면 GPU의 드라이버와 CUDA/cuDN의 관계를 해소할 수 있습니다.그 결과 한 호스트에서 여러 개의 CUDA/cuDN 버전의 용기를 이동시켜 CUDA/cuDN을 사용하는 용기의 휴대성을 높일 수 있다.
어떻게 움직였어?
일반적으로 nvidia-docker는 실행할 컨테이너에서 GPU에 액세스할 수 있도록 Docker Engine API에 다양한 매개 변수를 지정하여 컨테이너를 시작합니다.HTTP의 서버는 GPU와 관련된 정보를 nvidia-docker-plugen이라고 부르며 GPU와 관련된 정보를 얻는다.
따라서 nvidia-docker 명령을 거치지 않아도 일반적인 docker 명령에서 GPU를 이용한 docker 용기를 이동할 수 있다.(volume plugen 기능도 제공한 것 같아서 설치 자체가 필요합니다.)
옵션 추가
nvidia-docker를 통해 명령을 실행할 때의 처리 프로세스$ nvidia-docker run --rm nvidia/cuda nvidia-smi
$ nvidia-docker run --rm nvidia/cuda nvidia-smi
일반적으로 nvidia-docker는 실행할 컨테이너에서 GPU에 액세스할 수 있도록 Docker Engine API에 다양한 매개 변수를 지정하여 컨테이너를 시작합니다.HTTP의 서버는 GPU와 관련된 정보를 nvidia-docker-plugen이라고 부르며 GPU와 관련된 정보를 얻는다.
따라서 nvidia-docker 명령을 거치지 않아도 일반적인 docker 명령에서 GPU를 이용한 docker 용기를 이동할 수 있다.(volume plugen 기능도 제공한 것 같아서 설치 자체가 필요합니다.)
옵션 추가
nvidia-docker를 통해 명령을 실행할 때의 처리 프로세스
$ nvidia-docker run --rm nvidia/cuda nvidia-smi
nvidia-docker-plugin
REST API
다음과 같은 끝점이 있습니다.
GET /v1.0/gpu/info, /v1.0/gpu/info/json
GET /v1.0/gpu/status, /v1.0/gpu/status/json
GET /v1.0/docker/cli, /v1.0/docker/cli/json
GET /v1.0/mesos/cli
cli의 API를 칠 때 도커에게 직접 맡길 수 있는 옵션도 있는 것 같습니다.$ curl -s http://localhost:3476/docker/cli
--device=/dev/nvidiactl --device=/dev/nvidia-uvm --device=/dev/nvidia3 --device=/dev/nvidia2 --device=/dev/nvidia1 --device=/dev/nvidia0 --volume-driver=nvidia-docker --volume=nvidia_driver_361.48:/usr/local/nvidia:ro
nvidia-docker는 다음 옵션을 docker 엔진에 넘겼습니다.volume/volume-driver
호스트의 nvidia driver도 컨테이너 옆에 마운트합니다
device
호스트 측면
/dev/nvidia*
에 있는 장치 파일을 컨테이너 측면에 추가Docker 이미지 유효성 검사
nvidia-docker는 docker 엔진의 API를 두드리기 전에 GPU 옵션을 목표 용기에 전달해야 하는지, 호스트에서 용기를 시작할 수 있는지 확인하고 있습니다.
GPU 사용 컨테이너 검증
원래 nvidia-docker 명령을 통해 실행될 docker 용기에서 GPU를 사용하지 않으려면 nvidia driver나 device를 설치할 필요가 없습니다.nvidia-docker는 Docker 이미지
com.nvidia.volumes.needed
라벨을 보고 그 녀석이 GPU를 사용하는 용기라는 것을 조사했다.컨테이너가 호스트에서 실행될 수 있는지 확인
CUDA의 모든 버전에는 가장 낮은 nvidia driver 버전이 있습니다.
nvidia-docker가 docker 용기를 시작할 때 호스트 옆에 있는 nvidia driver 버전을 보고 시작하려는 docker 이미지에 포함된 CUDA 버전이 이동했는지 조사합니다. 불합리할 때 명령을 실행할 때 오류가 발생하는 것 같습니다.
계승
nvidia/cuda
된 Docker 이미지에 com.nvidia.cuda.version
라는 라벨이 붙어 있어 docker 이미지에 설치된 CUDA의 버전을 알 수 있을 것 같습니다.총결산
대단하다.
Reference
이 문제에 관하여(뭐 해요?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/toshitanian/items/8aaca6b867099ebd442d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(뭐 해요?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/toshitanian/items/8aaca6b867099ebd442d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)