使用 Compute Engine 创建 Cloud TPU 虚拟机实例
本文档介绍了如何使用 Compute Engine gcloud compute instances create 命令创建单个 TPU 虚拟机。您还可以通过指定实例模板来创建 TPU 虚拟机实例。如需了解详情,请参阅通过实例模板创建虚拟机。
前提条件
完成以下前提条件:
按照为 TPU 设置 Google Cloud 项目中的说明,为 TPU 创建 Google Cloud 项目。
按照规划 Cloud TPU 资源中所述确定 TPU 要求。
创建 TPU 虚拟机实例
用于创建 TPU 虚拟机实例的参数取决于您使用的消费选项:按需、Spot、受预留约束或灵活启动。如需了解详情,请参阅规划 TPU 资源。
创建按需 TPU 虚拟机实例
如需创建按需 TPU 虚拟机实例,请使用 gcloud compute instances create 命令:
gcloud
gcloud compute instances create TPU_NAME \
--machine-type=MACHINE_TYPE \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT \
--zone=ZONE \
--maintenance-policy=TERMINATE
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "TPU_NAME",
"machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
}
}
],
"scheduling": {
"onHostMaintenance": "TERMINATE"
},
"networkInterfaces": [
{
"network": "global/networks/default"
}
]
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances"
替换以下占位符:
- PROJECT_ID:您的 Google Cloud 项目的 ID。
- TPU_NAME:TPU 虚拟机的名称。
- MACHINE_TYPE:TPU 虚拟机的机器类型(例如
ct6e-standard-8t)。 - IMAGE_FAMILY:TPU 虚拟机的操作系统映像系列。如果您想安装特定版本的操作系统,请使用
--image标志。如需详细了解操作系统映像,请参阅操作系统映像。 - IMAGE_PROJECT:包含操作系统映像的项目。
对于 TPU 映像,此值为
ubuntu-os-accelerator-images。 - ZONE:TPU 虚拟机的可用区(例如
us-central1-b)。
创建 TPU Spot 虚拟机实例
如需创建 TPU Spot 虚拟机实例,请将 gcloud compute instances create 命令与 --provisioning-model=SPOT 标志搭配使用:
gcloud
gcloud compute instances create TPU_NAME \
--machine-type=MACHINE_TYPE \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT \
--zone=ZONE \
--provisioning-model=SPOT \
--instance-termination-action=DELETE \
--maintenance-policy=TERMINATE
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "TPU_NAME",
"machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
}
}
],
"scheduling": {
"onHostMaintenance": "TERMINATE",
"provisioningModel": "SPOT",
"instanceTerminationAction": "DELETE"
},
"networkInterfaces": [
{
"network": "global/networks/default"
}
]
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances"
替换以下占位符:
- PROJECT_ID:您的 Google Cloud 项目的 ID。
- TPU_NAME:TPU 虚拟机的名称。
- MACHINE_TYPE:TPU 虚拟机的机器类型(例如
ct6e-standard-8t)。 - IMAGE_FAMILY:TPU 虚拟机的操作系统映像系列。如果您想安装特定版本的操作系统,请使用
--image标志。如需详细了解操作系统映像,请参阅操作系统映像。 - IMAGE_PROJECT:包含操作系统映像的项目。
对于 TPU 映像,此值为
ubuntu-os-accelerator-images。 - ZONE:TPU 虚拟机的可用区(例如
us-central1-b)。
使用预留创建 TPU 虚拟机实例
如需使用与预留绑定的使用选项创建 TPU 虚拟机实例,请将 gcloud compute instances create 命令与 --reservation-affinity=specific 和 --reservation 标志搭配使用:
gcloud
gcloud compute instances create TPU_NAME \
--machine-type=MACHINE_TYPE \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT \
--zone=ZONE \
--provisioning-model=reservation-bound \
--reservation-affinity=specific \
--reservation=RESERVATION_NAME \
--instance-termination-action=DELETE \
--maintenance-policy=TERMINATE
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "TPU_NAME",
"machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
}
}
],
"scheduling": {
"onHostMaintenance": "TERMINATE",
"provisioningModel": "RESERVATION_BOUND",
"instanceTerminationAction": "DELETE"
},
"networkInterfaces": [
{
"network": "global/networks/default"
}
],
"reservationAffinity": {
"consumeReservationType": "SPECIFIC_RESERVATION",
"key": "compute.googleapis.com/reservation-name",
"values": [
"RESERVATION_NAME"
]
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances"
替换以下占位符:
- PROJECT_ID:您的 Google Cloud 项目的 ID。
- TPU_NAME:TPU 虚拟机的名称。
- MACHINE_TYPE:TPU 虚拟机的机器类型(例如
ct6e-standard-8t)。 - IMAGE_FAMILY:TPU 虚拟机的操作系统映像系列。如果您想安装特定版本的操作系统,请使用
--image标志。如需详细了解操作系统映像,请参阅操作系统映像。 - IMAGE_PROJECT:包含操作系统映像的项目。
对于 TPU 映像,此值为
ubuntu-os-accelerator-images。 - ZONE:TPU 虚拟机的可用区(例如
us-central1-b)。 - RESERVATION_NAME:预留的名称。
创建 TPU 灵活启动型虚拟机
如需创建 TPU Flex-start 虚拟机实例,请将 gcloud compute instances create 命令与 --provisioning-model=FLEX_START 标志搭配使用:
gcloud
gcloud compute instances create TPU_NAME \
--machine-type=MACHINE_TYPE \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT \
--zone=ZONE \
--provisioning-model=FLEX_START \
--max-run-duration=MAX_RUN_DURATION \
--request-valid-for-duration=VALID_DURATION \
--instance-termination-action=DELETE \
--maintenance-policy=TERMINATE
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "TPU_NAME",
"machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
}
}
],
"params": {
"requestValidForDuration": {
"seconds": VALID_DURATION
}
},
"scheduling": {
"onHostMaintenance": "TERMINATE",
"provisioningModel": "FLEX_START",
"instanceTerminationAction": "DELETE",
"maxRunDuration": {
"seconds": MAX_RUN_DURATION
}
},
"networkInterfaces": [
{
"network": "global/networks/default"
}
]
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances"
替换以下占位符:
- PROJECT_ID:您的 Google Cloud 项目的 ID。
- TPU_NAME:TPU 虚拟机的名称。
- MACHINE_TYPE:TPU 虚拟机的机器类型(例如
ct6e-standard-8t)。 - IMAGE_FAMILY:TPU 虚拟机的操作系统映像系列。如果您想安装特定版本的操作系统,请使用
--image标志。如需详细了解操作系统映像,请参阅操作系统映像。 - IMAGE_PROJECT:包含操作系统映像的项目。
对于 TPU 映像,此值为
ubuntu-os-accelerator-images。 - ZONE:TPU 虚拟机的可用区(例如
us-central1-b)。 - MAX_RUN_DURATION:TPU 虚拟机的最长运行时长(例如
6h)。对于 REST,请以秒为单位指定此值(例如21600表示 6 小时)。 - VALID_DURATION:相应请求的有效时长上限。对于 REST,请以秒数形式指定此值(例如,
3600表示 1 小时)。
如需详细了解如何创建 Compute Engine 实例,请参阅创建和启动 Compute Engine 实例。
后续步骤
- 了解如何创建具有单主机 Cloud TPU 切片的 MIG。
- 了解如何创建具有多主机 Cloud TPU 切片的 MIG。
- 了解如何管理 TPU 虚拟机。
- 了解 GKE 中的 TPU。
- 了解如何在 TPU 上运行机器学习工作负载,例如在 TPU 上使用 vLLM 部署 Qwen2-72B-Instruct。