Setup GPU

JeongChaeJin·2022년 11월 17일
0

Install NVIDIA Driver

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update && sudo apt install -y ubuntu-drivers-common
sudo ubuntu-drivers autoinstall
sudo reboot

Install NVIDIA-docker

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 -y nvidia-docker2 &&
sudo systemctl restart docker
sudo docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi

Nvidia-docker default container runtime으로 설정

  • 쿠버네티스는 기본적으로 Docker-ce를 default container runtime으로 사용한다.
  • 따라서, Docker Contaier 내에서 NVIDIA GPU를 사용하기 위해서는 NVIDIA-Docker를 Container Runtime을 사용해 pod을 생성할 수 있도록 Default Runtime을 수정해 주어야한다.
sudo vi /etc/docker/daemon.json

{
  "default-runtime": "nvidia",
  "runtimes": {
      "nvidia": {
          "path": "nvidia-container-runtime",
          "runtimeArgs": []
  }
  }
}
  • /etc/docker/daemon.json 파일을 open해 위 처럼 수정
sudo systemctl daemon-reload
sudo service docker restart
  • docker 재시작
sudo docker info | grep nvidia
mlops@ubuntu:~$ docker info | grep nvidia
Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux nvidia runc
Default Runtime: nvidia
  • 변경사항 확인

Nvidia-Device-Plugin

kubectl create -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.10.0/nvidia-device-plugin.yml
  • nvidia-device-plugin daemonset 생성
kubectl get pod -n kube-system | grep nvidia

  • nvidia-device-plugin pod이 RUNNING 상태로 생성되었는지 확인
kubectl get nodes "-o=custom-columns=NAME:.metadata.name,GPU:.status.allocatable.nvidia\.com/gpu"

  • node 정보에 gpu가 사용 가능하도록 설정되었는지 확인
  • 실습 진행 클러스터의 GPU 개수에 맞게 출력된다.
profile
OnePunchLotto

0개의 댓글