在日历模式下创建未来预留请求


本文档介绍了如何在日历模式下创建未来预留请求。如需详细了解此类预留,请参阅日历模式下的未来预留请求概览

您可以在日历模式下创建未来预留请求,以预留最多 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

    1. 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.

    2. Set a default region and zone.
    3. 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 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

此预定义角色包含在日历模式下创建未来预留请求所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

在日历模式下创建未来预留请求需要具备以下权限:

  • 创建未来预留请求:针对项目的 compute.futureReservations.create 权限
  • 让 Compute Engine 自动创建预留:针对项目的 compute.reservations.create 权限
  • 如需指定实例模板:实例模板的 compute.instanceTemplates.useReadOnly 权限
  • 查看资源的未来可用性:针对项目的 compute.advice.calendarMode 权限

您也可以使用自定义角色或其他预定义角色来获取这些权限。

概览

如需在日历模式下创建未来预留请求,请完成以下步骤:

  1. 查看 TPU 的未来可用性。查看您要预留的 TPU 的未来可用性。然后,在创建请求时,指定您已确认为可用的 TPU 的数量、类型和预留时长。此操作可提高 Google Cloud批准您的请求的几率。

  2. 为 TPU 创建预留请求。在日历模式下为 TPU 创建并提交未来预留请求。如果创建请求成功,则 Google Cloud 会在 1 分钟内批准请求。

查看 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

替换以下内容:

  • 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_TIMETO_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_DURATIONMINIMUM_DURATION:您要预留资源的最长时长和最短时长。将这些时长格式设置为天数、小时数、分钟数或秒数,后面分别跟 dhms。例如,指定 30m 表示 30 分钟,或指定 1d2h3m4s 表示 1 天 2 小时 3 分钟 4 秒。您可以预留最短 24 小时,最长 90 天的资源。

输出类似于以下内容:

- 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'

如果您请求的资源可用,输出将包含 startTimeendTimelocation 字段。这些字段用于指定资源可用时的最早开始时间、最晚结束时间和可用区。

REST

如需查看某个区域内 TPU 的未来可用性,请向 Beta 版 advice.calendarMode 方法发送 GET 请求。在请求正文中,添加 acceleratorCountvmFamily 字段:

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"
      }
    }
  }
}

替换以下内容:

  • 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_TIMETO_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_DURATIONMINIMUM_DURATION:您要预留资源的最长时长和最短时长(以秒为单位),后跟 s。例如,如需指定 3,600 秒,请使用 3600s。您可以预留资源,预留时长最短为 24 小时(86,400 秒),最长为 90 天(7,776,000 秒)。

输出类似于以下内容:

{
  "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"
        }
      }
    }
  ]
}

如果您请求的资源可用,输出将包含 startTimeendTimelocation 字段。这些字段用于指定资源可用时的最早开始时间、最晚结束时间和可用区。

为 TPU 创建预留请求

Google Cloud 在日历模式下批准未来预留请求后,您将无法取消、删除或修改请求。无论使用情况如何,您都必须承诺在请求的开始时间支付所请求容量的费用。

如需使用现有 TPU 虚拟机作为参考来创建请求,请使用Google Cloud 控制台。否则,请选择以下选项之一:

控制台

  1. 在 Google Cloud 控制台中,前往预留页面。

    转到“预留”

  2. 点击未来预留标签页。

  3. 点击 创建未来预留创建未来预留页面会打开。

  4. 硬件配置部分中,通过执行以下操作之一来指定要预留的 TPU 的属性:

    • 如需直接指定 TPU 属性,请完成以下步骤:

      1. 选择指定机器类型

      2. 点击 TPU 标签页。

      3. 在表的系列列中,选择要预留的 TPU 版本。

    • 如需使用现有 TPU 虚拟机作为参考来指定 TPU 属性,请选择使用现有虚拟机,然后选择相应虚拟机。

  5. 如果您在上一步中指定了 TPU v5e (CT5LP),请在 TPU v5 工作负载类型列表中选择以下选项之一:

    • 如需在 TPU 上运行在单个或多个操作中处理大量数据的工作负载(例如机器学习训练工作负载),请选择批量

    • 如需在 TPU 上运行处理并发请求且要求极低网络延迟的工作负载(例如机器学习推理工作负载),请选择服务

  6. 搜索容量部分中,完成以下步骤:

    1. 区域可用区列表中,指定您要预留资源的区域和可用区。如需查看支持的区域和可用区,请参阅本文档中的限制

    2. 芯片数量字段中,选择要预留的 TPU 芯片数量。

    3. 开始时间列表中,选择请求的开始时间。开始时间必须在您创建并提交请求后至少 24 小时。

    4. 可选:在选择开始日期灵活性列表中,选择开始日期的准确性

    5. 预留时长字段中,指定您要预留资源的时长。该值必须介于 1 天到 90 天之间。

    6. 点击搜索容量。然后,在可用容量表中,选择一个包含要预留 TPU 的类型、数量和预留期的可用选项。

  7. 点击下一步

  8. 共享类型部分,选择要与之共享您所请求容量的项目:

    • 如需仅在项目中使用预留容量,请选择本地

    • 如需与其他项目共享预留容量,请选择已共享,点击 添加项目,然后按照提示选择项目。

  9. 点击下一步

  10. 未来预留名称字段中,输入请求的名称。

  11. 预留名称字段中,输入 Compute Engine 自动创建的预留名称,以预配您请求的容量。

  12. 点击创建

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

替换以下内容:

  • 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:您要在其中预留资源的可用区。

REST

如需在日历模式下创建未来预留请求并提交以供审核,请向 Beta 版 futureReservations.insert 方法发送以下 POST 请求。如需预留 TPU,请在请求正文中添加 acceleratorCountvmFamily 字段:

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
    }
  }
}

替换以下内容:

  • 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_1CONSUMER_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 秒)。

后续步骤