本文档介绍如何创建使用加速器优化机器系列的虚拟机。加速器优化型机器家族适用于 A3、A2 和 G2 机器类型。
每种加速器优化机器类型都挂接了特定型号的 NVIDIA GPU。
- 对于 A3 加速器优化机器类型,挂接了 NVIDIA H100 80GB GPU。以下是可用选项:
- A3 High (
a3-highgpu-8g
):此机器类型挂接了 H100 80GB GPU - A3 Mega (
a3-megagpu-8g
):此机器类型挂接了 H100 80GB Mega GPU
- A3 High (
- 对于 A2 加速器优化机器类型,挂接了 NVIDIA A100 GPU。以下是可用选项:
- A2 标准(
a2-highgpu-*
、a2-megagpu-*
):这些机器类型挂接了 A100 40GB GPU - A2 Ultra (
a2-ultragpu-*
):这些机器类型挂接了 A100 80GB GPU
- A2 标准(
- 对于 G2 加速器优化机器类型 (
g2-standard-*
),挂接了 NVIDIA L4 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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- 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 类型。
- 对于 A3 加速器优化型虚拟机,请选择
NVIDIA H100 80GB
或NVIDIA H100 80GB MEGA
。 - 对于 A2 加速器优化虚拟机,请选择
NVIDIA A100 40GB
或NVIDIA A100 80GB
。 - 对于 G2 加速器优化型虚拟机,请选择
NVIDIA L4
。
- 对于 A3 加速器优化型虚拟机,请选择
在 GPU 数量列表中,选择 GPU 的数量。
如果 GPU 模型支持适用于图形工作负载的 NVIDIA RTX 虚拟工作站 (vWS),并且您计划在此虚拟机上运行图形密集型工作负载,请选择启用虚拟工作站 (NVIDIA GRID)。
在启动磁盘部分中,点击更改。此时会打开启动磁盘配置页面。
在启动磁盘配置页面上,执行以下操作:
- 在公共映像标签页中,选择支持的 Compute Engine 映像或 Deep Learning VM Image 映像。
- 请指定至少为 40 GB 的启动磁盘大小。
- 如需确认您的启动磁盘选项,请点击选择。
配置所需的任何其他虚拟机设置。例如,您可以更改可抢占性设置,将虚拟机配置为抢占式实例。这样可以降低虚拟机和挂接的 GPU 的费用。如需了解详情,请参阅抢占式实例上的 GPU。
要创建并启动该虚拟机,请点击创建。
--preemptible
标志,用于将虚拟机配置为抢占式实例。这样可以降低虚拟机和挂接的 GPU 的费用。如需了解详情,请参阅抢占式实例上的 GPU--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` 来使用默认网络。- 您可以使用抢占式虚拟机来降低虚拟机和挂接的 GPU 的费用。如需了解详情,请参阅抢占式实例上的 GPU。如需将虚拟机设置为抢占式,请在请求中添加
"preemptible": true
选项。"scheduling": { "onHostMaintenance": "terminate", "automaticRestart": true, "preemptible": true }
- 对于 G2 虚拟机,支持 NVIDIA RTX 虚拟工作站 (vWS)。如需指定虚拟工作站,请在请求中添加 `guestAccelerators` 选项。将
VWS_ACCELERATOR_COUNT
替换为您需要的虚拟 GPU 数量。"guestAccelerators": [ { "acceleratorCount": VWS_ACCELERATOR_COUNT, "acceleratorType": "projects/PROJECT_ID/zones/ZONEacceleratorTypes/nvidia-l4-vws" } ]
- 使用 A3 机器类型的虚拟机不会获得持续使用折扣和灵活承诺使用折扣。
- 只能在部分区域和可用区中使用 A3 机器类型。
- 不能在使用 A3 机器类型的虚拟机上使用区域级永久性磁盘。
- A3 机器类型仅在 Sapphire Rapids 平台上提供。
- 如果虚拟机使用 A3 机器类型,则不能更改机器类型。如果需要更改机器类型,必须创建新的虚拟机。
- 不能将虚拟机的机器类型更改为 A3 机器类型。如果需要使用 A3 机器类型的虚拟机,必须创建新的虚拟机。
- A3 机器类型不支持单租户。
- 不能在 A3 机器类型上运行 Windows 操作系统。
- 您只能通过特定预留来预留 A3 机器类型。 .
- 使用 A2 标准机器类型的虚拟机不会获得持续使用折扣和灵活承诺使用折扣。
- 只能在某些区域和可用区中使用 A2 标准机器类型。
- 不能在使用 A2 标准机器类型的虚拟机上使用区域级永久性磁盘。
- A2 标准机器类型仅在 Cascade Lake 平台上提供。
- 如果您的虚拟机使用 A2 标准机器类型,您只能从一种 A2 标准机器类型切换到另一种 A2 标准机器类型。您无法切换到任何其他机器类型。如需了解详情,请参阅修改加速器优化虚拟机。
- 不能将 Windows 操作系统与 <codea2-megagpu-16g< code="" dir="ltr" translate="no"> A2 标准机器类型搭配使用。 使用 Windows 操作系统时,请选择其他 A2 标准机器类型。</codea2-megagpu-16g<>
- 不能在使用 A2 标准机器类型的 Windows 虚拟机上快速格式化挂接的本地 SSD。如需设置这些本地 SSD 的格式,您必须使用 diskpart 实用程序并指定
format fs=ntfs label=tmpfs
设置,以进行完整格式化。 - A2 标准机器类型不支持单租户。
- 使用 A2 Ultra 机器类型的虚拟机不会获得持续使用折扣和灵活承诺使用折扣。
- 只能在部分区域和可用区中使用 A2 Ultra 机器类型。
- 不能在使用 A2 Ultra 机器类型的虚拟机上使用区域级永久性磁盘。
- A2 Ultra 机器类型仅在 Cascade Lake 平台上提供。
- 如果虚拟机使用 A2 Ultra 机器类型,则不能更改机器类型。如果您需要使用其他 A2 Ultra 机器类型或任何其他机器类型,则必须创建新虚拟机。
- 不能将任何其他机器类型更改为 A2 Ultra 机器类型。如果您需要使用 A2 Ultra 机器类型的虚拟机,则必须创建新虚拟机。
- 不能在使用 A2 Ultra 机器类型的 Windows 虚拟机上快速格式化挂接的本地固态硬盘。如需设置这些本地 SSD 的格式,您必须使用 diskpart 实用程序并指定
format fs=ntfs label=tmpfs
设置,以进行完整格式化。 - 使用 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
。
- 使用支持推荐的最低 NVIDIA 驱动程序版本
- 在以下情况下,您必须使用 Google Cloud CLI 或 REST 创建 G2 虚拟机:
- 您想要指定自定义内存值。
- 您想要自定义可见 CPU 核心数。
- Deep Learning VM Image 映像。此示例使用 A2 标准 (
a2-highgpu-1g
) 虚拟机。 - Container-Optimized (COS) 映像。此示例使用
a3-highgpu-8g
A3 虚拟机。 公共映像。此示例使用 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 --restart-on-failure \ --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 或 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 的凭据。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
所需的角色
如需获得创建虚拟机所需的权限,请让您的管理员为您授予项目的 Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1
) IAM 角色。如需详细了解如何授予角色,请参阅管理访问权限。此预定义角色可提供创建虚拟机所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
创建虚拟机需要以下权限:
创建挂接了 GPU 的虚拟机
您可以使用 Google Cloud 控制台、Google Cloud CLI 或 REST 创建 A3、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 --restart-on-failure \ [--preemptible] \ [--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 }, }
请替换以下内容:限制
A3 虚拟机
以下限制适用于使用 A3 High 和 A3 Mega 机器类型的虚拟机:
A2 标准虚拟机
A2 Ultra 虚拟机
G2 虚拟机
安装驱动程序
如需让虚拟机使用 GPU,您需要在虚拟机上安装 GPU 驱动程序。
示例
在这些示例中,大多数虚拟机都是使用 Google Cloud CLI 创建的。不过,您也可以使用 Google Cloud 控制台或 REST 来创建这些虚拟机。
以下示例展示了如何使用以下映像创建虚拟机:
COS (A3 High)
您可以使用 Container-Optimized (COS) 映像创建挂接 H100 GPU 的
a3-highgpu-8g
虚拟机。如需详细了解如何设置使用 Container-Optimized OS 的
a3-highgpu-8g
虚拟机,请参阅使用 GPUDirect-TCPX 最大限度地提高 GPU 网络性能。公共操作系统映像 (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):2024-10-04。
-