본문 바로가기
Container/Docker

Docker 컨테이너에서 Nvidia driver

by ccclog 2023. 11. 30.
반응형


컨테이너 환경 최초 구성한 후 lspci(*pciutils설치 필요* ) 확인시에, 
nvidia 장치를 확인할 수 있다.

[root@ccc: /] # lspci |grep -i nvidia
1a:00.0 3D controller: NVIDIA Corporation GV100GL [Tesla V100 SXM2 32GB] (rev a1)
1b:00.0 3D controller: NVIDIA Corporation GV100GL [Tesla V100 SXM2 32GB] (rev a1)
3d:00.0 3D controller: NVIDIA Corporation GV100GL [Tesla V100 SXM2 32GB] (rev a1)
3e:00.0 3D controller: NVIDIA Corporation GV100GL [Tesla V100 SXM2 32GB] (rev a1)
88:00.0 3D controller: NVIDIA Corporation GV100GL [Tesla V100 SXM2 32GB] (rev a1)
89:00.0 3D controller: NVIDIA Corporation GV100GL [Tesla V100 SXM2 32GB] (rev a1)
b2:00.0 3D controller: NVIDIA Corporation GV100GL [Tesla V100 SXM2 32GB] (rev a1)
b3:00.0 3D controller: NVIDIA Corporation GV100GL [Tesla V100 SXM2 32GB] (rev a1)


nvidia driver 설치 이후에, 
nvidia-smi 입력시에는 다음과 같이 사용이 불가능하다. 

[root@ccc: /] /# nvidia-smi
Failed to initialize NVML: Unknown Error

컨테이너 안에서 nvidia driver를 활용하기 위해서는 nvidia-docker가 필요하다. 

--------------------------------------------------------------

# 기존 docker 제거 및 CE 버전 설치.

- 도커 기존 버전 제거.
root@user:~# apt purge docker.io

- docker ce 버전 설치; Docker Certificate version. 

: https://ccclog.tistory.com/148 

root@user:~# apt install docker-ce docker-ce-cli containerd.io

# nvidia-docker2 설치.
Repository 추가:https://www.ibm.com/docs/ko/mas-cd/maximo-vi/continuous-delivery?topic=planning-installing-docker-nvidia-docker2

 

 

#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 systemctl restart docker.service


--------------------------------------------------------------

root@user:~# docker run --name test --hostname test -it -d --gpus all
root@user:~# docker exec -it test bash


다음 방법으로 모든 GPU를 한 컨테이너에 할당할 수 있다. 

 

<Docker관련글>

Docker란?
Docker --help
Docker image 업로드 방법.
Docker 기본 커맨드
Docker 컨테이너 생성/진입 후 OS 정보 확인.
Docker 컨테이너에서 Nvidia driver
Docker 컨테이너별로 Nvidia GPU 분할방법 2가지
Docker Container Kernel 문제.
CentOS7.7-Missing a signature key:Docker CE버전설치

<Nvidia Driver 설치>
Nvidia driver 다운로드 링크(공식 고급 드라이버 설치)
PPA를 통한 Nvidia 드라이버 설치(Ubuntu)

<Cuda 설치>
deb(network) 방식을 이용한 Cuda 11.8 설치
run파일 방식을 이용한 CUDA 12.2 설치
CUDA sample 설치 및 Device Query, Bandwidth test.

 

<MIG 관련글>
MIG란?
MIG 구성 단위 + MIG 지원 GPU 목록
MIG enable
MIG instance 생성, 삭제+ Instance 조합방법

<Nvidia-Docker 관련글>
Docker 컨테이너에서 Nvidia driver
Docker 컨테이너별로 Nvidia GPU 분할방법 2가지

 

반응형