本文档介绍了如何创建 TPU 虚拟机 (VM) 实例。TPU 虚拟机也称为单主机 TPU 切片。
如需创建一组单主机切片,请参阅创建具有单主机 TPU 切片的 MIG。
准备工作
-
如果您尚未设置身份验证,请进行设置。身份验证用于验证您的身份,以便访问 Google Cloud 服务和 API。如需从本地开发环境运行代码或示例,您可以通过选择以下选项之一向 Compute Engine 进行身份验证:
选择标签页以了解您打算如何使用本页面上的示例:
gcloud
-
安装 Google Cloud CLI,然后 使用联合身份登录 gcloud CLI。 登录后,运行以下命令来初始化 Google Cloud CLI:
gcloud init
-
- 设置默认区域和可用区。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭证。
安装 Google Cloud CLI,然后 使用联合身份登录 gcloud CLI。
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
前提条件
在继续创建 TPU 实例之前,您必须执行以下操作:
选择 TPU 版本:选择适合您工作负载的 TPU 版本。如需查看按工作负载类型列出的 TPU 版本,请参阅按工作负载类型列出的推荐 TPU 版本。
验证您首选位置的 TPU 可用性:TPU 可在特定 Google Cloud 区域使用。如需使用某个 TPU 版本,请确保该版本在您的首选区域中可用。如需查看 TPU 位置的列表,请参阅 TPU 可用性。
确保您的项目有足够的 TPU 配额:如果您要创建具有按需或 Spot 虚拟机的 TPU 实例,则必须在您要使用的区域中拥有足够的 TPU 配额。创建使用 TPU 预留的 TPU 实例不需要任何 TPU 配额,因为配额是在创建预留时使用的。如需查看 TPU 配额名称的列表,请参阅 TPU 配额;如需了解如何查看配额,请参阅查看和管理配额。
选择 TPU 使用情况选项:选择最符合您的工作负载、工作负载时长和费用需求的消费选项。如需查看按 TPU 版本列出的使用情况选项可用性,请参阅 TPU 使用情况选项。
创建 TPU 虚拟机实例
用于创建 TPU 虚拟机实例的参数取决于您使用的消费选项:按需、Spot、受预留约束或灵活启动。如需了解详情,请参阅虚拟机预配模型简介。
创建按需 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 实例。
限制
生命周期操作:您无法停止、启动、恢复或暂停 TPU 实例。如需更改需要重启的配置或停止产生费用,您必须删除实例。
更新虚拟机详情:您可以更新只需要执行刷新 (
REFRESH) 操作的属性。如果某项配置需要重启 (RESTART),则必须重新创建实例。