创建 G2 或 G4 实例

本文档介绍了如何创建使用 G2 或 G4 机器系列中的机器类型的虚拟机 (VM) 实例。这些 G 系列加速器优化机器类型非常适合运行图形密集型应用和经济实惠的机器学习 (ML) 推理。

您可以将这些虚拟机创建为按需虚拟机。如需降低费用,您还可以创建 G2 和 G4 Spot 虚拟机,或者创建 G2 灵活启动虚拟机。如需详细了解如何创建挂接 GPU 的虚拟机,请参阅创建挂接 GPU 的实例概览

如需创建多个 G2 或 G4 虚拟机,您可以使用以下方法之一:

准备工作

  • 如需查看创建挂接 GPU 的实例的限制和其他前提步骤(例如选择操作系统映像和检查 GPU 配额),请参阅创建挂接 GPU 的实例概览
  • 如果您尚未设置身份验证,请进行设置。身份验证用于验证您的身份,以便访问 Google Cloud 服务和 API。如需从本地开发环境运行代码或示例,您可以通过选择以下选项之一向 Compute Engine 进行身份验证:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. 安装 Google Cloud CLI。 安装完成后,运行以下命令来初始化 Google Cloud CLI:

      gcloud init

      如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI

    2. Set a default region and zone.

    REST

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

      安装 Google Cloud CLI。 安装完成后,运行以下命令来初始化 Google Cloud CLI:

      gcloud init

      如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI

    如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证

所需的角色

如需获得创建虚拟机所需的权限,请让您的管理员为您授予项目的 Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) IAM 角色。 如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

此预定义角色可提供创建虚拟机所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

创建虚拟机需要以下权限:

  • 针对项目的 compute.instances.create 权限
  • 使用自定义映像创建虚拟机:针对映像的 compute.images.useReadOnly 权限
  • 使用快照创建虚拟机:针对快照的 compute.snapshots.useReadOnly 权限
  • 使用实例模板创建虚拟机:针对实例模板的 compute.instanceTemplates.useReadOnly 权限
  • 为虚拟机指定子网:针对项目或所选子网的 compute.subnetworks.use 权限
  • 为虚拟机指定静态 IP 地址:针对项目的 compute.addresses.use 权限
  • 在使用 VPC 网络时为虚拟机分配外部 IP 地址:针对项目或所选子网的 compute.subnetworks.useExternalIp 权限
  • 为虚拟机分配旧版网络:针对项目的 compute.networks.use 权限
  • 使用旧版网络时为虚拟机分配外部 IP 地址:针对项目的 compute.networks.useExternalIp 权限
  • 为虚拟机设置虚拟机实例元数据:针对项目的 compute.instances.setMetadata 权限
  • 为虚拟机设置标记:针对虚拟机的 compute.instances.setTags 权限
  • 为虚拟机设置标签:针对虚拟机的 compute.instances.setLabels 权限
  • 为虚拟机设置要使用的服务账号:针对虚拟机的 compute.instances.setServiceAccount 权限
  • 为虚拟机创建新磁盘:针对项目的 compute.disks.create 权限
  • 以只读或读写模式挂接现有磁盘:针对磁盘的 compute.disks.use 权限
  • 以只读模式挂接现有磁盘:针对磁盘的 compute.disks.useReadOnly 权限

您也可以使用自定义角色或其他预定义角色来获取这些权限。

创建挂接了 GPU 的实例

您可以使用 Google Cloud 控制台、Google Cloud CLI 或 REST 创建 G2 或 G4 加速器优化型实例。

控制台

  1. 在 Google Cloud 控制台中,前往创建实例页面。

    转到“创建实例”

  2. 名称字段中,为实例输入一个唯一名称。请参阅资源命名惯例

  3. 选择这些 GPU 机器类型可用的区域和可用区。 请参阅 GPU 区域和可用区

  4. 在“机器类型”部分中,选择 GPU

    1. GPU 类型列表中,选择 GPU 类型。

      • 对于 G2 实例,请选择 NVIDIA L4
      • 对于 G4 实例,请选择 NVIDIA RTX PRO 6000
    2. GPU 数量列表中,选择 GPU 的数量。

      • 对于 G4 实例,控制台会根据所选 GPU 的数量自动选择相应的机器类型。
      • 对于 G2 实例,请查看以下内容:

        • 如果您选择一个 GPU,则可以从一组具有预设数量且适合您的工作负载的 vCPU 和内存的机器类型中进行选择。
        • 如果您选择两个或更多 GPU,控制台会根据所选 GPU 的数量自动选择相应的机器类型。

        对于 G2 实例,您还可以指定自定义机器类型。如需指定实例的 vCPU 数量和内存量,请拖动滑块或在文本框中输入值。 在您更改 vCPU 数量和内存量时,控制台会显示实例的预估费用。

    3. 可选:G2 和 G4 机器系列支持适用于图形工作负载的 NVIDIA RTX 虚拟工作站 (vWS)。如果您计划在实例上运行图形密集型工作负载,请选择启用虚拟工作站 (NVIDIA GRID)

  5. 按如下方式配置启动磁盘:

    1. 操作系统和存储空间部分,点击更改。 此时会打开启动磁盘配置页面。
    2. 启动磁盘配置页面上,执行以下操作:

      1. 公共映像标签页中,选择支持的 Compute Engine 映像Deep Learning VM Image 映像
      2. 请指定至少为 40 GiB 的启动磁盘大小。
      3. 如需确认您的启动磁盘选项,请点击选择
  6. 可选:添加本地 SSD。本地 SSD 可用于快速暂存磁盘或用于将数据输送到 GPU 中,同时防止 I/O 瓶颈。如需向实例添加本地 SSD,请完成以下操作:

    1. 操作系统和存储空间部分,点击添加本地 SSD
    2. 对于接口,选择 NVMe
    3. 磁盘容量中,选择要挂接的本地 SSD 数量。 如需了解每个实例的本地 SSD 磁盘数量上限,请参阅本地 SSD 的机器系列限制
  7. 可选:如需为 g4-standard-384 实例实现更高的网络带宽,请配置多个网络接口。您可以配置最多两个网络接口。此配置会创建一个具有双网络接口(2x 200 Gbps)的 g4-standard-384 实例。在网络部分中,完成以下步骤:

    1. 展开默认网络接口。
    2. 为第一个接口指定网络子网
    3. 对于网络接口卡,选择 gVNIC
    4. 点击添加网络接口以添加第二个接口。 按如下方式配置第二个网络接口:

      1. 选择其他 VPC 网络子网。 每个网络接口都必须位于唯一的 VPC 网络中。
      2. 对于网络接口卡,选择 gVNIC
  8. 可选:配置其他预配模型以降低费用。 在高级选项部分中,在虚拟机预配模型下,选择以下选项之一:

    • (仅限 G2)灵活启动:适用于可容忍灵活开始时间的短时工作负载。如需了解详情,请参阅关于灵活启动虚拟机

    • Spot:适用于可抢占的容错工作负载。如需了解详情,请参阅 Spot 虚拟机

  9. 可选:在虚拟机终止时列表中,选择要在 Compute Engine 抢占 Spot 虚拟机时或灵活启动虚拟机达到其运行时间结束时执行的操作:

    • 如需在抢占期间停止虚拟机,请选择停止(默认)。
    • 如需在抢占期间删除虚拟机,请选择删除
  10. 要创建并启动该虚拟机,请点击创建

gcloud

如需创建并启动实例,请使用 gcloud compute instances create 命令。以下命令包含必需的标志。

  gcloud compute instances create VM_NAME \
      --machine-type=MACHINE_TYPE \
      --zone=ZONE \
      --boot-disk-size=DISK_SIZE \
      --image=IMAGE \
      --image-project=IMAGE_PROJECT \
      --maintenance-policy=TERMINATE \
      --restart-on-failure
替换以下内容:
  • VM_NAME:新实例的名称
  • MACHINE_TYPE:您选择的机器类型。从下列选项中选择一项:

    • G4 机器类型
    • G2 机器类型。 G2 机器类型还支持自定义内存。内存必须是 1024 MB 的倍数且在支持的内存范围内。例如,如需创建具有 4 个 vCPU 和 19 GB 内存的实例,请指定 --machine-type=g2-custom-4-19456
  • ZONE:实例所在的可用区。此可用区必须支持您选择的 GPU 型号
  • DISK_SIZE:启动磁盘的大小(以 GiB 为单位)。请指定至少为 40 GiB 的启动磁盘大小。
  • IMAGE支持 GPU 的操作系统映像。如果要使用映像系列中的最新映像,请将 --image 标志替换为 --image-family 标志,并将其值设置为支持 GPU 的映像系列。例如:--image-family=rocky-linux-8-optimized-gcp
    您也可以指定自定义映像或 Deep Learning VM Image 映像
  • IMAGE_PROJECT:操作系统映像所属的 Compute Engine 映像项目。如果使用自定义映像或 Deep Learning VM Image 映像,请指定这些映像所属的项目。

可选标志

如需进一步配置实例以满足工作负载或操作系统需求,请在运行 gcloud compute instances create 命令时添加以下一个或多个标志。

功能 说明
预配模型 为实例设置预配模型。 请指定 SPOTFLEX_START。G4 实例不支持 FLEX_START。如果您未指定模型,则系统会使用标准模型。 如需了解详情,请参阅 Compute Engine 实例预配模型
--provisioning-model=PROVISIONING_MODEL
虚拟工作站 指定面向图形工作负载的 NVIDIA RTX 虚拟工作站 (vWS)
--accelerator=type=VWS_ACCELERATOR_TYPE,count=VWS_ACCELERATOR_COUNT

替换以下内容:

  • 对于 VWS_ACCELERATOR_TYPE,请从以下选项中选择一项:
    • 对于 G4 实例,请指定 nvidia-rtx-pro-6000-vws
    • 对于 G2 实例,请指定 nvidia-l4-vws
  • 对于 VWS_ACCELERATOR_COUNT,请指定您需要的虚拟 GPU 数量。
本地 SSD 将一个或多个本地 SSD 附加到实例。本地 SSD 可用于快速暂存磁盘或用于将数据输送到 GPU 中,同时防止 I/O 瓶颈。
    --local-ssd=interface=nvme \
    --local-ssd=interface=nvme \
    --local-ssd=interface=nvme ...
如需了解每个虚拟机实例可挂接的本地 SSD 磁盘数量上限,请参阅本地 SSD 限制
网络接口 将多个网络接口附加到您的实例。对于 g4-standard-384 实例,您最多可以附加两个网络接口。您可以使用此标志创建具有双网络接口 (2x 200 Gbps) 的实例。每个网络接口都必须位于唯一的 VPC 网络中。

   --network-interface=network=VPC_NAME_1,subnet=SUBNET_NAME_1,nic-type=GVNIC \
   --network-interface=network=VPC_NAME_2,subnet=SUBNET_NAME_2,nic-type=GVNIC
   

双网络接口仅在 g4-standard-384 机器类型上受支持。

替换以下内容:

  • VPC_NAME:您的 VPC 网络的名称。
  • SUBNET_NAME:指定 VPC 网络中的子网的名称。

REST

instances.insert 方法发送 POST 请求。由于具有 GPU 的实例无法实时迁移,因此您必须将 onHostMaintenance 参数设置为 TERMINATE。以下命令包含必需的标志。

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

{
   "machineType":"projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE",
   "disks":[
      {
         "type":"projects/PROJECT_ID/zones/ZONE/diskTypes/hyperdisk-balanced",
         "initializeParams":{
            "diskSizeGb":"DISK_SIZE",
            "sourceImage":"SOURCE_IMAGE_URI"
         },
         "boot":true
      }
   ],
   "name":"VM_NAME",
   "networkInterfaces":[
      {
         "network":"projects/PROJECT_ID/global/networks/NETWORK"
      }
   ],
   "scheduling":{
      "onHostMaintenance":"terminate",
      "automaticRestart":true
   }
}
替换以下内容:
  • VM_NAME:新实例的名称
  • PROJECT_ID:您的项目 ID。
  • ZONE:实例所在的可用区。此可用区必须支持您选择的 GPU 型号
  • MACHINE_TYPE:您选择的机器类型。从下列选项中选择一项:
    • G4 机器类型
    • G2 机器类型。 G2 机器类型还支持自定义内存。内存必须是 1024 MB 的倍数且在支持的内存范围内。例如,如果实例配备了 4 个 vCPU 和 19 GB 内存,则其机器类型名称为 g2-custom-4-19456
  • SOURCE_IMAGE_URI:您要使用的特定映像或映像系列的 URI。例如:
    • 特定映像:"sourceImage": "projects/rocky-linux-cloud/global/images/rocky-linux-8-optimized-gcp-v20220719"
    • 映像系列:"sourceImage": "projects/rocky-linux-cloud/global/images/family/rocky-linux-8-optimized-gcp"
    指定映像系列时,Compute Engine 会根据该系列中最新的未弃用操作系统映像创建实例。如需详细了解何时使用映像系列,请参阅映像系列最佳实践
  • DISK_SIZE:启动磁盘的大小(以 GiB 为单位)。请指定至少为 40 GiB 的启动磁盘大小。

可选标志

如需进一步配置实例以满足工作负载或操作系统需求,请在运行 instances.insert 方法时添加以下一个或多个标志。

功能 说明
预配模型 如需降低费用,您可以在请求的 scheduling 对象中添加 "provisioningModel": "PROVISIONING_MODEL" 字段,以指定其他预配模型。如果您指定创建 Spot 虚拟机,系统会忽略 onHostMaintenanceautomaticRestart 字段。 如需了解详情,请参阅 Compute Engine 实例预配模型
    "scheduling":
     {
       "onHostMaintenance": "terminate",
       "provisioningModel": "PROVISIONING_MODEL"
     }
  

PROVISIONING_MODEL 替换为以下项之一:

  • STANDARD:(默认)标准实例。
  • SPOT:Spot 虚拟机。
  • FLEX_START:灵活启动虚拟机。灵活启动虚拟机最多可运行 7 天,有助于您以折扣价获取 GPU 等高需求资源。 G4 实例不支持此配置模型。
虚拟工作站 指定面向图形工作负载的 NVIDIA RTX 虚拟工作站 (vWS)
   "guestAccelerators":
     [
       {
         "acceleratorCount": VWS_ACCELERATOR_COUNT,
         "acceleratorType": "projects/PROJECT_ID/zones/ZONE/acceleratorTypes/VWS_ACCELERATOR_TYPE"
       }
     ]
    

替换以下内容:

  • 对于 VWS_ACCELERATOR_TYPE,请从以下选项中选择一项:
    • 对于 G4 实例,请指定 nvidia-rtx-pro-6000-vws
    • 对于 G2 实例,请指定 nvidia-l4-vws
  • 对于 VWS_ACCELERATOR_COUNT,请指定您需要的虚拟 GPU 数量。
本地 SSD 将一个或多个本地 SSD 附加到实例。本地 SSD 可用于快速暂存磁盘或用于将数据输送到 GPU 中,同时防止 I/O 瓶颈。
   {
     "type": "SCRATCH",
     "autoDelete": true,
     "initializeParams": {
       "diskType": "projects/PROJECT_ID/zones/ZONE/diskTypes/local-nvme-ssd"
     }
   }
  
如需了解每个虚拟机实例可挂接的本地 SSD 磁盘数量上限,请参阅本地 SSD 限制
网络接口 将多个网络接口附加到您的实例。对于 g4-standard-384 实例,您最多可以附加两个网络接口。这会创建一个具有双网络接口 (2x 200 Gbps) 的实例。每个网络接口都必须位于唯一的 VPC 网络中。

   "networkInterfaces":
   [
     {
       "network": "projects/PROJECT_ID/global/networks/VPC_NAME_1",
       "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME_1",
       "nicType": "GVNIC"
     },
     {
       "network": "projects/PROJECT_ID/global/networks/VPC_NAME_2",
       "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME_2",
       "nicType": "GVNIC"
     }
   ]
  

双网络接口仅在 g4-standard-384 机器类型上受支持。

替换以下内容:

  • VPC_NAME:您的 VPC 网络的名称。
  • SUBNET_NAME:指定 VPC 网络中的子网的名称。

安装驱动程序

创建实例后,您必须安装驱动程序,实例才能使用 GPU。您需要安装的驱动程序取决于您在创建实例时是否启用了适用于图形工作负载的 NVIDIA RTX 虚拟工作站 (vWS)

(可选)多实例 GPU 模式(仅限 G4)

多实例 GPU (MIG) 模式是一项可在受支持的 NVIDIA GPU 上启用的功能。

创建 G4 实例后,您可以在连接到机器的单个 NVIDIA RTX PRO 6000 GPU 上启用多实例 GPU (MIG) 模式。启用 MIG 模式后,单个 GPU 会被划分为最多七个独立的 GPU 实例。每个实例同时运行,每个实例都有自己的内存、缓存和流式多处理器。然后,您可以在这些 GPU 实例上并行运行不同的工作负载。

如需详细了解如何使用多实例 GPU,请参阅 NVIDIA 文档中的 MIG 使用入门

后续步骤