添加或移除 GPU


Compute Engine 提供了可添加到虚拟机实例的图形处理单元 (GPU)。您可以使用这些 GPU 加速虚拟机上的特定工作负载,例如机器学习和数据处理。

在 Compute Engine 上运行 GPU 时,您只能使用两个机器系列:

  • 加速器优化机器系列:A3、A2 和 G2。
  • N1 通用机器系列。您可以使用大多数 N1 机器类型,但 N1 共享核心机器类型除外。如果您使用的不是 N1 通用机器,则可以更改为 N1 通用机器,然后添加 GPU。

准备工作

  • 如需查看其他前提条件步骤(例如选择操作系统映像和检查 GPU 配额),请参阅概览文档。
  • 设置身份验证(如果尚未设置)。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以按如下方式向 Compute Engine 进行身份验证。

    选择标签页以了解您打算如何使用本页面上的示例:

    控制台

    当您使用 Google Cloud 控制台访问 Google Cloud 服务和 API 时,无需设置身份验证。

    REST

    如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。

      安装 Google Cloud CLI,然后通过运行以下命令初始化 Google Cloud CLI:

      gcloud init

加速器优化型虚拟机

每种加速器优化机器类型都挂接了特定型号的 NVIDIA GPU。

您可以按如下方式修改每个加速器优化虚拟机:

  • 对于 A2 标准虚拟机,您可以通过从一种 A2 标准机器类型切换到另一种 A2 标准机器类型来修改 GPU 数量。

  • 对于 A3 标准虚拟机和 A2 Ultra 虚拟机,您无法修改机器类型。如果您为虚拟机使用 A3 标准或 A2 Ultra 机器类型,并且需要更改机器类型,请创建新的虚拟机。

  • 对于 G2 标准虚拟机,您可以执行以下操作:

    • 您可以通过从一种 G2 标准机器类型切换到另一种 G2 标准机器类型来修改 GPU 数量。
    • 您可以从 G2 标准机器类型切换到其他机器系列(例如通用或计算优化)的机器类型。请参阅更改机器类型
  • 您不能从加速器优化机器类型中移除 GPU。如果您不再需要 GPU,请完成以下操作:

    • 对于 A2 标准虚拟机或超虚拟机,请创建一个新的虚拟机。
    • 对于 G2 虚拟机,请改用其他机器系列中的机器类型。

修改 GPU 数量

您可以使用 Google Cloud 控制台或 REST 修改 A2 标准或 G2 加速器优化型虚拟机的 GPU 数量。

控制台

您可以通过停止虚拟机并修改虚拟机配置来修改虚拟机的 GPU 数量。

  1. 确认虚拟机上的所有关键应用都已停止。

  2. 在 Google Cloud 控制台中,进入虚拟机实例页面查看虚拟机列表。

    转到虚拟机实例

  3. 点击要为其修改 GPU 数量的虚拟机的名称。系统会打开详细信息页面。

  4. 详细信息页面中完成以下步骤。

    1. 如果虚拟机正在运行,请点击工具栏中的 停止。然后,等待虚拟机停止。

    2. 点击工具栏中的 修改

    3. 机器配置部分中,选择 GPU 机器系列,然后执行以下操作:

      1. GPU 数量列表中,增加或减少 GPU 数量。

    4. 如需应用更改,请点击保存

    5. 如需重启虚拟机,请点击启动/恢复

REST

您可以通过停止虚拟机并更改机器类型来修改虚拟机上的 GPU 数量。每种加速器优化机器类型都挂接了特定数量的 GPU。如果您更改机器类型,则会调整挂接到虚拟机的 GPU 数量。

  1. 确认虚拟机上的所有关键应用都已停止运行,然后创建 POST 命令来停止该虚拟机,使其可以转移到有可用 GPU 的主机系统。

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop
    
  2. 虚拟机停止后,创建 POST 请求以修改机器类型。

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setMachineType
    
    {
       machineType: "zones/ZONE/machineTypes/MACHINE_TYPE"
    }
    
  3. 启动虚拟机。

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/start
    

请替换以下内容:

  • PROJECT_ID:您的项目 ID。
  • VM_NAME:要添加 GPU 的虚拟机的名称。
  • ZONE:该虚拟机所在的可用区。此可用区必须支持 GPU
  • MACHINE_TYPE:您要使用的机器类型。必须是以下类型之一:

    • 如果您的虚拟机使用 A2 标准机器,请选择其他 A2 机器类型
    • 如果您的虚拟机使用 G2 机器类型,请选择其他 G2 机器类型。G2 机器类型还支持自定义内存。内存必须是 1024 MB 的倍数且在支持的内存范围内。例如,如需创建具有 4 个 vCPU 和 19 GB 内存的虚拟机,请指定 --machine-type=g2-custom-4-19456

限制

A2 标准

  • 使用 A2 标准机器类型的虚拟机不会获得持续使用折扣和灵活承诺使用折扣。
  • 您只能在某些区域和可用区中使用 A2 标准机器类型。
  • 您不能在使用 A2 标准机器类型的虚拟机上使用区域永久性磁盘
  • A2 标准机器类型仅在 Cascade Lake 平台上提供。
  • 如果您的虚拟机使用 A2 标准机器类型,您只能从一个 A2 标准机器类型切换到另一个 A2 标准机器类型。您无法切换到任何其他机器类型。如需了解详情,请参阅修改加速器优化虚拟机
  • 您不能在 Windows 操作系统上使用 a2-megagpu-16g A2 标准机器类型。使用 Windows 操作系统时,请选择其他 A2 标准机器类型。
  • 您不能在使用 A2 标准机器类型的 Windows 虚拟机上快速格式化挂接的本地 SSD。如需设置这些本地 SSD 的格式,您必须使用 diskpart 实用程序并指定 format fs=ntfs label=tmpfs 设置,以进行完整格式化。
  • A2 标准机器类型不支持单租户。

A2 Ultra

  • 使用 A2 Ultra 机器类型的虚拟机不会获得持续使用折扣和灵活承诺使用折扣。
  • 您只能在某些区域和可用区中使用 A2 Ultra 机器类型。
  • 您不能在使用 A2 Ultra 机器类型的虚拟机上使用区域永久性磁盘
  • A2 Ultra 机器类型仅在 Cascade Lake 平台上提供。
  • 如果您的虚拟机使用 A2 Ultra 机器类型,您无法更改机器类型。如果您需要使用其他 A2 Ultra 机器类型或任何其他机器类型,则必须创建新虚拟机。
  • 您不能将其他任何机器类型更改为 A2 Ultra 机器类型。如果您需要创建使用 A2 Ultra 机器类型的虚拟机,则必须创建新虚拟机。
  • 您不能在使用 A2 Ultra 机器类型的 Windows 虚拟机上快速格式化挂接的本地 SSD。如需设置这些本地 SSD 的格式,您必须使用 diskpart 实用程序并指定 format fs=ntfs label=tmpfs 设置,以进行完整格式化。

G2 标准

  • 使用 G2 标准机器类型的虚拟机不会获得持续使用折扣和灵活承诺使用折扣。
  • 您只能在某些区域和可用区中使用 G2 标准机器类型。
  • 您不能在使用 G2 标准机器类型的虚拟机上使用区域永久性磁盘
  • G2 标准机器类型仅在 Cascade Lake 平台上提供。
  • 使用 G2 标准机器类型的虚拟机不支持标准永久性磁盘 (pd-standard)。如需了解支持的磁盘类型,请参阅 G2 支持的磁盘类型
  • 您不能在 G2 标准机器类型上创建多实例 GPU
  • 如果您需要更改 G2 虚拟机的机器类型,请查看修改加速器优化虚拟机
  • 您不能将 Deep Learning VM Image 映像用作使用 G2 标准机器类型的虚拟机的启动磁盘。
  • Container-Optimized OS 的当前默认驱动程序不支持在 G2 机器类型上运行的 L4 GPU。Container-Optimized OS 也仅支持一组特定的驱动程序。如需在 G2 机器类型上使用 Container-Optimized OS,请查看以下说明:
    • 使用支持推荐的最低 NVIDIA 驱动程序版本 525.60.13 或更高版本的 Container-Optimized OS 版本。如需了解详情,请查看 Container-Optimized OS 版本说明
    • 安装驱动程序时,请指定适用于 L4 GPU 的最新可用版本。 例如 sudo cos-extensions install gpu -- -version=525.60.13
  • 在以下情况下,您必须使用 Google Cloud CLI 或 REST 创建 G2 虚拟机
    • 您想要指定自定义内存值。
    • 您想要自定义可见 CPU 核心数。

N1 通用虚拟机

本部分介绍如何在 N1 通用机器中添加、修改或移除 GPU。

概括来讲,在现有虚拟机中添加、修改或移除 GPU 的过程如下:

  1. 检查虚拟机的启动磁盘大小至少为 40 GB。
  2. 停止虚拟机。
  3. 添加、修改或移除 GPU。

    如果您的虚拟机之前未挂接 GPU,则需要完成以下步骤:

    1. 准备虚拟机以进行修改。
    2. 修改虚拟机的主机维护设置。具有 GPU 的虚拟机无法实时迁移,因为它们已分配给特定的硬件设备。如需了解详情,请参阅 GPU 限制
    3. 更改机器类型。仅部分机器类型支持 GPU。
    4. 在虚拟机上安装 GPU 驱动程序,以便系统可以使用该设备。

准备虚拟机

GPU 添加到虚拟机后,网络接口的顺序可能会改变。

Compute Engine 上的大多数公共映像都没有永久性网络接口名称,并根据新顺序进行调整。

但是,如果您使用的是 SLES 或自定义映像,则必须更新系统设置以防止网络接口存留。如需防止网络接口存留,请在虚拟机上运行以下命令:

 rm /etc/udev/rules.d/70-persistent-net.rules 

在现有虚拟机上添加 GPU 或修改 GPU 类型

本部分介绍如何在现有 N1 通用虚拟机上添加 GPU 或修改现有 GPU 类型。此过程支持以下 GPU 类型:

NVIDIA GPU:

  • NVIDIA T4:nvidia-tesla-t4
  • NVIDIA P4:nvidia-tesla-p4
  • NVIDIA P100:nvidia-tesla-p100
  • NVIDIA V100:nvidia-tesla-v100
  • NVIDIA K80:nvidia-tesla-k80。请参阅 NVIDIA K80 服务终止 (EOL)

NVIDIA RTX 虚拟工作站 (vWS)(以前称为 NVIDIA GRID):

  • NVIDIA T4 虚拟工作站:nvidia-tesla-t4-vws
  • NVIDIA P4 虚拟工作站:nvidia-tesla-p4-vws
  • NVIDIA P100 虚拟工作站:nvidia-tesla-p100-vws

    对于这些虚拟工作站,系统会自动将 NVIDIA RTX 虚拟工作站 (vWS) 许可添加到虚拟机。

控制台

如需添加 GPU 或修改 GPU 类型,请完成以下步骤。

  1. 确认虚拟机上的所有关键应用都已停止。

  2. 在 Google Cloud 控制台中,进入虚拟机实例页面查看虚拟机列表。

    转到虚拟机实例

  3. 点击要更新的虚拟机的名称。系统会打开详细信息页面。

  4. 详细信息页面中完成以下步骤。

    1. 如果虚拟机正在运行,请点击工具栏中的 停止。然后,等待虚拟机停止。

    2. 点击工具栏中的 修改

    3. 机器配置部分中,选择 GPU 机器系列,然后执行以下操作:

      1. GPU 类型列表中,选择或切换到 N1 虚拟机支持的任何 GPU 类型。

      2. GPU 数量列表中,选择 GPU 的数量。

      3. 如果 GPU 模型支持适用于图形工作负载的 NVIDIA RTX 虚拟工作站 (vWS),并且您计划在此虚拟机上运行图形密集型工作负载,请选择启用虚拟工作站 (NVIDIA GRID)

    4. 如果您的虚拟机之前没有挂接 GPU,请完成以下操作:

      1. 如果虚拟机具有共享核心机器类型,则必须更改机器类型。在机器类型列表中,选择一个预设的 N1 机器类型。或者,您可以指定自定义机器类型设置。

      2. 管理部分,完成以下操作:

        1. 主机维护时列表中,选择终止虚拟机实例。 挂接了 GPU 的虚拟机无法实时迁移。请参阅处理 GPU 主机事件

        2. 自动重启列表中,选择开启

    5. 如需应用更改,请点击保存

    6. 如需重启虚拟机,请点击启动/恢复

REST

您可以通过 API 停止虚拟机并更改虚拟机的配置来添加或修改虚拟机上的 GPU。

  1. 确认虚拟机上的所有关键应用都已停止运行,然后创建 POST 命令来停止该虚拟机,使其可以转移到有可用 GPU 的主机系统。

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop
    
  2. 如果您的虚拟机之前没有挂接 GPU,请完成以下步骤:

    1. 确定要添加到虚拟机的 GPU 类型。您可以提交 GET 请求,列出在特定可用区中可用于项目的 GPU 类型。

      GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/acceleratorTypes
      
    2. 如果虚拟机具有共享核心机器类型,则必须更改机器类型,以具有一个或多个 vCPU。您无法将加速器添加到具有共享核心机器类型的虚拟机中。

    3. 创建 POST 命令,以设置虚拟机的时间安排选项。

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling
      
      {
      "onHostMaintenance": "TERMINATE",
      "automaticRestart": true
      }
      
  3. 创建 POST 请求以添加或修改挂接到虚拟机的 GPU。

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setMachineResources
    
        {
         "guestAccelerators": [
          {
            "acceleratorCount": ACCELERATOR_COUNT,
            "acceleratorType": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/acceleratorTypes/ACCELERATOR_TYPE"
          }
         ]
        }
    
  4. 启动虚拟机。

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/start
    

    请替换以下内容:

    • PROJECT_ID:您的项目 ID。
    • VM_NAME:要添加 GPU 的虚拟机的名称。
    • ZONE:该虚拟机所在的可用区。
    • ACCELERATOR_COUNT:要挂接到虚拟机的 GPU 数量。如需查看基于虚拟机的机器类型的 GPU 限制列表,请参阅 Compute Engine 上的 GPU
    • ACCELERATOR_TYPE:要挂接或切换到的 GPU 模型。如果您计划在此虚拟机上运行图形密集型工作负载,请使用一个虚拟工作站模型

      请选择以下某个值:

      • NVIDIA GPU:

        • NVIDIA T4:nvidia-tesla-t4
        • NVIDIA P4:nvidia-tesla-p4
        • NVIDIA P100:nvidia-tesla-p100
        • NVIDIA V100:nvidia-tesla-v100
        • NVIDIA K80:nvidia-tesla-k80。请参阅 NVIDIA K80 服务终止 (EOL)
      • NVIDIA RTX 虚拟工作站 (vWS)(以前称为 NVIDIA GRID):

        • NVIDIA T4 虚拟工作站:nvidia-tesla-t4-vws
        • NVIDIA P4 虚拟工作站:nvidia-tesla-p4-vws
        • NVIDIA P100 虚拟工作站:nvidia-tesla-p100-vws

        对于这些虚拟工作站,系统会自动将 NVIDIA RTX 虚拟工作站 (vWS) 许可添加到虚拟机。

安装驱动程序

如需安装驱动程序,请选择以下选项之一:

移除 GPU

本节介绍如何从现有 N1 通用虚拟机中移除以下 GPU 类型。

NVIDIA GPU:

  • NVIDIA T4:nvidia-tesla-t4
  • NVIDIA P4:nvidia-tesla-p4
  • NVIDIA P100:nvidia-tesla-p100
  • NVIDIA V100:nvidia-tesla-v100
  • NVIDIA K80:nvidia-tesla-k80。请参阅 NVIDIA K80 服务终止 (EOL)

NVIDIA RTX 虚拟工作站 (vWS)(以前称为 NVIDIA GRID):

  • NVIDIA T4 虚拟工作站:nvidia-tesla-t4-vws
  • NVIDIA P4 虚拟工作站:nvidia-tesla-p4-vws
  • NVIDIA P100 虚拟工作站:nvidia-tesla-p100-vws

    对于这些虚拟工作站,系统会自动将 NVIDIA RTX 虚拟工作站 (vWS) 许可添加到虚拟机。

您可以使用 Google Cloud 控制台从现有虚拟机中移除 GPU。如需移除 GPU,请完成以下步骤:

  1. 确认虚拟机上的所有关键应用都已停止。

  2. 在 Google Cloud 控制台中,进入虚拟机实例页面以查看虚拟机列表。

    转到虚拟机实例

  3. 点击要从中移除 GPU 的虚拟机的名称。系统会打开详细信息页面。

  4. 详细信息页面中完成以下步骤。

    1. 如果虚拟机正在运行,请点击工具栏中的 停止。然后,等待虚拟机停止。

    2. 点击工具栏中的 修改

    3. 机器配置部分中,选择通用机器系列,然后执行以下操作:

      1. 如需查看挂接的 GPU,请展开高级配置

      2. GPU 部分中,使用以下选项之一移除 GPU:

        • 如需移除一些 GPU,请在 GPU 数量列表中,选择一个新数量。

        • 如需移除所有 GPU,请点击 删除 GPU

    4. 可选:修改虚拟机主机维护政策设置。 具有 GPU 的虚拟机必须将主机维护政策设置为终止虚拟机实例。但是,如果您移除了所有 GPU,则可以选择在主机维护期间实时迁移此虚拟机。如需了解详情,请参阅设置虚拟机主机维护政策

    5. 如需应用更改,请点击保存

    6. 如需重启虚拟机,请点击启动/恢复

后续步骤