Linux 환경 위에 그대로 GPU를 이용하고자 한다면면 여러가지 드라이브의 설치 및 설정이 복잡하므로, Docker을 사용하는 방법을 추천할 수 있다. 포스팅의 전반적인 순서는 다음과 같다.
- NVIDIA driver의 설치
- Docker의 설치
- NVIDIA container toolkit의 설치
- 임의의 컨테이너를 생성하여 확인
NVIDIA driver의 설치
제일 먼저 NVIDIA 드라이브가 설치되어 있는지 확인하자.
$ nvidia-smi
만약 설치되어 있는 경우, 삭제 후 재설치하고 싶은 경우에만 아래의 커맨드로 삭제한다.
$ sudo apt-get --purge remove nvidia-*
$ sudo apt autoremove
리포지토리를 추가한다.
$ sudo add-apt-repository ppa:graphics-drivers/ppa
아래의 커맨드로 설치 가능한 드라이브를 확인할 수 있다.
$ ubuntu-drivers devices
위 커맨드로 확인한 드라이브중 설치하고 싶은 것을 골라서 설치한다. 이번에는 450을 설치했다.
$ sudo apt-get install nvidia-driver-450
OS의 재실행
$ sudo reboot
Docker의 설치
설치 가능한 패키지의 목록을 갱신하자.
$ sudo apt-get update
전제 소프트웨어를 설치하자.
$ sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
Docker의 공식 GPG공개키를 설치하자.
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
공개키의 핑거프린트를 확인해보자. 여기서 0EBFCD88는 키 ID이다.
$ sudo apt-key fingerprint 0EBFCD88
pub rsa4096 2017-02-22 [SCEA]
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid [ unknown] Docker Release (CE deb) <docker@docker.com>
sub rsa4096 2017-02-22 [S]
repository를 추가하자.
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
설치가능한 패키지 목록을 다시 한 번 더 갱신하자.
$ sudo apt-get update
Docker CE를 설치하자.
$ sudo apt-get install -y docker-ce
이 상태로 계속 docker을 이용하면 매번 sudo를 붙여서 커맨드를 실행해야하므로, sudo를 붙이지 않고 docker 커맨드를 사용할 수 있도록 아래의 일련의 커맨드를 적용하자.
# docker그룹 정보 표시
$ getent group docker
# Docker그룹에 유저를 추가
$ sudo gpasswd -a [username] docker
# 권한을 부여
$ sudo chgrp docker /var/run/docker.sock
# 추가됐는지 확인
$ id [username]
# OS를 재실행
$ sudo reboot
sudo없이 docker 커맨드를 사용가능하지 확인해보자.
$ docker ps
NVIDIA container toolkit의 설치
설치하자.
$ 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
$ sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
$ sudo systemctl restart docker
잘 설치됐는지 아래의 커맨드로 확인하자.
$ nvidia-container-cli info
에러 메시가 출력되지 않았다면 문제없이 설치된 것이다.
임의의 컨테이너를 생성하여 확인
임의의 nvidia 이미지를 pull하자.
$ docker pull nvidia/cuda:10.0-cudnn7-devel-ubuntu18.04
docker상에 NVIDIA 드라이브가 인식되어 있는지 확인하기 위해 아래의 커맨드를 실행해보자.
GPU정보가 나온다면 OK이다.
$ docker run --gpus all nvidia/cuda:10.0-cudnn7-devel-ubuntu18.04 nvidia-smi
참고자료
'IT > 기초 지식' 카테고리의 다른 글
[Docker/Linux] Docker상의 Volume에서 permission denied 에러가 발생할 때 해결법 (0) | 2022.02.10 |
---|---|
[AWS] 기존의 EC2 인스턴스에 새로운 EBS 연결(mount)하기 (2) | 2022.02.09 |
[AWS/Linux] AWS EC2 인스턴스에 Ubuntu 데스크톱 환경 만들기 (0) | 2022.02.07 |
[bat] Windows의 배치 파일(*.bat) 작성법 (0) | 2022.02.04 |
[Docker] docker-compose 커맨드 정리 (0) | 2022.02.02 |