您可以使用批量创建过程创建一组挂接了图形处理单元 (GPU) 的虚拟机 (VM)。通过批量创建过程,您可以预先验证,如果请求不可行,请求会快速失败。此外,如果您使用区域标志,则批量创建 API 会自动选择具有容量来完成请求的可用区。如需详细了解批量创建,请参阅虚拟机批量创建简介。
准备工作
- 如需查看其他前提条件步骤(例如选择操作系统映像和检查 GPU 配额),请参阅概览文档。
-
设置身份验证(如果尚未设置)。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以按如下方式向 Compute Engine 进行身份验证。
Select the tab for how you plan to use the samples on this page:
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
权限 - 对于 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。 --provisioning-model=SPOT
是一个可选标志,用于将虚拟机配置为 Spot 虚拟机。如果您的工作负载具有容错能力,并且可以承受可能的虚拟机抢占,请考虑使用 Spot 虚拟机来降低虚拟机和挂接的 GPU 的费用。如需了解详情,请参阅 Spot 虚拟机上的 GPU。对于 Spot 虚拟机,自动重启和主机维护选项标志处于停用状态。--accelerator
标志,用于指定虚拟工作站。只有 G2 虚拟机支持 NVIDIA RTX 虚拟工作站 (vWS)。- 虚拟机名称:
my-test-vm-1
、my-test-vm-2
- 每个虚拟机都挂接了两个 GPU,使用相应的加速器优化机器类型指定
REGION
:虚拟机的区域。此区域必须支持您选择的 GPU 型号。MACHINE_TYPE
:您选择的机器类型。从下列选项中选择一项: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 数量。- 虚拟机名称:
my-test-vm-1
、my-test-vm-2
每个虚拟机都挂接了两个 GPU,使用相应的加速器优化机器类型指定
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instances/bulkInsert { "namePattern":"my-test-vm-#", "count":"2", "instanceProperties": { "machineType":MACHINE_TYPE, "disks":[ { "type":"PERSISTENT", "initializeParams":{ "diskSizeGb":"200", "sourceImage":SOURCE_IMAGE_URI }, "boot":true } ], "name": "default", "networkInterfaces": [ { "network": "projects/PROJECT_ID/global/networks/default" } ], "scheduling":{ "onHostMaintenance":"TERMINATE", ["automaticRestart":true] } } }
PROJECT_ID
:您的项目 IDREGION
:虚拟机的区域。此区域必须支持您选择的 GPU 型号。MACHINE_TYPE
:您选择的机器类型。从下列选项中选择一项: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 会根据该系列中最新的未弃用操作系统映像创建虚拟机。如需详细了解何时使用映像系列,请参阅映像系列最佳实践。
- 特定映像:
如果您的工作负载具有容错能力,并且可以承受可能的虚拟机抢占,请考虑使用 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" } ]
- 使用 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 核心数。
- NVIDIA T4:
nvidia-tesla-t4
- NVIDIA P4:
nvidia-tesla-p4
- NVIDIA P100:
nvidia-tesla-p100
- NVIDIA V100:
nvidia-tesla-v100
- NVIDIA T4 虚拟工作站:
nvidia-tesla-t4-vws
- NVIDIA P4 虚拟工作站:
nvidia-tesla-p4-vws
NVIDIA P100 虚拟工作站:
nvidia-tesla-p100-vws
对于这些虚拟工作站,系统会自动将 NVIDIA RTX 虚拟工作站 (vWS) 许可添加到虚拟机。
- 虚拟机名称:
my-test-vm-1
、my-test-vm-2
- 在
us-central1
内支持 GPU 的任何地区中创建的虚拟机 - 每个虚拟机都挂接了两个 T4 GPU,并指定了相应的加速器类型和加速器数量标志
- 每个虚拟机都安装了 GPU 驱动程序
- 每个虚拟机都使用 Deep Learning VM Image 映像
pytorch-latest-gpu-v20211028-debian-10
- 虚拟机名称:
my-test-vm-1
、my-test-vm-2
- 在
us-central1
内支持 GPU 的任何地区中创建的虚拟机 - 每个虚拟机都挂接了两个 T4 GPU,并指定了相应的加速器类型和加速器数量标志
- 每个虚拟机都安装了 GPU 驱动程序
- 每个虚拟机都使用 Deep Learning VM Image 映像
pytorch-latest-gpu-v20211028-debian-10
了解如何监控 GPU 性能。
了解如何使用更高的网络带宽。
了解如何处理 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 的虚拟机时,您可以选择在区域(如
us-central1
)或特定可用区(如us-central1-a
)中创建虚拟机。如果您选择指定区域,Compute Engine 会将虚拟机放置在该区域内支持 GPU 的任何地区中。
创建加速器优化虚拟机组
加速器优化机器家族适用于 A3 High 和 A3 Mega、A2 标准和 A2 Ultra 以及 G2 机器类型。
每种加速器优化机器类型都挂接了特定型号的 NVIDIA GPU。
您可以使用 Google Cloud CLI 或 REST 创建一组加速器优化虚拟机。
gcloud
如需创建虚拟机组,请使用
gcloud compute instances bulk create
命令。如需详细了解相关参数以及如何使用此命令,请参阅批量创建虚拟机。示例命令中显示了以下可选标志:
示例
此示例使用以下规范创建两个挂接 GPU 的虚拟机:
gcloud compute instances bulk create \ --name-pattern="my-test-vm-#" \ --region=REGION \ --count=2 \ --machine-type=MACHINE_TYPE \ --boot-disk-size=200 \ --image=IMAGE \ --image-project=IMAGE_PROJECT \ --on-host-maintenance=TERMINATE \ [--provisioning-model=SPOT] \ [--accelerator=type=nvidia-l4-vws,count=VWS_ACCELERATOR_COUNT]
替换以下内容:
如果操作成功,则输出类似如下内容:
NAME ZONE my-test-vm-1 us-central1-b my-test-vm-2 us-central1-b Bulk create request finished with status message: [VM instances created: 2, failed: 0.]
REST
使用带有必需参数的
instances.bulkInsert
方法可在一个可用区中创建多个虚拟机。 如需详细了解相关参数以及如何使用此命令,请参阅批量创建虚拟机。示例
此示例使用以下规范创建两个挂接 GPU 的虚拟机:
替换以下内容:
其他设置:
限制
A3 虚拟机
以下限制适用于使用 A3 High 和 A3 Mega 机器类型的虚拟机:
A2 标准虚拟机
A2 Ultra 虚拟机
G2 虚拟机
创建 N1 通用虚拟机组
您可以使用 Google Cloud CLI 或 REST 创建挂接 GPU 的虚拟机组。
本部分介绍如何使用以下 GPU 类型创建多个虚拟机:
NVIDIA GPU:
NVIDIA RTX 虚拟工作站 (vWS)(以前称为 NVIDIA GRID):
gcloud
如需创建虚拟机组,请使用
gcloud compute instances bulk create
命令。如需详细了解相关参数以及如何使用此命令,请参阅批量创建虚拟机。示例
以下示例会使用以下规范创建两个挂接 GPU 的虚拟机:
gcloud compute instances bulk create \ --name-pattern="my-test-vm-#" \ --count=2 \ --region=us-central1 \ --machine-type=n1-standard-2 \ --accelerator type=nvidia-tesla-t4,count=2 \ --boot-disk-size=200 \ --metadata="install-nvidia-driver=True" \ --scopes="https://www.googleapis.com/auth/cloud-platform" \ --image=pytorch-latest-gpu-v20211028-debian-10 \ --image-project=deeplearning-platform-release \ --on-host-maintenance=TERMINATE --restart-on-failure
如果操作成功,则输出类似如下内容:
NAME ZONE my-test-vm-1 us-central1-b my-test-vm-2 us-central1-b Bulk create request finished with status message: [VM instances created: 2, failed: 0.]
REST
使用带有必需参数的
instances.bulkInsert
方法可在一个可用区中创建多个虚拟机。 如需详细了解相关参数以及如何使用此命令,请参阅批量创建虚拟机。示例
以下示例会使用以下规范创建两个挂接 GPU 的虚拟机:
将
PROJECT_ID
替换为您的项目 ID。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/region/us-central1/instances/bulkInsert { "namePattern":"my-test-vm-#", "count":"2", "instanceProperties": { "machineType":"n1-standard-2", "disks":[ { "type":"PERSISTENT", "initializeParams":{ "diskSizeGb":"200", "sourceImage":"projects/deeplearning-platform-release/global/images/pytorch-latest-gpu-v20211028-debian-10" }, "boot":true } ], "name": "default", "networkInterfaces": [ { "network": "projects/PROJECT_ID/global/networks/default" } ], "guestAccelerators": [ { "acceleratorCount": 2, "acceleratorType": "nvidia-tesla-t4" } ], "scheduling":{ "onHostMaintenance":"TERMINATE", "automaticRestart":true }, "metadata":{ "items":[ { "key":"install-nvidia-driver", "value":"True" } ] } } }
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-12-18。
-