创建具有多主机 Cloud TPU 切片的 MIG
本文档介绍如何创建具有多宿主 TPU 切片的代管式实例组 (MIG)。
前提条件
完成以下前提条件:
- 按照为 TPU 设置项目中的说明为 TPU 创建项目。
- 按照规划资源中的说明确定您的 TPU 要求。
创建具有多主机 TPU 切片的 MIG
- 创建一个实例模板。
- 创建工作负载政策。
- 创建 MIG。
创建实例模板
用于创建实例模板的命令取决于您使用的消费选项:按需、竞价型、受预留约束或灵活启动。如需详细了解使用选项,请参阅规划 TPU 资源。
为按需 TPU 虚拟机创建实例模板
以下命令会使用按需付费选项创建实例模板:
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT
替换以下占位符:
INSTANCE_TEMPLATE_NAME:实例模板的名称。MACHINE_TYPE:TPU 虚拟机的机器类型,例如ct6e-standard-8t。IMAGE_FAMILY:TPU 虚拟机的操作系统映像系列。如果您想安装特定版本的操作系统,请使用--image标志。如需详细了解操作系统映像,请参阅操作系统映像。IMAGE_PROJECT:包含操作系统映像的项目。 对于 TPU 映像,此值为ubuntu-os-accelerator-images。
为 TPU Spot 虚拟机创建实例模板
以下命令会使用抢占式实例消耗选项创建实例模板:
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--instance-termination-action=STOP \
--provisioning-model=SPOT \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT
替换以下占位符:
INSTANCE_TEMPLATE_NAME:实例模板的名称。MACHINE_TYPE:TPU 虚拟机的机器类型,例如ct6e-standard-8t。IMAGE_FAMILY:TPU 虚拟机的操作系统映像系列。如果您想安装特定版本的操作系统,请使用--image标志。如需详细了解操作系统映像,请参阅操作系统映像。IMAGE_PROJECT:包含操作系统映像的项目。 对于 TPU 映像,此值为ubuntu-os-accelerator-images。
为与 TPU 预留绑定的虚拟机创建实例模板
以下命令会使用受预留约束的消费选项创建实例模板:
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--instance-termination-action=DELETE \
--reservation-affinity=specific \
--provisioning-model=reservation-bound \
--reservation=RESERVATION_NAME \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT
替换以下占位符:
INSTANCE_TEMPLATE_NAME:实例模板的名称。MACHINE_TYPE:TPU 虚拟机的机器类型,例如ct6e-standard-8t。RESERVATION_NAME:要使用的特定预留的名称。IMAGE_FAMILY:TPU 虚拟机的操作系统映像系列。如果您想安装特定版本的操作系统,请使用--image标志。如需详细了解操作系统映像,请参阅操作系统映像。IMAGE_PROJECT:包含操作系统映像的项目。 对于 TPU 映像,此值为ubuntu-os-accelerator-images。
为 TPU 灵活启动型虚拟机创建实例模板
以下命令使用灵活启动消耗选项创建实例模板:
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--instance-termination-action=DELETE \
--provisioning-model=FLEX_START \
--max-run-duration=DURATION \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT
替换以下占位符:
INSTANCE_TEMPLATE_NAME:实例模板的名称。MACHINE_TYPE:TPU 虚拟机的机器类型,例如ct6e-standard-8t。DURATION:TPU 虚拟机可运行的最长时长。IMAGE_FAMILY:TPU 虚拟机的操作系统映像系列。如果您想安装特定版本的操作系统,请使用--image标志。如需详细了解操作系统映像,请参阅操作系统映像。IMAGE_PROJECT:包含操作系统映像的项目。 对于 TPU 映像,此值为ubuntu-os-accelerator-images。
创建工作负载政策
您必须使用 accelerator-topology 参数(例如 4x4、8x8 或 4x4x4)创建工作负载政策。加速器拓扑会将 MIG 配置为将实例视为一个相互连接的切片。
以下命令会创建工作负载政策:
gcloud compute resource-policies create workload-policy WORKLOAD_POLICY_NAME \
--type=high-throughput \
--accelerator-topology=TOPOLOGY \
--region=REGION
替换以下占位符:
WORKLOAD_POLICY_NAME:工作负载政策的名称。TOPOLOGY:TPU 虚拟机的拓扑,例如4x4x8。如需详细了解每个 TPU 版本的拓扑,请参阅系统架构。REGION:工作负载政策的区域。
创建 MIG
使用 gcloud compute instance-groups managed create 命令创建可用区级或区域级 MIG,如下所示:
如需创建包含多主机 TPU 切片的可用区级 MIG,请使用以下命令:
gcloud compute instance-groups managed create MIG_NAME \ --size=MIG_SIZE \ --target-size-policy-mode=bulk \ --template=INSTANCE_TEMPLATE_URL \ --zone=ZONE \ --default-action-on-vm-failure=do-nothing \ --workload-policy=WORKLOAD_POLICY_URL如需创建包含多主机 TPU 切片的区域级 MIG,请使用以下命令:
gcloud compute instance-groups managed create MIG_NAME \ --size=MIG_SIZE \ --target-size-policy-mode=bulk \ --template=INSTANCE_TEMPLATE_URL \ --region=REGION \ --default-action-on-vm-failure=do-nothing \ --workload-policy=WORKLOAD_POLICY_URL \ --target-distribution-shape=any-single-zone \ --instance-redistribution-type=none
替换以下占位符:
MIG_NAME:MIG 的名称。MIG_SIZE:MIG 中的虚拟机数量。INSTANCE_TEMPLATE_URL:您要用于在 MIG 中创建实例的实例模板的网址。网址可以包含实例模板的 ID 或名称。请指定以下某个值:- 对于区域级实例模板:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - 对于全球实例模板:
INSTANCE_TEMPLATE_ID
- 对于区域级实例模板:
ZONE:MIG 的可用区。REGION:MIG 所在的区域。WORKLOAD_POLICY_URL:您要用于在 MIG 中创建实例的工作负载政策的网址。例如:projects/PROJECT_ID/regions/WORKLOAD_POLICY_REGION/resourcePolicies/WORKLOAD_POLICY_NAME。
在 MIG 中创建具有自定义名称的虚拟机
您可以在 MIG 中创建虚拟机,并为每个虚拟机指定自定义名称。这有助于调试并确保实例以特定顺序创建。
包含多主机 TPU 切片的 MIG 使用批量模式的目标大小政策。在此类 MIG 中创建具有自定义名称的虚拟机时,适用以下规则:
您必须先验证 MIG 中是否没有虚拟机。如果 MIG 包含虚拟机,您必须调整 MIG 的大小,使其达到目标大小
0,或者创建另一个 MIG,使其达到目标大小0。您只能使用 REST API 创建具有自定义名称的虚拟机。
使用以下 REST API 方法之一创建具有自定义名称的虚拟机:
对于可用区级 MIG,请使用
instanceGroupManagers.createInstances。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME/createInstances { "instances": [ { "name": "INSTANCE_NAME_1" }, { "name": "INSTANCE_NAME_2" }, ... ] }对于区域级 MIG,请使用
regionInstanceGroupManagers.createInstances。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME/createInstances { "instances": [ { "name": "INSTANCE_NAME_1" }, { "name": "INSTANCE_NAME_2" }, ... ] }
替换以下占位符:
后续步骤
- 了解 TPU 虚拟机和 MIG。
- 了解如何创建具有单主机 Cloud TPU 切片的 MIG。
- 了解如何管理 TPU 虚拟机。
- 了解 GKE 中的 TPU。
- 了解如何在 TPU 上运行机器学习工作负载,例如在 TPU 上使用 vLLM 部署 Qwen2-72B-Instruct。