张量处理单元 (TPU) 是 Google 定制开发的应用专用集成电路 (ASIC),旨在加速机器学习 (ML) 和人工智能 (AI) 工作负载。无论您是训练复杂的基础模型数周,还是运行大规模推理,TPU 都能提供可伸缩的专用计算资源,这些资源针对高级 AI 框架进行了优化。
本文档介绍了 TPU 在 Google Cloud中的作用、每个可用 TPU 版本的技术规范、性能特征、价格注意事项,以及它们与 Compute Engine 机器系列的对应关系。
什么是 TPU?
TPU 是一种定制设计的 ASIC,旨在满足机器学习算法中核心的大规模矩阵运算的需求。
TPU 系统的关键架构组件包括:
TensorCore:TPU 芯片的处理单元。每个 TensorCore 都包含一个或多个矩阵乘法单元 (MXU),这些单元使用脉动阵列架构高效执行矩阵乘法,同时还包含用于控制流和通用计算的标量单元和向量单元。
SparseCore:专为加速稀疏运算而设计的数据流处理器。SparseCore 可与 TensorCore 协同工作,高效处理大型嵌入表,因此非常适合加速推荐模型和大规模嵌入。
高带宽内存 (HBM):连接到 TPU 芯片的大容量物理内存,可提供极高的内存带宽。HBM 支持以更大的批次大小训练和提供更大的模型。
TPU 实例:一种在 TPU 主机上运行的 Linux 计算实例,可直接访问底层 TPU 硬件,并提供对高性能库、SSH 连接和运行时调试日志的访问权限。
TPU 切片和 Pod:TPU Pod 是一个由物理链接的 TPU 芯片组成的庞大连续集群。TPU 切片是 Pod(包含一个或多个通过高速互连连接的主机)的逻辑分区,用于运行单个工作负载。
XLA 编译器:加速线性代数 (XLA) 编译器将机器学习图编译为在 TPU TensorCore 上运行的优化机器指令。
TPU 版本和机器系列
Compute Engine 支持多个代系和版本的 TPU。下表提供了每个受支持的 TPU 版本的关键规范:
| TPU 版本 | 机器系列 | 单芯片峰值算力 (TFLOPs) | TPU 内存和带宽 | 每个芯片的核心数 | 单芯片互连 (ICI) 带宽 | 每个芯片的网络带宽 (DCN) | 每个 Pod 的芯片数 |
|---|---|---|---|---|---|---|---|
| TPU7x (Ironwood) | tpu7x-standard |
BF16:2,307 FP8:4,614 |
192 GiB(7,380 GBps) |
2 个 TensorCore 4 个 SparseCore |
1,200 GBps | 100 Gbps | 9,216 |
| TPU v6e (Trillium) | ct6e-standard |
BF16:918 FP8:918 |
32 GiB(1,638 GBps) |
1 个 TensorCore 2 个 SparseCore |
800 GBps | 100 Gbps | 256 |
| TPU v5p | ct5p-hightpu |
BF16:459 FP8:459 |
95 GiB (2,765 GBps) |
2 个 TensorCore 4 个 SparseCore |
1,200 GBps | 50 Gbps | 8,960 |
TPU 性能特征
TPU 经过优化,可以最大限度地高效执行密集矩阵代数运算。如需选择何时最适合使用 TPU 来处理机器学习工作负载,请考虑以下准则。
理想的使用场景和工作负载要求
选择合适的 TPU 型号取决于工作负载的计算特征、内存要求和可伸缩性需求。选择以下任一标签页即可查看建议。
AI/机器学习训练
AI/机器学习推理
在线提供模型:部署模型以实现实时互动,其中低延迟至关重要。在按顺序生成令牌期间,这些工作负载会受到内存带宽的限制。
运行批次推理:离线处理大型数据集,主要目标是实现高吞吐量。在提示预填充阶段,这些工作负载受计算限制。
推荐系统
强化学习
工作负载注意事项
对于以下工作负载,TPU 可能不是最佳选择:
- 需要频繁的逻辑分支或包含许多元素级代数运算的线性代数程序。
- 依赖于在 CPU 上运行的 JAX 或 PyTorch 中的自定义运算符的工作负载。
- 需要双精度浮点 (FP64) 运算的科学工作负载。
价格注意事项
以下因素决定了 Google Cloud上的 TPU 价格:
TPU 版本
位置
使用模式
如需了解完整的价格详情,请参阅 TPU 价格页面。
使用和购买模式
您可以根据可用性要求和费用容忍度,使用以下任一消费选项来预配 TPU 实例:
- 按需:标准随用随付 (PAYG) 价格,可立即执行。可提供最大的生命周期灵活性,但可用性受物理资源限制。
- Spot:以极低的价格(最高可节省 70%)使用过剩的 Google Cloud 容量。由于 Google Cloud 可能会在提前 30 秒通知的情况下停止或删除 Spot 虚拟机来回收容量,因此这些计算实例非常适合容错工作负载和设置了检查点的工作负载。
- 灵活启动:可从专用池请求计算实例,最多可运行 7 天,可用性更高。
- 未来预留:可保障容量并提供比按需价格更低的折扣价格的预留。预留指定未来日期和时间的 TPU 容量,预留时间最长为 90 天(日历模式),或预留 1 年或更长时间。如果Google Cloud 批准了您的请求,您就可以在预留期内开始使用相应容量。
承诺使用折扣 (CUD)
当您请求预留 1 年或更长时间的未来预留时,可以为预留的 TPU 容量获得 CUD。将 CUD 应用于计算实例后,您只需承诺使用一段时间,即可享受远低于按需费率的价格。
如需了解详情,请参阅 Compute Engine 的 CUD。
后续步骤
- 查看加速器优化机器家族中的 TPU 机器。
- 了解如何创建 TPU 实例。