本文档介绍了如何在日历模式下创建未来预留请求。如需详细了解此类预留,请参阅日历模式下的未来预留请求概览。
您可以在日历模式下创建未来预留请求,以预留最多 1,024 个 TPU 芯片,预留时间最长 90 天。然后,您可以使用此容量创建附加了 TPU 的虚拟机实例。日历模式下的未来预留请求可帮助您为以下工作负载获取需求量较高的资源:
模型预训练作业
模型微调作业
高性能计算 (HPC) 模拟工作负载
短期增加推理工作负载
如需为长时间运行的训练和推理作业预留 GPU 虚拟机,请参阅 AI Hypercomputer 文档中的预留容量。
限制
在日历模式下创建未来预留请求之前,请注意以下限制:
您只能按以下方式预留 TPU:
支持的 TPU 版本 每个请求的 TPU 芯片数量 预留期 支持的可用区 TPU v6e 1、4、8、16、32、64、128、256、512 或 1,024 1 到 90 天 asia-northeast1-b
us-east5-a
us-east5-b
TPU v5p 1*、4、8、16、32、64、128、256、512 或 1,024 1 到 90 天 us-east5-a
TPU v5e 1*、4*、8*、16、32、64、128、256、512 或 1,024 1 到 90 天 us-west4-b
(BATCH
)us-central1-a
(SERVING
)
* 您只能为服务 (
SERVING
) 工作负载类型预留 1 个 TPU v5p 芯片或 1、4 或 8 个 TPU v5e 芯片。请求创建后,您无法取消、删除或修改该请求。
准备工作
- 如果您无法在日历模式下使用未来预留请求,则您可能不符合访问和使用此功能的条件。在这种情况下,请与您的客户支持团队或销售团队联系。
- 如需与贵组织中的其他项目共享预留容量,请确保您要在日历模式下创建未来预留请求时所在的项目允许创建共享预留。否则,您将遇到错误。
-
如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以通过选择以下选项之一向 Compute Engine 进行身份验证:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
-
创建未来预留请求:针对项目的
compute.futureReservations.create
权限 -
让 Compute Engine 自动创建预留:针对项目的
compute.reservations.create
权限 -
如需指定实例模板:实例模板的
compute.instanceTemplates.useReadOnly
权限 -
查看资源的未来可用性:针对项目的
compute.advice.calendarMode
权限 查看 TPU 的未来可用性。查看您要预留的 TPU 的未来可用性。然后,在创建请求时,指定您已确认为可用的 TPU 的数量、类型和预留时长。此操作可提高 Google Cloud批准您的请求的几率。
为 TPU 创建预留请求。在日历模式下为 TPU 创建并提交未来预留请求。如果创建请求成功,则 Google Cloud 会在 1 分钟内批准请求。
NUMBER_OF_CHIPS
:要预留的 TPU 芯片数量。TPU_VERSION
:要预留的 TPU 版本。请指定以下某个值:对于 TPU v6e:
V6E
对于 TPU v5p:
V5P
对于 TPU v5e:
V5E
如果您指定 TPU v5p 或 v5e,则必须添加
--workload-type
标志。将此标志设置为您要在 TPU 上运行的工作负载类型:对于在单个或多个操作中处理大量数据的工作负载(例如机器学习训练工作负载),请指定
BATCH
。对于处理并发请求且需要尽可能降低网络延迟的工作负载(例如机器学习推理工作负载),请指定
SERVING
。
REGION
:预留 TPU 的区域。如需查看支持的区域和可用区,请参阅本文档中的限制。FROM_START_TIME
和TO_START_TIME
:您要预留容量的开始日期和结束日期。将这些日期的格式设置为 RFC 3339 时间戳:YYYY-MM-DDTHH:MM:SSOFFSET
替换以下内容:
YYYY-MM-DD
:格式为 4 位数年份、2 位数月份和 2 位数日期而且相互之间以连字符 (-
) 分隔的日期。HH:MM:SS
:格式为 2 位数小时、2 位数分钟和 2 位数秒钟而且相互之间以冒号 (:
) 分隔的 24 小时制时间。OFFSET
:采用世界协调时间 (UTC) 的偏移量格式的时区。 例如,要使用太平洋标准时间 (PST),请指定-08:00
。如需不使用偏移量,请指定Z
。
MAXIMUM_DURATION
和MINIMUM_DURATION
:您要预留资源的最长时长和最短时长。将这些时长格式设置为天数、小时数、分钟数或秒数,后面分别跟d
、h
、m
或s
。例如,指定30m
表示 30 分钟,或指定1d2h3m4s
表示 1 天 2 小时 3 分钟 4 秒。您可以预留最短 24 小时,最长 90 天的资源。PROJECT_ID
:您要在其中预留资源的项目的 ID。REGION
:预留 TPU 的区域。如需查看支持的区域和可用区,请参阅本文档中的限制。NUMBER_OF_CHIPS
:要预留的 TPU 芯片数量。TPU_VERSION
:要预留的 TPU 版本。请指定以下某个值:对于 TPU v6e:
VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT6E
对于 TPU v5p:
VM_FAMILY_CLOUD_TPU_POD_SLICE_CT5P
对于 TPU v5e:
VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT5LP
如果您指定 TPU v5p 或 v5e,则必须在
aggregateResources
字段中添加workloadType
字段。将此字段设置为您要在 TPU 上运行的工作负载类型:对于在单个或多个操作中处理大量数据的工作负载(例如机器学习训练工作负载),请指定
BATCH
。对于处理并发请求且需要尽可能降低网络延迟的工作负载(例如机器学习推理工作负载),请指定
SERVING
。
FROM_START_TIME
和TO_START_TIME
:您要预留容量的日期范围的开始日期和结束日期。将这些日期的格式设置为 RFC 3339 时间戳:YYYY-MM-DDTHH:MM:SSOFFSET
替换以下内容:
YYYY-MM-DD
:格式为 4 位数年份、2 位数月份和 2 位数日期而且相互之间以连字符 (-
) 分隔的日期。HH:MM:SS
:格式为 2 位数小时、2 位数分钟和 2 位数秒钟而且相互之间以冒号 (:
) 分隔的 24 小时制时间。OFFSET
:采用世界协调时间 (UTC) 的偏移量格式的时区。 例如,要使用太平洋标准时间 (PST),请指定-08:00
。如需不使用偏移量,请指定Z
。
MAXIMUM_DURATION
和MINIMUM_DURATION
:您要预留资源的最长时长和最短时长(以秒为单位),后跟s
。例如,如需指定 3,600 秒,请使用3600s
。您可以预留资源,预留时长最短为 24 小时(86,400 秒),最长为 90 天(7,776,000 秒)。在 Google Cloud 控制台中,前往预留页面。
点击未来预留标签页。
点击
创建未来预留。创建未来预留页面会打开。在硬件配置部分中,通过执行以下操作之一来指定要预留的 TPU 的属性:
如需直接指定 TPU 属性,请完成以下步骤:
选择指定机器类型。
点击 TPU 标签页。
在表的系列列中,选择要预留的 TPU 版本。
如需使用现有 TPU 虚拟机作为参考来指定 TPU 属性,请选择使用现有虚拟机,然后选择相应虚拟机。
如果您在上一步中指定了 TPU v5e (CT5LP),请在 TPU v5 工作负载类型列表中选择以下选项之一:
如需在 TPU 上运行在单个或多个操作中处理大量数据的工作负载(例如机器学习训练工作负载),请选择批量。
如需在 TPU 上运行处理并发请求且要求极低网络延迟的工作负载(例如机器学习推理工作负载),请选择服务。
在搜索容量部分中,完成以下步骤:
在区域和可用区列表中,指定您要预留资源的区域和可用区。如需查看支持的区域和可用区,请参阅本文档中的限制。
在芯片数量字段中,选择要预留的 TPU 芯片数量。
在开始时间列表中,选择请求的开始时间。开始时间必须在您创建并提交请求后至少 24 小时。
可选:在选择开始日期灵活性列表中,选择开始日期的准确性
在预留时长字段中,指定您要预留资源的时长。该值必须介于 1 天到 90 天之间。
点击搜索容量。然后,在可用容量表中,选择一个包含要预留 TPU 的类型、数量和预留期的可用选项。
点击下一步。
在共享类型部分,选择要与之共享您所请求容量的项目:
如需仅在项目中使用预留容量,请选择本地。
如需与其他项目共享预留容量,请选择已共享,点击
添加项目,然后按照提示选择项目。
点击下一步。
在未来预留名称字段中,输入请求的名称。
在预留名称字段中,输入 Compute Engine 自动创建的预留名称,以预配您请求的容量。
点击创建。
FUTURE_RESERVATION_NAME
:请求的名称。NUMBER_OF_CHIPS
:要预留的 TPU 芯片数量。TPU_VERSION
:要预留的 TPU 版本。请指定以下某个值:对于 TPU v6e:
V6E
对于 TPU v5p:
V5P
对于 TPU v5e:
V5E
如果您指定 TPU v5p 或 v5e,则必须添加
--workload-type
标志。将该标志设置为您要在 TPU 上运行的工作负载类型:对于在单个或多个操作中处理大量数据的工作负载(例如机器学习训练工作负载),请指定
BATCH
。对于处理并发请求且需要尽可能降低网络延迟的工作负载(例如机器学习推理工作负载),请指定
SERVING
。
RESERVATION_NAME
:Compute Engine 自动创建的用于预配所请求容量的预留的名称。SHARE_TYPE
:贵组织中的其他项目是否可以使用预留容量。请指定以下某个值:如需仅在项目中使用容量,请指定:
local
如需与其他项目共享容量,请指定:
projects
如果您指定了
projects
,则必须包含--share-with
标志,并将其设置为以英文逗号分隔的项目 ID 列表,例如project-1,project-2
。您最多可以指定 100 个项目。请勿在此列表中添加您的项目 ID。默认情况下,您可以使用预留容量。START_TIME
:请求的开始时间,采用 RFC 3339 时间戳格式。请指定开始时间,该时间至少为您提交请求后的 24 小时。否则,创建请求操作将失败。DURATION
:您要预留所请求资源的时长(以秒为单位)。您可以预留资源,预留时长最短为 24 小时(86,400 秒),最长为 90 天(7,776,000 秒)。ZONE
:您要在其中预留资源的可用区。PROJECT_ID
:您要在其中创建请求的项目的 ID。ZONE
:您要在其中预留资源的可用区。FUTURE_RESERVATION_NAME
:请求的名称。RESERVATION_NAME
:Compute Engine 自动创建的用于预配所请求容量的预留的名称。SHARE_TYPE
:贵组织中的其他项目是否可以使用预留容量。请指定以下某个值:如需仅在项目中使用容量,请指定:
LOCAL
如需与其他项目共享容量,请指定:
SPECIFIC_PROJECTS
如果您指定了
SPECIFIC_PROJECTS
,则必须在shareSettings
字段中添加projectMap
字段,以指定要与之共享容量的项目。您最多可以指定 100 个项目。请勿指定项目 ID。默认情况下,您可以使用预留容量。例如,如需与其他两个项目共享所请求的容量,请添加以下内容:
"shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }
将
CONSUMER_PROJECT_ID_1
和CONSUMER_PROJECT_ID_2
替换为您要允许使用所请求容量的两个项目的 ID。NUMBER_OF_CHIPS
:要预留的 TPU 芯片数量。TPU_VERSION
:要预留的 TPU 版本。请指定以下某个值:对于 TPU v6e:
VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT6E
对于 TPU v5p:
VM_FAMILY_CLOUD_TPU_POD_SLICE_CT5P
对于 TPU v5e:
VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT5LP
如果您指定 TPU v5p 或 v5e,则必须在
aggregateResources
字段中添加workloadType
字段。将该字段设置为您要在 TPU 上运行的工作负载类型:对于在单个或多个操作中处理大量数据的工作负载(例如机器学习训练工作负载),请指定
BATCH
。对于处理并发请求且需要尽可能降低网络延迟的工作负载(例如机器学习推理工作负载),请指定
SERVING
。
START_TIME
:请求的开始时间,采用 RFC 3339 时间戳格式。请指定开始时间,该时间至少为您提交请求后的 24 小时。否则,请求的创建将失败。DURATION
:您要预留所请求资源的时长(以秒为单位)。您可以预留资源,预留时长最短为 24 小时(86,400 秒),最长为 90 天(7,776,000 秒)。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
所需的角色
如需获得在日历模式下创建未来预留请求所需的权限,请让您的管理员为您授予项目的 Compute Future Reservation Admin (
roles/compute.futureReservationAdmin
) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。此预定义角色包含在日历模式下创建未来预留请求所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
在日历模式下创建未来预留请求需要具备以下权限:
概览
如需在日历模式下创建未来预留请求,请完成以下步骤:
查看 TPU 的未来可用性
您最多可以提前 120 天查看某个区域内 TPU 的未来可用性。
如需查看某个区域内 TPU 的未来可用性,请选择以下选项之一:
控制台
在日历模式下创建未来预留请求时,您可以查看某个区域内 TPU 的未来可用性。如需了解详情,请参阅本文档中的为 TPU 创建预留请求。
gcloud
如需查看某个区域内 TPU 的未来可用性,请将
gcloud beta compute advice calendar-mode
命令与--chip-count
和--tpu-version
标志搭配使用:gcloud beta compute advice calendar-mode \ --chip-count=NUMBER_OF_CHIPS \ --tpu-version=TPU_VERSION \ --region=REGION \ --start-time-range=from=FROM_START_TIME,to=TO_START_TIME \ --duration-range=max=MAXIMUM_DURATION,min=MINIMUM_DURATION
替换以下内容:
输出类似于以下内容:
- recommendationsPerSpec: spec: endTime: '2025-09-07T00:00:00Z' location: zones/us-east5-a otherLocations: zones/us-east5-b: details: this machine family is not supported in this zone status: NOT_SUPPORTED zones/us-east5-c: details: this machine family is not supported in this zone status: NOT_SUPPORTED recommendationId: 0d3f005d-f952-4fce-96f2-6af25e1591eb recommendationType: FUTURE_RESERVATION startTime: '2025-06-09T00:00:00Z'
如果您请求的资源可用,输出将包含
startTime
、endTime
和location
字段。这些字段用于指定资源可用时的最早开始时间、最晚结束时间和可用区。REST
如需查看某个区域内 TPU 的未来可用性,请向 Beta 版
advice.calendarMode
方法发送GET
请求。在请求正文中,添加acceleratorCount
和vmFamily
字段:POST https://www.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/advice/calendarMode { "futureResourcesSpecs": { "spec": { "targetResources": { "aggregateResources": { "acceleratorCount": "NUMBER_OF_CHIPS", "vmFamily": "TPU_VERSION" } }, "timeRangeSpec": { "startTimeNotEarlierThan": "FROM_START_TIME", "startTimeNotLaterThan": "TO_START_TIME", "minDuration": "MINIMUM_DURATION", "maxDuration": "MAXIMUM_DURATION" } } } }
替换以下内容:
输出类似于以下内容:
{ "recommendations": [ { "recommendationsPerSpec": { "spec": { "recommendationId": "a21a2fa0-72c7-4105-8179-88de5409890b", "recommendationType": "FUTURE_RESERVATION", "startTime": "2025-06-09T00:00:00Z", "endTime": "2025-09-07T00:00:00Z", "otherLocations": { "zones/us-east5-b": { "status": "NOT_SUPPORTED", "details": "this machine family is not supported in this zone" }, "zones/us-east5-c": { "status": "NOT_SUPPORTED", "details": "this machine family is not supported in this zone" } }, "location": "zones/us-east5-a" } } } ] }
如果您请求的资源可用,输出将包含
startTime
、endTime
和location
字段。这些字段用于指定资源可用时的最早开始时间、最晚结束时间和可用区。为 TPU 创建预留请求
Google Cloud 在日历模式下批准未来预留请求后,您将无法取消、删除或修改请求。无论使用情况如何,您都必须承诺在请求的开始时间支付所请求容量的费用。
如需使用现有 TPU 虚拟机作为参考来创建请求,请使用Google Cloud 控制台。否则,请选择以下选项之一:
控制台
gcloud
如需在日历模式下创建未来预留请求并提交以供审核,请使用以下
gcloud beta compute future-reservations create
命令。如需预留 TPU,请添加--chip-count
和--tpu-version
标志:gcloud beta compute future-reservations create FUTURE_RESERVATION_NAME \ --auto-delete-auto-created-reservations \ --chip-count=NUMBER_OF_CHIPS \ --tpu-version=TPU_VERSION \ --deployment-type=DENSE \ --planning-status=SUBMITTED \ --require-specific-reservation \ --reservation-mode=CALENDAR \ --reservation-name=RESERVATION_NAME \ --share-setting=SHARE_TYPE \ --start-time=START_TIME \ --duration=DURATION \ --zone=ZONE
替换以下内容:
REST
如需在日历模式下创建未来预留请求并提交以供审核,请向 Beta 版
futureReservations.insert
方法发送以下POST
请求。如需预留 TPU,请在请求正文中添加acceleratorCount
和vmFamily
字段:POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations { "name": "FUTURE_RESERVATION_NAME", "autoDeleteAutoCreatedReservations": true, "deploymentType": "DENSE", "planningStatus": "SUBMITTED", "reservationMode": "CALENDAR", "reservationName": "RESERVATION_NAME", "shareSettings": { "shareType": "SHARE_TYPE" }, "specificReservationRequired": true, "aggregateReservation": { "reservedResources": [ { "accelerator": { "acceleratorCount": NUMBER_OF_CHIPS } } ], "vmFamily": "TPU_VERSION" }, "timeWindow": { "startTime": "START_TIME", "duration": { "seconds": DURATION } } }
替换以下内容:
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-06-24。
-