创建并启动搭载 NVIDIA GPU 的虚拟机实例

本文档介绍了如何创建具有 NVIDIA 图形处理器 (GPU) 的基于 Linux 的虚拟机 (VM) 实例。如需在 Windows 虚拟机实例上执行类似步骤,请参阅在 Windows 虚拟机上安装 NVIDIA GPU 驱动程序。

借助配备 GPU 的虚拟机,您可以运行各种 GPU 加速型工作负载,例如人工智能和机器学习。

配备 GPU 的虚拟机属于“加速器优化型”A 系列机器家族,例如 A2 和 A3。如需了解详情,请参阅查看虚拟机机器类型。

本文档适用于在 Google Distributed Cloud (GDC) 网闸隔离环境中创建虚拟机的平台管理员或应用运维人员群组中的开发者。如需了解详情,请参阅适用于 GDC 网闸隔离配置文档的受众群体。

准备工作

准备环境

如需使用 gdcloud 命令行界面 (CLI) 命令,请确保您已下载、安装并配置 gdcloud CLI。Distributed Cloud 的所有命令都使用 gdcloud 或 kubectl CLI,并且需要 Linux 环境。

申请 IAM 角色

请与您的 IAM 项目管理员联系,请求在您的项目中授予以下角色:

  • Virtual Machine Project Admin (project-vm-admin):在项目命名空间中创建、修改、列出和删除虚拟机。

  • Project Viewer(project-viewer):查看项目命名空间中的所有资源。

所有虚拟机角色都必须绑定到虚拟机所在项目的命名空间。 按照相关步骤验证您的访问权限。

创建虚拟机

按照通过映像创建虚拟机中概述的步骤创建虚拟机,然后选择 A 系列机器类型。

安装 NVIDIA 驱动程序

本部分介绍了在 GDC 虚拟机实例上安装 NVIDIA 驱动程序的步骤。

安装软件包

从 v20250809 版及更高版本开始,GDC 提供的 Ubuntu 和 Rocky Linux 映像预安装了 NVIDIA 驱动程序。

对于 v20250809 之前的映像版本和用户提供的自定义映像,请从 GDC 软件包仓库安装驱动程序。使用 SSH 连接到虚拟机,然后运行与虚拟机操作系统 (OS) 对应的命令:

Ubuntu

 sudo apt install nvidia-dkms-570-server-open

Rocky Linux 和 RHEL

 sudo dnf install nvidia-driver-cuda

运行 DKMS

使用 dkms 命令在虚拟机上启用 NVIDIA 驱动程序。您只需为每个虚拟机执行一次此任务:

   sudo dkms autoinstall

安装 CUDA 工具包

NVIDIA CUDA 工具包可在 GDC Package Repository 中找到。使用 SSH 连接到虚拟机,然后运行与虚拟机操作系统对应的命令:

Ubuntu

 sudo apt install cuda-toolkit-12-8

Rocky Linux 和 RHEL

 sudo dnf install cuda-toolkit-12-8

启用安全启动并为驱动程序签名

如果您需要在配备 GPU 的虚拟机上启用安全启动,则必须为 GPU 驱动程序签名。 请参阅与您的操作系统对应的说明。

Ubuntu

  1. 使用 SSH 连接到虚拟机。
  2. 切换到超级用户:

    sudo su
    
  3. 如果 MOK 密钥尚不存在,请生成一个:

    [ -f /var/lib/shim-signed/mok/MOK.der ] || openssl req -new -x509 -newkey rsa:2048 -keyout /var/lib/shim-signed/mok/MOK.priv \
        -outform DER -out /var/lib/shim-signed/mok/MOK.der \
        -nodes -days 36500 -subj "/CN=DKMS Signing Key/"
    
  4. 使用 mokutil 注册密钥:

    mokutil --import /var/lib/shim-signed/mok/MOK.der
    
  5. 系统提示时,请创建并输入您选择的新密码。

  6. 使用 MOK 为 NVIDIA 内核模块签名:

    for module in nvidia nvidia_drm nvidia_modeset nvidia_uvm nvidia_peermem; do
        /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 /var/lib/shim-signed/mok/MOK.priv /var/lib/shim-signed/mok/MOK.der $(modinfo -n $module)
    done
    

Rocky Linux 和 RHEL

  1. 使用 SSH 连接到虚拟机。
  2. 切换到超级用户:

    sudo su
    
  3. 使用 dkms autoinstall 通过密钥对驱动程序进行签名:

    sudo dkms autoinstall
    
  4. 在 MOK 中注册 DKMS 密钥:

    mokutil --import /var/lib/dkms/mok.pub
    

完成 MOK 注册和验证

如需访问 MOK 管理屏幕,请务必重启虚拟机实例并立即连接到串行端口。该屏幕对时效的要求很高,仅在启动过程中短暂显示。具体而言,请按以下步骤操作:

  1. 重启虚拟机实例:

    reboot
    
  2. 连接到虚拟机的串行控制台。如需了解详情,请参阅连接到串行端口。

  3. 从控制台注册 MOK:

    虚拟机串行控制台 MOK 管理界面

    虚拟机串行控制台 MOK 管理界面,其中突出显示了“Enroll MOK”(注册 MOK)

    您可以查看该密钥,确保它与您在前面步骤中生成的密钥一致:

    虚拟机串行控制台 MOK 管理界面,其中已选择“Continue”(继续)

  4. 输入您之前选择的密码:

    虚拟机串行控制台 MOK 管理屏幕,提示输入密码

  5. 从 MOK 管理菜单中选择“Reboot”(重新启动):

    虚拟机串行控制台 MOK 管理界面,其中已选择“Reboot”(重新启动)

  6. 运行 nvidia-smi,验证 NVIDIA 驱动程序是否正常运行。

    输出会显示 GPU 状态和驱动程序信息:

    $ nvidia-smi
    Wed Aug 13 00:09:17 2025
    +-----------------------------------------------------------------------------------------+
    | NVIDIA-SMI 570.158.01             Driver Version: 570.158.01     CUDA Version: 12.8     |
    |-----------------------------------------+------------------------+----------------------+
    | 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  NVIDIA H200                    Off |   00000000:08:00.0 Off |                    0 |
    | N/A   42C    P0            128W /  700W |       0MiB / 143771MiB |      0%      Default |
    |                                         |                        |             Disabled |
    +-----------------------------------------+------------------------+----------------------+
    |   1  NVIDIA H200                    Off |   00000000:09:00.0 Off |                    0 |
    | N/A   36C    P0            127W /  700W |       0MiB / 143771MiB |      0%      Default |
    |                                         |                        |             Disabled |
    +-----------------------------------------+------------------------+----------------------+
    |   2  NVIDIA H200                    Off |   00000000:0A:00.0 Off |                    0 |
    | N/A   34C    P0            122W /  700W |       0MiB / 143771MiB |      0%      Default |
    |                                         |                        |             Disabled |
    +-----------------------------------------+------------------------+----------------------+
    |   3  NVIDIA H200                    Off |   00000000:0B:00.0 Off |                    0 |
    | N/A   40C    P0            128W /  700W |       0MiB / 143771MiB |      0%      Default |
    |                                         |                        |             Disabled |
    +-----------------------------------------+------------------------+----------------------+
    |   4  NVIDIA H200                    Off |   00000000:0C:00.0 Off |                    0 |
    | N/A   39C    P0            125W /  700W |       0MiB / 143771MiB |      0%      Default |
    |                                         |                        |             Disabled |
    +-----------------------------------------+------------------------+----------------------+
    |   5  NVIDIA H200                    Off |   00000000:0D:00.0 Off |                    0 |
    | N/A   35C    P0            122W /  700W |       0MiB / 143771MiB |      0%      Default |
    |                                         |                        |             Disabled |
    +-----------------------------------------+------------------------+----------------------+
    |   6  NVIDIA H200                    Off |   00000000:0E:00.0 Off |                    0 |
    | N/A   39C    P0            128W /  700W |       0MiB / 143771MiB |      0%      Default |
    |                                         |                        |             Disabled |
    +-----------------------------------------+------------------------+----------------------+
    |   7  NVIDIA H200                    Off |   00000000:0F:00.0 Off |                    0 |
    | N/A   35C    P0            121W /  700W |       0MiB / 143771MiB |      0%      Default |
    |                                         |                        |             Disabled |
    +-----------------------------------------+------------------------+----------------------+
    
    +-----------------------------------------------------------------------------------------+
    | Processes:                                                                              |
    |  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
    |        ID   ID                                                               Usage      |
    |=========================================================================================|
    |  No running processes found                                                             |
    +-----------------------------------------------------------------------------------------+
    

后续步骤