Docker에서 GPU를 사용해야 하는 일이 생겼습니다.
하지만 기본적으로 docker에서는 gpu를 사용할 수 없습니다.
docker에서는 gpu를 사용하기 위해선 그냥 docker가 아닌, nvidia-dokcer를 사용하여야 합니다.
이글은 다음 순서로 작성하였습니다.
1) ubuntu에서 nvidia-driver 설치
2) nvidia-docker 설치 및 설정
1. Nvidia Driver 설치
CARLA는 기본적으로 GPU를 사용합니다. 이를 위해 ubuntu에 nvidia driver를 설치하여 세팅해주어야 합니다.
아래 명령어를 사용하여 apt update와 upgrade를 합니다. (*upgrade는 설치한 직후에만 합니다.)
sudo apt update && sudo apt upgrade
sudo apt-get install build-essential
sudo add-apt-repository ppa:graphics-drivers/ppa
Nvidia-driver를 CLI와 GUI(*추천*) 중에서 선택하여 설치합니다.
1) CLI를 사용하여 설치
# 현재 설치된 GPU 확인
lshw -numeric -C display
#현재 설치 가능한 드라이버 확인(recommend가 붙어 있는 버전으로 설치)
ubuntu-driver devices
driver 설치
sudo ubuntu-drivers [특정버전]
2) GUI를 사용하여 설치 (*추천*)
Application에서 소프트웨어&업데이트 => 추가 드라이버를 선택합니다.
원하는 버전을 선택하고 바뀐 내용 적용을 누릅니다.
버튼을 누르면 비밀번호 입력 창이 나옵니다. 이 비밀번호를 설정 후 리부트 합니다.
리부트 하면 파랑색의 창이 나오고, 그곳에 위 과정에서 설정한 비밀번호를 넣어줍니다.
위 2가지 방법 중에서 선택하여 Driver를 설치 후 확인을 해줍니다.
설치 확인을 위해 아래 명령어를 입력합니다.
nvidia-smi
**혹시나 아래의 2개의 명령어는 확인 후 입력하시기 바랍니다.**
** 2개의 명령어로 입력 후 컴퓨터가 부팅이 안되는 문제가 발생하였습니다. (nvidia-driver 문제) **
sudo apt install nvidia-prime
sudo prime-select nvidia
2. Docker 설치 및 Nvidia-Docker 설정
CARLA를 Docker에서 구동하기 위해 Docker를 설치합니다.
curl -sSL get.docker.com | sh
Docker는 기본적으로 sudo를 사용해야 합니다.
이를 막기 위한 명령어를 입력합니다.
sudo usermod -aG docker $USER
docker-compose 설치를 위해 아래 명령어를 입력합니다.
sudo curl -L "https://github.com/docker/compose/releases/download/v2.27.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
또는 아래 경로에서 docker-compose를 다운받습니다.
https://github.com/docker/compose
GitHub - docker/compose: Define and run multi-container applications with Docker
Define and run multi-container applications with Docker - docker/compose
github.com
일반적으로 Docker는 GPU를 사용할 수 없습니다.
Docker에서 GPU를 사용하기 위해서는 Nvidia에서 제공하는 Nvidia-Docker가 필요합니다.
Nvidia-Docker 설치 명령어를 입력합니다.
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
&& curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update && sudo apt-get install -y nvidia-docker2
sudo systemctl restart docker
자세한 설정은 아래 경로를 참조해 주세요
Installing the NVIDIA Container Toolkit — NVIDIA Container Toolkit 1.15.0 documentation
Install an NVIDIA GPU Driver if you do not already have one installed. You can install a driver by using the package manager for your distribution, but other installation methods, such as downloading a .run file intaller, are available. Refer to the NVIDIA
docs.nvidia.com
설정까지 완료 하였다면, 아래 명령어로 설치가 잘 되었는지 확인합니다.
sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi
만약 --runtime=nvidia에서 문제가 발생하면 아래 링크에서 nvidia toolkit과 config-docker 명령어를 입력 하면 됩니다.
여기까지 ubuntu20.04 LTS에서 nvidia-docker를 사용하여 docker에서 GPU를 사용하는 방법에 대한 설명이었습니다.
감사합니다 :)
Ref : https://antc2lt.medium.com/carla-on-ubuntu-20-04-with-docker-5c2ccdfe2f71
'개발일지 > docker' 카테고리의 다른 글
윈도우 10 docker설치 (0) | 2022.03.04 |
---|