TPU 虚拟机映像

创建 TPU 资源时,您需要传递 --version--runtime-version 参数,以指定 TPU 虚拟机映像。TPU 虚拟机映像包含在 TPU 上运行代码所需的操作系统 (Ubuntu) 和其他软件(可选)。本文档介绍了如何在创建 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 密集计算 API + TPU 嵌入 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

后续步骤