本文档介绍了加速器优化机器家族中具有张量处理单元 (TPU) 的 Compute Engine 实例。TPU 是 Google 定制开发的应用专用集成电路 (ASIC),专门针对人工智能 (AI) 和机器学习 (ML) 工作负载进行了优化。
Compute Engine 支持以下 TPU 版本:
- TPU7x
- TPU v6e
- TPU v5p
每个版本中的每个机器类型都有特定的拓扑和所连接的 TPU 芯片数量。
TPU 架构基础知识
了解 TPU 架构的基础知识有助于您为工作负载选择合适的 TPU 版本和机器类型。
TPU 芯片:TPU 芯片是 Google 专门为机器学习设计的加速器。每个 TPU 芯片都包含一个或多个 TensorCore,用于处理大规模矩阵运算。每个 TensorCore 都包含一个或多个矩阵乘法单元 (MXU),这些单元使用脉动阵列架构,每周期可执行数千次乘法累加运算,而无需持续访问内存。虽然 TPU 芯片主要用于高速矩阵处理,但它还包含向量单元和标量单元,用于执行一般计算和控制流操作。
TPU Pod:TPU Pod 是通过专用网络分组在一起的一组连续的 TPU。TPU Pod 中的 TPU 芯片数量取决于 TPU 版本。
TPU 实例:一种在 TPU 主机上运行的 Linux 计算实例,可直接访问底层 TPU 硬件,并提供对高性能库、SSH 连接和运行时调试日志的访问权限。
TPU 切片:一组互连的 TPU 芯片,可通过一个或多个 TPU 实例进行访问。切片的范围可以是以下其中之一:
- 单宿主机切片:包含一台宿主机。一般来说,这会映射到一个 TPU 实例。
- 多主机切片:由多个 TPU 实例组成的切片,这些实例通过高速芯片间互连 (ICI) 进行互连。
TPU 立方体:一种由互连的 TPU 芯片组成的 4x4x4 拓扑。这仅适用于 3D 拓扑。
SparseCore:SparseCore 是数据流处理器,可利用稀疏运算来加速模型。主要应用场景是加速高度依赖嵌入的推荐模型。
TPU 版本:TPU 芯片的确切架构取决于您使用的 TPU 版本。每个 TPU 版本还支持不同的切片大小和配置。
如需了解 TPU 的工作方式,请参阅 Cloud TPU 文档中的 TPU 架构文档。
按工作负载类型推荐的 TPU 版本
选择合适的 TPU 型号取决于工作负载的计算特征、内存要求和可伸缩性需求。选择以下任一标签页即可查看建议。
AI/机器学习训练
AI/机器学习推理
在线提供模型:部署模型以实现实时互动,其中低延迟至关重要。在按顺序生成令牌期间,这些工作负载会受到内存带宽的限制。
运行批次推理:离线处理大型数据集,主要目标是实现高吞吐量。在提示预填充阶段,这些工作负载受计算限制。
推荐系统
强化学习
使用选项
为了在平衡工作负载性能的同时优化资源利用率和费用,Compute Engine 支持以下 TPU 使用情况选项:
按需:使用 TPU,无需提前安排容量。在请求资源之前,您必须拥有足够的按需配额,以用于特定类型和数量的 TPU 实例。按需是最灵活的使用选项;不过,我们无法保证有足够的按需资源可用于满足您的请求。
Spot:如需预配 Spot 虚拟机,您可以享受大幅折扣,但 Spot 虚拟机随时可能被抢占,并且会提前 30 秒发出警告。如需了解详情,请参阅 Spot 虚拟机简介。
灵活启动:预配最多可运行 7 天的 {flex_start_vms_name},Compute Engine 会根据可用性尽力自动分配硬件。如需了解详情,请参阅{flex_start_vms_name} 简介。
未来预留:请求一年或更长时间的未来预留。如需了解详情,请参阅 Cloud TPU 文档中的请求一年或更长时间的未来预留。
日历模式下的未来预留:在指定时间段内预配 TPU 资源,预留时间最长为 90 天。如需了解详情,请参阅日历模式下的未来预留请求简介。
如果您未指定其他选项,则按需是 TPU 的默认使用模式。
如需了解支持此使用模式的底层预配模型,请参阅虚拟机预配模型简介。
各 TPU 版本的消费选项可用性
下表总结了每种使用选项的可用性(按 TPU 版本)。
| TPU 版本 | 按需 | Spot | 灵活启动 | 按需预留 | 未来预留 | 日历模式下的未来预留1 |
|---|---|---|---|---|---|---|
| 2 | 2 | 2 | ||||
1 使用“所有容量”模式时,您无法在日历模式下创建未来预留请求。
2 Spot、灵活启动和日历模式下的未来预留仅适用于列入许可名单的 TPU7x。如需申请访问权限,请与您的客户支持团队或销售团队联系。
全容量模式
默认情况下,TPU 预留包含自动故障恢复功能。Google Cloud 通过自动将有故障的 TPU 机器替换为预留容量中的正常机器来管理此流程,以确保有可用的资源来重启 TPU 切片。
或者,对于 TPU v6e 和 TPU7x,您可以在全容量模式下请求 TPU 容量。此模式可授予对所有预留容量的访问权限,并提供完整的拓扑可见性。在此模式下,您还可以定位到特定块或子块,以实现精确的拓扑感知型工作负载布置。不过,您需要负责管理硬件故障和维护。
如需详细了解这些模式,请参阅 Cloud TPU 文档中的 TPU 容量模式。
TPU 版本比较
比较不同 TPU 版本的特征。 您可以在选择要比较的属性字段中选择特定属性,以比较下表中所有 TPU 版本的这些属性。
| 加速器优化 | 加速器优化 | 加速器优化 |
| 虚拟机 | 虚拟机 | 虚拟机 |
| Intel Emerald Rapids | AMD EPYC Genoa | Intel Sapphire Rapids |
| x86 | x86 | x86 |
| 224 | 44 - 180 | 208 |
| 消息串 | 消息串 | 消息串 |
| 960 GB | 176 到 1440 GB | 448 GB |
| NUMA | NUMA | NUMA |
| — | — | — |
| — | — | — |
| — | — | — |
| — | — | — |
| — | — | |
| NVMe | NVMe | NVMe |
| — | ||
| — | — | — |
| — | — | — |
| — | — | — |
| — | — | — |
| — | — | — |
| — | — | |
| — | — | — |
| — | — | — |
| gVNIC | gVNIC | gVNIC |
| 400 Gbps | 50 到 400 Gbps | 200 Gbps |
| 4 | 8 | 4 |
| — | — | — |
| — | — | — |
TPU 架构规范
下表列出了每个 TPU 版本的主要规范。
| 规范 | TPU7x | TPU v6e | TPU v5p |
|---|---|---|---|
| 每个 Pod 的芯片数 | 9216 | 256 | 8960 |
| 单芯片峰值算力 (BF16) (TFLOPs) | 2307 | 918 | 459 |
| 单芯片峰值算力 (FP8) (TFLOPs) | 4614 | 918 | 459 |
| 单芯片 HBM 容量 (GiB) | 192 | 32 | 95 |
| 单芯片 HBM 带宽 (GBps) | 7380 | 1638 | 2765 |
| vCPU 数量(4 芯片虚拟机) | 224 | 180 | 208 |
| RAM (GiB)(4 芯片虚拟机) | 960 | 720 | 448 |
| 单芯片 TensorCore 数量 | 2 | 1 | 2 |
| 单芯片 SparseCore 数量 | 4 | 2 | 4 |
| 单芯片双向芯片间互连 (ICI) 带宽 (GBps) | 1200 | 800 | 1200 |
| 单芯片数据中心网络 (DCN) 带宽 (Gbps) | 100 | 100 | 50 |
TPU 机器类型
以下部分介绍了每个 TPU 版本可用的机器类型。
TPU7x (Ironwood)
每台 TPU7x 虚拟机包含 4 个 TPU 芯片。所有 TPU7x 切片均采用整机配置,由 4 芯片虚拟机组成。
每个 TPU7x 芯片包含两个 TensorCore 和四个 SparseCore。
借助 Ironwood 编程模型,您可以调用两个 TPU 设备,而不再受限于前几代产品所采用的单逻辑核心架构。如需了解详情,请参阅 Cloud TPU 文档中的双芯片组架构。
| 机器类型 | vCPU 的数量 | 实例内存 (GiB) | 物理 NIC 数量 | 最大网络带宽 (Gbps) | 每个虚拟机的 TPU 芯片数量 | NUMA 节点的数量 | TPU 内存总量(GiB HBM) |
|---|---|---|---|---|---|---|---|
tpu7x-standard-4t |
224 | 960 | 2 | 400 | 4 | 2 | 768 |
如需详细了解 TPU7x 架构,请参阅 Cloud TPU 文档中的 TPU7x (Ironwood)。
TPU v6e (Trillium)
每个 TPU v6e 虚拟机可以包含 1、4 或 8 个 TPU 芯片。芯片数量不超过 4 块的切片使用相同的非统一内存访问 (NUMA) 节点。
v6e 切片是使用半宿主机虚拟机创建的,每个虚拟机有 4 个 TPU 芯片,但以下情况除外:
- 仅包含单个 TPU 芯片的
ct6e-standard-1t主要用于测试。 ct6e-standard-8t是一种已针对推理应用场景进行优化的整机虚拟机,可让附加到单个虚拟机的所有 8 个 TPU 芯片用于单个部署工作负载。
| 机器类型 | vCPU 的数量 | 实例内存 (GB) | 物理 NIC 数量 | 最大网络带宽 (Gbps) | 每个虚拟机的 TPU 芯片数量 | NUMA 节点的数量 | TPU 内存总量(GiB HBM) |
|---|---|---|---|---|---|---|---|
ct6e-standard-1t |
44 | 176 | 1/4 | 50 | 1 | 1 | 32 |
ct6e-standard-4t |
180 | 720 | 2 | 400 | 4 | 1 | 128 |
ct6e-standard-8t |
360 | 1440 | 1 | 200 | 8 | 2 | 256 |
如需详细了解 TPU v6e 架构,请参阅 Cloud TPU 文档中的 TPU v6e。
TPU v5p
TPU v5p Pod 由 8960 个 TPU 芯片组成,这些芯片通过可重配置的高速链路相互连接。TPU v5p 的灵活网络功能可让您以多种方式连接相同大小切片中的 TPU 芯片。单个切片训练最多支持 6,144 个 TPU 芯片。
| 机器类型 | vCPU 的数量 | 实例内存 (GB) | 物理 NIC 数量 | 最大网络带宽 (Gbps) | 每个虚拟机的 TPU 芯片数量 | NUMA 节点的数量 | TPU 内存总量(GiB HBM) |
|---|---|---|---|---|---|---|---|
ct5p-hightpu-4t |
208 | 448 | 1 | 200 | 4 | 2 | 380 |
如需详细了解 TPU v5p 架构,请参阅 Cloud TPU 文档中的 TPU v5p。
TPU 拓扑
拓扑定义了 TPU 切片内 TPU 的物理排列方式。拓扑是二维或三维拓扑,具体取决于 TPU 版本。您可以通过计算拓扑中各个尺寸的乘积来确定切片中的 TPU 芯片数量。例如:
- 具有
2x2x2拓扑的tpu7x-standard-4t机器类型是 8 芯片多主机 TPU7x 切片。
下表列出了每个 TPU 版本可用的拓扑。
| TPU 版本 | 机器类型 | 范围 | 技术规格 |
|---|---|---|---|
| TPU7x (Ironwood) | tpu7x-standard-4t |
单个主机 |
|
| TPU7x (Ironwood) | tpu7x-standard-4t |
多主机 |
|
| TPU7x (Ironwood) | tpu7x-standard-4t |
多主机 |
|
| TPU7x (Ironwood) | tpu7x-standard-4t |
多主机 |
|
| TPU7x (Ironwood) | tpu7x-standard-4t |
多主机 |
|
| TPU7x (Ironwood) | tpu7x-standard-4t |
多主机 |
|
| TPU7x (Ironwood) | tpu7x-standard-4t |
多主机 |
|
| TPU7x (Ironwood) | tpu7x-standard-4t |
多主机 |
|
| TPU7x (Ironwood) | tpu7x-standard-4t |
多主机 |
|
| TPU7x (Ironwood) | tpu7x-standard-4t |
多主机 |
|
| TPU v6e (Trillium) | ct6e-standard-1t |
单个主机 |
|
| TPU v6e (Trillium) | ct6e-standard-8t |
单个主机 |
|
| TPU v6e (Trillium) | ct6e-standard-4t |
单个主机 |
|
| TPU v6e (Trillium) | ct6e-standard-4t |
多主机 |
|
| TPU v6e (Trillium) | ct6e-standard-4t |
多主机 |
|
| TPU v6e (Trillium) | ct6e-standard-4t |
多主机 |
|
| TPU v6e (Trillium) | ct6e-standard-4t |
多主机 |
|
| TPU v6e (Trillium) | ct6e-standard-4t |
多主机 |
|
| TPU v6e (Trillium) | ct6e-standard-4t |
多主机 |
|
| TPU v5p | ct5p-hightpu-4t |
单个主机 |
|
| TPU v5p | ct5p-hightpu-4t |
多主机 |
|
| TPU v5p | ct5p-hightpu-4t |
多主机 |
|
| TPU v5p | ct5p-hightpu-4t |
多主机 |
|
| TPU v5p | ct5p-hightpu-4t |
多主机 |
|
-
计算方法是用拓扑产品除以四。↩
后续步骤
- 了解 Compute Engine 中的 TPU 资源
- 尝试快速入门:创建单个 TPU 虚拟机