TPU 类型和地区

概览

如果创建 TPU 节点来处理机器学习工作负载,您必须选择 TPU 类型。TPU 类型决定了您的机器学习工作负载可用的 TPU 版本、TPU 核心数和 TPU 内存量。

例如,v2-8 TPU 类型的 TPU 节点具有 8 个 TPU v2 核心和 64 GiB 的 TPU 总内存。v3-2048 TPU 类型的 TPU 节点具有 2048 个 TPU v3 核心和 32 TiB 的 TPU 总内存。

要了解各种 TPU 版本和配置之间的硬件差异,请阅读系统架构文档。

要查看每个区域中每种 TPU 类型的价格,请查看价格页面。

可在一种 TPU 上运行的模型无需更改 TensorFlow 代码即可针对另一种 TPU 运行。例如,v2-8 代码无需更改即可在 v3-8 上运行。 但是,从 v2-8v3-8 扩缩为较大的 TPU 类型,例如 v2-32v3-128,需要进行大量微调和优化。

TPU 类型和地区

各种 TPU 类型的主要区别在于价格、性能、内存容量和地区可用性。

Google Cloud Platform 使用划分为多个地区的区域来定义物理计算资源的地理位置。例如,us-central1 区域表示靠近美国地理中心的一个区域,它包含以下地区:us-central1-aus-central1-bus-central1-cus-central1-f。创建 TPU 节点时,可指定要在其中创建该节点的地区。如需详细了解区域和地区资源,请参阅 Compute Engine 全球、区域和地区资源文档。

您可使用以下 TPU 类型来配置 TPU 节点:

美国

TPU 类型 (v2) TPU v2 核心数 TPU 总内存 区域/地区
v2-8 8 64 GiB us-central1-b
us-central1-c
us-central1-f
v2-32 32 256 GiB us-central1-a
v2-128 128 1 TiB us-central1-a
v2-256 256 2 TiB us-central1-a
v2-512 512 4 TiB us-central1-a
TPU 类型 (v3) TPU v3 核心数 TPU 总内存 可用地区
v3-8 8 128 GiB us-central1-a
us-central1-b
us-central1-f

欧洲

TPU 类型 (v2) TPU v2 核心数 TPU 总内存 区域/地区
v2-8 8 64 GiB europe-west4-a
v2-32 32 256 GiB europe-west4-a
v2-128 128 1 TiB europe-west4-a
v2-256 256 2 TiB europe-west4-a
v2-512 512 4 TiB europe-west4-a
TPU 类型 (v3) TPU v3 核心数 TPU 总内存 可用地区
v3-8 8 128 GiB europe-west4-a
v3-32 32 512 GiB europe-west4-a
v3-64 64 1 TiB europe-west4-a
v3-128 128 2 TiB europe-west4-a
v3-256 256 4 TiB europe-west4-a
v3-512 512 8 TiB europe-west4-a
v3-1024 1024 16 TiB europe-west4-a
v3-2048 2048 32 TiB europe-west4-a

亚太地区

TPU 类型 (v2) TPU v2 核心数 TPU 总内存 区域/地区
v2-8 8 64 GiB asia-east1-c

核心数较多的 TPU 类型的供应量有限。 核心数较少的 TPU 类型供应更充足。

要查看每个区域中每种 TPU 类型的价格,请查看价格页面。

要了解各种 TPU 版本和配置之间的硬件差异,请阅读系统架构文档。

计算性价比

为了确定要使用哪种类型的 TPU,您可以使用 Cloud TPU 教程进行实验,训练与您的应用类似的模型。

在运行教程时,请将步骤数设为在 v2-8v3-8 TPU 类型上运行完整训练时所需步骤数的 5-10%。参照结果,您就知道该模型在每种 TPU 类型上运行相应步数所需的时间了。

由于各种 TPU 的性能呈线性比例关系,您知道在 v2-8v3-8 TPU 上运行任务需要多长时间后,就可以藉此估算在具有更多核心的大型 TPU 上运行模型可以将任务时间缩短多少。

例如,如果 v2-8 TPU 完成 1 万步需要 60 分钟时间,则 v2-32 节点应该只需大约 15 分钟即可完成这一任务。

要确定您所用区域内 Cloud TPU 的不同 TPU 类型和相关 Compute Engine 虚拟机在费用上的差异,请查看 TPU 价格页面。 当您了解模型在几种不同 TPU 上的大致训练时长后,您就可以对照训练时长来权衡虚拟机/TPU 的费用,从而确定性价比最佳的配置。

指定 TPU 类型

您要在创建 TPU 节点时指定 TPU 类型。例如,您可以使用以下某种方法选择 TPU 类型:

ctpu 实用程序

  • 使用带有 --tpu-size 标志的 ctpu up 命令:
     $ ctpu up --tpu-size=[TPU_VERSION]
    其中 TPU_VERSION 是指定地区受支持的 TPU 版本之一。

gcloud 命令

  • 使用 gcloud compute tpus create 命令:

    $ gcloud compute tpus create [TPU name] \
     --zone us-central1-b \
     --range '10.240.0.0' \
     --accelerator-type 'v2-8' \
     --network my-tf-network \
     --version '2.1'
    

    其中:

    • TPU name 是用于标识您所创建的 TPU 的名称。
    • --zone 是 Compute Engine 的计算/地区。 请确保您的地区可使用请求的加速器类型。
    • --range 指定创建的 Cloud TPU 资源的地址,可以是 10.240.*.* 中的任意值。
    • --accelerator-type 是您要使用的加速器类型和核心数,例如 v2-32(32 个核心)。
    • --network 指定 Compute Engine 虚拟机实例使用的网络的名称。您必须能够通过 SSH 连接到此网络上的实例。在大多数情况下,您可以使用 Google Cloud 项目自动创建的默认网络。但如果默认网络是旧版网络,则会出现错误。
    • --version 指定与 TPU 一起使用的 TensorFlow 版本

Cloud Console

  1. 在左侧的导航菜单中,选择 Compute Engine > TPU
  2. 在 TPU 屏幕上,点击创建 TPU 节点。然后,您会看到 TPU 配置页面。
  3. TPU 类型下,选择一个支持的 TPU 版本
  4. 点击创建按钮。

后续步骤

  • 如需详细了解 TPU 架构,请参阅系统架构页面。
  • 如需了解哪些模型类型适合使用 Cloud TPU,请参阅何时使用 TPU
  • 如果您计划在 Kubernetes 或 ML Engine 上运行模型,请参阅选择 TPU 服务