GPU가 1개 이상인 가상 머신(VM) 인스턴스를 만들 때는 애플리케이션이 기기에 액세스할 수 있도록 시스템에 NVIDIA 기기 드라이버가 필요합니다. 가상 머신(VM) 인스턴스에 사용 가능한 디스크 공간이 충분한지 확인합니다. 새 VM을 만들 때 부팅 디스크로 최소 40GB를 선택해야 합니다.
드라이버를 설치하려면 두 가지 옵션 중에서 선택할 수 있습니다.
원격 데스크톱 또는 게임과 같은 하드웨어 가속 3D 그래픽에 GPU가 필요한 경우 NVIDIA RTX 가상 워크스테이션(vWS)용 드라이버 설치를 참조하세요.
다른 워크로드의 경우 이 문서의 안내에 따라 NVIDIA 드라이버를 설치합니다.
NVIDIA 드라이버, CUDA 툴킷, CUDA 런타임 버전
환경에 필요할 수 있는 드라이버 및 런타임 구성요소에는 여러 버전이 있습니다. 이러한 구성요소는 다음과 같습니다.
- NVIDIA 드라이버
- CUDA 툴킷
- CUDA 런타임
이러한 구성요소를 설치할 때는 요구에 맞게 해당 환경을 구성할 수 있습니다. 예를 들어 이전 버전의 CUDA 툴킷에서 가장 효과적으로 작동하는 이전 버전의 Tensorflow가 있지만 사용하려는 GPU에 이후 버전의 NVIDIA 드라이버가 필요한 경우에는 이후 버전의 NVIDIA 드라이버와 함께 이전 버전의 CUDA 툴킷을 설치할 수 있습니다.
하지만 NVIDIA 드라이버와 CUDA 툴킷 버전이 호환되는지 확인해야 합니다. CUDA 툴킷과 NVIDIA 드라이버의 호환성에 대해서는 CUDA 호환성에 대한 NVIDIA 문서를 참조하세요.
필요한 NVIDIA 드라이버 버전
Compute Engine에서 실행되는 NVIDIA GPU의 경우 다음 NVIDIA 드라이버 버전을 사용하는 것이 좋습니다.
머신 시리즈 | NVIDIA GPU 모델 | Linux 권장 드라이버 | Linux 최소 드라이버 | Windows 권장 드라이버 |
---|---|---|---|---|
A4X | B200 | 최신 570 | 570.133.20 | 해당 사항 없음 |
A4 | B200 | 최신 570 | 570.124.06 | 해당 사항 없음 |
A3 Ultra | H200 | 최신 570 | 550.90.076 | 해당 사항 없음 |
A3 Mega, High, Edge | H100 | 최신 550 | 550.90.07 | 해당 사항 없음 |
G2 | L4 | 최신 550 | 550.90.07 | 538.67 |
A2 | A100 | 최신 550 | 550.90.07 | 538.67 |
N1 | T4, P4, P100, V100 | 최신 535 | 535.183.01 | 538.67 |
NVIDIA 가이드를 사용하여 VM에 GPU 드라이버 설치
대부분의 VM에 NVIDIA 드라이버를 설치할 수 있는 한 가지 방법은 NVIDIA CUDA 툴킷을 설치하는 것입니다.
NVIDIA 툴킷을 설치하려면 다음 단계를 완료합니다.
드라이버를 설치하려는 VM에 연결합니다.
VM에서 CUDA 툴킷을 다운로드하고 설치합니다. 최소 권장 툴킷의 설치 패키지 및 가이드는 다음 표에 나와 있습니다. 툴킷을 설치하기 전 설치 가이드에 있는 사전 설치 단계를 완료해야 합니다.
머신 시리즈 NVIDIA GPU 모델 Linux 권장 CUDA 툴킷 Windows 권장 CUDA 툴킷 A4X GB200 - 다운로드 링크: CUDA 툴킷 12.8 업데이트 1
- 설치 가이드: CUDA 12.8 설치 가이드
해당 사항 없음 A4 B200 - 다운로드 링크: CUDA 툴킷 12.8 업데이트 1
- 설치 가이드: CUDA 12.8 설치 가이드
해당 사항 없음 A3 H200, H100 - 다운로드 링크: CUDA 툴킷 12.4 업데이트 1
- 설치 가이드: CUDA 12.4 설치 가이드
해당 사항 없음 G2 L4 - 다운로드 링크: CUDA 툴킷 12.4 업데이트 1
- 설치 가이드: CUDA 12.4 설치 가이드
- 다운로드 링크: CUDA 툴킷 12.2 업데이트 2
- 설치 가이드: CUDA 12.2 설치 가이드
A2 A100 N1 - T4
- V100
- P100
- P4
- 다운로드 링크: CUDA 툴킷 12.2
- 설치 가이드: CUDA 12.2 설치 가이드
- 다운로드 링크: CUDA 툴킷 12.2
- 설치 가이드: CUDA 12.2 설치 가이드
설치 스크립트를 사용하여 VM에 GPU 드라이버 설치
다음 스크립트를 사용하여 설치 프로세스를 자동화할 수 있습니다. 이러한 스크립트를 검토하려면 GitHub 저장소를 참조하세요.
Linux
다음 안내에 따라 실행 중인 VM에 GPU 드라이버를 설치합니다.
지원되는 운영체제
Linux 설치 스크립트는 다음 운영체제에서 테스트되었습니다.
- Debian 11 및 12
- Red Hat Enterprise Linux(RHEL) 8, 9
- Rocky Linux 8 및 9
- Ubuntu 20, 22, 24
이 스크립트를 다른 운영체제에서 사용하면 설치가 실패할 수도 있습니다. 이 스크립트는 NVIDIA 드라이버와 CUDA 툴킷을 모두 설치할 수 있습니다. GPU 드라이버 및 CUDA 툴킷을 설치하려면 다음 단계를 완료합니다.
VM에서 GPU 측정항목을 수집하는 운영 에이전트 버전이 2.38.0 이상인 경우 이 설치 스크립트를 사용해 GPU 드라이버를 설치하거나 업그레이드하기 전에 에이전트를 중지해야 합니다.
GPU 드라이버의 설치 또는 업그레이드를 완료한 후 VM을 재부팅해야 합니다.
운영 에이전트를 중지하려면 다음 명령어를 실행합니다.
sudo systemctl stop google-cloud-ops-agent
Python 3이 운영체제에 설치되어 있는지 확인합니다.
설치 스크립트를 다운로드합니다.
curl -L https://storage.googleapis.com/compute-gpu-installation-us/installer/latest/cuda_installer.pyz --output cuda_installer.pyz
설치 스크립트를 실행합니다.
sudo python3 cuda_installer.pyz install_driver
스크립트를 실행하는 데 시간이 걸립니다. VM이 다시 시작됩니다. VM이 다시 시작되면 스크립트를 다시 실행하여 설치를 계속합니다.
설치를 확인합니다. GPU 드라이버 설치 확인을 참조하세요.
이 도구를 사용하여 CUDA 툴킷을 설치할 수도 있습니다. CUDA 툴킷을 설치하려면 다음 명령어를 실행합니다.
sudo python3 cuda_installer.pyz install_cuda
이 스크립트를 실행하는 데 30분 이상 걸릴 수 있습니다. VM이 다시 시작됩니다. VM이 다시 시작되면 스크립트를 다시 실행하여 설치를 계속합니다.
CUDA 툴킷 설치를 확인합니다.
python3 cuda_installer.pyz verify_cuda
Linux(시작 스크립트)
다음 안내에 따라 VM 시작 중에 GPU 드라이버를 설치합니다.
지원되는 운영체제
Linux 설치 스크립트는 다음 운영체제에서 테스트되었습니다.
- Debian 11 및 12
- Red Hat Enterprise Linux(RHEL) 8, 9
- Rocky Linux 8 및 9
- Ubuntu 20, 22, 24
이 스크립트를 다른 운영체제에서 사용하면 설치가 실패할 수도 있습니다. 이 스크립트는 NVIDIA 드라이버와 CUDA 툴킷을 모두 설치할 수 있습니다.
다음 시작 스크립트를 사용하여 드라이버 및 CUDA 툴킷 설치를 자동화합니다.
Windows
이 설치 스크립트는 보안 부팅이 사용 설정된 VM에서 사용할 수 있습니다.
- G2 머신 시리즈를 사용하는 Windows VM의 경우 이 스크립트는 NVIDIA 드라이버만 설치합니다.
- 다른 머신 유형의 경우 스크립트가 NVIDIA 드라이버와 CUDA 툴킷을 설치합니다.
관리자 권한으로 PowerShell 터미널을 열고 다음 단계를 완료합니다.
Windows Server 2016을 사용하는 경우 전송 계층 보안(TLS) 버전을 1.2로 설정합니다.
[Net.ServicePointManager]::SecurityProtocol = 'Tls12'
스크립트를 다운로드합니다.
Invoke-WebRequest https://github.com/GoogleCloudPlatform/compute-gpu-installation/raw/main/windows/install_gpu_driver.ps1 -OutFile C:\install_gpu_driver.ps1
스크립트를 실행합니다.
C:\install_gpu_driver.ps1
스크립트를 실행하는 데 시간이 걸립니다. 설치 프로세스 중에는 명령어 프롬프트가 제공되지 않습니다. 스크립트가 종료되면 드라이버가 설치된 것입니다.
이 스크립트는 VM의 다음 기본 위치
C:\Program Files\NVIDIA Corporation\
에 드라이버를 설치합니다.설치를 확인합니다. GPU 드라이버 설치 확인을 참조하세요.
GPU 드라이버 설치(보안 부팅 VM)
다음은 보안 부트를 사용하는 Linux VM에 GPU 드라이버를 설치하는 방법에 대한 안내입니다.
GPU 지원
이 섹션의 절차는 Compute Engine에서 사용할 수 있는 모든 GPU 모델을 지원합니다.
GPU의 NVIDIA RTX 가상 워크스테이션(vWS) 버전이 연결된 보안 부트 인스턴스에 이 절차를 사용하여 드라이버를 설치할 수는 없습니다.
Windows VM 또는 보안 부트를 사용하지 않는 Linux VM을 사용하는 경우에는 대신 다음 안내 중 하나를 검토하세요.
Linux VM에서는 모든 커널 모듈에 신뢰할 수 있는 인증서 서명이 있어야 하기 때문에 보안 부트 VM에 드라이버를 설치하는 작업은 Linux VM에 설치할 때와 다릅니다.
설치
신뢰할 수 있는 인증서가 있는 드라이버를 설치하려면 다음 옵션 중 하나를 사용하면 됩니다.
- 드라이버에 신뢰할 수 있는 인증서를 만듭니다. 이 옵션의 경우 다음 중에서 선택합니다.
- 자동화된 방법: 이미지 빌드 도구를 사용하여 설치된 드라이버에 대한 신뢰할 수 있는 인증서가 있는 부팅 이미지를 만듭니다.
- 수동 방법: 자체 인증서를 생성하고 이를 사용하여 GPU 드라이버의 커널 모듈에 서명합니다.
기존 신뢰할 수 있는 인증서와 함께 사전 서명된 드라이버를 사용합니다. 이 방법은 Ubuntu만 지원합니다.
자체 서명(자동)
지원되는 운영체제:
이 자동화된 자체 서명 방법은 다음 운영체제에서 테스트되었습니다.
- Debian 12
- Red Hat Enterprise Linux(RHEL) 8, 9
- Rocky Linux 8 및 9
- Ubuntu 22 및 24
절차
자체 서명된 인증서가 있는 OS 이미지를 만들려면 다음 단계를 완료하세요.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
cuda_installer 도구를 다운로드합니다. 스크립트의 최신 버전을 다운로드하려면 다음 명령어를 실행합니다.
curl -L https://storage.googleapis.com/compute-gpu-installation-us/installer/latest/cuda_installer.pyz --output cuda_installer.pyz
다음 명령어를 실행하여 보안 부트가 사용 설정된 이미지를 빌드합니다. 이미지 생성 프로세스는 최대 20분 정도 걸릴 수 있습니다.
PROJECT=PROJECT_ID ZONE=ZONE BASE_IMAGE=BASE_IMAGE_NAME SECURE_BOOT_IMAGE=IMAGE_NAME python3 cuda_installer.pyz build_image \ --project $PROJECT \ --vm-zone $ZONE \ --base-image $BASE_IMAGE $SECURE_BOOT_IMAGE
다음을 바꿉니다.
PROJECT_ID
: 이미지를 만들 프로젝트의 ID입니다.ZONE
: 사용되는 임시 VM을 만들 영역입니다. 예를 들면us-west4-a
입니다.IMAGE_NAME
: 생성할 이미지의 이름입니다.BASE_IMAGE_NAME
: 다음 중 하나를 선택하세요.debian-12
rhel-8
또는rhel-9
rocky-8
또는rocky-9
ubuntu-22
또는ubuntu-24
--family NAME
플래그를 추가하여 새 이미지를 이미지 계열에 추가할 수도 있습니다.이미지의 모든 맞춤설정 옵션을 보려면
python3 cuda_installer.pyz build_image --help
를 실행합니다. GitHub에서cuda_installer
문서를 검토할 수도 있습니다.이미지를 확인합니다. 다음 단계에 따라 이미지에 보안 부트가 사용 설정되어 있고 NVIDIA 드라이버가 설치된 GPU 인스턴스를 만들 수 있는지 확인합니다.
테스트 VM 인스턴스를 만들어 이미지가 올바르게 구성되고 GPU 드라이버가 성공적으로 로드되는지 확인합니다. 다음 예시에서는 단일 NVIDIA T4 가속기가 연결된 N1 머신 유형을 만듭니다. 하지만 지원되는 GPU 머신 유형은 무엇이든 사용할 수 있습니다.
TEST_INSTANCE_NAME=TEST_INSTANCE_NAME ZONE=ZONE gcloud compute instances create $TEST_INSTANCE_NAME \ --project=$PROJECT \ --zone=$ZONE \ --machine-type=n1-standard-4 \ --accelerator=count=1,type=nvidia-tesla-t4 \ --create-disk=auto-delete=yes,boot=yes,device-name=$TEST_INSTANCE_NAME,image=projects/$PROJECT/global/images/$SECURE_BOOT_IMAGE,mode=rw,size=100,type=pd-balanced \ --shielded-secure-boot \ --shielded-vtpm \ --shielded-integrity-monitoring \ --maintenance-policy=TERMINATE
다음을 바꿉니다.
TEST_INSTANCE_NAME
: 테스트 VM 인스턴스의 이름입니다.ZONE
: T4 GPU 또는 원하는 GPU가 있는 영역입니다. 자세한 내용은 GPU 리전 및 영역을 참조하세요.
gcloud compute ssh
를 사용하여 테스트 VM에서mokutil --sb-state
명령어를 실행하여 보안 부트가 사용 설정되어 있는지 확인합니다.gcloud compute ssh --project=$PROJECT --zone=$ZONE $TEST_INSTANCE_NAME --command "mokutil --sb-state"
gcloud compute ssh
를 사용하여 테스트 VM에서nvidia-smi
명령어를 실행하여 드라이버가 설치되었는지 확인합니다.gcloud compute ssh --project=$PROJECT --zone=$ZONE $TEST_INSTANCE_NAME --command "nvidia-smi"
CUDA 툴킷을 설치한 경우 다음과 같이
cuda_installer
도구를 사용하여 설치를 확인할 수 있습니다.gcloud compute ssh --project=$PROJECT --zone=$ZONE $TEST_INSTANCE_NAME --command "python3 cuda_installer.pyz verify_cuda"
삭제 맞춤설정된 이미지가 작동하는지 확인한 후에는 확인 VM을 계속 유지할 필요가 없습니다. VM을 삭제하려면 다음 명령어를 실행합니다.
gcloud compute instances delete --zone=$ZONE --project=$PROJECT $TEST_INSTANCE_NAME
선택사항: 만든 디스크 이미지를 삭제하려면 다음 명령어를 실행합니다.
gcloud compute images delete --project=$PROJECT $SECURE_BOOT_IMAGE
자체 서명(수동)
지원되는 운영체제
이 수동 자체 서명 방법은 다음 운영체제에서 테스트되었습니다.
- Debian 12
- Red Hat Enterprise Linux(RHEL) 8, 9
- Rocky Linux 8 및 9
- Ubuntu 22 및 24
개요
설치, 서명, 이미지 생성 프로세스는 다음과 같습니다.
- 드라이버 서명에 사용할 자체 인증서를 생성합니다.
- GPU 드라이버를 설치하고 서명할 VM을 만듭니다. VM을 만들려면 원하는 OS를 사용하면 됩니다. VM을 만들 때 보안 부트를 사용 중지해야 합니다. VM에 GPU를 연결할 필요가 없습니다.
- GPU 드라이버 및 선택적 CUDA 툴킷을 설치하고 서명합니다.
- 자체 서명된 드라이버를 사용하여 머신을 기반으로 디스크 이미지를 만들고 인증서를 신뢰할 수 있는 인증서 목록에 추가합니다.
- 이 이미지를 사용하여 보안 부트가 사용 설정된 GPU VM을 만듭니다.
이미지 생성
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
OpenSSL을 사용하여 자체 인증서를 생성합니다. OpenSSL을 사용하면 보안 부트의 서명 및 확인이 일반 DER(고유한 인코딩 규칙)로 인코딩된 X.509 인증서를 사용하여 실행됩니다. 다음 명령어를 실행하여 새 자체 서명 X.509 인증서와 RSA 비공개 키 파일을 만듭니다.
openssl req -new -x509 -newkey rsa:2048 -keyout private.key -outform DER -out public.der -noenc -days 36500 -subj "/CN=Graphics Drivers Secure Boot Signing"
자체 서명된 드라이버를 설치할 VM을 만듭니다. VM을 만들 때 GPU를 연결하거나 보안 부트를 사용설정할 필요가 없습니다. 설치 프로세스를 완료할 수 있도록 사용 가능한 공간이 40GB 이상인 표준 E2 머신 유형을 사용할 수 있습니다.
INSTANCE_NAME=BUILD_INSTANCE_NAME DISK_NAME=IMAGE_NAME ZONE=ZONE PROJECT=PROJECT_ID OS_IMAGE=IMAGE_DETAILS # Create the build VM gcloud compute instances create $INSTANCE_NAME \ --zone=$ZONE \ --project=$PROJECT \ --machine-type=e2-standard-4 \ --create-disk=auto-delete=yes,boot=yes,name=$DISK_NAME,$OS_IMAGE,mode=rw,size=100,type=pd-balanced \ --no-shielded-secure-boot
다음을 바꿉니다.
BUILD_INSTANCE_NAME
: 이미지를 빌드하는 데 사용된 VM 인스턴스의 이름입니다.IMAGE_NAME
: 디스크 이미지의 이름입니다.ZONE
: VM을 만들 영역입니다.PROJECT_ID
: 새 디스크 이미지를 빌드하는 데 사용할 프로젝트의 ID입니다.IMAGE_DETAILS
: 선택한 기본 OS 이미지의 이미지 계열 및 프로젝트입니다.- Debian 12:
"image-family=debian-12,image-project=debian-cloud"
- RHEL 8:
"image-family=rhel-8,image-project=rhel-cloud"
- RHEL 9:
"image-family=rhel-9,image-project=rhel-cloud"
- Rocky Linux 8:
"image-family=rocky-linux-8,image-project=rocky-linux-cloud"
- Rocky Linux 9:
"image-family=rocky-linux-9,image-project=rocky-linux-cloud"
- Ubuntu 22:
"image-family=ubuntu-2204-lts-amd64,image-project=ubuntu-os-cloud"
- Ubuntu 24:
"image-family=ubuntu-2404-lts-amd64,image-project=ubuntu-os-cloud"
- Debian 12:
생성된 비공개 키 파일을 VM에 복사합니다. 드라이버 파일에 서명하려면 VM에서 새로 생성된 키 쌍을 사용할 수 있어야 합니다.
gcloud compute scp --zone $ZONE --project $PROJECT private.key $INSTANCE_NAME:~/private.key gcloud compute scp --zone $ZONE --project $PROJECT public.der $INSTANCE_NAME:~/public.der
드라이버를 설치하고 서명합니다. 드라이버 및 CUDA 툴킷의 설치 및 서명은 보안 부트를 사용하지 않는 설치에도 사용되는 설치 스크립트에서 처리합니다. 드라이버를 설치하고 서명하려면 다음 단계를 완료하세요.
SSH를 사용하여 VM에 연결합니다.
gcloud compute ssh --zone $ZONE --project $PROJECT $INSTANCE_NAME
비공개 키와 공개 키가 올바르게 복사되었는지 확인합니다.
ls private.key public.der
드라이버 설치 스크립트를 다운로드합니다.
curl -L https://storage.googleapis.com/compute-gpu-installation-us/installer/latest/cuda_installer.pyz --output cuda_installer.pyz
서명이 구성된 상태로 드라이버 설치가 설정되어 있는지 확인합니다. 설정 중에 빌드 머신이 다시 시작됩니다. 빌드 머신이 다시 시작되면 SSH를 사용하여 VM에 연결하고 스크립트를 다시 실행하여 설치를 재개합니다.
sudo python3 cuda_installer.pyz install_driver --secure-boot-pub-key=public.der --secure-boot-priv-key=private.key --ignore-no-gpu
CUDA 툴킷을 동시에 설치하려면 다음 명령어를 사용하면 됩니다.
sudo python3 cuda_installer.pyz install_cuda --ignore-no-gpu
오류 또는 경고 메시지가 표시될 수 있습니다. 이는 GPU가 감지되지 않아 발생하는 결과이며 예상되는 결과입니다. CUDA 툴킷 설치가 완료되면 시스템이 재부팅됩니다. 다시 연결한 후 다음 단계를 계속 진행할 수 있습니다.
임시 머신에서 더 이상 필요하지 않으므로 인증서 파일을 삭제합니다. 보안을 강화하려면
rm
명령어 대신shred
를 사용하세요. 키는 최종 디스크 이미지에 없어야 합니다.shred -uz private.key public.der
디스크를 사용하여 새 이미지를 만들 수 있도록 VM을 종료합니다.
sudo shutdown now
기본 디스크 이미지를 준비합니다. 보안 부트가 사용 설정된 인스턴스를 만드는 데 사용할 수 있는 새 디스크 이미지를 만들려면 새로 생성된 키를 신뢰하도록 이미지를 구성해야 합니다. 새 디스크 이미지는 운영체제에서 사용하는 기본 인증서를 계속 수락합니다. 기본 이미지를 준비하려면 다음 단계를 완료합니다.
기본 인증서를 다운로드합니다. 다음 명령어를 사용하여 MicWinProPCA2011_2011-10-19.crt 및 MicCorUEFCA2011_2011-06-27.crt 인증서를 다운로드합니다.
curl -L https://storage.googleapis.com/compute-gpu-installation-us/certificates/MicCorUEFCA2011_2011-06-27.crt --output MicCorUEFCA2011_2011-06-27.crt curl -L https://storage.googleapis.com/compute-gpu-installation-us/certificates/MicWinProPCA2011_2011-10-19.crt --output MicWinProPCA2011_2011-10-19.crt
인증서를 확인합니다.
cat <<EOF >>check.sha1 46def63b5ce61cf8ba0de2e6639c1019d0ed14f3 MicCorUEFCA2011_2011-06-27.crt 580a6f4cc4e4b669b9ebdc1b2b3e087b80d0678d MicWinProPCA2011_2011-10-19.crt EOF sha1sum -c check.sha1
임시 VM의 디스크를 기반으로 이미지를 만듭니다.
--family=IMAGE_FAMILY_NAME
을 옵션으로 추가하여 이미지가 특정 이미지 계열의 최신 이미지로 설정되도록 할 수 있습니다. 새 이미지를 만드는 데 몇 분 정도 걸릴 수 있습니다.public.der
파일과 다운로드한 인증서가 있는 디렉터리에서 다음 명령어를 실행합니다.SECURE_BOOT_IMAGE=IMAGE_NAME gcloud compute images create $SECURE_BOOT_IMAGE \ --source-disk=$DISK_NAME \ --source-disk-zone=$ZONE \ --project=$PROJECT \ --signature-database-file=MicWinProPCA2011_2011-10-19.crt,MicCorUEFCA2011_2011-06-27.crt,public.der \ --guest-os-features="UEFI_COMPATIBLE"
다음 명령어를 실행하여 인증서의 공개 키가 이 새 이미지에 연결되어 있는지 확인할 수 있습니다.
gcloud compute images describe --project=$PROJECT $SECURE_BOOT_IMAGE
새 이미지를 확인합니다. 새 디스크 이미지를 사용하여 GPU VM을 만들 수 있습니다. 이 단계에서는 보안 부트가 사용 설정된 단일 T4 가속기가 있는 N1 머신 유형을 사용하는 것이 좋습니다. 하지만 이 이미지는 다른 유형의 GPU와 머신 유형도 지원합니다.
테스트 GPU VM을 만듭니다.
TEST_GPU_INSTANCE=TEST_GPU_INSTANCE_NAME ZONE=ZONE gcloud compute instances create $TEST_GPU_INSTANCE \ --project=$PROJECT \ --zone=$ZONE \ --machine-type=n1-standard-4 \ --accelerator=count=1,type=nvidia-tesla-t4 \ --create-disk=auto-delete=yes,boot=yes,device-name=$TEST_GPU_INSTANCE,image=projects/$PROJECT/global/images/$SECURE_BOOT_IMAGE,mode=rw,size=100,type=pd-balanced \ --shielded-secure-boot \ --shielded-vtpm \ --shielded-integrity-monitoring \ --maintenance-policy=TERMINATE
다음을 바꿉니다.
TEST_GPU_INSTANCE_NAME
: 새 이미지를 테스트하기 위해 만드는
GPU VM 인스턴스의 이름입니다.ZONE
: T4 GPU 또는 원하는 다른 GPU가 있는 영역입니다. 자세한 내용은 GPU 리전 및 영역을 참조하세요.
gcloud compute ssh
를 사용하여 테스트 VM에서mokutil --sb-state
명령어를 실행하여 보안 부트가 사용 설정되어 있는지 확인합니다.gcloud compute ssh --project=$PROJECT --zone=$ZONE $TEST_GPU_INSTANCE --command "mokutil --sb-state"
gcloud compute ssh
를 사용하여 테스트 VM에서nvidia-smi
명령어를 실행하여 드라이버가 설치되었는지 확인합니다.gcloud compute ssh --project=$PROJECT --zone=$ZONE $TEST_GPU_INSTANCE --command "nvidia-smi"
CUDA 툴킷을 설치한 경우 다음과 같이
cuda_installer
도구를 사용하여 설치를 확인할 수 있습니다.gcloud compute ssh --project=$PROJECT --zone=$ZONE $TEST_GPU_INSTANCE --command "python3 cuda_installer.pyz verify_cuda"
삭제 새 이미지가 작동하는지 확인한 후에는 임시 VM 또는 확인 VM을 계속 유지할 필요가 없습니다. 생성한 디스크 이미지는 어떤 식으로든 이에 종속되지 않습니다. 다음 명령어로 삭제할 수 있습니다.
gcloud compute instances delete --zone=$ZONE --project=$PROJECT $INSTANCE_NAME gcloud compute instances delete --zone=$ZONE --project=$PROJECT $TEST_GPU_INSTANCE
디스크에 암호화되지 않은 상태로 보안 부트 서명 인증서를 저장하지 않는 것이 좋습니다. 키를 다른 사용자와 공유할 수 있는 방식으로 안전하게 저장하려면 Secret Manager를 사용하여 데이터를 안전하게 보호하세요.
디스크에 있는 파일이 더 이상 필요하지 않으면
shred
도구를 사용하여 안전하게 삭제하는 것이 가장 좋습니다. 다음 명령어를 실행합니다.# Safely delete the key pair from your system shred -uz private.key public.der
사전 서명됨(Ubuntu만 해당)
이 안내는 Ubuntu 18.04, 20.04, 22.04 운영체제에서 실행되는 보안 부트 Linux VM에만 사용할 수 있습니다. 앞으로도 더 많은 Linux 운영체제가 지원될 예정입니다.
보안 부트를 사용하는 Ubuntu VM에 GPU 드라이버를 설치하려면 다음 단계를 완료하세요.
드라이버를 설치하려는 VM에 연결합니다.
저장소를 업데이트합니다.
sudo apt-get update
최신 NVIDIA 커널 모듈 패키지 또는 원하는 버전을 검색합니다. 이 패키지에는 Ubuntu 키로 서명된 NVIDIA 커널 모듈이 포함됩니다. 이전 버전을 찾고 싶으면 후행 파라미터의 번호를 변경하여 이전 버전을 가져옵니다. 예를 들어
tail -n 2
를 지정합니다.Ubuntu PRO 및 LTS
Ubuntu PRO 및 LTS의 경우 다음 명령어를 실행합니다.
NVIDIA_DRIVER_VERSION=$(sudo apt-cache search 'linux-modules-nvidia-[0-9]+-gcp$' | awk '{print $1}' | sort | tail -n 1 | head -n 1 | awk -F"-" '{print $4}')
Ubuntu PRO FIPS
Ubuntu PRO FIPS의 경우 다음 명령어를 실행합니다.
Ubuntu FIPS 업데이트를 사용 설정합니다.
sudo ua enable fips-updates
종료하고 재부팅합니다.
sudo shutdown -r now
최신 패키지를 가져옵니다.
NVIDIA_DRIVER_VERSION=$(sudo apt-cache search 'linux-modules-nvidia-[0-9]+-gcp-fips$' | awk '{print $1}' | sort | tail -n 1 | head -n 1 | awk -F"-" '{print $4}')
echo $NVIDIA_DRIVER_VERSION
을 실행하여 선택한 드라이버 버전을 확인할 수 있습니다. 그러면455
과 같은 버전 문자열이 출력됩니다.커널 모듈 패키지 및 해당 NVIDIA 드라이버를 설치합니다.
sudo apt install linux-modules-nvidia-${NVIDIA_DRIVER_VERSION}-gcp nvidia-driver-${NVIDIA_DRIVER_VERSION}
package not found error
와 함께 명령어가 실패하면 저장소에서 최신 NVIDIA 드라이버가 누락되었기 때문일 수 있습니다. 이전 단계를 재시도하고 후행 번호를 변경하여 이전 드라이버 버전을 선택합니다.NVIDIA 드라이버가 설치되었는지 확인합니다. VM을 재부팅해야 할 수도 있습니다.
NVIDIA 버전을 확인하기 위해 시스템을 재부팅한 경우, 재부팅한 후 3단계에서 사용한 명령어를 다시 실행하여
NVIDIA_DRIVER_VERSION
변수를 재설정해야 합니다.NVIDIA 패키지 저장소를 사용하도록 APT를 구성합니다.
APT가 올바른 종속 항목을 선택할 수 있도록 저장소를 다음과 같이 고정시킵니다.
sudo tee /etc/apt/preferences.d/cuda-repository-pin-600 > /dev/null <<EOL Package: nsight-compute Pin: origin *ubuntu.com* Pin-Priority: -1
Package: nsight-systems Pin: origin *ubuntu.com* Pin-Priority: -1
Package: nvidia-modprobe Pin: release l=NVIDIA CUDA Pin-Priority: 600
Package: nvidia-settings Pin: release l=NVIDIA CUDA Pin-Priority: 600
Package: * Pin: release l=NVIDIA CUDA Pin-Priority: 100 EOLsoftware-properties-common
를 설치합니다. Ubuntu 최소 이미지를 사용할 경우에 필요합니다.sudo apt install software-properties-common
Ubuntu 버전을 설정합니다.
Ubuntu 18.04
Ubuntu 18.04에서는 다음 명령어를 실행합니다.
export UBUNTU_VERSION=ubuntu1804/x86_64
Ubuntu 20.04
Ubuntu 20.04에서는 다음 명령어를 실행합니다.
export UBUNTU_VERSION=ubuntu2004/x86_64
Ubuntu 22.04
Ubuntu 22.04에서는 다음 명령어를 실행합니다.
export UBUNTU_VERSION=ubuntu2204/x86_64
cuda-keyring
패키지를 다운로드합니다.wget https://developer.download.nvidia.com/compute/cuda/repos/$UBUNTU_VERSION/cuda-keyring_1.0-1_all.deb
cuda-keyring
패키지를 설치합니다.sudo dpkg -i cuda-keyring_1.0-1_all.deb
NVIDIA 저장소를 추가합니다.
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/$UBUNTU_VERSION/ /"
메시지가 표시되면 현재 버전을 유지하는 기본 작업을 선택합니다.
호환되는 CUDA 드라이버 버전을 찾습니다.
다음 스크립트는 바로 전에 설치한 NVIDIA 드라이버와 호환되는 최신 CUDA 드라이버 버전을 확인합니다.
CUDA_DRIVER_VERSION=$(apt-cache madison cuda-drivers | awk '{print $3}' | sort -r | while read line; do if dpkg --compare-versions $(dpkg-query -f='${Version}\n' -W nvidia-driver-${NVIDIA_DRIVER_VERSION}) ge $line ; then echo "$line" break fi done)
echo $CUDA_DRIVER_VERSION
을 실행하여 CUDA 드라이버 버전을 확인할 수 있습니다. 그러면455.32.00-1
과 같은 버전 문자열이 출력됩니다.이전 단계에서 식별된 버전으로 CUDA 드라이버를 설치합니다.
sudo apt install cuda-drivers-${NVIDIA_DRIVER_VERSION}=${CUDA_DRIVER_VERSION} cuda-drivers=${CUDA_DRIVER_VERSION}
선택사항:
dkms
패키지를 보류합니다.보안 부트를 사용 설정한 후에는 로드할 모든 커널 모듈을 서명해야 합니다.
dkms
로 빌드된 커널 모듈은 기본적으로 올바르게 서명되지 않았기 때문에 VM에서 작동하지 않습니다. 이 단계는 선택사항이지만 이후에 다른dkms
패키지를 실수로 설치하는 것을 방지하는 데 도움이 됩니다.dkms
패키지를 보류하려면 다음 명령어를 실행합니다.sudo apt-get remove dkms && sudo apt-mark hold dkms
CUDA 툴킷 및 런타임을 설치합니다.
적합한 CUDA 버전을 선택합니다. 다음 스크립트는 바로 전에 설치한 CUDA 드라이버와 호환되는 최신 CUDA 버전을 확인합니다.
CUDA_VERSION=$(apt-cache showpkg cuda-drivers | grep -o 'cuda-runtime-[0-9][0-9]-[0-9],cuda-drivers [0-9\\.]*' | while read line; do if dpkg --compare-versions ${CUDA_DRIVER_VERSION} ge $(echo $line | grep -Eo '[[:digit:]]+\.[[:digit:]]+') ; then echo $(echo $line | grep -Eo '[[:digit:]]+-[[:digit:]]') break fi done)
echo $CUDA_VERSION
을 실행하여 CUDA 버전을 확인할 수 있습니다. 그러면11-1
과 같은 버전 문자열이 출력됩니다.CUDA 패키지를 설치합니다.
sudo apt install cuda-${CUDA_VERSION}
CUDA 설치를 확인합니다.
sudo nvidia-smi
/usr/local/cuda/bin/nvcc --version
첫 번째 명령어는 GPU 정보를 출력합니다. 두 번째 명령어는 설치된 CUDA 컴파일러 버전을 출력합니다.
GPU 드라이버 설치 확인
드라이버 설치 단계를 완료한 후 드라이버가 올바르게 설치 및 초기화되었는지 확인합니다.
Linux
Linux 인스턴스에 연결하고 nvidia-smi
명령어를 사용하여 드라이버가 올바르게 실행되고 있는지 확인합니다.
sudo nvidia-smi
출력은 다음과 비슷합니다.
Tue Mar 21 19:50:15 2023 +-----------------------------------------------------------------------------------------+ | NVIDIA-SMI 550.90.07 Driver Version: 550.90.07 CUDA Version: 12.4 | |-----------------------------------------+------------------------+----------------------+ | 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 Tesla T4 On | 00000000:00:04.0 Off | 0 | | N/A 50C P8 16W / 70W | 1MiB / 15360MiB | 0% Default | | | | N/A | +-----------------------------------------+------------------------+----------------------+ +-----------------------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=========================================================================================| | No running processes found | +-----------------------------------------------------------------------------------------+
이 명령어가 실패하면 다음을 검토합니다.
GPU가 VM에 연결되어 있는지 확인합니다. NVIDIA PCI 기기를 확인하려면 다음 명령어를 실행합니다.
sudo lspci | grep -i "nvidia"
드라이버 커널 버전과 VM 커널 버전이 동일한지 확인합니다.
VM 커널 버전을 확인하려면 다음 명령어를 실행합니다.
uname -r
드라이버 커널 버전을 확인하려면 다음 명령어를 실행합니다.
sudo apt-cache show linux-modules-nvidia-NVIDIA_DRIVER_VERSION-gcp
버전이 일치하지 않으면 VM을 새 커널 버전으로 재부팅합니다.
Windows Server
Windows Server 인스턴스에 연결하고 PowerShell 터미널을 연 후 다음 명령어를 실행하여 드라이버가 제대로 실행 중인지 확인합니다.
nvidia-smi
출력은 다음과 비슷합니다.
+---------------------------------------------------------------------------------------+ | NVIDIA-SMI 538.67 Driver Version: 538.67 CUDA Version: 12.2 | |-----------------------------------------+----------------------+----------------------+ | GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+======================+======================| | 0 NVIDIA L4 WDDM | 00000000:00:03.0 Off | 0 | | N/A 66C P8 17W / 72W | 128MiB / 23034MiB | 0% Default | | | | N/A | +-----------------------------------------+----------------------+----------------------+ +---------------------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=======================================================================================| | 0 N/A N/A 4888 C+G ...CBS_cw5n1h2txyewy\TextInputHost.exe N/A | | 0 N/A N/A 5180 C+G ....Search_cw5n1h2txyewy\SearchApp.exe N/A | +---------------------------------------------------------------------------------------+
다음 단계
- GPU 성능을 모니터링하려면 GPU 성능 모니터링을 참조하세요.
- GPU 호스트 유지보수를 처리하려면 GPU 호스트 유지보수 이벤트 처리를 참조하세요.
- 네트워크 성능을 향상시키려면 더 높은 네트워크 대역폭 사용을 참조하세요.
- GPU VM 문제를 해결하려면 GPU VM 문제 해결을 참조하세요.