使用抢占式 TPU

抢占式 TPU 节点的费用远低于非抢占式 TPU 节点。如果 Cloud TPU 服务需要额外的 TPU 资源来处理其他请求,可以随时抢占(关停)这些节点。您可以使用 Cloud Console 或 gcloud 命令行工具创建抢占式 TPU 节点。

创建抢占式 TPU 节点

控制台

  1. 转到主页面上 Compute Engine 下的 TPU 页面
  2. 点击创建 TPU 节点以打开 TPU 节点创建页面。
  3. 输入 TPU 节点的名称。
  4. 选择要在其中创建 TPU 节点的可用区。
  5. 为 TPU 节点选择 TPU 类型
  6. 点击 Turn on preemtibility for this node,使该 TPU 节点成为抢占式节点。
  7. 选择要在虚拟机上安装的 Tensorflow 或 PyTorch 版本。

gcloud

$ gcloud compute tpus execution-groups create demo-tpu \
  --zone=europe-west4-a \
  --accelerator-type=v3-8
  --version=2.5.0 \
  --preemptible
  

其中:

  • demo-tpu 是 TPU 的名称。
  • `--accelerator-type` 指定 TPU 的类型。
  • --version 指定要在虚拟机上安装的 Tensorflow 或 PyTorch 版本。
  • --preemptible 允许 Cloud TPU 抢占此 TPU。

TPU 是否可抢占与虚拟机实例是否可抢占无关。

抢占式 TPU 的价格与配额

抢占式 TPU 的价格远低于普通 TPU。 如需了解详情,请参阅价格页面。如果 TPU 在您创建后第一分钟就被抢占,您不需要支付费用。

抢占式 TPU 的配额通常更高,并且独立于普通 TPU 的配额。请参阅配额页面

抢占式虚拟机和 TPU

快速入门指南中所述,您需要一个 Compute Engine 虚拟机 (VM) 才能连接到 TPU。请注意,TPU 是否可抢占与虚拟机实例是否可抢占无关。您可以将 TPU 定义为抢占式,而虚拟机定义为非抢占式,反之亦可。您也可以将它们都定义为抢占式。

最常见的组合是抢占式 TPU非抢占式虚拟机。请注意以下几点:

  • 虚拟机的费用可能比 TPU 费用低。虚拟机的费用取决于您使用的机器类型。如需了解相对费用的简单示例,请参阅价格页面
  • Cloud TPU 不会协调虚拟机和 TPU 的抢占状态。如果您将它们都定义为抢占式,则虚拟机和 TPU 可能会在不同时间被抢占。
  • 如果 Compute Engine 抢占虚拟机,您仍然需要为 TPU 付费(除非 TPU 本身被抢占)。请注意,在虚拟机被抢占时,TPU 处于空闲状态。
  • 抢占式实例(无论是 Compute Engine 虚拟机还是 Cloud TPU 实例)在运行 24 小时后一定会被抢占。某些操作会重置此 24 小时计数器。

检测 TPU 是否已被抢占

您可以使用 gcloud 命令检查 Cloud TPU 服务是否已抢占您的 TPU:

列出您的可用 TPU:

(vm)$ gcloud compute tpus list

上述命令会显示项目中创建的 TPU 的详细信息。如果 TPU 已被抢占,则状态会从 READY 更改为 PREEMPTED

例如:

NAME       ZONE           ACCELERATOR_TYPE  NETWORK_ENDPOINT   NETWORK  RANGE          STATUS
demo-tpu   us-central1-b  v2-8              10.240.1.2:8470    default  10.240.1.0/29  PREEMPTED

检测虚拟机实例是否已被抢占

如需检查虚拟机实例是否已被抢占,请使用 gcloud compute operations list 命令获取最近的系统操作:添加 name 过滤条件以仅显示您当前运行的实例,或添加 operationType 过滤条件以仅显示已被抢占的资源。例如,使用以下命令可仅显示具有指定实例名称的实例:

$ gcloud compute operations list--filter="name=( 'NAME' my-vm)"

以下示例仅显示已被抢占的资源:

$ gcloud compute operations list --filter="operationType=compute.instances.preempted"

如需了解详情,请参阅 Compute Engine 指南

将机器学习应用设计为可在抢占式 TPU 上运行

通过定期保存模型检查点,同时配置应用以在重启时恢复最近的检查点,从而确保您的应用能够灵活应对虚拟机和 TPU 的重启。