일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 정보과학대학원
- 면접 후기
- 파트타임
- 논문리뷰
- Greenhouse
- 쿠베플로우
- minikube
- 딥러닝
- 온실
- mobaxterm
- 야간대학원
- AI개발자
- 석사
- 정보통신대학원
- 인공지능
- 인공지능융합대학원
- 머신러닝
- kubeflow
- 면접
- 강화학습
- 소프트웨어융합대학원
- Nvidia Docker
- 엔비디아 도커
- docker
- 특수대학원
- 국민대학교 대학원
- 스마트팜
- 미니쿠베
- NVIDIA driver
- 도커
- Today
- Total
몰입과 소통
Ubuntu 18.04에서 Nvidia Driver, Nvidia Docker 구축하기 본문
이번 포스트는 Nvidia Driver, Nvidia Docker를 설치하는 방법입니다.
이 포스트는 다음 포스트인 Minikube, Kubeflow 구축하기와 이어집니다.
설치 순서는 다음과 같습니다.
- Nvidia Driver 설치
- Docker 설치 + Nvidia Docker 설치
설치한 버전은 다음과 같습니다.
- Ubuntu : 18.04 LTS
- Nvidia Driver : GPU 호환 맞추어 알아서(여기선 nvidia-driver-470 사용)
- Docker : 23.0.1
설치 시작하겠습니다.
1. Nvidia Driver 설치
먼저 스왑 메모리 할당을 해제합니다.
sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
sudo reboot
Nvidia Driver 설치를 시작합니다.
자신에게 맞는 Nvidia Driver를 설치해주세요. 저는 nvidia-driver-470을 사용하였습니다.
설치 가능한 드라이버를 보고싶으시다면, nvidia-driver까지만 타이핑 후 Tab 버튼을 누르시면 사용 가능한 드라이버가 출력될 것입니다.
sudo apt-get purge nvidia-*
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
# 자신에게 맞는 Nvidia Driver를 설치해주세요.
# 저는 nvidia-driver-470을 사용하였습니다.
# 설치 가능한 드라이버를 보고싶으시다면, nvidia-driver까지만 타이핑 후
# Tab 버튼을 누르시면 사용 가능한 드라이버가 출력될 것입니다.
sudo apt-get install nvidia-driver-470
sudo reboot
# 실행시 gpu 확인 가능
nvidia-smi
Nvidia Driver 설치 후 nvidia-smi 출력시 아래와 비슷한 창이 출력된다면 설치 성공입니다.
# 출력 예시
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.73.01 Driver Version: 460.73.01 CUDA Version: 11.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 GeForce RTX 3090 Off | 00000000:01:00.0 On | N/A |
| 48% 44C P8 36W / 370W | 671MiB / 24267MiB | 4% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
+-----------------------------------------------------------------------------+
2. Docker 설치
Docker는 애플리케이션을 컨테이너 내에서 실행할 수 있게 해주는 오픈 소스 소프트웨어 플랫폼입니다.
컨테이너는 애플리케이션이 실행되는 환경(예: 코드, 런타임, 시스템 도구, 시스템 라이브러리 등)을 패키지로 묶어주어, 애플리케이션이 다양한 컴퓨팅 환경에서도 일관된 방식으로 실행될 수 있도록 합니다.
Docker 설치는 공식 Docs를 바탕으로 정리하였습니다.
막히는 부분이 있으시다면, 공식 Docs를 참고하시면 좋을것 같습니다.
apt 패키지 인덱스를 업데이트하고 apt가 HTTPS를 통해 저장소를 사용할 수 있도록 패키지를 설치
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
Docker의 공식 GPG 키 추가하기
sudo mkdir -m 0755 -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
명령어를 사용하여 저장소 설정
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Docker 엔진, containerd, 그리고 Docker Compose 설치하기
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
권한 변경하기
권한 변경시 일반 계정에서도 Docker 사용이 가능합니다.
sudo usermod -aG docker $USER && newgrp docker
Docker Engine 설치가 성공적인지 `hello-world` 이미지를 실행하여 확인
sudo docker run hello-world
hello-world 이미지 실행 후 아래와 비슷한 창이 출력된다면 설치 성공입니다.
# 출력 예시
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
3. Nvidia Docker 설치
이제 Nvidia Docker 설치만 남았습니다.
Nvidia Docker는 Nvidia GPU를 사용하는 컨테이너 내의 애플리케이션에 대해 GPU 사용을 가능하게 해주는 도구입니다.
Docker는 컨테이너화된 환경을 제공하지만, GPU와 같은 하드웨어 자원을 직접적으로 활용하는 것은 지원하지 않습니다.
Nvidia Docker는 Docker 컨테이너가 호스트 시스템의 Nvidia GPU에 접근하고, CUDA와 같은 라이브러리를 활용할 수 있도록 해줍니다.
컨테이너 내부에서 GPU 자원 사용이 불필요하시다면, 해당 단계를 넘어가셔도 무관합니다.
최근 Nvidia Docker에 대한 지원이 중단되었고, NVIDIA Container Toolkit으로 대체되었습니다.
현재 설치는 가능하지만, 추후 지원이 완전히 종료될 수 있습니다. 참고 바랍니다.
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-container-toolkit nvidia-container-runtime
sudo apt-get install -y nvidia-docker2
sudo systemctl restart docker
Docker Runtime을 수정합니다.
daemon.json에 "default-runtime": "nvidia" Key, Value를 추가합니다.
daemon.json 수정 후 Docker를 재시작을 하면 설정은 끝이 납니다.
sudo nano /etc/docker/daemon.json
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
}
}
sudo systemctl restart docker
--gpus all 옵션을 붙인 후 우분투 이미지를 실행했을 때 아래와 비슷한 창이 출력된다면 설치 성공입니다.
docker run --rm --gpus all ubuntu:18.04 nvidia-smi
# 출력 예시
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.73.01 Driver Version: 460.73.01 CUDA Version: 11.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 GeForce RTX 3090 Off | 00000000:01:00.0 On | N/A |
| 48% 44C P8 36W / 370W | 671MiB / 24267MiB | 4% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
+-----------------------------------------------------------------------------+
설치가 잘 끝나셨나요? 이번 포스트를 통해 Nvidia Driver와 Nvidia Docker의 설치 과정을 알아보았습니다.
독자분들도 이 강력한 도구들을 사용하여 컨테이너 기반의 애플리케이션을 더욱 효율적으로 개발하고 배포할 수 있게 되었을 것입니다.
궁금한 점이 있으시면 댓글이나 이메일로 문의해 주세요. 확인하는 대로 답변드리겠습니다.
'개발' 카테고리의 다른 글
Linux/Ubuntu에서 Screen 설치 및 사용하기 (1) | 2024.03.06 |
---|---|
Ubuntu 18.04에서 Minikube, Kubeflow 구축하기 (0) | 2024.03.03 |