Nvidia-docker 딥러닝 개발환경 구축

1 minute read

Nvidia driver 설치

  • nt800g5w-xd7s 모델의 삼성 노트북에 개발환경 구축
    • GPU model : GP107M [GeForce GTX 1050 Mobile]
  • Ubuntu 18.04 64bit 설치
  • 기존에 설치된 Nvidia 드라이버 삭제가 필요할 경우 아래와 같은 명령어로 삭제
    $ sudo apt-get remove --purge nvidia-*
    
  • 우분투 Nvidia Driver는 아래와 같이 설치 권장
    $ ubuntu-drivers devices
    $ ubuntu-drivers autoinstall
    
  • 아래 드라이버가 설치됨
    driver   : nvidia-driver-418 - third-party free recommended
    

Nvidia-docker 설치

  1. Installing Docker Engine

    • 아래와 같이 Docker 설치
      $ sudo wget -qO- https://get.docker.com/ | sh
      $ sudo usermod -aG docker $USER
      
      • 권한 설정 반영을 위해 리부팅 (필수 인가?)
    • hello-world 이미지로 정상 동작 확인
      $ docker run hello-world
      
  2. Installing Docker Compose

    • docker-compose를 활용할 경우 설치 진행
      $ sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
      $ sudo chmod +x /usr/local/bin/docker-compose
      
    • 정상 설치 확인
      $ sudo docker-compose --version
      
  3. Installing Nvidia-docker

    • Nvidia docker 설치
      $ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
      sudo apt-key add -distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
      $ curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
      sudo tee /etc/apt/sources.list.d/nvidia-docker.list
      $ sudo apt-get update
      $ sudo apt-get install nvidia-docker2 
      $ sudo pkill -SIGHUP dockerd
      
    • nvidia-docker 동작 확인
      $ docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
      혹은
      $ docker run --runtime=nvidia --rm nvidia/cuda:9.0-base nvidia-smi
      
  4. Tensorflow GPU 테스트

    • dockerhub에서 tensorflow tag 확인
      • tag 예시: latest-gpu-py3-jupyter
    • $ docker run –runtime=nvidia -it -p 8888:8888 tensorflow/tensorflow:latest-gpu-py3-jupyter
      • 설치된 nvidia-XXX 버전 호환성에 따라 실행 에러가 발생할 수 있음
      • 삼성 노트북에서는 Tensorflow 1.12 gpu 버전이 정상 동작하였으나 2080 Ti에서 커널 Restart 이슈 발생
      • 2080 Ti와 삼성 노트북 둘 다에서 1.13 gpu 버전은 호환성 문제 발생하지 않음

Dockerfile을 이용한 나만의 이미지 만들기

  • Dockerfile을 구성하고 같은 디렉터리에서 아래와 같은 명령어로 Docker 이미지 생성
    $ docker build -t dkyos-ml . 
    
  • Dockerfile 예시
FROM tensorflow/tensorflow:1.13.1-gpu-py3-jupyter
MAINTAINER DongKyun Yun <dkyun77@gmail.com>
 
# install dependencies from debian packages
RUN apt-get update
RUN apt-get install --no-install-recommends -y \
    # install essentials
    build-essential \
    g++ \
    git \
    openssh-client \
    # install python
    python-dev \
    python-pip \
    python-setuptools \
    python-virtualenv \
    python-wheel \
    pkg-config \
    python-matplotlib \
    python3-tk \
    python-pillow \
    # requirements for numpy
    libopenblas-base \
    python-numpy \
    python-scipy \
    # requirements for keras
    python-h5py \
    python-yaml \
    python-pydot \
 && apt-get clean \
 && rm -rf /var/lib/apt/lists/*
 
# install dependencies from python packages
RUN pip --no-cache-dir install -U keras \
    lime \
    shap \
    eli5 \
    xgboost \
    gensim \
    pandas \
    scikit-learn \
    statsmodels \
    jupyter \
    seaborn \
    pandas_ml

Categories: ,

Updated: