본문 바로가기
MLOps

nvidia-docker 설치 및 컨테이너 띄우기 with GPU

by 볼록티 2022. 3. 31.
728x90
반응형

 

 GPU를 사용하는 딥러닝 모델이 학습하는 환경을 이미지로 빌드하여 컨테이너 내에서 호스트에서 사용하는 GPU가 작동하는지 확인하는 것이 목표이다.

 

학습환경 

OS: Ubuntu 20.04

Nvidia driver: 470

 

모델

BERT classfication

 

우분투, 엔비디아 드라이버가 설치되어 있는 상태로 시작했다.

 

1. docker 설치

  -업데이트 및 패키지 설치

$ sudo apt update
$ sudo apt-get install -y ca-certificates \ 
    curl \
    software-properties-common \
    apt-transport-https \
    gnupg \
    lsb-release

  - GPG키와 저장소 추가

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

 

  - 도커 엔진 설치

$ sudo apt update
$ sudo apt install docker-ce docker-ce-cli containerd.io

  - 도커 버전 확인

docker --version

 

 

 

2. nvidia-docker 설치

 

  - GPG키와 저장소 추가

$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
   && curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \
   && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

 

  - nvidia-docker 설치

$ sudo apt-get update
$ sudo apt-get install -y nvidia-docker2

 

- docker 재시작

sudo systemctl restart docker

 주의) restart 명령어로 docker를 재실행하면 기존의 실행중이던 컨테이너들이 stop 되게 된다. 그래서 기존의 컨테이너 실행시 --restart-always 로 실행된 컨테이너는 자동으로 실행되지만 그렇지 않은 컨테이너는 수동으로 재실행시켜 주어야 한다.

 

 

 

 

3. docker 명령어로 gpu 사용가능하게 컨테이너 띄우기

 

 docker에서 컨테이너를 띄우면 현재 호스트와 공유가 되지 않아 GPU 사용이 불가능하다. 그래서 호스트와 컨테이너를 연결해 호스트의 GPU 사용을 가능하게 해주는 것이 nvidia-docker 이다.

 

 앞선 1, 2의 설치가 완료되었다면 아래의 명령어로 컨테이너에서 nvidia-smi 명령어가 작동하여 출력됨을 확인한다.

docker run --rm --gpus all ubuntu:18.04 nvidia-smi

 

 

 

 

 

728x90
반응형

'MLOps' 카테고리의 다른 글

MLOps의 필요성..  (0) 2022.06.15
딥러닝 모델 컨테이너 띄우기(wt. GPU)  (0) 2022.03.31
GPU 사용 환경 세팅  (0) 2022.03.26
MLOps를 위한 잡동사니  (0) 2022.03.26
도커 기초  (0) 2022.03.21

댓글