시나리오 요구 사항
최근 새로운 GPU 서버가 도착했습니다. 시스템은 Ubuntu 20.04입니다. 일부 컨테이너 관련 비즈니스 시나리오를 수행하려면 서버에 K8S 클러스터를 구축해야 합니다. CPU 구성이 상당히 높지만 GPU를 낭비할 수 없습니다. 따라서 , 이 기사 그의 GPU를 사용하는 전체 과정을 기록하십시오.
엔비디아-도커
nvidia-docker는 Nvidia에서 제작한 제품입니다.구석에 숨어있는 제 깨진 글을 찾으시는 분들은 그와 docker의 유사점과 차이점을 이해하셨을 거라 생각합니다.여기 Nvidia의 공식 웹사이트를 알 수 있는 포털이 있습니다.관련 소개 >> >여기를 찔러보세요<<< (사실 제가 글을 쓰기엔 너무 게으릅니다.)
엔비디아 드라이버
GPU 리소스를 사용하려면 먼저 GPU가 있어야 하며, GPU가 있으면 해당 드라이버를 설치해야 정상적으로 사용할 수 있습니다.
GPU 모델 확인
Ubuntu에서 GPU 모델은 다음 명령으로 볼 수 있습니다.
ubuntu-drivers devices
여기서 제 러닝 결과는 이렇습니다
.
드라이버를 설치하는 것이 좋습니다:nvidia-driver-470 - distro non-free
다운로드 드라이버
여기에서 NVIDIA의 공식 웹사이트 >>>NVIDIA 드라이버 공식 웹사이트<<< 에서 드라이버를 다운로드해야 합니다 . 페이지에 들어간 후 쿼리한 그래픽 카드 모델에 따라 입력합니다.
검색을 클릭하면 특정 드라이버 지침을 볼 수 있습니다. 다운로드:
설치 드라이버
일반적으로 기본 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를 사용하여 다음을 수행합니다.
GPU 전송 가능 여부 테스트:
먼저 python3을 실행하여 Python 대화형 터미널에 들어가고 다음 코드를 입력합니다.
import tensorflow as tf
print('GPU', tf.test.is_gpu_available())
GPU True가 표시되면 스케줄링이 성공한 것입니다.
위의 단계에서 드라이버가 설치되어 있지 않거나 K8S의 Nvidia 지원 플러그인이 설치되어 있지 않은 경우 스케줄링을 수행할 수 없으며 GPU False가 표시됩니다.
위의 내용은 단순 기록이며, 추후 시간이 있을 경우 기사 내 재배치되지 않은 내용을 업데이트하여 개화를 완료할 예정입니다.