Google TPU ICI(芯片间互联)
Google ICI(Inter-Chip Interconnect)是 TPU 专用的高速芯片间互联总线,直接在多个 TPU 芯片之间形成 2D 或 3D Torus 拓扑,无需外部交换机。与 NVLink 依赖 NVSwitch 实现全连接不同,ICI 采用直连近邻(direct-neighbor)方式,每个 TPU 只与空间上相邻的少数芯片建立物理链路,通过 Torus 环绕消除网络直径,以超低延迟和极高的带宽可预测性支撑超大规模 TPU Pod 的集合通信。
TPU 代际 ICI 规格
| TPU 代际 | 发布年 | 每芯片 ICI 带宽(双向聚合) | ICI 端口数/芯片 | 支持拓扑 | Pod 规模 |
|---|---|---|---|---|---|
| TPU v2 | 2017 | ~500 Gbps | 4 | 2D Torus | 256 chips |
| TPU v3 | 2018 | ~656 Gbps | 6 | 2D Torus | 1024 chips |
| TPU v4 | 2022 | ~4.8 Tbps | 6 | 3D Torus + OCS | 4096 chips |
| TPU v5e | 2023 | ~1.6 Tbps | 4 | 2D Torus | 256 chips(per slice) |
| TPU v5p | 2023 | ~4.8 Tbps | 6 | 3D Torus | 8960 chips |
| Ironwood(TPU v7) | 2025 | ~9.6 Tbps(1200 GB/s) | 4(物理 OSFP 端口;3D Torus 逻辑邻居为 6) | 3D Torus | 9216 chips |
注:TPU v5e 面向推理场景,端口数少、成本低;TPU v5p 和 Ironwood 面向大规模训练。带宽数字为双向聚合,各代产品因物理链路数和编码效率不同,口径略有差异。
直连 Torus 拓扑设计
基本原理
ICI 不依赖交换芯片,每个 TPU 的 ICI 端口直接连接空间上相邻的 TPU。多个 TPU 在 X/Y/Z 三个维度上排列,首尾相连形成环(Torus):
2D Torus(TPU v3,4x4 示意):
[T00] - [T01] - [T02] - [T03]
| | | |
[T10] - [T11] - [T12] - [T13]
| | | |
[T20] - [T21] - [T22] - [T23]
| | | |
[T30] - [T31] - [T32] - [T33]
行、列首尾相连(T00-T03 连接,T00-T30 连接),构成环形
3D Torus(TPU v4):
X 维度:同行相邻 TPU 直连
Y 维度:同列相邻 TPU 直连
Z 维度:不同层相邻 TPU 直连
每个 TPU 有 6 个 ICI 端口(+X/-X/+Y/-Y/+Z/-Z 各一个)
无交换机的优势
- 延迟极低:数据在相邻 TPU 间传输不经过交换芯片,单跳延迟在百 ns 量级(vs InfiniBand Switch 的 ~100-200 ns 端口延迟累积)
- 带宽可预测:ICI 链路独占,无共享竞争,集合通信时间可精确建模
- 线性扩展:Pod 规模扩大时,每个 TPU 的 ICI 端口数不变,仅增加芯片数量
直连的代价
- 拓扑固定:物理连线决定通信路径,无法像 Fat-tree 那样任意重构
- 非全连接:非相邻 TPU 通信需要多跳(最大跳数 = 维度大小的一半),远距离通信延迟较高
- 布线复杂度:3D Torus 在机架布局中需要跨机架长距离线缆,这是引入 OCS 的动机
TPU v4 的 OCS 光交换创新
背景问题
3D Torus 的物理布线要求 Z 维度的相邻 TPU 必须在物理上"相邻",但机架的空间布局使得 Z 维度的连接往往需要穿越整个数据中心机房,普通铜缆无法支撑,光纤又固定了拓扑。
OCS 解决方案
OCS(Optical Circuit Switch,光回路交换机)在机架间引入可重配置的光交换层:
- 每个机架的 TPU 通过光纤连接到 OCS 端口
- OCS 按需在任意两个端口之间建立光路,等价于"这两个机架的 TPU 在 Torus 的 Z 维度上相邻"
- 重配置时间:OCS 切换光路约需数十毫秒,适合按任务静态配置
对拓扑的实质影响
OCS 使 3D Torus 的 Z 维度连接关系变为可编程:
- 不同训练任务可以配置不同的机架-机架映射,每次任务用最优的 3D Torus 形状
- 等价于"可重构的 3D Torus",而非固定物理接线的 Torus
- 机架间不再需要按照固定顺序物理相邻,数据中心机架排布自由度大幅提升
集合通信优化
在 OCS 重新配置下,AllReduce 可以选择最优的维度顺序:
- 对于矩形 Pod(如 4x4x16),先在小维度(4x4)内 AllReduce,再沿大维度(16)AllReduce,总通信量与维度顺序无关但延迟可优化
- OCS 在不同任务间切换映射,避免多任务共享时的拓扑争抢
集合通信在 ICI Torus 上的实现
DOR 路由(Dimension-Order Routing)
Torus 天然适合 DOR——数据包先沿 X 维度路由到目标 X 坐标,再沿 Y 维度路由到目标 Y 坐标,最后沿 Z 维度完成。DOR 保证无死锁,且路径长度确定(最大跳数 = 各维度半径之和)。
AllReduce 的维度分解
在 3D Torus 上,AllReduce 分解为三个维度的独立操作,每个维度执行 ReduceScatter + AllGather(等价于一次 Ring AllReduce):
AllReduce 分解(3D Torus,X×Y×Z 维度):
步骤 1: X 维度 Ring ReduceScatter -> 每个 Z×Y 面内的 X 环并行执行
步骤 2: Y 维度 Ring ReduceScatter -> 每个 Z×X 面内的 Y 环并行执行
步骤 3: Z 维度 Ring AllGather -> 每个 X×Y 面内的 Z 环并行执行
(实际实现中 ReduceScatter 和 AllGather 维度顺序有多种等效方案)
各维度上的 Ring 独立执行,维度间串行。总通信量与平坦 Ring AllReduce 相同,但 Torus 的并行度更高(多个环同时工作),整体延迟更低。
延迟模型
单次 AllReduce 时间(3D Torus,X×Y×Z,消息大小 M bytes):
T_allreduce ≈ 2 × (X-1)/X × M/BW_x
+ 2 × (Y-1)/Y × M/BW_y
+ 2 × (Z-1)/Z × M/BW_z
+ latency_overhead
其中 BW_x/y/z 为各维度 ICI 链路带宽,latency_overhead 为跳数相关的基础延迟。
与外部互联的分层
TPU 集群的互联分为两层:
层级 1: Pod 内(ICI 直连)
技术: ICI(2D/3D Torus 或 Mesh)
带宽: 每芯片 1.6-9.6 Tbps(取决于代际)
延迟: 百 ns 级
角色: TP/SP 的 AllReduce,大规模 DP 内部的 AllReduce
层级 2: Pod 间(数据中心以太网)
技术: 标准以太网(Ethernet)
带宽: 数十 GB/s 量级(与商用网卡相同)
延迟: us 级
角色: 跨 Pod 的 DP 梯度同步,模型检查点存储
分层 AllReduce:大规模训练中,先在 Pod 内通过 ICI 完成局部 AllReduce(延迟低,带宽高),再跨 Pod 通过以太网汇总(数据量因已局部聚合而大幅减小)。这与 NCCL 的 tree AllReduce 逻辑类似,但 Pod 内完全由 ICI 硬件完成。
与 NVLink/IB 的对比
| 指标 | Google ICI(TPU v4) | Google ICI(Ironwood/TPU v7) | NVIDIA NVLink 4.0(H100) | InfiniBand NDR |
|---|---|---|---|---|
| 每芯片带宽(双向) | ~4.8 Tbps | ~9.6 Tbps | 900 GB/s | 400 Gbps(~50 GB/s) |
| 是否需要交换机 | 否(直连,OCS 可选) | 否(直连) | 需要 NVSwitch | 需要 IB Switch |
| 拓扑 | 3D Torus(可重构) | 3D Torus | 全连接(NVL72) | Fat-tree |
| 单跳延迟 | 百 ns 级(无交换延迟) | 百 ns 级 | ~1-2 us | ~1-2 us(含 Switch) |
| 最大规模(单 Pod/Domain) | 4096 chips | 9216 chips | 576 chips(NVL72 × 多机架) | 数万端口(Fat-tree) |
| 集合通信实现 | XLA/JAX 内置,维度分解 | XLA 内置 | NCCL | NCCL/MPI |
| 异构互联支持 | 否(TPU 专用) | 否 | 是(GPU + CPU,NVLink-C2C) | 是(通用 RDMA) |
核心差异:ICI 以"无交换、超低延迟、超大规模直连"为核心设计目标,代价是拓扑固定、仅适用于 TPU 同构集群;NVLink 以"全连接、高带宽、生态兼容"为目标,借助 NVSwitch 提供全连接但引入交换延迟;InfiniBand 以"通用性和超大规模 Fat-tree"为目标,适合异构混合集群,但节点内带宽远低于 ICI 和 NVLink。