TPU 虚拟机映像
创建 TPU 资源时,您需要传递 --version
或 --runtime-version
参数,用于指定 TPU 虚拟机映像。TPU 虚拟机映像包含 Ubuntu 操作系统、Docker 以及在 TPU 上运行代码所需的其他软件。本文档提供了有关在创建 Cloud TPU 时选择适当 TPU 虚拟机映像的指南。
PyTorch 和 JAX
使用以下常见的 TPU 虚拟机基础映像来安装 PyTorch 和 JAX,然后安装要使用的框架。
- tpu-ubuntu2204-base(默认)
- v2-alpha-tpuv5 (TPU v5p)
- v2-alpha-tpuv5-lite(TPU v5e)
如需了解安装说明,请参阅 PyTorch/XLA 和 JAX 的快速入门文档。
TensorFlow
每个 TensorFlow 版本都有专用的 TPU 虚拟机映像。通过 Cloud TPU 支持以下 TensorFlow 版本:
- 2.17.0
- 2.16.2
- 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 及更高版本,有 TPU 虚拟机映像变体 PJRT 或 Stream Executor)。
在 v5p 和 v5e 上训练
TPU v5e 和 v5p 支持 TensorFlow 2.15.0 及更高版本。您可以使用以下形式指定 TPU VM 映像:tpu-vm-tf-x.y.z-{pod}-pjrt
,其中 x
是 TensorFlow 的主要版本,y
是次要版本,z
是 TensorFlow 补丁版本。在 TensorFlow 版本后面添加 pod
请使用多主机 TPU。例如,如果您在多主机 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。例如,如果你使用
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 开始,您可以使用 PJRT 接口在 TPU 上运行 TensorFlow。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 VM TensorFlow 映像包含特定的 TensorFlow 版本和相应的 libtpu 库。如果您要创建自己的虚拟机映像,请使用以下 TensorFlow TPU 软件版本和相应的 libtpu 版本:
TensorFlow 版本 | libtpu.so 版本 |
---|---|
2.17.0 | 1.11.0 |
2.16.2 | 1.10.1 |
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 |