TPU 虚拟机映像

创建 TPU 资源时,您将传递 --version--runtime-version 参数来指定 TPU 虚拟机映像。TPU 虚拟机映像包含操作系统 (Ubuntu) 以及(可选)在 TPU 上运行代码所需的其他软件。本文档提供了有关在创建 Cloud TPU 时选择合适的 TPU 虚拟机映像的指导。

PyTorch 和 JAX

为 PyTorch 和 JAX 使用以下通用 TPU 虚拟机基础映像,然后安装要使用的框架。

  • tpu-ubuntu2204-base(默认)
  • v2-alpha-tpuv5 (TPU v5p)

有关安装说明,请参阅 PyTorch/XLA 和 JAX 的快速入门文档。

TensorFlow

每个 TensorFlow 版本都有专用的 TPU 虚拟机映像。Cloud TPU 支持以下 TensorFlow 版本:

  • 2.16.1
  • 2.15.1
  • 2.15.0
  • 2.14.1
  • 2.14.0
  • 2.13.1
  • 2.13.0
  • 2.12.1
  • 2.12.0
  • 2.11.1
  • 2.11.0
  • 2.10.1
  • 2.10.0
  • 2.9.3
  • 2.9.1
  • 2.8.4
  • 2.8.3
  • 2.8.0
  • 2.7.4
  • 2.7.3

如需详细了解 TensorFlow 补丁版本,请参阅支持的 TensorFlow 补丁版本

对于 TensorFlow 2.15.0 及更高版本,有基于您所用设备 API(PJRT 或数据流执行器)的 TPU 虚拟机映像变体。

关于 v5p 和 v5e 的培训

TPU v5e 和 v5p 支持 TensorFlow 2.15.0 及更高版本。您可按以下格式指定 TPU 虚拟机映像:tpu-vm-tf-x.y.z-{pod}-pjrt,其中 x 是主要 TensorFlow 版本,y 是次要版本,z 是 TensorFlow 补丁版本。如果您使用的是多主机 TPU,请在 TensorFlow 版本后添加 pod。例如,如果您在多主机 TPU 上使用 TensorFlow 2.16.0,请使用 tpu-vm-tf-2.16.0-pod-pjrt TPU 虚拟机映像。对于 TensorFlow 的其他版本,请将 2.16.0 替换为您正在使用的 TensorFlow 的主要版本和补丁版本。如果您使用的是单主机 TPU,请省略 pod

在 v5e 上提供

我们提供的服务 Docker 映像包含使用 TensorFlow、PyTorch 和 JAX 提供服务所需的所有软件要求。如需了解详情,请参阅 Cloud TPU v5e 推断简介

TPU v4

如果您使用的是 TPU v4 和 TensorFlow 2.15.0 或更高版本,请按照在 v5p 和 v5e 上进行训练的说明进行操作。如果您使用的是 TensorFlow 2.10.0 或更早版本,请使用特定于 v4 的 TPU 虚拟机映像:

TensorFlow 版本 TPU 虚拟机映像版本
2.10.0 tpu-vm-tf-2.10.0-v4
tpu-vm-tf-2.10.0-pod-v4
2.9.3 tpu-vm-tf-2.9.3-v4
tpu-vm-tf-2.9.3-pod-v4
2.9.2 tpu-vm-tf-2.9.2-v4
tpu-vm-tf-2.9.2-pod-v4
2.9.1 tpu-vm-tf-2.9.1-v4
tpu-vm-tf-2.9.1-pod-v4

TPU v2 和 v3

如果您使用的是 TPU v2 或 v3,请使用与所用 TensorFlow 版本匹配的 TPU 虚拟机映像。例如,如果您使用的是 TensorFlow 2.14.1,请使用 tpu-vm-tf-2.14.1 TPU 映像。对于其他版本的 TensorFlow,请将 2.14.1 替换为您使用的 TensorFlow 版本。如果您使用的是多主机 TPU 将 Pod 附加到 TPU 映像的末尾,例如 tpu-vm-tf-2.14.1-pod

从 TensorFlow 2.15.0 开始,您还必须指定设备 API。例如,如果您搭配使用 TensorFlow 2.16.1 和 PJRT API,请使用 TPU 映像 tpu-vm-tf-2.16.1-pjrt。如果您将流执行器 API 与相同版本的 TensorFlow 搭配使用,请使用 tpu-vm-tf-2.16.1-se TPU 映像。2.15.0 之前的 TensorFlow 版本仅支持流执行器。

TensorFlow PJRT 支持

从 TensorFlow 2.15.0 开始,您可以为 TPU 上的 TensorFlow 使用 PJRT 接口。PJRT 具有自动的设备内存碎片整理功能,可简化硬件与框架的集成。如需详细了解 PJRT,请参阅 PJRT:简化机器学习硬件和框架集成

加速器 特征 PJRT 支持 流执行器支持
TPU v2 - v4 密集计算(无 TPU 嵌入 API)
TPU v2 - v4 Dense Compute API + TPU Embedding API
TPU v2 - v4 采用软设备放置的 tf.summary/tf.print
TPU v5e 密集计算(无 TPU 嵌入 API)
TPU v5e TPU 嵌入 API 不适用
TPU v5p 密集计算(无 TPU 嵌入 API)
TPU v5p TPU 嵌入 API

Libtpu 版本

TPU 虚拟机 TensorFlow 映像包含特定的 TensorFlow 版本和相应的 libtpu 库。如果您要创建自己的虚拟机映像,请使用以下 TensorFlow TPU 软件版本和对应的 libtpu 版本:

TensorFlow 版本 libtpu.so 版本
2.16.1 1.10.1
2.15.1 1.9.0
2.15.0 1.9.0
2.14.1 1.8.1
2.14.0 1.8.0
2.13.1 1.7.1
2.13.0 1.7.0
2.12.1 1.6.1
2.12.0 1.6.0
2.11.1 1.5.1
2.11.0 1.5.0
2.10.1 1.4.1
2.10.0 1.4.0
2.9.3 1.3.2
2.9.1 1.3.0
2.8.3 1.2.3
2.8.0 1.2.0
2.7.3 1.1.2

后续步骤