跳到主要内容

DOR 维度顺序路由

DOR(Dimension-Order Routing)是多维拓扑(Torus、Mesh)上的确定性静态路由策略:按固定维度顺序(如 X → Y → Z)逐维转发报文,每个维度的路由独立完成,到达目标维度坐标后再转向下一维度。

基本原理

$d$ 维 Torus 或 Mesh 拓扑中,每个节点的地址表示为 $(x_0, x_1, ..., x_{d-1})$。DOR 的路由决策:

  1. 检查当前维度 $k$(从维度 0 开始)
  2. 若当前维度坐标等于目标坐标,进入下一维度
  3. 否则沿当前维度朝目标方向移动一跳

以 3D Torus 中从 $(x_s, y_s, z_s)$$(x_d, y_d, z_d)$ 为例:

Phase 1: 移动 X 维度,直到 x == x_d
Phase 2: 移动 Y 维度,直到 y == y_d
Phase 3: 移动 Z 维度,直到 z == z_d

路径长度等于各维度坐标差之和(曼哈顿距离)。Torus 拓扑中,每个维度还需选择顺时针或逆时针方向(选择较短的方向)。

算法细节

无死锁保证

DOR 的无死锁性质依赖拓扑类型

Mesh 上:天然无死锁,无需虚通道

Mesh 各维度无环绕链路,维度顺序约束可消除所有循环等待:

  • 所有报文先在维度 0 移动,再在维度 1 移动,...
  • 不存在"A 等待 B 释放 X 方向资源,B 等待 A 释放 Y 方向资源"的场景
  • 证明:设报文在维度 $k$ 方向上移动,它不会再等待维度 $< k$ 的链路,所有等待维度 $> k$ 链路的报文都在维度 $k$ 的同侧,不构成循环

Torus 上:需要 dateline 虚通道(不可忽略)

Torus 每个维度首尾环绕,环绕链路引入新的通道依赖关系,单纯 DOR 在 Torus 上不保证无死锁。需要采用 dateline 机制:

  • 每个维度设置一条 dateline(通常置于维度坐标 0 处的环绕链路)
  • 报文经过 dateline 时强制切换到高优先级虚通道(VC1),此后不再使用 VC0
  • 该机制打破了环形依赖链,使 Torus 上的 DOR 满足无死锁条件

参考:Dally & Seitz(1987)《Deadlock-Free Message Routing in Multiprocessor Interconnection Networks》,以及 torus.md §路由算法 中的 dateline 说明。

Torus 上的 DOR

Torus 的每个维度首尾相连形成环,DOR 在每个维度内选择最短方向(环绕距离 vs 直接距离):

$\text{direction} = \begin{cases} +1 & \text{if } (x_d - x_s + N) \bmod N \le N/2 \\ -1 & \text{otherwise} \end{cases}$

集合通信与维度分解

DOR 为集合通信按维度分解提供了天然基础。以 3D Torus 上的 AllReduce 为例:

  1. X 维度 AllReduce:每行节点做 Ring AllReduce,所有行并行
  2. Y 维度 AllReduce:每列节点做 Ring AllReduce,所有列并行
  3. Z 维度 AllReduce:每纵列节点做 Ring AllReduce,所有纵列并行

每轮只在单维度通信,避免跨维度竞争。这是 Google TPU 集群在 3D Torus 上高效执行 AllReduce 的核心机制——XLA 编译器将 TP/DP/PP 分配到对应 Torus 维度,路由在编译时确定。

性能特性

指标
路径确定性完全确定(相同源/目的对,路径唯一)
死锁风险无(维度顺序约束保证)
有效带宽利用率85-92%(通信模式与维度对齐时)
延迟可预测性高(路径长度固定)
路径多样性低(每个源-目的对只有一条路径)

数值示例(4x4x4 Torus,DOR 从 $(0,0,0)$$(2,3,1)$):

路径长度 = $|2-0| + |3-0| + |1-0| = 6$ 跳(曼哈顿距离),延迟确定性极高。

适用场景与局限

适用场景

  • Torus / Mesh 多维拓扑,特别是 2D/3D Torus
  • 需要确定性延迟的工作负载
  • 集合通信 pattern 能够与拓扑维度对齐的场景
  • 代表系统:Google TPU v4/v5/v6/Ironwood(3D Torus + DOR)

局限

  • 路径多样性低:每个源-目的对只有一条路径,网络利用率受单条路径带宽限制
  • 维度竞争:若工作负载的通信模式不与维度对齐(如跨维度的 AllToAll),会在某个维度产生热点
  • 故障容错弱:绕过故障节点需要修改维度路由逻辑,不如 ECMP 灵活
  • 不适合非规则拓扑:DOR 依赖拓扑的规则维度结构,Fat-tree、Dragonfly 等无法使用

选型建议

  • 拥有 Torus 拓扑且工作负载与维度对齐:DOR 是最优选择
  • 拓扑不规则或需要高路径多样性:使用 ECMP 或自适应路由
  • 需要在 Torus 上最大化带宽:可结合 OCS 动态重配拓扑,使 Twisted Torus 的 bisection bandwidth 提升 70%

参考资料