本文档介绍了如何创建使用 A3 High、A3 Mega、A3 Edge、A2 和 G2 机器系列中的机器类型的虚拟机。如需详细了解如何创建挂接 GPU 的虚拟机,请参阅创建挂接 GPU 的实例概览。
准备工作
- 如需查看创建挂接 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
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
-
针对项目的
compute.instances.create
权限 -
使用自定义映像创建虚拟机:针对映像的
compute.images.useReadOnly
权限 -
使用快照创建虚拟机:针对快照的
compute.snapshots.useReadOnly
权限 -
使用实例模板创建虚拟机:针对实例模板的
compute.instanceTemplates.useReadOnly
权限 -
为虚拟机分配旧版网络:针对项目的
compute.networks.use
权限 -
为虚拟机指定静态 IP 地址:针对项目的
compute.addresses.use
权限 -
使用旧版网络时为虚拟机分配外部 IP 地址:针对项目的
compute.networks.useExternalIp
权限 -
为虚拟机指定子网:针对项目或所选子网的
compute.subnetworks.use
权限 -
在使用 VPC 网络时为虚拟机分配外部 IP 地址:针对项目或所选子网的
compute.subnetworks.useExternalIp
权限 -
为虚拟机设置虚拟机实例元数据:针对项目的
compute.instances.setMetadata
权限 -
为虚拟机设置标记:针对虚拟机的
compute.instances.setTags
权限 -
为虚拟机设置标签:针对虚拟机的
compute.instances.setLabels
权限 -
为虚拟机设置要使用的服务账号:针对虚拟机的
compute.instances.setServiceAccount
权限 -
为虚拟机创建新磁盘:针对项目的
compute.disks.create
权限 -
以只读或读写模式挂接现有磁盘:针对磁盘的
compute.disks.use
权限 -
以只读模式挂接现有磁盘:针对磁盘的
compute.disks.useReadOnly
权限 在 Google Cloud 控制台中,前往创建实例页面。
为您的虚拟机指定名称。请参阅资源命名惯例。
选择 GPU 可用的区域和可用区。查看可用的 GPU 区域和可用区列表。
在机器配置部分,选择 GPU 机器系列。
请完成以下步骤之一,以根据机器系列选择预定义机器类型或自定义机器类型:
对于所有 GPU 机器系列,您可以选择预定义机器类型,如下所示:
在 GPU 类型列表中,选择您的 GPU 类型。
- 对于 A3 High、A3 Mega 或 A3 Edge 加速器优化型虚拟机,请选择
NVIDIA H100 80GB
或NVIDIA H100 80GB MEGA
。 - 对于 A2 加速器优化虚拟机,请选择
NVIDIA A100 40GB
或NVIDIA A100 80GB
。 - 对于 G2 加速器优化型虚拟机,请选择
NVIDIA L4
。
- 对于 A3 High、A3 Mega 或 A3 Edge 加速器优化型虚拟机,请选择
在 GPU 数量列表中,选择 GPU 的数量。
对于 G2 机器系列,您可以选择自定义机器类型,如下所示:
- 在 GPU 类型列表中,选择
NVIDIA L4
。 - 在机器类型部分中,选择自定义。
- 如需指定实例的 vCPU 数量和内存量,请拖动滑块或在文本框中输入值。在您更改 vCPU 数量和内存量时,控制台会显示实例的预估费用。
- 在 GPU 类型列表中,选择
可选:G2 机器系列支持适用于图形工作负载的 NVIDIA RTX 虚拟工作站 (vWS)。如果您计划在 G2 虚拟机上运行图形密集型工作负载,请选择启用虚拟工作站 (NVIDIA GRID)。
在启动磁盘部分中,点击更改。此时会打开启动磁盘配置页面。
在启动磁盘配置页面上,执行以下操作:
- 在公共映像标签页中,选择支持的 Compute Engine 映像或 Deep Learning VM Image 映像。
- 请指定至少为 40 GB 的启动磁盘大小。
- 如需确认您的启动磁盘选项,请点击选择。
可选:配置预配模型。例如,如果您的工作负载具有容错能力,并且可以承受可能的虚拟机抢占,请考虑使用 Spot 虚拟机来降低虚拟机和挂接的 GPU 的费用。如需了解详情,请参阅 Spot 虚拟机上的 GPU。为此,请完成以下步骤:
- 在可用性政策部分中,从虚拟机预配模型列表中选择 Spot。此设置会对虚拟机停用自动重启和主机维护选项。
- 可选:在虚拟机终止时列表中,选择要在 Compute Engine 抢占虚拟机时执行的操作:
- 如需在抢占期间停止虚拟机,请选择停止(默认)。
- 如需在抢占期间删除虚拟机,请选择删除。
要创建并启动该虚拟机,请点击创建。
--provisioning-model=SPOT
标志,用于将虚拟机配置为 Spot 虚拟机。如果您的工作负载具有容错能力,并且可以承受可能的虚拟机抢占,请考虑使用 Spot 虚拟机来降低虚拟机和挂接的 GPU 的费用。如需了解详情,请参阅 Spot 虚拟机上的 GPU。对于 Spot 虚拟机,自动重启和主机维护选项标志处于停用状态。--accelerator
标志,用于指定虚拟工作站。 只有 G2 虚拟机支持 NVIDIA RTX 虚拟工作站 (vWS)。VM_NAME
:新虚拟机的名称。MACHINE_TYPE
:您选择的机器类型。从下列选项中选择一项:ZONE
:虚拟机的可用区。此可用区必须支持您选择的 GPU 型号。DISK_SIZE
:您的启动磁盘的大小(以 GB 为单位)。请指定至少为 40 GB 的启动磁盘大小。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 映像,请指定这些映像所属的项目。VWS_ACCELERATOR_COUNT
:您需要的虚拟 GPU 数量。VM_NAME
:新虚拟机的名称。PROJECT_ID
:您的项目 ID。ZONE
:虚拟机的可用区。此可用区必须支持您选择的 GPU 型号。MACHINE_TYPE
:您选择的机器类型。从下列选项中选择一项:- A3 机器类型。
- A2 机器类型。
- G2 机器类型。
G2 机器类型还支持自定义内存。内存必须是 1024 MB 的倍数且在支持的内存范围内。例如,如需创建具有 4 个 vCPU 和 19 GB 内存的虚拟机,请指定
--machine-type=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"
DISK_SIZE
:您的启动磁盘的大小(以 GB 为单位)。请指定至少为 40 GB 的启动磁盘大小。NETWORK
:您要用于虚拟机的 VPC 网络。您可以指定 `default` 来使用默认网络。- 如果您的工作负载具有容错能力,并且可以承受可能的虚拟机抢占,请考虑使用 Spot 虚拟机来降低虚拟机和挂接的 GPU 的费用。如需了解详情,请参阅 Spot 虚拟机上的 GPU。如需指定 Spot 虚拟机,请在请求中添加
"provisioningModel": "SPOT"
选项。对于 Spot 虚拟机,自动重启和主机维护选项标志处于停用状态。"scheduling": { "provisioningModel": "SPOT" }
- 对于 G2 虚拟机,支持 NVIDIA RTX 虚拟工作站 (vWS)。如需指定虚拟工作站,请在请求中添加 `guestAccelerators` 选项。将
VWS_ACCELERATOR_COUNT
替换为您需要的虚拟 GPU 数量。"guestAccelerators": [ { "acceleratorCount": VWS_ACCELERATOR_COUNT, "acceleratorType": "projects/PROJECT_ID/zones/ZONEacceleratorTypes/nvidia-l4-vws" } ]
- Deep Learning VM Image 映像。此示例使用 A2 标准 (
a2-highgpu-1g
) 虚拟机。 - Container-Optimized (COS) 映像。此示例使用
a3-highgpu-8g
或a3-edgegpu-8g
虚拟机。 公共映像。此示例使用 G2 虚拟机。
创建虚拟机。本示例还指定了可选标志,如启动磁盘类型和大小。
gcloud compute instances create VM_NAME \ --project=PROJECT_ID \ --zone=ZONE \ --machine-type=g2-standard-8 \ --maintenance-policy=TERMINATE --restart-on-failure \ --network-interface=nic-type=GVNIC \ --accelerator=type=nvidia-l4-vws,count=1 \ --image-family=rocky-linux-8-optimized-gcp \ --image-project=rocky-linux-cloud \ --boot-disk-size=200GB \ --boot-disk-type=pd-ssd
替换以下内容:
VM_NAME
:您的虚拟机的名称PROJECT_ID
:您的项目 ID。ZONE
:虚拟机的可用区。
安装 NVIDIA 驱动程序和 CUDA。对于 NVIDIA L4 GPU,需要 CUDA XX 版或更高版本。
common-cu110
:预装 NVIDIA 驱动程序和 CUDAtf-ent-1-15-cu110
:预装 NVIDIA 驱动程序、CUDA、TensorFlow 企业版 1.15.3tf2-ent-2-1-cu110
:预装 NVIDIA 驱动程序、CUDA、TensorFlow 企业版 2.1.1tf2-ent-2-3-cu110
:预装 NVIDIA 驱动程序、CUDA、TensorFlow 企业版 2.3.1pytorch-1-6-cu110
:NVIDIA 驱动程序、CUDA、Pytorch 1.6使用
tf2-ent-2-3-cu110
映像和a2-highgpu-1g
机器类型创建虚拟机。本示例指定了可选标志,例如启动磁盘大小和范围。gcloud compute instances create VM_NAME \ --project PROJECT_ID \ --zone ZONE \ --machine-type a2-highgpu-1g \ --maintenance-policy TERMINATE \ --image-family tf2-ent-2-3-cu110 \ --image-project deeplearning-platform-release \ --boot-disk-size 200GB \ --metadata "install-nvidia-driver=True,proxy-mode=project_editors" \ --scopes https://www.googleapis.com/auth/cloud-platform
替换以下内容:
VM_NAME
:您的虚拟机的名称PROJECT_ID
:您的项目 ID。ZONE
:虚拟机的可用区
上述示例命令还会为虚拟机生成 Vertex AI Workbench 用户管理的笔记本实例。若要访问该笔记本,请在 Google Cloud 控制台中前往 Vertex AI Workbench > 用户管理的笔记本页面。
创建 A3 High、A3 Mega、A3 Edge 或 A2 加速器优化型虚拟机。
启用 NVIDIA GPU 驱动程序。
启用多实例 GPU。
sudo nvidia-smi -mig 1
查看可用的多实例 GPU 形式。
sudo nvidia-smi mig --list-gpu-instance-profiles
输出内容类似如下:
+-----------------------------------------------------------------------------+ | GPU instance profiles: | | GPU Name ID Instances Memory P2P SM DEC ENC | | Free/Total GiB CE JPEG OFA | |=============================================================================| | 0 MIG 1g.10gb 19 7/7 9.62 No 16 1 0 | | 1 1 0 | +-----------------------------------------------------------------------------+ | 0 MIG 1g.10gb+me 20 1/1 9.62 No 16 1 0 | | 1 1 1 | +-----------------------------------------------------------------------------+ | 0 MIG 1g.20gb 15 4/4 19.50 No 26 1 0 | | 1 1 0 | +-----------------------------------------------------------------------------+ | 0 MIG 2g.20gb 14 3/3 19.50 No 32 2 0 | | 2 2 0 | +-----------------------------------------------------------------------------+ | 0 MIG 3g.40gb 9 2/2 39.25 No 60 3 0 | | 3 3 0 | +-----------------------------------------------------------------------------+ .......
创建所需的多实例 GPU (GI) 和关联的计算实例 (CI)。您可以通过指定完整或缩短的配置文件名称、配置文件 ID 或两者的组合来创建这些实例。如需了解详情,请参阅创建 GPU 实例。
以下示例使用配置文件 ID (
9
) 创建两个MIG 3g.20gb
GPU 实例。还指定了
-C
标志,用于为所需的配置文件创建关联的计算实例。sudo nvidia-smi mig -cgi 9,9 -C
检查是否已创建两个多实例 GPU:
sudo nvidia-smi mig -lgi
检查是否已创建 GI 和相应的 CI。
sudo nvidia-smi
输出内容类似如下:
+-----------------------------------------------------------------------------+ | NVIDIA-SMI 525.125.06 Driver Version: 525.125.06 CUDA Version: 12.0 | |-------------------------------+----------------------+----------------------+ | 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 H100 80G... Off | 00000000:04:00.0 Off | On | | N/A 33C P0 70W / 700W | 39MiB / 81559MiB | N/A Default | | | | Enabled | +-------------------------------+----------------------+----------------------+ | 1 NVIDIA H100 80G... Off | 00000000:05:00.0 Off | On | | N/A 32C P0 69W / 700W | 39MiB / 81559MiB | N/A Default | | | | Enabled | +-------------------------------+----------------------+----------------------+ ...... +-----------------------------------------------------------------------------+ | MIG devices: | +------------------+----------------------+-----------+-----------------------+ | GPU GI CI MIG | Memory-Usage | Vol| Shared | | ID ID Dev | BAR1-Usage | SM Unc| CE ENC DEC OFA JPG| | | | ECC| | |==================+======================+===========+=======================| | 0 1 0 0 | 19MiB / 40192MiB | 60 0 | 3 0 3 0 3 | | | 0MiB / 65535MiB | | | +------------------+----------------------+-----------+-----------------------+ | 0 2 0 1 | 19MiB / 40192MiB | 60 0 | 3 0 3 0 3 | | | 0MiB / 65535MiB | | | +------------------+----------------------+-----------+-----------------------+ ...... +-----------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=============================================================================| | No running processes found | +-----------------------------------------------------------------------------+
- 详细了解 GPU 平台。
- 将本地 SSD 添加到实例。 如果您的应用需要高性能存储空间,本地 SSD 设备和 GPU 是绝佳拍档。
- 安装 GPU 驱动程序。
- 如果您启用了 NVIDIA RTX 虚拟工作站,请为虚拟工作站安装驱动程序。
- 如需处理 GPU 主机维护,请参阅处理 GPU 主机维护事件。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
所需的角色
如需获得创建虚拟机所需的权限,请让您的管理员为您授予项目的 Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1
) IAM 角色。 如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。此预定义角色可提供创建虚拟机所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
创建虚拟机需要以下权限:
创建挂接了 GPU 的虚拟机
您可以使用 Google Cloud 控制台、Google Cloud CLI 或 REST 创建 A3 High、A3 Mega、A3 Edge、A2 或 G2 加速器优化型虚拟机。
如需对 G2 虚拟机进行一些自定义,您可能需要使用 Google Cloud CLI 或 REST。请参阅 G2 限制。
控制台
gcloud
要创建并启动虚拟机,请使用带有以下标志的
gcloud compute instances create
命令。具有 GPU 的虚拟机无法实时迁移,请确保设置--maintenance-policy=TERMINATE
标志。示例命令中显示了以下可选标志:
替换以下内容: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 \ [--provisioning-model=SPOT] \ [--accelerator=type=nvidia-l4-vws,count=VWS_ACCELERATOR_COUNT]
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": "PERSISTENT", "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] }, }
安装驱动程序
如需让虚拟机使用 GPU,您需要在虚拟机上安装 GPU 驱动程序。
示例
在这些示例中,大多数虚拟机都是使用 Google Cloud CLI 创建的。不过,您也可以使用 Google Cloud console 或 REST 来创建这些虚拟机。
以下示例展示了如何使用以下映像创建虚拟机:
COS (A3 Edge/High)
您可以使用容器优化 (COS) 映像创建挂接了 H100 GPU 的
a3-edgegpu-8g
或a3-highgpu-8g
虚拟机。如需详细了解如何创建使用 Container-Optimized OS 的这些
a3-edgegpu-8g
或a3-highgpu-8g
虚拟机,请参阅创建启用了 GPUDirect-TCPX 的 A3 虚拟机。公共操作系统映像 (G2)
您可以创建挂接 GPU 的虚拟机,这些虚拟机使用 Compute Engine 上的可用公共映像或自定义映像。
要使用针对 Google Cloud 映像系列优化的 Rocky Linux 8 中的最新未弃用映像创建使用
g2-standard-8
机器类型并且具有 NVIDIA RTX 虚拟工作站的虚拟机,请完成以下步骤:DLVM 映像 (A2)
最简单的方法是使用 DLVM 映像,因为这些映像预装了 NVIDIA 驱动程序和 CUDA 库。
这些映像还提供了性能优化。
NVIDIA A100 支持以下 DLVM 映像:
如需详细了解可用的 DLVM 映像以及这些映像上安装的软件包,请参阅 Deep Learning VM 文档。
多实例 GPU(仅限 A3 和 A2 虚拟机)
多实例 GPU 可将一个虚拟机中的单个 NVIDIA H100 或 A100 GPU 划分为最多七个独立的 GPU 实例。这些实例同时运行,每个实例都有自己的内存、缓存和流式多处理器。与以前的 GPU 型号相比,此设置让 NVIDIA H100 或 A100 GPU 以最多 7 倍的利用率提供有保证的服务质量 (QoS)。
您最多可以创建七个多实例 GPU。对于 A100 40GB GPU,每个多实例 GPU 都分配了 5 GB 内存。对于 A100 80GB 和 H100 80GB GPU,各自分配的内存会翻倍,达到 10 GB。
如需详细了解如何使用多实例 GPU,请参阅 NVIDIA 多实例 GPU 用户指南。
要创建多实例 GPU,请完成以下步骤:
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-06-24。
-