GPU 드라이버 설치


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 툴킷을 설치하려면 다음 단계를 완료합니다.

  1. 필요한 최소 드라이버를 지원하는 CUDA 툴킷을 선택합니다.

  2. 드라이버를 설치하려는 VM에 연결합니다.

  3. VM에서 CUDA 툴킷을 다운로드하고 설치합니다. 최소 권장 툴킷의 설치 패키지 및 가이드는 다음 표에 나와 있습니다. 툴킷을 설치하기 전 설치 가이드에 있는 사전 설치 단계를 완료해야 합니다.

    머신 시리즈 NVIDIA GPU 모델 Linux 권장 CUDA 툴킷 Windows 권장 CUDA 툴킷
    A4X GB200 해당 사항 없음
    A4 B200 해당 사항 없음
    A3 H200, H100 해당 사항 없음
    G2 L4
    A2 A100
    N1
    • T4
    • V100
    • P100
    • P4

설치 스크립트를 사용하여 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 툴킷을 설치하려면 다음 단계를 완료합니다.

  1. VM에서 GPU 측정항목을 수집하는 운영 에이전트 버전이 2.38.0 이상인 경우 이 설치 스크립트를 사용해 GPU 드라이버를 설치하거나 업그레이드하기 전에 에이전트를 중지해야 합니다.

    GPU 드라이버의 설치 또는 업그레이드를 완료한 후 VM을 재부팅해야 합니다.

    운영 에이전트를 중지하려면 다음 명령어를 실행합니다.

    sudo systemctl stop google-cloud-ops-agent
  2. Python 3이 운영체제에 설치되어 있는지 확인합니다.

  3. 설치 스크립트를 다운로드합니다.

    curl -L https://storage.googleapis.com/compute-gpu-installation-us/installer/latest/cuda_installer.pyz --output cuda_installer.pyz
  4. 설치 스크립트를 실행합니다.

    sudo python3 cuda_installer.pyz install_driver

    스크립트를 실행하는 데 시간이 걸립니다. VM이 다시 시작됩니다. VM이 다시 시작되면 스크립트를 다시 실행하여 설치를 계속합니다.

  5. 설치를 확인합니다. GPU 드라이버 설치 확인을 참조하세요.

  6. 이 도구를 사용하여 CUDA 툴킷을 설치할 수도 있습니다. CUDA 툴킷을 설치하려면 다음 명령어를 실행합니다.

    sudo python3 cuda_installer.pyz install_cuda

    이 스크립트를 실행하는 데 30분 이상 걸릴 수 있습니다. VM이 다시 시작됩니다. VM이 다시 시작되면 스크립트를 다시 실행하여 설치를 계속합니다.

  7. 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 툴킷 설치를 자동화합니다.

#!/bin/bash
if test -f /opt/google/cuda-installer
then
  exit
fi

mkdir -p /opt/google/cuda-installer
cd /opt/google/cuda-installer/ || exit

curl -fSsL -O https://storage.googleapis.com/compute-gpu-installation-us/installer/latest/cuda_installer.pyz
python3 cuda_installer.pyz install_cuda

Windows

이 설치 스크립트는 보안 부팅이 사용 설정된 VM에서 사용할 수 있습니다.

  • G2 머신 시리즈를 사용하는 Windows VM의 경우 이 스크립트는 NVIDIA 드라이버만 설치합니다.
  • 다른 머신 유형의 경우 스크립트가 NVIDIA 드라이버와 CUDA 툴킷을 설치합니다.

관리자 권한으로 PowerShell 터미널을 열고 다음 단계를 완료합니다.

  1. Windows Server 2016을 사용하는 경우 전송 계층 보안(TLS) 버전을 1.2로 설정합니다.

    [Net.ServicePointManager]::SecurityProtocol = 'Tls12'
    
  2. 스크립트를 다운로드합니다.

    Invoke-WebRequest https://github.com/GoogleCloudPlatform/compute-gpu-installation/raw/main/windows/install_gpu_driver.ps1 -OutFile C:\install_gpu_driver.ps1
  3. 스크립트를 실행합니다.

    C:\install_gpu_driver.ps1

    스크립트를 실행하는 데 시간이 걸립니다. 설치 프로세스 중에는 명령어 프롬프트가 제공되지 않습니다. 스크립트가 종료되면 드라이버가 설치된 것입니다.

    이 스크립트는 VM의 다음 기본 위치 C:\Program Files\NVIDIA Corporation\에 드라이버를 설치합니다.

  4. 설치를 확인합니다. 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 이미지를 만들려면 다음 단계를 완료하세요.

    1. In the Google Cloud console, activate Cloud Shell.

      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.

  1. cuda_installer 도구를 다운로드합니다. 스크립트의 최신 버전을 다운로드하려면 다음 명령어를 실행합니다.

    curl -L https://storage.googleapis.com/compute-gpu-installation-us/installer/latest/cuda_installer.pyz --output cuda_installer.pyz
    
  2. 다음 명령어를 실행하여 보안 부트가 사용 설정된 이미지를 빌드합니다. 이미지 생성 프로세스는 최대 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 문서를 검토할 수도 있습니다.

  3. 이미지를 확인합니다. 다음 단계에 따라 이미지에 보안 부트가 사용 설정되어 있고 NVIDIA 드라이버가 설치된 GPU 인스턴스를 만들 수 있는지 확인합니다.

    1. 테스트 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 리전 및 영역을 참조하세요.
    2. gcloud compute ssh를 사용하여 테스트 VM에서 mokutil --sb-state 명령어를 실행하여 보안 부트가 사용 설정되어 있는지 확인합니다.

      gcloud compute ssh --project=$PROJECT --zone=$ZONE $TEST_INSTANCE_NAME --command "mokutil --sb-state"
      
    3. 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"
      
  4. 삭제 맞춤설정된 이미지가 작동하는지 확인한 후에는 확인 VM을 계속 유지할 필요가 없습니다. VM을 삭제하려면 다음 명령어를 실행합니다.

    gcloud compute instances delete --zone=$ZONE --project=$PROJECT $TEST_INSTANCE_NAME
    
  5. 선택사항: 만든 디스크 이미지를 삭제하려면 다음 명령어를 실행합니다.

    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

개요

설치, 서명, 이미지 생성 프로세스는 다음과 같습니다.

  1. 드라이버 서명에 사용할 자체 인증서를 생성합니다.
  2. GPU 드라이버를 설치하고 서명할 VM을 만듭니다. VM을 만들려면 원하는 OS를 사용하면 됩니다. VM을 만들 때 보안 부트를 사용 중지해야 합니다. VM에 GPU를 연결할 필요가 없습니다.
  3. GPU 드라이버 및 선택적 CUDA 툴킷을 설치하고 서명합니다.
  4. 자체 서명된 드라이버를 사용하여 머신을 기반으로 디스크 이미지를 만들고 인증서를 신뢰할 수 있는 인증서 목록에 추가합니다.
  5. 이 이미지를 사용하여 보안 부트가 사용 설정된 GPU VM을 만듭니다.

이미지 생성

    1. In the Google Cloud console, activate Cloud Shell.

      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.

  1. 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"
    
  2. 자체 서명된 드라이버를 설치할 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"
  3. 생성된 비공개 키 파일을 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
    
  4. 드라이버를 설치하고 서명합니다. 드라이버 및 CUDA 툴킷의 설치 및 서명은 보안 부트를 사용하지 않는 설치에도 사용되는 설치 스크립트에서 처리합니다. 드라이버를 설치하고 서명하려면 다음 단계를 완료하세요.

    1. SSH를 사용하여 VM에 연결합니다.

      gcloud compute ssh --zone $ZONE --project $PROJECT $INSTANCE_NAME
      
    2. 비공개 키와 공개 키가 올바르게 복사되었는지 확인합니다.

      ls private.key public.der
      
    3. 드라이버 설치 스크립트를 다운로드합니다.

      curl -L https://storage.googleapis.com/compute-gpu-installation-us/installer/latest/cuda_installer.pyz --output cuda_installer.pyz
      
    4. 서명이 구성된 상태로 드라이버 설치가 설정되어 있는지 확인합니다. 설정 중에 빌드 머신이 다시 시작됩니다. 빌드 머신이 다시 시작되면 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 툴킷 설치가 완료되면 시스템이 재부팅됩니다. 다시 연결한 후 다음 단계를 계속 진행할 수 있습니다.

    5. 임시 머신에서 더 이상 필요하지 않으므로 인증서 파일을 삭제합니다. 보안을 강화하려면 rm 명령어 대신 shred를 사용하세요. 키는 최종 디스크 이미지에 없어야 합니다.

      shred -uz private.key public.der
      
    6. 디스크를 사용하여 새 이미지를 만들 수 있도록 VM을 종료합니다.

      sudo shutdown now
      
  5. 기본 디스크 이미지를 준비합니다. 보안 부트가 사용 설정된 인스턴스를 만드는 데 사용할 수 있는 새 디스크 이미지를 만들려면 새로 생성된 키를 신뢰하도록 이미지를 구성해야 합니다. 새 디스크 이미지는 운영체제에서 사용하는 기본 인증서를 계속 수락합니다. 기본 이미지를 준비하려면 다음 단계를 완료합니다.

    1. 기본 인증서를 다운로드합니다. 다음 명령어를 사용하여 MicWinProPCA2011_2011-10-19.crtMicCorUEFCA2011_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
      
    2. 인증서를 확인합니다.

      cat <<EOF >>check.sha1
      46def63b5ce61cf8ba0de2e6639c1019d0ed14f3  MicCorUEFCA2011_2011-06-27.crt
      580a6f4cc4e4b669b9ebdc1b2b3e087b80d0678d  MicWinProPCA2011_2011-10-19.crt
      EOF
      
      sha1sum -c check.sha1
      
    3. 임시 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
      
  6. 새 이미지를 확인합니다. 새 디스크 이미지를 사용하여 GPU VM을 만들 수 있습니다. 이 단계에서는 보안 부트가 사용 설정된 단일 T4 가속기가 있는 N1 머신 유형을 사용하는 것이 좋습니다. 하지만 이 이미지는 다른 유형의 GPU와 머신 유형도 지원합니다.

    1. 테스트 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 리전 및 영역을 참조하세요.
    2. gcloud compute ssh를 사용하여 테스트 VM에서 mokutil --sb-state 명령어를 실행하여 보안 부트가 사용 설정되어 있는지 확인합니다.

      gcloud compute ssh --project=$PROJECT --zone=$ZONE $TEST_GPU_INSTANCE --command "mokutil --sb-state"
      
    3. 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"
      
  7. 삭제 새 이미지가 작동하는지 확인한 후에는 임시 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 드라이버를 설치하려면 다음 단계를 완료하세요.

  1. 드라이버를 설치하려는 VM에 연결합니다.

  2. 저장소를 업데이트합니다.

     sudo apt-get update
    
  3. 최신 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의 경우 다음 명령어를 실행합니다.

    1. Ubuntu FIPS 업데이트를 사용 설정합니다.

      sudo ua enable fips-updates
      
    2. 종료하고 재부팅합니다.

      sudo shutdown -r now
      
    3. 최신 패키지를 가져옵니다.

      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과 같은 버전 문자열이 출력됩니다.

  4. 커널 모듈 패키지 및 해당 NVIDIA 드라이버를 설치합니다.

     sudo apt install linux-modules-nvidia-${NVIDIA_DRIVER_VERSION}-gcp nvidia-driver-${NVIDIA_DRIVER_VERSION}
    

    package not found error와 함께 명령어가 실패하면 저장소에서 최신 NVIDIA 드라이버가 누락되었기 때문일 수 있습니다. 이전 단계를 재시도하고 후행 번호를 변경하여 이전 드라이버 버전을 선택합니다.

  5. NVIDIA 드라이버가 설치되었는지 확인합니다. VM을 재부팅해야 할 수도 있습니다.

  6. NVIDIA 버전을 확인하기 위해 시스템을 재부팅한 경우, 재부팅한 후 3단계에서 사용한 명령어를 다시 실행하여 NVIDIA_DRIVER_VERSION 변수를 재설정해야 합니다.

  7. NVIDIA 패키지 저장소를 사용하도록 APT를 구성합니다.

    1. 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 EOL

    2. software-properties-common를 설치합니다. Ubuntu 최소 이미지를 사용할 경우에 필요합니다.

      sudo apt install software-properties-common
      
    3. 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
    4. cuda-keyring 패키지를 다운로드합니다.

      wget https://developer.download.nvidia.com/compute/cuda/repos/$UBUNTU_VERSION/cuda-keyring_1.0-1_all.deb
    5. cuda-keyring 패키지를 설치합니다.

      sudo dpkg -i cuda-keyring_1.0-1_all.deb
    6. NVIDIA 저장소를 추가합니다.

      sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/$UBUNTU_VERSION/ /"

    메시지가 표시되면 현재 버전을 유지하는 기본 작업을 선택합니다.

  8. 호환되는 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과 같은 버전 문자열이 출력됩니다.

  9. 이전 단계에서 식별된 버전으로 CUDA 드라이버를 설치합니다.

     sudo apt install cuda-drivers-${NVIDIA_DRIVER_VERSION}=${CUDA_DRIVER_VERSION} cuda-drivers=${CUDA_DRIVER_VERSION}
    

  10. 선택사항: dkms 패키지를 보류합니다.

    보안 부트를 사용 설정한 후에는 로드할 모든 커널 모듈을 서명해야 합니다. dkms로 빌드된 커널 모듈은 기본적으로 올바르게 서명되지 않았기 때문에 VM에서 작동하지 않습니다. 이 단계는 선택사항이지만 이후에 다른 dkms 패키지를 실수로 설치하는 것을 방지하는 데 도움이 됩니다.

    dkms 패키지를 보류하려면 다음 명령어를 실행합니다.

     sudo apt-get remove dkms && sudo apt-mark hold dkms
    
  11. 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과 같은 버전 문자열이 출력됩니다.

  12. CUDA 패키지를 설치합니다.

     sudo apt install cuda-${CUDA_VERSION}
    
  13. 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      |
+---------------------------------------------------------------------------------------+

다음 단계