本文档介绍了如何创建使用 A4X 机器类型的代管式实例组 (MIG)。如需详细了解这种加速器优化机器类型, 请参阅 A4X。
如果您想将多个虚拟机 (VM) 作为单个实体进行管理,请创建 MIG。如需详细了解 MIG,请参阅 Compute Engine 文档中的托管式实例组 。
如需了解创建虚拟机或集群的其他方法,请参阅 部署选项概览。
限制
创建包含 A4X 虚拟机的 MIG 时,请考虑机器类型和 MIG 的限制。
A4X 虚拟机的限制
以下是特定于机器的限制:
- 使用此机器类型的实例不会获得持续 使用折扣或灵活承诺使用 使用折扣。
- 您只能在某些区域和可用区中创建实例。
- 您无法使用 Persistent Disk(区域级或可用区级)。您只能使用 Google Cloud Hyperdisk。
- 此机器类型仅在 NVIDIA Grace 平台上提供。
- A4X 不支持更改机器类型。如需切换到此 机器类型或从此 机器类型切换,您必须创建新实例。
- 您无法在此机器类型上运行 Windows 操作系统。如需查看 支持的 Linux 操作系统列表,请查看 GPU 实例支持的操作系统。
- 对于 A4X 实例,当您使用
ethtool -S监控 GPU 网络时,以_phy结尾的物理端口计数器不会更新。对于使用 MRDMA 虚拟功能 (VF) 架构的实例,这是预期行为。 如需了解详情,请参阅 MRDMA 功能和网络监控工具。 - A4X 实例不支持以下各项:
- 您无法将 2026 年 2 月 4 日之前创建的 Hyperdisk ML 磁盘挂接到 A4X 机器类型。
MIG 的限制
使用 A4X 机器类型创建 MIG 时,存在以下 限制:
如果您创建使用 RDMA 网络的区域级 MIG,则 MIG 只能 在您为 RDMA 配置网络配置文件的可用区中 创建 A4X 实例。
您无法在 MIG 中配置 实例灵活性 。
如果您将工作负载政策应用于 MIG,则当实例组包含 A4X 实例时,您无法在 MIG 中更改该政策。如需更改 该政策,您必须先 将 MIG 的大小调整为零 。
您无法使用指定放置政策的实例模板来创建使用工作负载政策的 MIG。
您必须使用受预留约束的预配模型。不支持其他预配模型。
您无法使用调整大小请求将 A4X 实例添加到 MIG。您必须设置 MIG 的目标大小才能添加实例。
准备工作
在创建 MIG 之前,如果您尚未完成以下步骤,请先完成这些步骤:
- 选择使用选项:您选择的使用选项决定了您如何获取 和使用 GPU 资源。如需了解详情,请参阅 选择使用选项。
- 获取容量:每种使用选项的容量获取流程各不相同。如需了解所选使用选项的容量获取流程,请参阅容量概览。
所需角色
如需获得创建 MIG 所需的权限,请让您的管理员为您授予项目的Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
此预定义角色包含 创建 MIG 所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
创建 MIG 需要以下权限:
-
如需创建 MIG:针对项目的权限
compute.instanceGroupManagers.create
A4X 基础知识
A4X 集群按块和子块的层次结构进行组织,以实现大规模、无阻塞的网络性能。在预留容量和部署工作负载时,了解此拓扑至关重要。
- A4X 实例
- A4X 实例是挂接了 4 个 GPU 的单个 A4X 机器类型。
- 子块
- 子块是 A4X 容量的基本单位。对于 A4X,一个子块包含 18 个 A4X 实例(72 个 GPU);这些实例构成一个 NVLink 网域,并使用 多节点 NVLink 系统进行连接。您可以通过应用指定
1x72拓扑的工作负载政策来创建 A4X 子块。 - 块
- 一个 A4X 块由 25 个子块(NVLink 网域)组成,总共包含多达 450 个 A4X 实例(1,800 个 GPU)。子块按导轨对齐,以便高效伸缩。每个子块都需要一个 MIG。 因此,对于单个 A4X 块,您可以创建 25 个 MIG。
下表显示了 A4X 实例支持的拓扑选项:
拓扑 (acceleratorTopology) |
GPU 数量 | 实例数 |
|---|---|---|
1x72 |
72 | 18 |
概览
使用 A4X 机器类型创建 MIG 的步骤如下:
创建 VPC 网络
如需为 A4X 机器类型设置网络,请为以下网络接口创建三个 VPC 网络:
- 2 个用于 gVNIC 网络接口 (NIC) 的常规 VPC 网络。这些网络用于主机到主机的通信。
- 创建多个 A4X 子块时,用于 CX-7 NIC 的 1 个采用 RoCE 网络配置文件 的 VPC 网络。RoCE VPC 网络需要有 4 个子网,每个 CX-7 NIC 各有一个子网。这些 NIC 使用 RDMA over Converged Ethernet (RoCE), 可提供对于 扩容到多个 A4X 子块至关重要的高带宽、低延迟通信。对于单个 A4X 子块, 您可以跳过此 VPC 网络,因为在单个子块中,GPU 到 GPU 的直接通信由多节点 NVLink 处理。
如需详细了解 NIC 配置,请参阅 查看网络带宽和 NIC 配置。
您可以按照说明指南手动创建网络,也可以使用提供的脚本自动创建。
说明指南
如需创建网络,您可以按照以下说明操作:
- 如需为 gVNIC 创建常规 VPC 网络,请参阅创建和管理 Virtual Private Cloud 网络。
- 如需创建 RoCE VPC 网络,请参阅为 RDMA NIC 创建 Virtual Private Cloud 网络。
对于这些 VPC 网络,我们建议将
最大传输单元 (MTU) 设置为更大的值。对于 A4X 机器类型,建议的 MTU 为 8896 字节。
如需查看其他 GPU 机器类型的建议 MTU 设置,请参阅
GPU 机器类型的 MTU 设置。
脚本
如需创建网络,请按照以下步骤操作。
对于这些 VPC 网络,我们建议将
最大传输单元 (MTU) 设置为更大的值。对于 A4X 机器类型,建议的 MTU 为 8896 字节。
如需查看其他 GPU 机器类型的建议 MTU 设置,请参阅
GPU 机器类型的 MTU 设置。
使用以下脚本为 gVNIC 创建常规 VPC 网络。
#!/bin/bash # Create regular VPC networks and subnets for the gVNICs for N in $(seq 0 1); do gcloud compute networks create GVNIC_NAME_PREFIX-net-$N \ --subnet-mode=custom \ --mtu=8896 gcloud compute networks subnets create GVNIC_NAME_PREFIX-sub-$N \ --network=GVNIC_NAME_PREFIX-net-$N \ --region=REGION \ --range=192.168.$N.0/24 gcloud compute firewall-rules create GVNIC_NAME_PREFIX-internal-$N \ --network=GVNIC_NAME_PREFIX-net-$N \ --action=ALLOW \ --rules=tcp:0-65535,udp:0-65535,icmp \ --source-ranges=192.168.0.0/16 done # Create SSH firewall rules gcloud compute firewall-rules create GVNIC_NAME_PREFIX-ssh \ --network=GVNIC_NAME_PREFIX-net-0 \ --action=ALLOW \ --rules=tcp:22 \ --source-ranges=IP_RANGE # Assumes that an external IP is only created for vNIC 0 gcloud compute firewall-rules create GVNIC_NAME_PREFIX-allow-ping-net-0 \ --network=GVNIC_NAME_PREFIX-net-0 \ --action=ALLOW \ --rules=icmp \ --source-ranges=IP_RANGE如果您需要多个 A4X 子块,请使用以下脚本为每个 A4X 实例上的四个 CX-7 NIC 创建 RoCE VPC 网络和子网。
#!/bin/bash # List and make sure network profiles exist in the machine type's zone gcloud compute network-profiles list --filter "location.name=ZONE" # Create network for RDMA NICs gcloud compute networks create RDMA_NAME_PREFIX-mrdma \ --network-profile=ZONE-vpc-roce \ --subnet-mode custom \ --mtu=8896 # Create subnets for N in $(seq 0 3); do gcloud compute networks subnets create RDMA_NAME_PREFIX-mrdma-sub-$N \ --network=RDMA_NAME_PREFIX-mrdma \ --region=REGION \ --range=192.168.$((N+2)).0/24 # offset to avoid overlap with gVNICs done请替换以下内容:
GVNIC_NAME_PREFIX:用于 gVNIC 的常规 VPC 网络和子网的自定义名称前缀。RDMA_NAME_PREFIX:用于 CX-7 NIC 的 RoCE VPC 网络和子网的自定义名称前缀。ZONE:指定提供您要使用的机器类型的可用区,例如us-central1-a。如需了解区域,请参阅按区域和可用区划分的 GPU 可用性。REGION:您想要在其中创建子网的区域。此区域必须与指定的可用区相对应。例如,如果可用区为us-central1-a,则区域为us-central1。IP_RANGE:用于 SSH 防火墙规则的 IP 范围。
- 可选:如需验证 VPC 网络资源是否已成功创建,请在 Google Cloud 控制台中检查网络设置:
- 在 Google Cloud 控制台中,前往 VPC 网络页面。
- 在列表中搜索您在上一步中创建的网络。
- 如需查看子网、防火墙规则和其他网络设置,请点击网络的名称。
创建工作负载政策
如果您想在 MIG 中创建单个 A4X 实例进行测试,请跳过此步骤。否则,您必须创建工作负载政策 才能创建包含 A4X 实例的 MIG。
如需创建工作负载政策,请选择以下选项之一:
gcloud
如需创建工作负载政策,请使用
gcloud compute resource-policies create workload-policy 命令。
对于加速器间网络配置,请在命令中指定 --accelerator-topology 标志。
对于 A4X 机器类型,请使用以下命令。1x72 的加速器拓扑表示 72 个 GPU 通过块内的 NVLink 连接。
gcloud compute resource-policies create workload-policy WORKLOAD_POLICY_NAME \
--type=high-throughput \
--accelerator-topology=1x72 \
--region=REGION
请替换以下内容:
WORKLOAD_POLICY_NAME:工作负载政策的名称。REGION:要用于创建工作负载政策的区域。指定要在其中创建 MIG 的区域,以及提供您要使用的机器类型的区域。如需了解区域,请参阅 按区域和可用区划分的 GPU 可用性。
REST
如需创建工作负载政策,请向 resourcePolicies.insert 方法发出 POST
请求。
acceleratorTopology 字段。
对于 A4X 机器类型,请发出以下请求。1x72 的加速器拓扑表示 72 个 GPU 通过块内的 NVLink 连接。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies
{
"name": "WORKLOAD_POLICY_NAME"
"workloadPolicy": {
"type": "HIGH_THROUGHPUT",
"acceleratorTopology": "1x72"
}
}
请替换以下内容:
PROJECT_ID:您的项目 IDREGION:要用于创建工作负载政策的区域。 指定要在其中创建 MIG 的区域,以及提供您要使用的机器类型 的区域。如需了解区域,请参阅 按区域和可用区划分的 GPU 可用性。WORKLOAD_POLICY_NAME:工作负载政策的名称。
创建实例模板
通过创建实例模板,为 MIG 指定虚拟机属性。
如需创建实例模板,请选择以下选项之一。
以下命令还会设置实例的访问权限范围。为了简化权限管理,Google 建议您将实例的访问权限范围设置为cloud-platform 访问权限,然后使用 IAM 角色定义实例可以访问哪些服务。如需了解详情,请参阅
访问权限范围最佳实践。
gcloud
如需创建区域级实例模板,请使用
gcloud compute instance-templates create 命令。
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--machine-type=a4x-highgpu-4g \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT \
--instance-template-region=REGION \
--boot-disk-type=hyperdisk-balanced \
--boot-disk-size=DISK_SIZE \
--scopes=cloud-platform \
--network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-0,subnet=GVNIC_NAME_PREFIX-sub-0 \
--network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address
--network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-0,no-address \
--network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-1,no-address \
--network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-2,no-address \
--network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-3,no-address \
--reservation-affinity=specific \
--reservation=RESERVATION \
--provisioning-model=RESERVATION_BOUND \
--instance-termination-action=DELETE \
--maintenance-policy=TERMINATE \
--restart-on-failure
请替换以下内容:
INSTANCE_TEMPLATE_NAME:实例模板的名称。IMAGE_FAMILY:您要使用的操作系统映像所属的映像系列。 如需查看支持的操作系统列表,请参阅支持的操作系统。IMAGE_PROJECT:操作系统映像的项目 ID。REGION:要在其中创建实例模板的区域。 指定提供您要使用的机器类型的区域。 如需了解区域,请参阅 按区域和可用区划分的 GPU 可用性。DISK_SIZE:启动磁盘的大小(以 GB 为单位)。GVNIC_NAME_PREFIX:您在创建使用 gVNIC NIC 的标准 VPC 网络和子网时指定的名称前缀。RDMA_NAME_PREFIX:您在创建使用 RDMA NIC 的 VPC 网络和子网时指定的名称前缀。-
RESERVATION:预留名称、块或 预留中的子块。如需获取预留名称或可用块,请参阅查看预留容量。-
根据您对实例布置的要求,请按以下方式之一操作:
- 在任意单个块上创建 A4X 实例:
projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME - 在特定块上创建 A4X 实例:
projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME - 在特定子块中创建 A4X 实例:
projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME/reservationSubBlocks/RESERVATION_SUBBLOCK_NAME
- 在任意单个块上创建 A4X 实例:
REST
如需创建区域级实例模板,请向
regionInstanceTemplates.insert方法发出 POST 请求。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates
{
"name":"INSTANCE_TEMPLATE_NAME",
"properties":{
"machineType":"a4x-highgpu-4g",
"disks":[
{
"boot":true,
"initializeParams":{
"diskSizeGb":"DISK_SIZE",
"diskType":"hyperdisk-balanced",
"sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
},
"mode":"READ_WRITE",
"type":"PERSISTENT"
}
],
"serviceAccounts": [
{
"email": "default",
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
}
],
"networkInterfaces": [
{
"accessConfigs": [
{
"name": "external-nat",
"type": "ONE_TO_ONE_NAT"
}
],
"network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
"nicType": "GVNIC",
"subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
},
{
"network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
"nicType": "GVNIC",
"subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
},
{
"network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
"nicType": "MRDMA",
"subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-0"
},
{
"network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
"nicType": "MRDMA",
"subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-1"
},
{
"network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
"nicType": "MRDMA",
"subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-2"
},
{
"network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
"nicType": "MRDMA",
"subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-3"
}
],
"reservationAffinity":{
"consumeReservationType":"SPECIFIC_RESERVATION",
"key":"compute.googleapis.com/reservation-name",
"values":[
"RESERVATION"
]
},
"scheduling":{
"provisioningModel":"RESERVATION_BOUND",
"instanceTerminationAction":"DELETE",
"onHostMaintenance": "TERMINATE",
"automaticRestart":true
}
}
}
请替换以下内容:
INSTANCE_TEMPLATE_NAME:实例模板的名称。IMAGE_FAMILY:您要使用的操作系统映像所属的映像系列。 如需查看支持的操作系统列表,请参阅支持的操作系统。IMAGE_PROJECT:操作系统映像的项目 ID。REGION:要在其中创建实例模板的区域。 指定提供您要使用的机器类型的区域。 如需了解区域,请参阅 按区域和可用区划分的 GPU 可用性。DISK_SIZE:启动磁盘的大小(以 GB 为单位)。NETWORK_PROJECT_ID:网络的项目 ID。GVNIC_NAME_PREFIX:您在创建使用 gVNIC NIC 的标准 VPC 网络和子网时指定的名称前缀。REGION:子网所在的区域。RDMA_NAME_PREFIX:您在创建使用 RDMA NIC 的 VPC 网络和子网时指定的名称前缀。-
RESERVATION:预留名称、块或 预留中的子块。如需获取预留名称或可用块,请参阅查看预留容量。-
根据您对实例布置的要求,请按以下方式之一操作:
- 在任意单个块上创建 A4X 实例:
projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME - 在特定块上创建 A4X 实例:
projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME - 在特定子块中创建 A4X 实例:
projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME/reservationSubBlocks/RESERVATION_SUBBLOCK_NAME
- 在任意单个块上创建 A4X 实例:
创建 MIG
使用 A4X 机器类型时,您必须通过指定 MIG 的目标大小来创建 MIG。
如需获取 1x72 的 GPU 拓扑,请创建包含
18 个 A4X 实例的 MIG。创建 MIG 时,请应用指定 acceleratorTopology
字段的工作负载政策。应用该政策可确保 Compute Engine 在一个子块中创建所有 18 个 A4X
实例,以使用 NVLink 网域。
如果子块的容量不足以容纳所有 18 个实例,则任何
托管实例
无法立即创建的都将保持 CREATING 状态,直到容量
可用为止。这些托管实例代表 MIG 在有容量时创建的计算实例。
当有容量时。
当您应用工作负载政策并将 acceleratorTopology 字段设置为
1x72 时,您无法在 MIG 中创建超过 18 个 A4X 实例。
指定超过 18 个实例会导致 MIG 创建失败。如需创建多个 NVLink
网域,请为每个网域创建一个单独的 MIG,并将相同的工作负载政策应用于每个 MIG。
如需创建 MIG,请选择以下选项之一:
gcloud
如需创建具有指定目标大小的 MIG,请使用
instance-groups managed
create 命令。
按如下所示创建可用区级或区域级 MIG:
- 如需创建可用区级 MIG,请使用以下命令:
gcloud compute instance-groups managed create MIG_NAME \ --template=INSTANCE_TEMPLATE_URL \ --size=TARGET_SIZE \ --workload-policy=WORKLOAD_POLICY_URL \ --zone=ZONE
- 如需创建区域级 MIG,请使用以下命令:
gcloud compute instance-groups managed create MIG_NAME \ --template=INSTANCE_TEMPLATE_URL \ --size=TARGET_SIZE \ --workload-policy=WORKLOAD_POLICY_URL \ --region=REGION
MIG_NAME:MIG 的名称。INSTANCE_TEMPLATE_URL:您要用于在 MIG 中创建实例的实例模板的网址。网址可以包含实例模板的 ID 或名称。请指定以下某个值:- 对于区域级实例模板:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - 对于全球实例模板:
INSTANCE_TEMPLATE_ID
- 对于区域级实例模板:
TARGET_SIZE:MIG 中所需的实例数量。对于加速器拓扑1x72,请将目标大小设置为18。WORKLOAD_POLICY_URL:工作负载政策的网址,例如projects/example-project/regions/us-central1/resourcePolicies/example-workload-policy。ZONE:您要在其中创建 MIG 的可用区。在工作负载政策的区域内指定一个可用区。REGION:您要在其中创建 MIG 的区域。指定与工作负载政策相同的区域。 对于区域级 MIG,您可以使用--zones标志指定该区域中的 可用区,而不是指定区域。
REST
如需创建具有指定目标大小的 MIG,请发出 POST 请求。
按如下所示创建可用区级或区域级 MIG:
- 如需创建可用区级 MIG,请向
instanceGroupManagers.insert方法发出POST请求。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers { "versions": [ { "instanceTemplate": "INSTANCE_TEMPLATE_URL" } ], "name": "MIG_NAME", "instanceTemplate": "INSTANCE_TEMPLATE_URL", "targetSize": "TARGET_SIZE", "resourcePolicies": { "workloadPolicy": WORKLOAD_POLICY_URL } } - 如需创建区域级 MIG,请向
regionInstanceGroupManagers.insert方法发出POST请求。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers { "versions": [ { "instanceTemplate": "INSTANCE_TEMPLATE_URL" } ], "name": "MIG_NAME", "instanceTemplate": "INSTANCE_TEMPLATE_URL", "targetSize": "TARGET_SIZE", "resourcePolicies": { "workloadPolicy": WORKLOAD_POLICY_URL } }
PROJECT_ID:项目 ID。ZONE:您要在其中创建 MIG 的可用区。 在工作负载政策的区域内指定一个可用区。REGION:您要在其中创建 MIG 的区域。 指定与工作负载政策相同的区域。INSTANCE_TEMPLATE_URL:您要用于在 MIG 中创建实例的实例模板的网址。网址可以包含实例模板的 ID 或名称。请指定以下某个值:- 对于区域级实例模板:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - 对于全球实例模板:
INSTANCE_TEMPLATE_ID
- 对于区域级实例模板:
MIG_NAME:MIG 的名称。TARGET_SIZE:MIG 中所需的实例数量。 对于加速器拓扑1x72,请将目标大小设置为18。WORKLOAD_POLICY_URL:工作负载政策的网址,例如projects/example-project/regions/us-central1/resourcePolicies/example-workload-policy。