K8S 스케줄링 NVIDIA GPU를 구현하는 Ubuntu에 대한 참고 사항

시나리오 요구 사항

최근 새로운 GPU 서버가 도착했습니다. 시스템은 Ubuntu 20.04입니다. 일부 컨테이너 관련 비즈니스 시나리오를 수행하려면 서버에 K8S 클러스터를 구축해야 합니다. CPU 구성이 상당히 높지만 GPU를 낭비할 수 없습니다. 따라서 , 이 기사 그의 GPU를 사용하는 전체 과정을 기록하십시오.

엔비디아-도커

nvidia-docker는 Nvidia에서 제작한 제품입니다.구석에 숨어있는 제 깨진 글을 찾으시는 분들은 그와 docker의 유사점과 차이점을 이해하셨을 거라 생각합니다.여기 Nvidia의 공식 웹사이트를 알 수 있는 포털이 있습니다.관련 소개 >> >여기를 찔러보세요<<< (사실 제가 글을 쓰기엔 너무 게으릅니다.)

엔비디아 드라이버

GPU 리소스를 사용하려면 먼저 GPU가 있어야 하며, GPU가 있으면 해당 드라이버를 설치해야 정상적으로 사용할 수 있습니다.

GPU 모델 확인

Ubuntu에서 GPU 모델은 다음 명령으로 볼 수 있습니다.

ubuntu-drivers devices

여기서 제 러닝 결과는 이렇습니다
이미지.png
.
드라이버를 설치하는 것이 좋습니다:nvidia-driver-470 - distro non-free

다운로드 드라이버

여기에서 NVIDIA의 공식 웹사이트 >>>NVIDIA 드라이버 공식 웹사이트<<< 에서 드라이버를 다운로드해야 합니다 . 페이지에 들어간 후 쿼리한 그래픽 카드 모델에 따라 입력합니다.
이미지.png
검색을 클릭하면 특정 드라이버 지침을 볼 수 있습니다. 다운로드:
이미지.png

설치 드라이버

일반적으로 기본 Ubuntu는 GPU용 오픈 소스 드라이버를 설치합니다(없을 수도 있지만 그렇지 않은 경우 걱정하지 마십시오). 이제 전용 드라이버가 있으므로 오픈 소스 드라이버를 비활성화해야 합니다. :

sudo bash -c "echo blacklist nouveau > /etc/modprobe.d/blacklist-nvidia-nouveau.conf"
sudo bash -c "echo options nouveau modeset=0 >> /etc/modprobe.d/blacklist-nvidia-nouveau.conf"

또는 직접 제거하는 것이 불가능하지 않습니다.

apt-get remove --purge nvidia*

작업을 마친 후 컴퓨터를 다시 시작하면 드라이버를 설치할 수 있습니다.다음 드라이버 파일 이름은 자신에 따라 다릅니다.

chmod 755 NVIDIA-Linux-x86_64-470.74.run
./NVIDIA-Linux-x86_64-470.74.run

드라이버 설치 시 일부 종속성이 부족하여 설치에 실패할 수 있으며, apt install -f설치 실패 후 종속성 자동 설치를 수행할 수 있습니다. 설치 과정 내내 동의하십시오.
설치 중 발생할 수 있는 문제: WARNING: Unable to find suitable destination to install 32-bit compatibility libraries
다음 명령을 실행하여 설치합니다.

sudo dpkg --add-architecture i386
sudo apt update
sudo apt install libc6:i386

엔비디아 도커 설치

nvidia-docker를 설치하려면 공식 웹사이트의 튜토리얼을 참조할 수 있습니다 >>>설치 튜토리얼<<< , 여기에서 재배치하기에는 너무 게을러요:-)

K8S 클러스터 생성

저는 편의상 rancher를 이용하여 k8S를 구축했습니다. 이전 글에 관련 프로세스가 있으므로 여기서는 자세히 설명하지 않겠습니다. 바로 K8S 클러스터 구축 후 단계로 넘어가겠습니다. 구축 프로세스에 대해서는 K8S, 여기는 포털 >>> Rancher 설치 및 K8S 클러스터 생성 <<< (대체 주소: >>>CSDN: Rancher 설치 및 K8S 클러스터 생성 <<< )

K8S용 Nvidia GPU 플러그인 설치

실제로 관련 스케줄링 방법은 K8S 공식 웹 사이트 >>>K8S<<< 에서도 사용할 수 있습니다 . 사실 K8S 클러스터에 관련 플러그인을 설치하는 것입니다.

kubectl create -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/1.0.0-beta4/nvidia-device-plugin.yml

시험

우리는 dockerhub로 이동하여 tensorflow-gpu 이미지를 가져옵니다. 여기서는 opensciencegrid/tensorflow-gpu:latest를 사용합니다. 여기서는 Rancher 관리 인터페이스를 사용하여 로드, GPU 할당 1을 생성합니다. 그런 다음 이 로드 컨테이너에서 tensorflow를 사용하여 다음을 수행합니다.
이미지.png
GPU 전송 가능 여부 테스트:
먼저 python3을 실행하여 Python 대화형 터미널에 들어가고 다음 코드를 입력합니다.

import tensorflow as tf
print('GPU', tf.test.is_gpu_available())

GPU True가 표시되면 스케줄링이 성공한 것입니다.
이미지.png
위의 단계에서 드라이버가 설치되어 있지 않거나 K8S의 Nvidia 지원 플러그인이 설치되어 있지 않은 경우 스케줄링을 수행할 수 없으며 GPU False가 표시됩니다.
위의 내용은 단순 기록이며, 추후 시간이 있을 경우 기사 내 재배치되지 않은 내용을 업데이트하여 개화를 완료할 예정입니다.

Supongo que te gusta

Origin blog.csdn.net/u012751272/article/details/120488513
Recomendado
Clasificación