安装 GPU 驱动程序


创建具有一个或多个 GPU 的虚拟机 (VM) 实例后,系统需要安装 NVIDIA 设备驱动程序,以便应用可以访问设备。确保您的虚拟机 (VM) 实例具有足够的可用磁盘空间。创建新虚拟机时,您应该至少为启动磁盘选择 40 GB。

如需安装驱动程序,您有以下两种选择:

  • 如果您需要将 GPU 用于硬件加速 3D 图形(例如远程桌面)或用于游戏,请参阅为 NVIDIA RTX 虚拟工作站 (vWS) 安装驱动程序

  • 对于其他工作负载,请按照本文档中的说明安装 NVIDIA 驱动程序。

NVIDIA 驱动程序、CUDA 工具包和 CUDA 运行时版本

您的环境中可能需要使用不同版本的驱动程序和运行时。其中包括以下组件:

  • NVIDIA 驱动程序
  • CUDA 工具包
  • CUDA 运行时

安装这些组件时,您可以配置环境以满足您的需求。例如,如果您的某个较低版本的 Tensorflow 最适合与某个较低版本的 CUDA 工具包搭配使用,但您想要使用的 GPU 需要更高版本的 NVIDIA 驱动程序,那么您可以安装较低版本的 CUDA 工具包和较高版本的 NVIDIA 驱动程序。

但是,您必须确保 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、A3 High、A3 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 指南在虚拟机上安装 GPU 驱动程序

在大多数虚拟机上安装 NVIDIA 驱动程序的一种方法是安装 NVIDIA CUDA 工具包

要安装 NVIDIA 工具包,请完成以下步骤:

  1. 选择支持您需要的最低驱动程序版本CUDA 工具包

  2. 连接到要安装驱动程序的虚拟机

  3. 在虚拟机上,下载并安装 CUDA 工具包。推荐使用的最低工具包的安装软件包和指南如下表所示。 在安装工具包之前,请确保完成安装指南中的安装前步骤。

    机器系列 NVIDIA GPU 型号 Linux 推荐的 CUDA 工具包 Windows 推荐的 CUDA 工具包
    A4X GB200 不适用
    A4 B200 不适用
    A3 H200、H100 不适用
    G2 L4
    A2 A100
    N1
    • T4
    • V100
    • P100
    • P4

使用安装脚本在虚拟机上安装 GPU 驱动程序

您可以使用以下脚本自动执行安装过程。如需查看这些脚本,请参阅 GitHub 代码库

Linux

按照以下说明在正在运行的虚拟机上安装 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. 如果安装了 2.38.0 版或更高版本的 Ops Agent 来收集虚拟机上的 GPU 指标,则必须先停止代理,然后才能使用此安装脚本安装或升级 GPU 驱动程序。

    完成 GPU 驱动程序的安装或升级后,您必须重启虚拟机。

    如需停止 Ops Agent,请运行以下命令:

    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

    运行脚本需要一些时间。这会重启您的虚拟机。如果虚拟机重启,请再次运行脚本以继续安装。

  5. 验证安装。请参阅验证 GPU 驱动程序安装

  6. 您还可以使用此工具安装 CUDA 工具包。要安装 CUDA 工具包,请运行以下命令:

    sudo python3 cuda_installer.pyz install_cuda

    此脚本可能至少需要 30 分钟才能完成运行。这会重启虚拟机。如果虚拟机重启,请再次运行脚本以继续安装。

  7. 验证 CUDA 工具包安装。

    python3 cuda_installer.pyz verify_cuda

Linux(启动脚本)

按照以下说明在虚拟机启动期间安装 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

此安装脚本可用于启用了安全启动的虚拟机。

  • 对于使用 G2 机器系列的 Windows 虚拟机,此脚本仅会安装 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

    运行脚本需要一些时间。安装过程中不会提供命令提示。脚本退出后,驱动程序即会安装。

    此脚本会在虚拟机上的以下默认位置安装这些驱动程序:C:\Program Files\NVIDIA Corporation\

  4. 验证安装。请参阅验证 GPU 驱动程序安装

安装 GPU 驱动程序(安全启动虚拟机)

以下说明适用于在使用安全启动的 Linux 虚拟机上安装 GPU 驱动程序。

GPU 支持

本部分中的过程支持 Compute Engine 上提供的所有 GPU 型号

您无法使用这些过程在挂接了 NVIDIA RTX 虚拟工作站 (vWS) 版本 GPU 的安全启动实例上安装驱动程序。

如果您使用的是不使用安全启动的 Windows 虚拟机或 Linux 虚拟机,请改为查看以下说明之一:

对于 Linux 虚拟机,在安全启动虚拟机上安装驱动程序的过程是不同的,因为这些虚拟机要求所有内核模块均具有受信任的证书签名。

安装

您可以使用以下任一选项来安装具有受信任的证书的驱动程序:

  • 为您的驱动程序创建受信任的证书。对于此选项,请从以下各项中进行选择:
    • 自动化方法:使用映像构建工具创建启动映像,其中包含用于所安装驱动程序的受信任的证书
    • 手动方法:生成您自己的证书,并使用该证书为 GPU 驱动程序的内核模块签名
  • 使用预签名的驱动程序和受信任的现有证书。此方法仅支持 Ubuntu。

自签名(自动化)

支持的操作系统:

此自动化自签名方法已在以下操作系统上进行测试:

  • Debian 12
  • Red Hat Enterprise Linux (RHEL) 8 和 9
  • Rocky Linux 8 和 9
  • Ubuntu 22 和 24

过程

如需创建包含自签名证书的操作系统映像,请完成以下步骤:

    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:用于创建所使用的临时虚拟机的可用区。例如 us-west4-a
    • IMAGE_NAME:要创建的映像的名称。
    • BASE_IMAGE_NAME:请从以下各项中选择一项:

      • debian-12
      • rhel-8rhel-9
      • rocky-8rocky-9
      • ubuntu-22ubuntu-24

    您还可以添加 --family NAME 标志,以将新映像添加到某个映像系列中。

    如需查看用于映像的所有自定义选项,请运行 python3 cuda_installer.pyz build_image --help。您还可以在 GitHub 上查看适用于 cuda_installer 的文档

  3. 验证映像。请按照以下步骤验证映像是否启用了安全启动,以及是否可以创建安装了 NVIDIA 驱动程序的 GPU 实例。

    1. 创建测试虚拟机实例,以验证您的映像是否已正确配置且 GPU 驱动程序是否已成功加载。以下示例将创建一个 N1 机器类型,并挂接单个 NVIDIA T4 加速器。不过,您可以使用自己选择的任何受支持的 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:测试虚拟机实例的名称
      • ZONE:包含 T4 GPU 或您选择的 GPU 的可用区。如需了解详情,请参阅 GPU 区域和可用区
    2. 使用 gcloud compute ssh 在测试虚拟机上运行 mokutil --sb-state 命令,以检查是否启用了安全启动。

      gcloud compute ssh --project=$PROJECT --zone=$ZONE $TEST_INSTANCE_NAME --command "mokutil --sb-state"
      
    3. 使用 gcloud compute ssh 在测试虚拟机上运行 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. 清理。验证自定义映像是否正常运行后,您无需保留验证虚拟机。如需删除虚拟机,请运行以下命令:

    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 驱动程序并为其签名。如需创建虚拟机,您可以使用自己选择的操作系统。创建虚拟机时,您必须停用安全启动。您无需将任何 GPU 挂接到虚拟机。
  3. 安装 GPU 驱动程序并为其签名,并且可安装可选的 CUDA Toolkit。
  4. 基于带有自签名驱动程序的机器创建磁盘映像,并将您的证书添加到受信任的证书列表
  5. 使用映像创建启用了安全启动的 GPU 虚拟机。

映像创建

    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. 创建一个虚拟机以安装自签名驱动程序。创建虚拟机时,您无需挂接任何 GPU 或启用安全启动。您可以使用可用空间至少为 40 GB 的标准 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:用于构建映像的虚拟机实例的名称。
    • IMAGE_NAME:磁盘映像的名称。
    • ZONE:要在其中创建虚拟机的区域。
    • PROJECT_ID:要用于在其中构建新磁盘映像的项目的 ID。
    • IMAGE_DETAILS:所选基础操作系统映像的映像系列和项目:

      • 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. 将生成的私钥文件复制到虚拟机。如需为驱动程序文件签名,您需要在虚拟机上提供新生成的密钥对。

    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 连接到虚拟机:

      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 连接到虚拟机并重新运行脚本以继续安装。

      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. 移除证书文件,因为临时机器不再需要它们。为提高安全性,请使用 shred 而非 rm 命令。最终磁盘映像中不应包含密钥。

      shred -uz private.key public.der
      
    6. 关闭虚拟机,以便您可以使用其磁盘创建新映像。

      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. 基于临时虚拟机的磁盘创建映像。您可以添加 --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 虚拟机。在此步骤中,我们建议使用启用了安全启动且具有单个 T4 加速器的 N1 机器类型。不过,该映像还支持其他类型的 GPU 和机器类型。

    1. 创建测试 GPU 虚拟机:

      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 虚拟机实例的名称。
      • ZONE:包含 T4 GPU 或您选择的其他 GPU 的可用区。如需了解详情,请参阅 GPU 区域和可用区
    2. 使用 gcloud compute ssh 在测试虚拟机上运行 mokutil --sb-state 命令,以检查是否启用了安全启动。

      gcloud compute ssh --project=$PROJECT --zone=$ZONE $TEST_GPU_INSTANCE --command "mokutil --sb-state"
      
    3. 使用 gcloud compute ssh 在测试虚拟机上运行 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. 清理。验证新映像是否正常运行后,您无需保留临时虚拟机或验证虚拟机。您创建的磁盘映像不会以任何方式依赖于它们。您可以使用以下命令将其删除:

    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 虚拟机。我们正在设法支持更多 Linux 操作系统。

如需在使用安全启动的 Ubuntu 虚拟机上安装 GPU 驱动程序,请完成以下步骤:

  1. 连接到要安装驱动程序的虚拟机

  2. 更新代码库

     sudo apt-get update
    
  3. 搜索最新的 NVIDIA 内核模块软件包或您所需的版本。此软件包包含由 Ubuntu 密钥签名的 NVIDIA 内核模块。如果您要查找早期版本,请更改 tail 参数的数字以获取早期版本。例如,指定 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 驱动程序。请更改 tail 数字来重试上一步并选择早期驱动程序版本。

  5. 验证是否已安装 NVIDIA 驱动程序。您可能需要重新启动虚拟机。

  6. 如果您重新启动系统来验证 NVIDIA 版本。重新启动后,您需要通过重新运行第 3 步中使用的命令来重置 NVIDIA_DRIVER_VERSION 变量。

  7. 配置 APT 以使用 NVIDIA 软件包代码库。

    1. 要帮助 APT 选择正确的依赖项,请按如下所示 Pin 代码库:

      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 构建的内核模块不适用于虚拟机,因为在默认情况下它们没有正确签署。这是一个可选步骤,但它有助于防止您将来在无意中安装其他 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 是否已挂接到虚拟机。如需检查是否有任何 NVIDIA PCI 设备,请运行以下命令:

    sudo lspci | grep -i "nvidia"
  • 检查驱动程序内核版本和虚拟机内核版本是否相同。

    • 如需检查虚拟机内核版本,请运行以下命令:

      uname -r
    • 如需检查驱动程序内核版本,请运行以下命令:

      sudo apt-cache show linux-modules-nvidia-NVIDIA_DRIVER_VERSION-gcp

      如果版本不匹配,请重新启动虚拟机到新的内核版本。

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      |
+---------------------------------------------------------------------------------------+

后续步骤