本文档介绍如何创建 TPU 虚拟机 (VM) 实例。TPU 虚拟机也称为单主机 TPU 切片。
如需创建一组单主机切片,请参阅 创建具有单主机 TPU 切片的 MIG。
准备工作
-
如果您尚未设置身份验证,请进行设置。身份验证用于验证您的身份,以便访问 Google Cloud 服务和 API。如需从本地开发环境运行
代码或示例,您可以通过选择以下选项之一向
Compute Engine 进行身份验证:
{1
选择标签页以了解您打算如何使用本页面上的示例:
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 配额:如果您要创建 具有按需、Flex-start 虚拟机或 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,请以秒为单位指定此值(例如,6 小时为21600)。 - VALID_DURATION:请求的有效期上限。对于 REST,请以秒为单位指定此值(例如,1 小时为
3600)。 请求有效。
如需详细了解如何创建 Compute Engine 实例,请参阅 创建和启动 Compute Engine 实例。
限制
生命周期操作:您无法停止、启动、恢复或暂停 TPU 实例。如需更改需要重启的配置或停止产生费用,您必须删除实例。
更新虚拟机详细信息:您可以 更新属性 ,这些属性只需要刷新 (
REFRESH) 操作。如果配置需要重启 (RESTART),则您必须重新创建实例。