本文档介绍了加速器优化机器家族中具有张量处理单元 (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 主机上运行并可直接访问底层 TPU 硬件的 Linux 计算实例,可提供对高性能库、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/机器学习推理
在线提供模型:部署模型以进行实时互动,其中低延迟至关重要。在依序生成 token 期间,这些工作负载会受到内存带宽的限制。
运行批量推理:离线处理大型数据集,其中高吞吐量是主要目标。这些工作负载在提示预填充阶段受计算能力限制。
推荐系统
强化学习
使用选项
为了在平衡工作负载性能的同时优化资源利用率和费用,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 | 2 | ||||
1 使用“所有容量”模式时,您无法在日历模式下创建未来预留请求。
2 TPU7x 的 Spot、Flex-start、日历模式下的未来预留以及容量块的未来预留均受许可清单限制。如需申请访问权限,请与您的客户支持团队或销售团队联系。
全容量模式
默认情况下,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 由 8,960 个 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 虚拟机