Deep Learning용 Workstation 구축 기록 그 4(nVidia Docker의 인스톨)



그 3 에서 Fedora25 및 CUDA 설치가 완료되었습니다.
드디어 Deep Learning을 시작하고 싶다! 그렇다는 것을 알 수 있지만, 그 전에 Docker와 nvidia-docker를 설치합시다.

Docker 컨테이너에서 작업을 수행해야 하는 세 가지 이유


  • 호스트 환경이 더러워지지 않음
  • 이전의 환경을 남긴 채로 새로운 환경을 구축할 수 있다
  • Docker는 오버 헤드가 거의 없습니다.

    Deep Learning은 아직 새로운 기술이며 (정평은 있지만) 시든 방법이라는 것이 없습니다.
    앞으로도 다양한 수법이 나올 것이며, 정답이라는 방법도 아직 없는 것이 현상입니다.
    뭔가 환경을 바꾸고 싶었을 때, Docker 컨테이너로 새롭게 구축하는 것으로 「이전의 환경이 남아 있었기 때문에 안정하지 않는다」라고 하는 일이 없어집니다.
    또, 「새로운 환경을 시험해 보았지만 역시 전의 쪽이 좋았다」가 되었을 때도 절환을 비교적 간단하게 할 수 있습니다.

    그렇다면 ESXi 또는 VirtualBox에서도 좋습니까?



    ESXi나 VirtualBox에서도 GPU를 패스 스루 할 수 있으면 문제없이 사용할 수 있다고 생각합니다.
    하지만 오버헤드가 Docker에 비해 높은 일이나, "한 번에 하나의 가상 머신 밖에 GPU를 사용할 수 있는 것"이 ​​단점이 됩니다.

    호스트 직접 쪽이 오버헤드는 적다!


  • Docker는 학습 비용을 증가시킵니다
  • CUDA 학습에 전력 투구하고 싶다

  • 제발 호스트에서 직접 사용하십시오.
    그 쪽이 제일 성능을 발휘할 수 있는 것은 틀림없고, 우선은 해 본다는 것은 무엇보다 중요합니다.
    KickStart를 사용하면 거기까지 재구축하는 번거로움이 없다고 생각합니다.
    그래도 Docker도 재미있을 것 같다면,이 기사가 뭔가 도움이되면 다행입니다.

    Docker 설치



    Docker CE 설치



    공식 사이트 와 같이 실행하면 됩니다.
    특히 달리 명시하지 않는 한 모두 root로 실행합니다.

    기존 Docker 제거
    dnf remove docker docker-common container-selinux docker-selinux docker-engine
    

    리포지토리 설치
    dnf install dnf-plugins-core
    dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
    dnf config-manager --set-enabled docker-ce-edge
    

    Docker CE (Comunity Edition) 설치
    dnf install docker-ce
    

    Docker Compose 설치



    업데이트에 쉽게 대응하기 위해 pip를 사용하여 설치합니다.

    pip3 업데이트
    pip3 install -U pip
    

    docker-compose 설치
    pip3 install docker-compose
    

    일반 사용자의 Docker 이용 등록



    Docker는 모든 프로세스가 루트로 실행됩니다.
    따라서 일반적으로 일반 사용자는 실행할 수 없습니다.
    일반 사용자에게 Docker 실행 권한을 부여하려면 다음을 수행합니다.
    usermod -aG docker <ユーザー名>
    

    nVidia Docker 설치



    여기 의 CentOS 절차에 따라 설치합니다.
    wget -P /tmp https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.1/nvidia-docker-1.0.1-1.x86_64.rpm
    rpm -i /tmp/nvidia-docker*.rpm && rm /tmp/nvidia-docker*.rpm
    

    systemd 수정


    systemctl edit nvidia-docker
    
    

    다음을 추가합니다.

    [서비스]
    ExecStart=
    ExecStart=/usr/bin/nvidia-docker-plugin -s $SOCK_DIR -d/usr/local/nvidia

    드라이버 배포 디렉토리 만들기


    mkdir -p /usr/local/nvidia
    chown -R nvidia-docker. /use/local/nvidia
    

    실행 테스트



    Docker를 실행하려는 사용자로 다음을 수행합니다.
    nvidia-docker run --rm nvidia/cuda nvidia-smi
    

    아래와 같은 표시가 나오면 완료입니다.
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 381.22                 Driver Version: 381.22                    |
    |-------------------------------+----------------------+----------------------+
    | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
    |===============================+======================+======================|
    |   0  GeForce GTX 108...  Off  | 0000:05:00.0      On |                  N/A |
    | 23%   27C    P8    10W / 250W |    223MiB / 11169MiB |      0%      Default |
    +-------------------------------+----------------------+----------------------+
    |   1  GeForce GTX 108...  Off  | 0000:06:00.0     Off |                  N/A |
    | 23%   30C    P8     8W / 250W |    138MiB / 11172MiB |      0%      Default |
    +-------------------------------+----------------------+----------------------+
    |   2  GeForce GTX 108...  Off  | 0000:09:00.0     Off |                  N/A |
    | 23%   27C    P8     9W / 250W |    138MiB / 11172MiB |      0%      Default |
    +-------------------------------+----------------------+----------------------+
    |   3  GeForce GTX 108...  Off  | 0000:0A:00.0     Off |                  N/A |
    | 23%   31C    P8     8W / 250W |    138MiB / 11172MiB |      0%      Default |
    +-------------------------------+----------------------+----------------------+
    
    +-----------------------------------------------------------------------------+
    | Processes:                                                       GPU Memory |
    |  GPU       PID  Type  Process name                               Usage      |
    |=============================================================================|
    +-----------------------------------------------------------------------------+
    

    좋은 웹페이지 즐겨찾기