MJay

Nvidia-Docker 정리(나름) 본문

Cloud Computing/Docker

Nvidia-Docker 정리(나름)

MJSon 2017. 6. 2. 16:44

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' 카테고리의 다른 글

Nvidia-Docker 정리(나름)  (0) 2017.07.14
Ubuntu-1604 with CUDA & CuDNN Dockerfile  (0) 2017.06.02
Docker 특강 Day 2 명렁어  (0) 2017.02.17
Virtualization vs Containerization  (0) 2017.02.17
Docker 특강 Day 1  (1) 2017.02.17