Resilient AI Supercomputer Networking using MRC and SRv6总结
Resilient AI Supercomputer Networking using MRC and SRv6:重点总结与拓扑分析
来源:OpenAI / Microsoft / AMD / Broadcom / NVIDIA 联合论文《Resilient AI Supercomputer Networking using MRC and SRv6》。本文档重点总结论文的核心思想,并补充两种拓扑的结构图和对比分析。
1. 文档核心结论
这篇论文讨论的是:在数万到十万级 GPU 的 AI 同步训练集群中,如何让后端网络在链路 flap、交换机故障、拥塞、丢包等情况下仍然保持训练任务继续运行。
论文提出的整体方案是:
MRC 多路径 RDMA 传输协议
+ 多平面 2-tier Clos 拓扑
+ 静态 SRv6 源路由
+ Clustermapper 数据面探测
= 面向超大规模 AI 训练的高吞吐、低尾延迟、故障自愈网络
其中最重要的思想是:
- 不再依赖传统 RoCE 的单路径流 hash。
- 不再依赖 PFC 构建 lossless Ethernet。
- 不再依赖交换机动态路由来绕开故障。
- 把路径选择、负载均衡、丢包恢复、故障绕行尽量放到端侧 NIC / MRC 传输层完成。
2. 为什么 AI 训练网络需要新的设计?
大规模同步预训练具有一个关键特征:所有 GPU 按 step 同步推进。一次通信轮次的完成时间由最慢的传输决定。
因此网络问题会被放大:
| 网络问题 | 对同步训练的影响 |
|---|---|
| 某些 ECMP 路径流碰撞 | 局部拥塞,形成长尾延迟 |
| Incast | 接收端最后一跳拥塞,影响 collective 完成时间 |
| 链路 flap | 少量 packet loss 也可能拖慢 step |
| 交换机控制面异常 | 动态路由收敛慢,甚至数据面与控制面不一致 |
| PFC HOL blocking | 一个流的拥塞可能阻塞其他 collective |
论文认为,大规模训练网络必须同时做到三点:
- 均匀负载均衡:避免大流之间的 flow collision。
- 快速处理 incast 和丢包:不能让少量丢包变成长尾。
- 故障自动绕行:链路或交换机异常不能轻易导致训练任务失败。
3. 拓扑一:传统 3-tier 800G single-plane Clos
论文首先讨论一种传统设计:每个 GPU/NIC 使用 800Gb/s 接口,网络采用单平面 3-tier Clos。
注:下面两张拓扑图均直接截图自论文原文 Figure 1,便于与原文保持一致。
3.1 拓扑图

图 1:传统 3-tier 800G single-plane Clos 拓扑(截图自原文 Figure 1(a))。
更抽象地看:
NIC/GPU
-> T0
-> T1
-> T2
-> T1
-> T0
-> NIC/GPU
3.2 论文中的规模假设
| 参数 | 数值 |
|---|---|
| 单交换机带宽 | 51.2Tb/s |
| 800G 端口数 | 64 ports |
| 每个 T0 下联 NIC | 32 个 800G NIC |
| 每个 T0 上联 T1 | 32 条 800G uplink |
| 每个 pod 的 T0 数 | 32 个 |
| 每个 pod 的 NIC 数 | 32 × 32 = 1024 个 |
| pod 数 | 64 个 |
| 总 NIC 数 | 64 × 32 × 32 = 65,536 个 |
3.3 这种拓扑的优点
| 优点 | 说明 |
|---|---|
| 结构传统 | 类似通用数据中心 Clos,工程上熟悉 |
| 单链路速率高 | 每条链路是 800G,单端口带宽大 |
| 可使用传统 ECMP/BGP | 控制面模型成熟 |
3.4 这种拓扑的问题
问题 1:规模扩展困难
在 51.2Tb/s、64 × 800G 交换机条件下,3-tier single-plane Clos 只能支撑约 65K NIC。如果要做到 100K GPU 以上,通常需要:
- 增加第四层交换机;
- 或者做 oversubscription;
- 或者构建多个独立 rail;
- 或者使用更高 radix / 更大带宽的交换芯片。
这些都会增加成本、功耗、延迟或复杂性。
问题 2:路径更长,延迟更高
跨 pod 通信需要走:
src NIC -> T0 -> T1 -> T2 -> T1 -> T0 -> dst NIC
最长路径经过 5 个交换机。如果扩展成 4-tier,路径可能更长。
对于 AI collective,尤其是小消息控制类通信或同步路径上的短消息,额外 hop 会直接增加尾延迟。
问题 3:单个链路故障影响比例更大
论文给出的例子是:在 800G single-plane 中,一个 T0-T1 链路失败会减少某个节点方向上约 3% 的容量;而在 100G multi-plane 中,同类链路失败影响约 0.4%。
原因是 single-plane 的路径选择粒度较粗,单条链路带宽更大,故障的容量损失也更集中。
问题 4:与传统 RoCE/ECMP 配合时容易 flow collision
传统 RoCE 通常一个 QP/flow 被 ECMP hash 到一条路径。大规模 AI collective 中存在很多大流,如果多个大流 hash 到同一 uplink,就会产生流碰撞。
这种局部拥塞会形成 tail latency,而同步训练的 step 时间由最慢通信决定。
问题 5:动态路由复杂度高
高 radix 两层或三层 Clos 中,每个目的地可能对应很大的 ECMP set。当部分 T1 或 T0-T1 链路故障时,不同目的地的可达路径集合不同,交换机需要维护大量 ECMP 变化。
论文认为,在超大规模下依赖动态路由绕故障会带来几个问题:
- 收敛时间可能很长;
- 控制面和数据面可能不一致;
- 故障诊断复杂;
- 会与 MRC 端侧自适应路径选择相互干扰。
4. 拓扑二:2-tier 8 × 100G multi-plane Clos
论文推荐的设计是:把一个 800G NIC 拆成多个低速 port,例如 8 × 100G,构建 8 个并行的 100G Clos 平面。
4.1 拓扑图

图 2:2-tier 8×100G multi-plane Clos 拓扑(截图自原文 Figure 1(b))。
更抽象地看:
800G NIC
= 8 × 100G ports
= 8 个独立 plane
每个 packet 通过 MRC 选择一个 EV
EV 决定:
- 使用哪个 plane
- 使用该 plane 内哪条 T0-T1 路径
跨 T0 group 的路径为:
src NIC port
-> src T0 plane X
-> T1 plane X
-> dst T0 plane X
-> dst NIC port
4.2 论文中的规模假设
| 参数 | 数值 |
|---|---|
| 单交换机带宽 | 51.2Tb/s |
| 100G 端口数 | 512 ports |
| plane 数 | 8 个 |
| 每个 T0 下联 NIC port | 256 个 |
| 每个 T0 上联 T1 | 256 条 |
| 每个 T1 下联 T0 | 512 个 T0 |
| T0 数 | 512 个 |
| 每个 T0 group 对应 NIC 数 | 256 个 |
| 总 NIC 数 | 512 × 256 = 131,072 个 |
4.3 这种拓扑的优点
优点 1:两层交换即可支持超过 100K GPU
因为 100G 端口下 switch radix 变成 512,T0 和 T1 的 fanout 大幅增加。论文给出的设计可以在 2-tier 下支持 131,072 NIC/GPU。
这避免了 4-tier Clos 带来的额外 hop、额外光模块、额外交换机和更复杂控制面。
优点 2:路径更短,延迟更低
multi-plane 2-tier 跨 T0 group 的最长路径是:
src NIC -> T0 -> T1 -> T0 -> dst NIC
只经过 3 个交换机,而不是传统 3-tier 的 5 个,甚至 4-tier 的 7 个。
优点 3:更多 locality
在 multi-plane 设计中,一个 T0 可以连接更多 NIC port。论文中一个 T0 下联 256 个 NIC port,而传统 800G single-plane 中一个 T0 只下联 32 个 NIC。
这意味着:
- 更多通信可以在 T0-local 范围内完成;
- 可以减少跨 T1 的流量;
- 对 job placement 更友好;
- 降低整体网络负载和延迟。
优点 4:故障影响更小
multi-plane 把 800G 拆成多个 plane,单个 plane 或单条链路失败时,影响的是总带宽的一小部分。
例如 8-plane 场景:
丢 1 个 NIC-T0 plane ≈ 损失 1/8 = 12.5% NIC 带宽
如果只是某条 T0-T1 link flap,因为每个 QP 会 spray 到大量 EV/path 上,影响更小,通常只表现为少量 packet loss,然后 MRC 将对应 EV 移除。
优点 5:适合 MRC packet spraying
multi-plane 本身提供了大量并行路径,而 MRC 正好可以使用 EV 把 packet 分散到这些路径上。
MRC 在 QP 启动时会选择 EV set,并保证 EV 在不同 plane 间均匀分布:
QP active EV set
-> Plane 0: 若干 EV
-> Plane 1: 若干 EV
-> ...
-> Plane 7: 若干 EV
这样一个 QP 自身就能把流量打散到多个 plane 和多个 T0-T1 path,不需要应用层感知。
4.4 这种拓扑的挑战
multi-plane 也不是没有代价,论文指出主要挑战是:
| 挑战 | 说明 |
|---|---|
| 应用/传输层必须能容忍单 port/plane 故障 | 否则任意一个 plane flap 都会导致 QP 或任务失败 |
| 必须能跨 plane 均匀负载 | 否则某个 plane 会成为瓶颈 |
| 低速链路更容易被局部流量打满 | 需要 packet spraying 和快速负载均衡 |
| 传统单路径 transport 不适合 | 单 QP 单路径无法充分利用 multi-plane |
| 运维需要知道具体坏路径 | 需要 EV 与物理路径可映射 |
所以 multi-plane 拓扑必须和 MRC、SRv6、Clustermapper 一起设计,单独使用并不能自动解决问题。
5. 两种拓扑对比
| 维度 | 3-tier 800G single-plane Clos | 2-tier 8 × 100G multi-plane Clos |
|---|---|---|
| 链路形态 | 800G 单链路 | 8 条 100G plane |
| switch radix | 64 × 800G | 512 × 100G |
| 层级 | 3-tier,必要时 4-tier | 2-tier |
| 论文示例规模 | 65,536 NIC | 131,072 NIC |
| 最长交换机 hop | 5 个交换机 | 3 个交换机 |
| 延迟 | 更高 | 更低 |
| locality | 较弱,每个 T0 下联 32 NIC | 更强,每个 T0 下联 256 NIC port |
| 单链路故障影响 | 更集中 | 更分散 |
| 对传统 RoCE 友好程度 | 较高,但易 flow collision | 不适合传统单路径 RoCE,需要 MRC |
| 与 MRC 配合 | 可用,但路径冗余粒度较粗 | 非常适合 packet spraying |
| 控制面复杂度 | 动态路由复杂 | 静态 SRv6 更简单 |
| 运维模型 | 依赖路由收敛和交换机 telemetry | 依赖 MRC 自愈 + Clustermapper 数据面探测 |
6. MRC 协议重点
MRC 是对 RoCEv2 Reliable Connection 语义层的扩展。它保留 Verbs / QP 抽象,但论文中的实现主要支持 AI workload 需要的:
- RDMA write
- RDMA write-with-immediate
MRC 的关键机制如下。
6.1 Packet spraying
每个 MRC packet 携带一个 EV,Entropy Value。EV 决定该 packet 使用哪条路径。
传统 RoCE:
一个 QP / flow -> ECMP hash -> 一条路径
MRC:
一个 QP -> 多个 EV -> 多个 path -> 多个 plane
这样可以避免大流之间的 ECMP flow collision。
6.2 Out-of-order placement
每个 MRC 数据包都包含:
- RDMA virtual address
- remote key
因此接收 NIC 可以把乱序到达的 packet 直接写到目标内存位置,不需要等待前面的 packet。
这是 packet spraying 能成立的关键。
6.3 不使用 PFC
MRC 关闭 PFC,使用 best-effort / lossy Ethernet。
原因是:
- packet spraying 下,一个流可能从很多路径到达最后一跳;
- PFC 容易把某条路径的拥塞扩散成 HOL blocking;
- AI collective 对 tail latency 敏感,PFC 带来的阻塞会伤害性能。
6.4 快速选择性重传
MRC 使用:
- SACK:告诉发送端哪些 packet 已收到;
- NACK:快速触发重传;
- selective retransmission:只重传丢失 packet;
- packet trimming:拥塞时交换机裁掉 payload,只转发 header 到接收端,由接收端触发 NACK。
这让 MRC 可以在 lossy Ethernet 上运行,同时快速恢复丢包。
6.5 ECN 作为路径负载均衡信号
MRC 使用 ECN 来判断某个 EV/path 是否比其他路径更拥塞。
处理流程是:
某条路径出现 ECN mark
-> 接收端在 SACK 中回显 ECN 信息
-> 发送端知道该 EV/path 拥塞
-> 临时减少或避免使用该 EV
-> 流量迁移到其他 EV/path
这里 ECN 更像是路径负载均衡信号,而不是传统意义上的全局拥塞控制信号。
7. SRv6 静态源路由重点
论文选择禁用交换机动态路由,改用静态 SRv6 源路由。
7.1 为什么不用动态路由?
因为 MRC 自己已经能快速检测坏路径并绕开,如果交换机动态路由也同时在做自适应,就会出现双重控制:
MRC 发现路径坏了 -> 避开对应 EV
动态路由随后收敛 -> 改变 ECMP 映射
结果:MRC 的 EV/path 状态被打乱,行为更难预测
所以论文的设计思想是:
交换机只做简单、静态、可预测的数据面转发;
端侧 MRC 负责路径选择、负载均衡和故障绕行。
7.2 SRv6 uSID 转发过程
论文使用 SRv6 micro-segment ID,也就是 uSID。
图 3:SRv6 forwarding using uN uSIDs(截图自原文 Figure 2)。
转发过程可以理解为:
IPv6 outer destination address:
locator + uSID1 + uSID2 + uSID3 + ...
当前交换机匹配 locator + 当前 uSID
-> 将 uSID 列表左移 16 bit
-> 下一个 uSID 进入查找位置
-> 查静态转发表
-> 从指定端口转发
这种方式可以在交换机数据面线速完成。
7.3 EV 与 SRv6 地址的关系

图 4:Creating the SRv6 address from an EV and template(截图自原文 Figure 3)。
MRC 中 EV 不只是随机 hash entropy,而是压缩后的路径选择信息。
QP 启动时:
NIC 根据目标地址查配置文件
-> 得到 SRv6 address template
-> 生成 EV set
发送 packet 时:
选择一个 active EV
-> 从 EV 中取 plane 编号、T0 uplink 编号等路径信息
-> 填入 SRv6 template 的 uSID 字段
-> 形成最终 outer IPv6 destination address
这样每个 EV 都可以映射到一条确定的物理路径。
8. 故障处理机制
MRC 的故障处理逻辑如下:
packet 没有正常到达
-> MRC 判断对应 EV/path 可能异常
-> 从 active EV set 移除该 EV
-> 使用 backup EV 替换
-> 丢失 packet 通过其他路径选择性重传
-> 后台 probe 检测坏路径是否恢复
-> 如果 probe 成功次数足够,则恢复该 EV
8.1 不同故障的影响
| 故障类型 | MRC 行为 | 对训练影响 |
|---|---|---|
| T0-T1 链路 flap | 移除对应 EV,走其他路径 | 通常很小 |
| T1 交换机故障/重启 | 避开经过该 T1 的 EV | 通常可继续运行 |
| NIC-T0 链路 down | 避开对应 plane/port | 吞吐下降,QP 不一定失败 |
| T0 交换机故障 | 影响本地接入 plane | 影响比 T1 大 |
| 整个 NIC transceiver flap | 多个 port 同时失败 | 可能导致 QP 失败,是剩余单点风险 |
论文的生产经验是:T0-T1 link flap 可以低优先级处理,因为 MRC 通常会自动绕开,训练任务不需要立即中断。
9. Clustermapper 重点
Clustermapper 是论文中的网络健康探测系统。它由每个节点上的 agent 组成,使用 SRv6 源路由发送数据面 probe。
它主要探测两类路径:
1. NIC -> 本地 T0 -> 同一 NIC agent
用于判断 NIC-T0 链路或 T0 是否异常
2. NIC -> T0 -> T1 -> T0 -> 同一 NIC agent
用于判断 T0-T1 链路或 T1 是否异常
Clustermapper 的价值在于:
| 价值 | 说明 |
|---|---|
| 路径确定 | SRv6 明确指定 probe 走哪条路径 |
| 与数据面一致 | probe 和 MRC 数据包走同样的数据面 |
| 可高频探测 | 不依赖交换机控制面 ICMP |
| 便于定位故障 | 可区分 NIC-T0、T0、T0-T1、T1 问题 |
| 支持 denylist | 对已知坏路径可提前屏蔽 |
10. 实验结果重点
本节补充嵌入论文中的关键实验图。以下图片均为从论文原文对应 Figure 直接截图得到。
10.0 关键实验图

图 5:Figure 6,NIC-T0 switch transceiver flap 对 50K GPU 生产训练吞吐的影响。

图 6:Figure 7,对 Figure 6 事件中受影响节点的 packet loss 进行放大观察。

图 7:Figure 8,T1 switch failure / reboot 对训练吞吐和丢包的影响。

图 8:Figure 9,Cluster B 中 NIC-T0 / T0-T1 链路 fail 与 flap 的可靠性测试。

图 9:Figure 10,T0 switch failure 时 T0-local ib_write_bw 吞吐变化。

图 10:Figure 11,T1 switch failure / recovery 时 Cross-T1 ib_write_bw 吞吐变化。
10.1 点对点性能
论文在 Cluster B 上测得 CX8 MRC 性能:
| 场景 | 小消息 latency | 大消息带宽 |
|---|---|---|
| T0-local | 5.09 µs | 约 770 Gb/s |
| Cross-T1 | 6.54 µs | 约 770 Gb/s |
结论:
- 跨 T1 会增加小消息延迟;
- 大消息吞吐基本不受影响;
- 约 770Gb/s 接近 800G 理论峰值的 96%。
10.2 生产故障案例
论文给出一个 50K GPU 生产训练案例:
- T0 交换机光模块 glitch;
- 4 条 NIC-T0 链路快速 flap;
- 其中 3 个受影响节点在训练任务中;
- 吞吐在约 1 分钟内下降约 25%;
- 随后恢复满速;
- 任务没有 crash;
- QP 没有失败;
- 节点不需要移除。
这说明 MRC 可以把本来可能导致训练失败的网络瞬态故障转化为短时间吞吐下降。
10.3 T1 交换机故障案例
论文还给出 75K GPU 训练任务中的 T1 交换机异常案例:
- T1 switch 停止转发 packet,但控制面仍显示 up;
- 自动化系统检测后重启该 switch;
- 大约四分之一 QP 受影响;
- 约 580K packet dropped;
- MRC 快速 map out 经过坏 switch 的 EV;
- 训练吞吐短暂下降后基本恢复;
- 真正 reboot 时没有明显影响。
这说明在静态 SRv6 + MRC 下,即使交换机控制面无法正确反映数据面状态,端侧仍能根据真实 packet 行为绕过故障。
11. 与传统 RoCE 的关键区别
| 维度 | 传统 RoCE | MRC |
|---|---|---|
| 路径选择 | ECMP 按 flow hash | EV 按 packet 选择路径 |
| 一个 QP 使用路径数 | 通常一条 | 多条,通常 128~256 个 EV |
| 是否支持乱序到达 | 对乱序敏感 | 支持 out-of-order placement |
| 丢包恢复 | 对 loss 敏感 | SACK/NACK/选择性重传 |
| 链路层 | 通常依赖 PFC lossless | 关闭 PFC,使用 lossy Ethernet |
| 拥塞处理 | DCQCN/PFC 等 | ECN path feedback + EV avoidance |
| 故障绕行 | 依赖路由/重试/人工 | MRC 自动移除坏 EV |
| 运维复杂度 | 路由、PFC、ECMP、telemetry 都复杂 | 静态路由 + 数据面 probe |
12. 局限性
论文方案也有局限:
-
MRC 不是完整通用 RDMA 替代品
当前主要支持 AI workload 需要的 RDMA write / write-with-immediate。 -
NIC-T0 故障仍会造成明显降级
尤其是 plane 数较少时,丢一个 plane 可能损失较大带宽。 -
整颗 NIC transceiver flap 仍是风险
如果一个 transceiver 导致多个 port 同时不可用,可能造成 QP 失败。 -
持续高丢包不可接受
MRC 能处理 transient loss,但如果某路径或网络长期高丢包,训练性能仍会明显下降。 -
需要软硬件协同
需要 NIC、交换机、SRv6、MRC 协议栈、Clustermapper、拓扑规划一起配合,不是单独修改软件即可完成。
13. 总结
这篇论文的核心贡献是把 AI 后端网络从传统的:
RoCE + ECMP + PFC + 动态路由
转向:
MRC packet spraying + lossy Ethernet + selective retransmission + static SRv6 + multi-plane topology
它的关键思想是:
不把网络可靠性完全交给交换机控制面和 lossless fabric,而是让端侧 NIC 通过 MRC 主动感知路径质量、均衡流量、恢复丢包、绕开故障。
对于十万级 GPU 同步训练,这种设计的价值在于:
- 降低 tail latency;
- 减少 flow collision;
- 减少 PFC 带来的 HOL blocking;
- 将很多链路/交换机故障从“训练失败”降级为“短时吞吐抖动”;
- 简化超大规模网络的日常运维。
参考资料
- Resilient AI Supercomputer Networking using MRC and SRv6
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐
所有评论(0)