跳到主要内容

Torus 拓扑族通信评估

评估范围

在 64 芯片 Torus 拓扑上,评估不同形状、通信算法和消息大小对集合通信延迟的影响。评估维度见 ,通信算法覆盖见

维度范围
拓扑形状2D-8x8, 2D-4x16, 2D-2x32, 3D-4x4x4(均 64 芯片)
通信组大小2, 4, 8, 16
消息大小64KB, 256KB, 1MB
通信原语AllReduce, AllGather, ReduceScatter
路由算法shortest_path, DOR

@tbl-torus-eval-scope 评估维度与范围

原语算法
AllReduceRing, 2-port Ring, Halving-Doubling (HD), Double Binary Tree (DBT)
AllGatherRing, 2-port Ring, Recursive Doubling (RD)
ReduceScatterRing, 2-port Ring, Recursive Halving (RH)

@tbl-torus-algo-coverage 各原语评估的通信算法

硬件参数:SG2262 芯片,c2c 带宽 400 GB/s,链路延迟 0.025 us。

通信组与芯片放置

通信组划分、并行策略和评估方法的详细说明参见 TPS186 通信原语评估

Torus 上通信组由连续芯片 ID 组成,按行优先顺序映射到物理坐标(2D-8x8 中 chip 0-7 为第一行)。由于 Torus 的平移对称性,所有同大小通信组的内部结构完全一致,评估一个组即可代表全部。各拓扑下 TP 通信组的具体放置见

拓扑TP组内芯片位置最大跳数
2D-8x82同行相邻:(0,0)-(0,1)1
2D-8x84同行连续:(0,0)-(0,3)2
2D-8x88整行:(0,0)-(0,7)4
2D-8x816连续两行:(0,0)-(1,7)5
3D-4x4x42同行相邻:(0,0,0)-(0,0,1)1
3D-4x4x44同行连续:(0,0,0)-(0,0,3)2
3D-4x4x48同平面两行:(0,0,0)-(0,1,3)4
3D-4x4x416同平面全部:(0,0,0)-(0,3,3)4

@tbl-torus-tp-placement TP 连续放置下各拓扑的通信组芯片分布

形状对比

2D 纵横比

三种 2D Torus 纵横比(8x8 方形、4x16 长方、2x32 细长)在 AllReduce 1MB 下的延迟对比见

形状组大小=4组大小=8组大小=16
2D-8x8 (方形)HD 5.20 / Ring 6.99 / 2-port 4.70HD 7.50 / Ring 11.20 / 2-port 5.95HD 7.56 / Ring 17.91 / 2-port 9.60
2D-4x16 (长方)HD 5.20 / Ring 6.99 / 2-port 4.70HD 6.81 / Ring 12.22 / 2-port 7.20HD 8.87 / Ring 17.53 / 2-port 8.65
2D-2x32 (细长)HD N/A / Ring 6.99 / 2-port 4.70HD N/A / Ring 12.22 / 2-port 7.20HD N/A / Ring 27.34 / 2-port 15.11

@tbl-torus-2d-shape AllReduce 1MB 不同 2D Torus 纵横比延迟对比 (us)

Ring 和 2-port Ring 在 8x8、4x16 上结果几乎一致(环形通信模式不依赖纵横比,shortest_path 在均匀带宽 torus 上选到同跳数路径);2x32 在 n=16 时显著退化(Ring 27.34 vs 8x8 17.91,慢 53%),原因是组大小=16 跨越行边界且 2x32 单维只有 2 个节点,环路必须沿长维绕远。HD 属于 hypercube 类算法,要求拓扑维度 >= log2(N),2x32 维度不足无法运行(表中标注 N/A)。

DBT 和 RH 同样属于 hypercube 类,在 2x32 上无法运行;在能运行的 8x8 vs 4x16 上对纵横比敏感,长方形状退化明显()。

形状AR DBT 组大小=16RS RH 组大小=16
2D-8x814.17 us4.86 us
2D-4x1616.95 us11.24 us
2D-2x32N/A(dim<=2 不支持 hypercube 类)N/A

@tbl-torus-shape-sensitive DBT 和 RH 在不同纵横比下的延迟 (us,组大小=16, 1MB)

DBT 慢了 20%(8x8 -> 4x16),RH 慢了 131%。长方形状的直径更大(4x16 最大跳数=2+8=10 vs 8x8 最大跳数=4+4=8),tree 和 halving 的非相邻通信路径更长。RH 受影响远大于 DBT,因为 halving 的最后几步在长维上必须跨更多链路。 展示了 RH 在不同 Torus 形状上随消息大小变化的延迟曲线(2x32 无 RH 数据)。

ReduceScatter Recursive Halving 在不同 Torus 形状上的延迟对比@fig-torus-rs-rh-shape

2D vs 3D

3D-4x4x4 相比 2D-8x8,每个节点有 6 个邻居(vs 4 个),最大跳数为 2+2+2=6(vs 4+4=8),连接度更高、直径更小。

AllReduce 1MB 对比见 (最优算法加粗):

形状组大小=4组大小=8组大小=16
2D-8x82-port 4.70 / HD 5.20 / DBT 8.682-port 5.95 / HD 7.50 / DBT 14.17HD 7.56 / 2-port 9.60 / DBT 14.17
3D-4x4x42-port 4.13 / HD 5.93 / DBT 5.93DBT 5.96 / HD 6.26 / 2-port 6.34HD 7.12 / DBT 8.51 / 2-port 9.54

@tbl-torus-2d-vs-3d-ar AllReduce 1MB 2D-8x8 vs 3D-4x4x4 各算法延迟对比 (us)

组大小=4 时差异很小(2-port 在两种形状上分别 4.70 vs 4.13,3D 快 14%)。组大小>=8 时 3D 的 DBT 显著受益(n=8 时 3D DBT 5.96 vs 2D DBT 14.17,快 2.4 倍;n=16 时 3D DBT 8.51 vs 2D DBT 14.17,快 66%),因为 tree 的非相邻节点在 3D 上平均路径更短。n=16 时两种拓扑的最优都是 HD(2D 7.56 us vs 3D 7.12 us,3D 快 6%)。

AllGather 1MB 的 Recursive Doubling 对比见

形状组大小=8 RD组大小=16 RD
2D-8x87.444.08
3D-4x4x43.204.84

@tbl-torus-2d-vs-3d-ag AllGather 1MB 2D vs 3D Recursive Doubling 延迟对比 (us)

3D 在组大小=8 时 RD 快 133%(3.20 vs 7.44,因为 RD 在 2D-8x8 上 n=8 跨行通信路径长),组大小=16 时反而 2D 略快 19%(2D 4.08 vs 3D 4.84,因为 n=16 在 8x8 上是连续两行 16 芯片,每步路径短)。 展示了 DBT 在两种拓扑上随消息大小变化的延迟曲线,3D 在中大组大小时优势明显。

AllReduce DBT 在 2D-8x8 和 3D-4x4x4 上的延迟对比@fig-torus-dbt-2d-vs-3d

算法对比

以下以 2D-8x8 为基准形状分析。对 3D 差异显著的场景单独标注。

AllReduce

展示了四种 AllReduce 算法在不同组大小和消息大小下的延迟曲线, 汇总了各 (组大小,消息大小) 组合下的最优算法及其相对 Ring 的加速幅度。

AllReduce 算法延迟对比 (2D-8x8)@fig-torus-ar-algo

AllReduce 最优算法汇总 (2D-8x8)@fig-torus-ar-best

  • 组大小=2 时所有算法退化为单步通信,结果一致
  • HD 在中大消息 + 大组大小时是最优选择:组大小=16、1MB 时比 Ring 快 137%(Ring 17.91 vs HD 7.56),组大小=16、256KB 时比 Ring 快 245%(Ring 12.53 vs HD 3.63)
  • DBT 在小消息(64KB)+ 大组大小时占优:组大小=16、64KB 时比 Ring 快 580%(Ring 11.58 vs DBT 1.70),但在 2D 上中大消息(>=1MB)退化严重(n=16 1MB 时 DBT 14.17 vs HD 7.56,慢 87%)
  • 2-port Ring 在中等组大小(4~8)+ 中大消息时是稳健选择:组大小=8、1MB 时比 Ring 快 88%(Ring 11.20 vs 2-port 5.95),组大小=8、64KB 时比 Ring 快 75%(5.26 vs 3.00)
  • DBT 在 3D-4x4x4 上组大小=8、1MB 时成为最优(5.96 us vs 2D 上 DBT 14.17 us,快 2.4 倍),受益于更短的 tree 路径;但组大小=16 时 3D 上 HD 反超 DBT(7.12 vs 8.51)

AllGather

展示了三种 AllGather 算法的延迟曲线, 汇总最优算法。

AllGather 算法延迟对比 (2D-8x8)@fig-torus-ag-algo

AllGather 最优算法汇总 (2D-8x8)@fig-torus-ag-best

  • RD 在组大小=16 时全面占优:1MB 时比 Ring 快 125%(Ring 9.19 vs RD 4.08),64KB 时比 Ring 快 291%(Ring 5.81 vs RD 1.48)
  • 2-port Ring 在中等组大小(4~8)+ 中大消息时占优:组大小=8、1MB 时比 Ring 快 85%(Ring 5.58 vs 2-port 3.02),组大小=8、256KB 时比 Ring 快 82%(3.35 vs 1.84)
  • n=8 时 RD 受拓扑影响显著:2D-8x8 上 n=8、1MB 时 RD 反而比 Ring 慢(7.44 vs 5.58),需 2-port Ring 才胜出;3D-4x4x4 上 n=8、1MB RD 仅 3.20 us,是 2D 的 2.3 倍速度
  • RD 的对数步数优势在组大小增大时非常显著(16 芯片仅需 4 步 vs Ring 的 15 步)

ReduceScatter

展示了三种 ReduceScatter 算法的延迟曲线, 汇总最优算法。

ReduceScatter 算法延迟对比 (2D-8x8)@fig-torus-rs-algo

ReduceScatter 最优算法汇总 (2D-8x8)@fig-torus-rs-best

  • RH 在组大小=16 时全面占优:1MB 时比 Ring 快 89%(Ring 9.19 vs RH 4.86),64KB 时比 Ring 快 329%(Ring 5.81 vs RH 1.35)
  • 2-port Ring 在组大小=8 时是中大消息的稳健选择:n=8、1MB 时 2-port 3.02 us 反超 RH 6.94 us(RH 在小组大小 + 大消息时退化),n=8、64KB 则 RH 最优(1.06 us vs 2-port 1.51 us)
  • RH 对拓扑形状敏感:在 2D-4x16 上组大小=16、1MB 时退化到 11.24 us(8x8 上 4.86 us,慢 131%),2D-2x32 不支持 RH(dim<=2),在 3D-4x4x4 上表现最好(3.85 us,比 8x8 快 26%)
  • n=16 + 1MB 时 RH 也明显胜过 2-port(4.86 vs 4.92 us 接近,但 64KB/256KB 时 RH 大幅领先 2-port)

路由算法

对 2D-8x8 和 3D-4x4x4 分别用 shortest_path 和 DOR 路由跑 AllReduce,覆盖组大小 {8, 16, 32, 64} × 消息大小 {64KB, 256KB, 1MB, 4MB} × 算法 {Ring, 2-port Ring, HD},共 96 个对比点。总体统计见

DOR/SP 延迟比数量占比
~1.00(完全相同)9093.8%
0.91 ~ 0.99(DOR 略快)66.2%
< 0.9100%

@tbl-torus-routing-summary shortest_path vs DOR 路由 96 个对比点统计

出现差异的 6 个点均为 HD 算法 + 4MB 大消息场景,详见

拓扑组大小SP 延迟 (us)DOR 延迟 (us)DOR/SP
2D-8x8831.9429.190.914
2D-8x81625.1023.040.918
2D-8x83221.6621.220.979
3D-4x4x4825.6323.710.925
3D-4x4x41620.2520.110.993
3D-4x4x43240.3840.070.992

@tbl-torus-routing-diff DOR vs shortest_path 差异点详情 (AllReduce, 4MB)

HD 在大消息下涉及多组 power-of-2 配对同时通信,DOR 的确定性路径选择在多流竞争时路径冲突略少。但最大差异仅 8.6%,且仅出现在 4MB 场景。其余 90 个对比点(含 Ring、2-port Ring 以及所有 <=1MB 的 HD 场景)延迟完全一致。

在均匀带宽的 Torus 上,shortest_path (Dijkstra) 选出的最短路径和 DOR 的维序路径跳数相同,因此绝大多数场景下两种路由无性能差异。

EP AllToAll 评估

EP 通信的评估方法和局限说明参见 TPS186 评估方法说明

维度范围
通信组大小32, 64
消息大小256KB, 512KB, 1MB, 2MB, 4MB
算法Pairwise, Bruck
拓扑2D-8x8, 2D-4x16, 2D-2x32, 3D-4x4x4

@tbl-torus-ep-config EP AllToAll 评估配置

EP=64

展示了 Pairwise 和 Bruck 在 4 种 Torus 形状上的延迟曲线。Pairwise 延迟随拓扑形状差异显著(2D-2x32 比 3D-4x4x4 慢约 2 倍),而 Bruck 的延迟在所有形状上几乎一致。

EP=64 AllToAll Pairwise vs Bruck 延迟对比@fig-torus-ep64-algo

汇总各 (拓扑,消息大小) 下的最优算法。EP=64 时 Bruck 在所有配置下均优于 Pairwise。

EP=64 AllToAll 最优算法汇总@fig-torus-ep64-best

  • Bruck 全胜:EP=64(N=64,log2=6 步 vs Pairwise 63 步),Bruck 在所有拓扑和消息大小下均更快
  • 形状敏感性差异极大:Pairwise 在 2D-2x32 上 4MB 延迟 71 us,在 3D 上 37 us(差 1.9 倍);Bruck 在所有形状上 ~33 us(差异 <1%)
  • 细长形状优势最大:2D-2x32 上 Bruck 快 53%,2D-4x16 快 34%,8x8/3D 快 8-12%

Bruck 拓扑不敏感性分析:Bruck 在 4 种形状上延迟差异 <1%(如 4MB 时 8x8 = 33.07 us, 2x32 = 33.07 us, 3D = 33.10 us)。P2P 单传输验证显示跳数差异确实影响延迟(chip 0→16:8x8 2 跳 0.58 us vs 2x32 16 跳 1.31 us),但 Bruck 每步 64 路并发 transfer 的链路竞争和步间依赖使拓扑差异被抹平。Bruck 每步传输量大(~2MB),CDMA 注入时间(~5 us)远大于跳数差异带来的路由延迟(<0.5 us),传输时间主导了每步延迟。

EP=32

展示了 EP=32 的延迟曲线。与 EP=64 相同,Bruck 曲线在所有形状上完全重叠(差异 <1%),而 Pairwise 曲线随形状发散——但 3D-4x4x4 上 Pairwise 比 Bruck 更快。

EP=32 AllToAll Pairwise vs Bruck 延迟对比@fig-torus-ep32-algo

EP=32 AllToAll 最优算法汇总@fig-torus-ep32-best

EP=32 时(N=32,log2=5 步 vs Pairwise 31 步),结论不同于 EP=64:

  • 2D 上 Bruck 仍然占优:8x8 快 6-10%,4x16 快 12-15%,2x32 快 38-39%
  • 3D-4x4x4 上 Pairwise 反超:Pairwise 快 17-19%。3D 的短直径(最大跳数 6)让 Pairwise 31 步中的多跳开销很小,而 Bruck 5 步中每步的冗余带宽(约 N/2 倍数据量)成为负担

结论

算法选择推荐

综合 TP 和 EP 分析,各原语的推荐算法见 。TP 详细分布参见汇总图(),EP 参见

原语2D Torus 推荐3D Torus 推荐
AllReduce (TP)小消息:2-port/DBT;中大消息:HD组大小>=8 时 DBT 全消息最优
AllGather (TP)小消息:2-port;中大消息+组大小>=16: RD无显著差异
ReduceScatter (TP)组大小=8: 2-port;组大小>=16: RHRH 在 3D 上更稳定
AllToAll (EP=64)Bruck(全消息,快 8-53%)Bruck(快 8-12%)
AllToAll (EP=32)Bruck(2D,快 6-39%)Pairwise(3D,快 17-19%)

@tbl-torus-algo-recommend Torus 各原语算法选择推荐

形状选择

TP 通信

  • 2D 纵横比影响很小:Ring/2-port/HD/RD 完全不受纵横比影响(
  • 但 DBT 和 RH 对细长形状敏感:应避免 2x32 这类极端纵横比(
  • 3D 优于 2D:更高的连接度让 log 算法(特别是 DBT)显著受益(

EP 通信

  • Pairwise 对拓扑极度敏感:2D-2x32 延迟是 3D-4x4x4 的 1.9 倍(
  • Bruck 对拓扑几乎不敏感:所有形状延迟差异 <1%
  • 纵横比越极端,Bruck 优势越大:2D-2x32 + EP=64 时 Bruck 快 2 倍以上

路由算法:shortest_path 在 Torus 上已等价于 DOR(