MJay
Nvidia-Docker 정리(나름) 본문
1 nvidia-docker라는건 다른 의미로
docker run --volume-driver=nvidia-docker --volume=nvidia_driver_361.48:/usr/local/nvidia랑 같다
2 일단 옵션은
sudo NV_GPU="0,1" nvidia-docker run -it --name test1 kmubigdata/ubuntu-cuda-cudnn /bin/bash
NV_GPU를 통해 Graphic Card를 개수만큼 조절해줄수있다. GPU identifer에 맞게 조절해줄수있다고 한다.
3 nvidia-docker를 통해 run이랑 create만 가능한다.
create는 하나의 volume을 만든다고 보면된다.
4 sudo docker volume ls을 하면
DRIVER - nvidia-docker
VOLUME_NAME nvidia_driver_375.26 이렇게 뜬다
Volume_Name은 아래 source의 위치를 hard link로 만들어준거라고 생각하면 된다.
Source -> /var/lib/nvidia/docker/volumes/nvidia_driver/375.26
Destination -> /usr/local/nvidia
Nvidia-Driver에 대한 설명
Nvidia Driver is composed of multiple kernel module
-> The Nvidia driver provides a coolection of user-level driver libraries that enable your application to communicate with the kernel modules and therefore the GPU devices
-> Nvidia-driver는 user-level driver를 설치해준다
-> Container 안에있는 driver libraries 은 version of the kernel module에 묶여 있고 모든 컨테이너는 host에 있는 kernel module을 share한다.
그래서 libraries 와 module이 version 이 맞지 않으면 error가 뜬다
- Nvidia-Docker는 host에 있는 ldacahce file을 분석한다.
lacache file을 분석하여 Host안에 있는 /etc/ld.so.cache을 분석하여 Host에 설치되어있는 library 찾는다
(물론 여기서 blacklist을 통해 특정 library는 예외로 둘수 있다.)
그리고 Host에 있는 LIbraries는 너무 많이 흩어져 있어서
Docker Volume을 만든다. 그게 nvidia-docker 이다.
hard link를 만들어서 libraries가 어디있는지 알려준다.
nvidia-docker-plugin만 실행하고있으면 nvidia-docker는 잘 작동된다고 한다.
이렇게 Volume을 만들어서 Container에서 연결해주면 된다.
'Cloud Computing > Docker' 카테고리의 다른 글
Docker 삭제 관련 팁 (0) | 2017.07.19 |
---|---|
Jupyter Notebook(스크랩) (1) | 2017.07.14 |
Ubuntu-1604 with CUDA & CuDNN Dockerfile (0) | 2017.06.02 |
Nvidia-Docker 정리(나름) (0) | 2017.06.02 |
Docker 특강 Day 2 명렁어 (0) | 2017.02.17 |