管理已排队的资源

借助已排队的资源,您可以按排队方式请求 Cloud TPU 资源。 在您请求已排队的资源时,请求会被添加到由 Cloud TPU 服务维护的队列中。请求的资源可用后,系统会将其分配给您的 Google Cloud 项目,供您立即独家使用。除非您将其删除或被抢占,否则它将保留分配给您的项目。只有 TPU Spot 虚拟机和抢占式 TPU 才符合抢占条件。

您可以在加入队列的资源请求中指定可选的开始时间和结束时间。开始时间用于指定填充请求的最早时间。如果请求未在指定的结束时间之前填充,则请求会过期。请求在过期后仍会保留在队列中。

队列中的资源请求可以处于以下任一状态:

WAITING_FOR_RESOURCES
请求已通过初始验证,并已添加到队列。 在有足够的空闲资源来开始预配请求或分配间隔时间过期之前,它会保持在此状态。当需求量较大时,并非所有请求都能立即预配。如果您需要更可靠地获取 TPU,请考虑购买预留型 TPU。
PROVISIONING
系统已从队列中选择该请求,并正在分配其资源。
ACTIVE
请求已分配。当已排队的资源请求处于 ACTIVE 状态时,您可以按照管理 TPU 中所述的方式管理 TPU 虚拟机。
FAILED
请求无法完成,可能是因为请求存在问题,或者请求的资源在分配间隔时间内不可用。 在被明确删除之前,请求会一直保留在队列中。
SUSPENDING
系统正在删除与该请求关联的资源。
SUSPENDED
请求中指定的资源已被删除。当请求处于 SUSPENDED 状态时,将不再符合进一步分配的条件。

前提条件

在运行本指南中的命令之前,您必须安装 Google Cloud CLI、创建 Google Cloud 项目并启用 Cloud TPU API。如需了解相关说明,请参阅设置 Cloud TPU 环境

请求按需队列资源

系统不会抢占按需资源,但按需配额无法保证有足够的可用 Cloud TPU 资源来满足您的请求。如需详细了解按需资源,请参阅配额类型

gcloud

gcloud compute tpus queued-resources create your-queued-resource-id \
    --node-id your-node-id \
    --project your-project \
    --zone us-central2-b \
    --accelerator-type v4-8 \
    --runtime-version tpu-vm-tf-2.18.0-pjrt

命令参数说明

queued-resource-id
已加入队列的资源请求的用户分配的 ID。
node-id
TPU 的用户分配 ID,在队列化资源请求分配时创建。
project
您的 Google Cloud 项目。
zone
拟在其中创建 Cloud TPU 的可用区
accelerator-type
加速器类型用于指定您要创建的 Cloud TPU 的版本和大小。 如需详细了解每个 TPU 版本支持的加速器类型,请参阅 TPU 版本
runtime-version
Cloud TPU 软件版本

curl

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d "{
    'tpu': {
    'node_spec': {
        'parent': 'projects/your-project-number/locations/us-central2-b',
        'node_id': 'your-node-id',
        'node': {
        'accelerator_type': 'v4-8',
        'runtime_version': 'tpu-vm-tf-2.18.0-pjrt',
        }
    }
    }
}" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id

命令参数说明

queued-resource-id
已加入队列的资源请求的用户分配的 ID。
node-id
TPU 的用户分配 ID,在队列化资源请求分配时创建。
project
您的 Google Cloud 项目。
zone
拟在其中创建 Cloud TPU 的可用区
accelerator-type
加速器类型用于指定您要创建的 Cloud TPU 的版本和大小。 如需详细了解每个 TPU 版本支持的加速器类型,请参阅 TPU 版本
runtime-version
Cloud TPU 软件版本

控制台

  1. 在 Google Cloud 控制台中,前往 TPU 页面:

    前往 TPU

  2. 点击创建 TPU

  3. 名称字段中,为 TPU 输入名称。

  4. 在“可用区”框中,选择要创建 TPU 的可用区。

  5. TPU 类型框中,选择加速器类型。加速器类型用于指定您要创建的 Cloud TPU 的版本和大小。如需详细了解每个 TPU 版本支持的加速器类型,请参阅 TPU 版本

  6. TPU 软件版本框中,选择软件版本。创建 Cloud TPU 虚拟机时,TPU 软件版本指定了要安装的 TPU 运行时的版本。如需了解详情,请参阅 TPU 虚拟机映像

  7. 点击启用队列功能切换开关。

  8. 已加入队列的资源名称字段中,为已加入队列的资源请求输入名称。

  9. 点击创建以创建队列中的资源请求。

按需队列资源的默认 slice 大小

使用按需配额时,您必须请求的 slice 大小小于您所用加速器类型的默认限制。系统会拒绝超出默认限制的请求。

下表显示了 TPU 类型及其关联的默认限制。

加速器类型 默认限制(以 TensorCore 数量为单位)
v2 128
v3 128
v4 384
v5 32

如果您需要更大的切片大小,请与 Cloud TPU 支持团队联系以了解详情。

使用预留请求已排队的资源

您可以使用预订请求排队中的资源。如需购买预订,请与您的 Google Cloud 客户支持团队联系。

gcloud

gcloud compute tpus queued-resources create your-queued-resource-id \
    --node-id your-node-id \
    --project your-project \
    --zone us-central2-b \
    --accelerator-type v4-8 \
    --runtime-version tpu-vm-tf-2.18.0-pjrt \
    --reserved

命令参数说明

queued-resource-id
已加入队列的资源请求的用户分配的 ID。
node-id
TPU 的用户分配 ID,在队列化资源请求分配时创建。
project
您的 Google Cloud 项目。
zone
拟在其中创建 Cloud TPU 的可用区
accelerator-type
加速器类型用于指定您要创建的 Cloud TPU 的版本和大小。 如需详细了解每个 TPU 版本支持的加速器类型,请参阅 TPU 版本
runtime-version
Cloud TPU 软件版本
reserved
在 Cloud TPU 预订中请求已排队的资源时,请使用此标志。

curl

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d "{
    'tpu': {
    'node_spec': {
        'parent': 'projects/your-project-number/locations/us-central2-b',
        'node_id': 'your-node-id',
        'node': {
        'accelerator_type': 'v4-8',
        'runtime_version': 'tpu-vm-tf-2.18.0-pjrt',
        }
    }
    },
    'guaranteed': {
    'reserved': true,
    }
}" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id

命令参数说明

queued-resource-id
已加入队列的资源请求的用户分配的 ID。
node-id
TPU 的用户分配 ID,在队列化资源请求分配时创建。
project
您的 Google Cloud 项目。
zone
拟在其中创建 Cloud TPU 的可用区
accelerator-type
加速器类型用于指定您要创建的 Cloud TPU 的版本和大小。 如需详细了解每个 TPU 版本支持的加速器类型,请参阅 TPU 版本
runtime-version
Cloud TPU 软件版本
reserved
在 Cloud TPU 预订中请求已排队的资源时,请使用此标志。

控制台

  1. 在 Google Cloud 控制台中,前往 TPU 页面:

    前往 TPU

  2. 点击创建 TPU

  3. 名称字段中,为 TPU 输入名称。

  4. 在“可用区”框中,选择要创建 TPU 的可用区。

  5. TPU 类型框中,选择加速器类型。加速器类型用于指定您要创建的 Cloud TPU 的版本和大小。如需详细了解每个 TPU 版本支持的加速器类型,请参阅 TPU 版本

  6. TPU 软件版本框中,选择软件版本。创建 Cloud TPU 虚拟机时,TPU 软件版本指定了要安装的 TPU 运行时的版本。如需了解详情,请参阅 TPU 虚拟机映像

  7. 点击启用队列功能切换开关。

  8. 已加入队列的资源名称字段中,为已加入队列的资源请求输入名称。

  9. 展开管理部分。

  10. 选中使用现有预留复选框。

  11. 点击创建以创建队列中的资源请求。

请求 TPU Spot 虚拟机队列资源

Spot 虚拟机是一种可随时被抢占并分配给其他工作负载的资源。与非 Spot 虚拟机请求相比,Spot 虚拟机资源的费用更低,并且您可能更快获得资源。如需详细了解 TPU Spot 虚拟机,请参阅管理 TPU Spot 虚拟机

gcloud

gcloud compute tpus queued-resources create your-queued-resource-id \
  --node-id your-node-id \
  --project your-project-id \
  --zone us-central2-b \
  --accelerator-type v4-8 \
  --runtime-version tpu-vm-tf-2.18.0-pjrt \
  --spot

curl

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d "{
'tpu': {
  'node_spec': {
    'parent': 'projects/your-project-number/locations/us-central2-b',
    'node_id': 'your-node-id',
    'node': {
      'accelerator_type': 'v4-8',
      'runtime_version': 'tpu-vm-tf-2.18.0-pjrt'
    }
  }
},
'spot': {}
}" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id

命令参数说明

queued-resource-request-id
已加入队列的资源请求的用户分配的 ID。
node-id
为响应请求而创建的 TPU 的用户定义 ID。
project
队列中分配资源的项目的 ID。
zone
拟在其中创建 Cloud TPU 的可用区
accelerator-type
加速器类型用于指定您要创建的 Cloud TPU 的版本和大小。 如需详细了解每个 TPU 版本支持的加速器类型,请参阅 TPU 版本
runtime-version
Cloud TPU 软件版本
spot
一个布尔标志,用于指明队列中的资源是 Spot 虚拟机。

请求在指定时间之前或之后分配队列中的资源

您可以在加入队列的资源请求中指定可选的开始时间结束时间。开始时间或开始时长用于指定填充请求的最早时间。结束时间或结束时长用于指定请求的有效时长。如果请求未在指定的结束时间或指定时长内填充,则请求会过期。请求过期后,它会保留在队列中,但不再符合分配条件。

您还可以通过指定开始时间或时长以及结束时间或时长来指定分配间隔时间

如需查看支持的时间戳和时长格式列表,请参阅日期时间

请求在指定时间后执行队列中的资源

在加入队列的资源请求中,您可以指定应在多长时间后或多长时段后分配资源。

gcloud

以下命令会请求在 2022 年 12 月 14 日上午 9 点之后分配 v4-4096 TPU。

gcloud compute tpus queued-resources create your-queued-resource-id \
    --node-id your-node-id \
    --project your-project-id \
    --zone us-central2-b \
    --accelerator-type v4-4096 \
    --runtime-version tpu-vm-tf-2.18.0-pod-pjrt \
    --valid-after-time 2022-12-14T09:00:00Z

命令参数说明

queued-resource-request-id
已加入队列的资源请求的用户分配的 ID。
node-id
为响应请求而创建的 TPU 的用户定义 ID。
project
分配队列化资源的 Google Cloud 项目。
zone
拟在其中创建 Cloud TPU 的可用区
accelerator-type
加速器类型用于指定您要创建的 Cloud TPU 的版本和大小。 如需详细了解每个 TPU 版本支持的加速器类型,请参阅 TPU 版本
runtime-version
Cloud TPU 软件版本
valid-after-time
应分配资源的时刻。如需详细了解时长格式,请参阅 Google Cloud CLI topic datetime

curl

以下命令会请求在 2022 年 12 月 14 日上午 9 点之后分配 v4-4096 TPU。

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d "{
    'tpu': {
    'node_spec': {
        'parent': 'projects/your-project-number/locations/us-central2-b',
        'node_id': 'your-node-id',
        'node': {
        'accelerator_type': 'v4-4096',
        'runtime_version': 'tpu-vm-tf-2.18.0-pod-pjrt',
        }
    }
    },
    'queueing_policy': {
    'valid_after_time': {
        'seconds': 2022-12-14T09:00:00Z
    }
    }
}" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id

命令参数说明

queued-resource-request-id
已加入队列的资源请求的用户分配的 ID。
node-id
为响应请求而创建的 TPU 的用户定义 ID。
project
分配队列资源的 Google Cloud 项目。
zone
拟在其中创建 Cloud TPU 的可用区
accelerator-type
加速器类型用于指定您要创建的 Cloud TPU 的版本和大小。 如需详细了解每个 TPU 版本支持的加速器类型,请参阅 TPU 版本
runtime-version
Cloud TPU 软件版本
valid-after-time
应分配资源的时刻。如需详细了解时长格式,请参阅 Google Cloud CLI topic datetime

控制台

  1. 在 Google Cloud 控制台中,前往 TPU 页面:

    前往 TPU

  2. 点击创建 TPU

  3. 名称字段中,为 TPU 输入名称。

  4. 在“可用区”框中,选择要创建 TPU 的可用区。

  5. TPU 类型框中,选择加速器类型。加速器类型用于指定您要创建的 Cloud TPU 的版本和大小。如需详细了解每个 TPU 版本支持的加速器类型,请参阅 TPU 版本

  6. TPU 软件版本框中,选择软件版本。创建 Cloud TPU 虚拟机时,TPU 软件版本指定了要安装的 TPU 运行时的版本。如需了解详情,请参阅 TPU 虚拟机映像

  7. 点击启用队列功能切换开关。

  8. 已加入队列的资源名称字段中,为已加入队列的资源请求输入名称。

  9. 开始请求时间字段中,输入应在该时间之后分配资源。

  10. 点击创建以创建队列中的资源请求。

以下示例请求在 6 小时后分配 v4-32。

gcloud

    gcloud compute tpus queued-resources create your-queued-resource-id \
        --node-id your-node-id \
        --project your-project-id \
        --zone us-central2-b \
        --accelerator-type v4-32 \
        --runtime-version tpu-vm-tf-2.18.0-pod-pjrt \
        --valid-after-duration 6h

curl

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d "{
    'tpu': {
    'node_spec': {
        'parent': 'projects/your-project-number/locations/us-central2-b',
        'node_id': 'your-node-id',
        'node': {
        'accelerator_type': 'v4-32',
        'runtime_version': 'tpu-vm-tf-2.18.0-pod-pjrt',
        }
    }
    },
'queueing_policy': {
    'valid_after_duration': {
        'seconds': 21600
    }
}" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id

命令参数说明

queued-resource-request-id
已加入队列的资源请求的用户分配的 ID。
node-id
为响应请求而创建的 TPU 的用户定义 ID。
project
分配队列化资源的 Google Cloud 项目。
zone
拟在其中创建 Cloud TPU 的可用区
accelerator-type
加速器类型用于指定您要创建的 Cloud TPU 的版本和大小。 如需详细了解每个 TPU 版本支持的加速器类型,请参阅 TPU 版本
runtime-version
Cloud TPU 软件版本
valid-after-duration
在该时长之前不得预配 TPU。如需详细了解时长格式,请参阅 Google Cloud CLI 主题日期时间

请求在指定时间后过期的队列资源

在排队资源请求中,您可以指定排队资源请求的有效期。如果请求未在您指定的时间或时长内处理完毕,则请求会过期。

gcloud

以下命令会请求 v4-4096 TPU。如果该请求未在 2022 年 12 月 14 日上午 9:00 之前处理完毕,则会过期。

gcloud compute tpus queued-resources create your-queued-resource-id \
    --node-id your-node-id \
    --project your-project-id \
    --zone us-central2-b \
    --accelerator-type v4-4096 \
    --runtime-version tpu-vm-tf-2.18.0-pod-pjrt \
    --valid-until-time 2022-12-14T09:00:00Z

命令参数说明

queued-resource-request-id
已加入队列的资源请求的用户分配的 ID。
node-id
为响应请求而创建的 TPU 的用户定义 ID。
project
队列中分配资源的项目的 ID。
zone
拟在其中创建 Cloud TPU 的可用区
accelerator-type
加速器类型用于指定您要创建的 Cloud TPU 的版本和大小。 如需详细了解每个 TPU 版本支持的加速器类型,请参阅 TPU 版本
runtime-version
Cloud TPU 软件版本
valid-until-time
请求取消的时间。如需详细了解时长格式,请参阅 Google Cloud CLI topic datetime

curl

以下命令会请求 v4-4096 TPU。如果该请求未在 2022 年 12 月 14 日上午 9:00 之前处理完毕,则会过期。

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d "{
    'tpu': {
    'node_spec': {
        'parent': 'projects/your-project-number/locations/us-central2-b',
        'node_id': 'your-node-id',
        'node': {
        'accelerator_type': 'v4-4096',
        'runtime_version': 'tpu-vm-tf-2.18.0-pod-pjrt',
        }
    }
    },
    'queueing_policy': {
    'valid_until_time': {
        'seconds': 1655197200
    }
    }
}" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id

命令参数说明

queued-resource-request-id
已加入队列的资源请求的用户分配的 ID。
node-id
为响应请求而创建的 TPU 的用户定义 ID。
project
队列中分配资源的项目的 ID。
zone
拟在其中创建 Cloud TPU 的可用区
accelerator-type
加速器类型用于指定您要创建的 Cloud TPU 的版本和大小。 如需详细了解每个 TPU 版本支持的加速器类型,请参阅 TPU 版本
runtime-version
Cloud TPU 软件版本
valid-until-time
请求取消的时间。如需详细了解时长格式,请参阅 Google Cloud CLI topic datetime

控制台

  1. 在 Google Cloud 控制台中,前往 TPU 页面:

    前往 TPU

  2. 点击创建 TPU

  3. 名称字段中,为 TPU 输入名称。

  4. 在“可用区”框中,选择要创建 TPU 的可用区。

  5. TPU 类型框中,选择加速器类型。加速器类型用于指定您要创建的 Cloud TPU 的版本和大小。如需详细了解每个 TPU 版本支持的加速器类型,请参阅 TPU 版本

  6. TPU 软件版本框中,选择软件版本。创建 Cloud TPU 虚拟机时,TPU 软件版本指定了要安装的 TPU 运行时的版本。如需了解详情,请参阅 TPU 虚拟机映像

  7. 点击启用队列功能切换开关。

  8. 已加入队列的资源名称字段中,为已加入队列的资源请求输入名称。

  9. Cancel request on 字段中,输入队列中的资源请求在未填充时应过期的时刻。

  10. 点击创建以创建队列中的资源请求。

以下示例请求 v4-32。如果未在 6 小时内填写,该请求将过期。

gcloud

    gcloud compute tpus queued-resources create your-queued-resource-id \
    --node-id your-node-id \
    --project your-project-id \
    --zone us-central2-b \
    --accelerator-type v4-32 \
    --runtime-version tpu-vm-tf-2.18.0-pod-pjrt \
    --valid-until-duration 6h

curl

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d "{
    'tpu': {
    'node_spec': {
        'parent': 'projects/your-project-number/locations/us-central2-b',
        'node_id': 'your-node-id',
        'node': {
        'accelerator_type': 'v4-32',
        'runtime_version': 'tpu-vm-tf-2.18.0-pod-pjrt',
        }
    }
    },
'queueing_policy': {
    'valid_until_duration': {
        'seconds': 21600
    }
}" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id

命令参数说明

queued-resource-request-id
已加入队列的资源请求的用户分配的 ID。
node-id
为响应请求而创建的 TPU 的用户定义 ID。
project
分配队列资源的 Google Cloud 项目。
zone
拟在其中创建 Cloud TPU 的可用区
accelerator-type
加速器类型用于指定您要创建的 Cloud TPU 的版本和大小。 如需详细了解每个 TPU 版本支持的加速器类型,请参阅 TPU 版本
runtime-version
Cloud TPU 软件版本
valid-until-duration
请求的有效时长。如需详细了解时长格式,请参阅 Google Cloud CLI 主题日期时间

请求在指定时间间隔内分配队列中的资源

您可以通过同时指定开始时间或时长以及结束时间或时长来指定分配间隔。

gcloud

以下命令会请求在当前时间 5 小时 30 分钟后创建 v4-32,且创建时间不得晚于 2022 年 12 月 14 日上午 9:00。

gcloud compute tpus queued-resources create your-queued-resource-id \
    --node-id your-node-id \
    --project your-project-id \
    --zone us-central2-b \
    --accelerator-type v4-32 \
    --runtime-version tpu-vm-tf-2.18.0-pod-pjrt \
    --valid-after-duration 5h30m \
    --valid-until-time 2022-12-14T09:00:00Z

命令标志说明

queued-resource-request-id
已加入队列的资源请求的用户分配的 ID。
node-id
为响应请求而创建的 TPU 的用户定义 ID。
project
队列中分配资源的项目的 ID。
zone
拟在其中创建 Cloud TPU 的可用区
accelerator-type
加速器类型用于指定您要创建的 Cloud TPU 的版本和大小。 如需详细了解每个 TPU 版本支持的加速器类型,请参阅 TPU 版本
runtime-version
Cloud TPU 软件版本
valid-until-timw
请求取消的时间。如需详细了解时长格式,请参阅 Google Cloud CLI topic datetime
valid-until-duration
请求的有效时长。如需详细了解时长格式,请参阅 Google Cloud CLI topic datetime

curl

以下命令会请求在当前时间 5 小时 30 分钟后创建 v4-32,且创建时间不得晚于 2022 年 12 月 14 日上午 9:00。

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d "{
    'tpu': {
    'node_spec': {
        'parent': 'projects/your-project-number/locations/us-central2-b',
        'node_id': 'your-node-id',
        'node': {
        'accelerator_type': 'v4-32',
        'runtime_version': 'tpu-vm-tf-2.18.0-pod-pjrt',
        }
    }
    },
'queueing_policy': {
    'validInterval': {
        'startTime': '2022-12-10T14:30:00Z',
        'endTime': '2022-12-14T09:00:00Z'
    }
    },
}" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id

命令标志说明

queued-resource-request-id
已加入队列的资源请求的用户分配的 ID。
node-id
为响应请求而创建的 TPU 的用户定义 ID。
project
队列中分配资源的项目的 ID。
zone
拟在其中创建 Cloud TPU 的可用区
accelerator-type
加速器类型用于指定您要创建的 Cloud TPU 的版本和大小。 如需详细了解每个 TPU 版本支持的加速器类型,请参阅 TPU 版本
runtime-version
Cloud TPU 软件版本
valid-until-timw
请求取消的时间。如需详细了解时长格式,请参阅 Google Cloud CLI topic datetime
valid-until-duration
请求的有效时长。如需详细了解时长格式,请参阅 Google Cloud CLI topic datetime

控制台

  1. 在 Google Cloud 控制台中,前往 TPU 页面:

    前往 TPU

  2. 点击创建 TPU

  3. 名称字段中,为 TPU 输入名称。

  4. 在“可用区”框中,选择要创建 TPU 的可用区。

  5. TPU 类型框中,选择加速器类型。加速器类型用于指定您要创建的 Cloud TPU 的版本和大小。如需详细了解每个 TPU 版本支持的加速器类型,请参阅 TPU 版本

  6. TPU 软件版本框中,选择软件版本。创建 Cloud TPU 虚拟机时,TPU 软件版本指定了要安装的 TPU 运行时的版本。如需了解详情,请参阅 TPU 虚拟机映像

  7. 点击启用队列功能切换开关。

  8. 已加入队列的资源名称字段中,为已加入队列的资源请求输入名称。

  9. 开始请求时间字段中,输入应在该时间之后分配资源。

  10. Cancel request on 字段中,输入队列中的资源请求在未填充时应过期的时刻。

  11. 点击创建以创建队列中的资源请求。

使用启动脚本请求队列中的资源

您可以指定在队列中等待的资源预配完毕后要运行的脚本。

gcloud

使用 gcloud 命令时,您可以分别使用 --metadata--metadata-from-file 标志指定脚本命令或包含脚本代码的文件。以下示例会创建一个已加入队列的资源请求,该请求将运行 startup-script.sh 脚本。

gcloud compute tpus queued-resources create your-queued-resource-id \
    --node-id your-node-id \
    --project your-project \
    --zone us-central2-b \
    --accelerator-type v4-8 \
    --runtime-version tpu-vm-tf-2.12.0 \
    --metadata-from-file='startup-script=startup-script.sh'

命令标志说明

queued-resource-request-id
已加入队列的资源请求的用户分配的 ID。
node-id
为响应请求而创建的 TPU 的用户定义 ID。
project
队列中分配资源的项目的 ID。
zone
拟在其中创建 Cloud TPU 的可用区
accelerator-type
加速器类型用于指定您要创建的 Cloud TPU 的版本和大小。 如需详细了解每个 TPU 版本支持的加速器类型,请参阅 TPU 版本
runtime-version
Cloud TPU 软件版本
validInterval
请求有效的时间,超过此时间后,系统会取消请求。如需详细了解时长格式,请参阅 Google Cloud CLI topic datetime
metadata-from-file
指定包含元数据的文件。如果您未指定元数据文件的完全限定路径,该命令会假定该文件位于当前目录中。在此示例中,该文件包含一个启动脚本,该脚本会在队列中的资源预配时运行。
metadata
指定请求的元数据。在此示例中,元数据是预配队列资源时运行的启动脚本命令。

curl

使用 curl 时,您必须在 JSON 内容中添加脚本代码。以下示例在 JSON 正文中包含内嵌脚本。

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d "{
    tpu: {
        node_spec: {
        parent: 'projects/your-project-number/locations/us-central2-b',
        node_id: 'your-node-id',
        node: {
            accelerator_type: 'v2-8',
            runtime_version: 'tpu-vm-tf-2.18.0-pjrt',
            metadata: {
                "startup-script": "#! /bin/bash\npwd > /tmp/out.txt\nwhoami >> /tmp/out.txt"
            }
        }
        }
    },
'queueing_policy': {
    'validInterval': {
        'startTime': '2022-12-10T14:30:00Z',
        'endTime': '2022-12-14T09:00:00Z'
    }
    },
}" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id

命令标志说明

queued-resource-request-id
已加入队列的资源请求的用户分配的 ID。
node-id
为响应请求而创建的 TPU 的用户定义 ID。
project
队列中分配资源的项目的 ID。
zone
拟在其中创建 Cloud TPU 的可用区
accelerator-type
加速器类型用于指定您要创建的 Cloud TPU 的版本和大小。 如需详细了解每个 TPU 版本支持的加速器类型,请参阅 TPU 版本
runtime-version
Cloud TPU 软件版本
validInterval
请求有效的时间,超过此时间后,系统会取消请求。如需详细了解时长格式,请参阅 Google Cloud CLI topic datetime
metadata-from-file
指定包含元数据的文件。如果您未指定元数据文件的完全限定路径,该命令会假定该文件位于当前目录中。在此示例中,该文件包含一个启动脚本,该脚本会在队列中的资源预配时运行。
metadata
指定请求的元数据。在此示例中,元数据是预配队列资源时运行的启动脚本命令。

请求具有指定网络和子网的队列资源

在已排队的资源请求中,您可以指定要将 TPU 连接到的网络和子网。

gcloud

gcloud compute tpus queued-resources create your-queued-resource-id \
    --node-id your-node-id \
    --project your-project \
    --zone us-central2-b \
    --accelerator-type v4-8 \
    --runtime-version tpu-vm-tf-2.18.0-pjrt \
    --network network-name \
    --subnetwork subnetwork-name

命令参数说明

queued-resource-id
已加入队列的资源请求的用户分配的 ID。
node-id
TPU 的用户分配 ID,在队列化资源请求分配时创建。
project
您的 Google Cloud 项目。
zone
拟在其中创建 Cloud TPU 的可用区
accelerator-type
加速器类型用于指定您要创建的 Cloud TPU 的版本和大小。 如需详细了解每个 TPU 版本支持的加速器类型,请参阅 TPU 版本
runtime-version
Cloud TPU 软件版本
reserved
在 Cloud TPU 预订中请求已排队的资源时,请使用此标志。
network
已排队资源将属于的网络。
subnetwork
已排队资源将属于的子网。

curl

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d "{
    'tpu': {
    'node_spec': {
        'parent': 'projects/your-project-number/locations/us-central2-b',
        'node_id': 'your-node-id',
        'node': {
        'accelerator_type': 'v4-8',
        'runtime_version': 'tpu-vm-tf-2.18.0-pjrt',
        'network_config': {
            'network': 'network-name',
            'subnetwork': 'subnetwork-name',
            'enable_external_ips': true
        }
    }
    },
    'guaranteed': {
    'reserved': true,
    }
}" \
https://tpu.googleapis.com/v2alpha1/projects/your-project-id/locations/us-central2-b/queuedResources?queued_resource_id=your-queued-resource-id

命令参数说明

queued-resource-id
已加入队列的资源请求的用户分配的 ID。
node-id
TPU 的用户分配 ID,在队列化资源请求分配时创建。
project
您的 Google Cloud 项目。
zone
拟在其中创建 Cloud TPU 的可用区
accelerator-type
加速器类型用于指定您要创建的 Cloud TPU 的版本和大小。 如需详细了解每个 TPU 版本支持的加速器类型,请参阅 TPU 版本
runtime-version
Cloud TPU 软件版本
reserved
在 Cloud TPU 预订中请求已排队的资源时,请使用此标志。
network
已排队资源将属于的网络。
subnetwork
已排队资源将属于的子网。

控制台

  1. 在 Google Cloud 控制台中,前往 TPU 页面:

    前往 TPU

  2. 点击创建 TPU

  3. 名称字段中,为 TPU 输入名称。

  4. 在“可用区”框中,选择要创建 TPU 的可用区。

  5. TPU 类型框中,选择加速器类型。加速器类型用于指定您要创建的 Cloud TPU 的版本和大小。如需详细了解每个 TPU 版本支持的加速器类型,请参阅 TPU 版本

  6. TPU 软件版本框中,选择软件版本。创建 Cloud TPU 虚拟机时,TPU 软件版本指定了要安装的 TPU 运行时的版本。如需了解详情,请参阅 TPU 虚拟机映像

  7. 点击启用队列功能切换开关。

  8. 已加入队列的资源名称字段中,为已加入队列的资源请求输入名称。

  9. 展开网络部分。

  10. 网络子网字段中,选择要使用的网络和子网。

  11. 点击创建以创建队列中的资源请求。

删除已排队的资源请求

您可以通过删除已加入队列的资源请求来删除已加入队列的资源请求以及与该请求关联的 TPU:

gcloud

--force 标志传递给 queued-resource delete 命令:

gcloud compute tpus queued-resources delete your-queued-resource-id \
    --project my-project \
    --zone us-central2-b \
    --force \
    --async

命令标志说明

your-queued-resource-id
已加入队列的资源请求的用户分配的 ID。
project
分配队列资源的 Google Cloud 项目。
zone
要删除的 Cloud TPU 的可用区
force
同时删除 TPU 虚拟机和已加入队列的资源请求。

curl

curl 请求中使用查询参数 force=true

curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://tpu.googleapis.com/v2/projects/my-project/locations/us-central2-b/queuedResources/your-queued-resource-id?force=true

命令标志说明

your-queued-resource-id
已加入队列的资源请求的用户分配的 ID。
project
分配队列型资源的 Google Cloud 项目。
zone
要删除的 Cloud TPU 的可用区
force
同时删除 TPU 虚拟机和已加入队列的资源请求。

控制台

  1. 在 Google Cloud 控制台中,前往 TPU 页面:

    前往 TPU

  2. 点击已加入队列的资源标签页。

  3. 选中队列中的资源请求旁边的复选框。

  4. 点击 删除

如果您直接删除 TPU,则还需要删除已排队的资源,如以下示例所示。删除 TPU 后,已排队的资源请求会转换为 SUSPENDED 状态,之后便可删除已排队的资源请求。

gcloud

删除 TPU:

$ gcloud compute tpus tpu-vm delete your-node-id \
    --project=your-project \
    --zone=zone \
    --quiet

命令标志说明

project
分配队列资源的 Google Cloud 项目。
zone
要删除的 Cloud TPU 的可用区
your-node-id
要删除的 TPU 的名称。

当您删除 TPU 时,关联的已排队资源会进入 SUSPENDING 状态,然后进入 SUSPENDED 状态。当队列中的资源处于 SUSPENDED 状态时,您可以将其删除:

gcloud compute tpus queued-resources delete your-queued-resource-id \
    --project your-project-id \
    --zone us-central2-b

命令标志说明

queued-resource-request-id
已加入队列的资源请求的用户分配的 ID。
project
分配队列型资源的 Google Cloud 项目。
zone
要删除的 Cloud TPU 的可用区

curl

删除 TPU:

curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://tpu.googleapis.com/v2/projects/your-project/locations/us-central2-b/nodes?node_id=your-node-id

命令标志说明

project
分配队列资源的 Google Cloud 项目。
zone
要删除的 Cloud TPU 的可用区
your-node-id
要删除的 TPU 的名称。

当您删除 TPU 时,关联的已排队资源会进入 SUSPENDING 状态,然后进入 SUSPENDED 状态。当队列中的资源处于 SUSPENDED 状态时,您可以将其删除:

curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://tpu.googleapis.com/v2/projects/your-project-id/locations/us-central2-b/queuedResources/your-queued-resource-id

命令标志说明

queued-resource-request-id
已加入队列的资源请求的用户分配的 ID。
project
分配队列化资源的 Google Cloud 项目。
zone
要删除的 Cloud TPU 的可用区

控制台

删除 TPU:

  1. 在 Google Cloud 控制台中,前往 TPU 页面:

    前往 TPU

  2. 选中 TPU 旁边的复选框。

  3. 点击 删除

当您删除 TPU 时,关联的已排队资源会进入正在中止状态,然后进入已中止状态。当已排队的资源处于暂停状态时,您可以将其删除:

  1. 点击已加入队列的资源标签页。
  2. 选中队列中的资源请求旁边的复选框。
  3. 点击 删除

检索有关已排队资源请求的状态和诊断信息

检索有关已排队资源请求的状态和诊断信息:

gcloud

gcloud compute tpus queued-resources describe queued-resource-request-id \
    --project your-project-id \
    --zone us-central2-b

命令标志说明

queued-resource-request-id
已加入队列的资源请求的用户分配的 ID。
project
队列中分配资源的项目的 ID。
zone
拟在其中创建 Cloud TPU 的可用区

curl

curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://tpu.googleapis.com/v2/projects/your-project-id/locations/us-central2-b/queuedResources/your-queued-resource-id

命令标志说明

queued-resource-request-id
已加入队列的资源请求的用户分配的 ID。
project
队列中分配资源的项目的 ID。
zone
拟在其中创建 Cloud TPU 的可用区

控制台

  1. 在 Google Cloud 控制台中,前往 TPU 页面:

    前往 TPU

  2. 点击已加入队列的资源标签页。

  3. 点击已加入队列的资源请求的名称。

预配 TPU 后,您还可以前往 TPU 页面,找到您的 TPU,然后点击相应已排队资源请求的名称,查看有关该请求的详细信息。

如果请求失败,输出将包含错误信息。对于正在等待资源的请求,输出类似于以下内容:

gcloud

    name: projects/your-project-id/locations/us-central2-b/queuedResources/your-queued-resource-id
    state:
    state: WAITING_FOR_RESOURCES
    tpu:
    nodeSpec:
    - node:
        acceleratorType: v4-8
        bootDisk: {}
        networkConfig:
            enableExternalIps: true
        queuedResource: projects/your-project-number/locations/us-central2-b/queuedResources/your-queued-resource-id
        runtimeVersion: tpu-vm-tf-2.10.0
        schedulingConfig: {}
        serviceAccount: {}
        shieldedInstanceConfig: {}
        useTpuVm: true
        nodeId: your-node-id
        parent: projects/your-project-number/locations/us-central2-b

控制台

已排队资源的状态字段显示正在等待资源

列出项目中已加入队列的资源请求

列出项目中已加入队列的资源请求:

gcloud

gcloud compute tpus queued-resources list --project your-project-id \
    --zone us-central2-b

命令标志说明

project
分配队列化资源的 Google Cloud 项目。
zone
拟在其中创建 Cloud TPU 的可用区

curl

curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://tpu.googleapis.com/v2/projects/your-project-id/locations/us-central2-b/queuedResources

命令标志说明

project
分配队列型资源的 Google Cloud 项目。
zone
拟在其中创建 Cloud TPU 的可用区

控制台

  1. 在 Google Cloud 控制台中,前往 TPU 页面:

    前往 TPU

  2. 点击已加入队列的资源标签页。