跳到主要内容

Ring 拓扑

关联:总览.md — 名词定义与评估指标体系


基本结构

Ring(环形)由 $N$ 个节点构成双向环 $C_N$:每个节点只与左右相邻节点直接相连,度数恒为 2。可视化为一个圆圈,节点均匀分布在圆周上,每条边连接相邻两节点,首尾相接。

Ring 是所有互联拓扑中结构最简单、成本最低的一种。其核心价值不在于作为独立的集群拓扑使用,而在于 Ring AllReduce 算法——这一算法设计完全针对环形流量模式,达到带宽理论下界。


关键参数

属性
度数2
直径$\lfloor N/2 \rfloor$
链路数$N$
割集带宽$2b$(与 $N$ 无关)
Vertex-TransitiveYes(循环群 $\mathbb{Z}_N$ 对称)

致命缺陷:割集带宽恒为 $2b$,不随规模增长。将环从任意位置切开,必须切断恰好 2 条链路。$N$ 从 8 增到 1024,AllReduce 的可用带宽不增反降——步数 $O(N)$ 增长导致延迟累积,而割集带宽始终不变。


通信性能特性

Ring AllReduce(核心价值)

Ring AllReduce(Baidu, 2017)是 Ring 拓扑的核心价值所在:

分两阶段——ReduceScatter + AllGather,每阶段 $N-1$ 步,每步传输 $M/N$ 数据。

$T_{\text{Ring-AllReduce}} = 2(N-1) \cdot \left(\alpha + \frac{M}{N \cdot \beta}\right)$

总传输量 $= \frac{2(N-1)}{N} \cdot M$,达到带宽理论下界(来源:Thakur et al., 2005)。

带宽最优性:对于任意 AllReduce 算法,每个节点至少需要发送 $\frac{N-1}{N} \cdot M$ 字节数据(因为需要接收其他 $N-1$ 个节点的贡献),Ring AllReduce 恰好达到这个下界。

来源:Gibiansky, "Bringing HPC Techniques to Deep Learning", 2017

AllToAll on Ring

每步向右邻居发送一份数据、从左邻居接收,$N-1$ 步完成。远端节点对的数据必须经过多跳中转,效率受限于环带宽。

拥塞特性

  • Ring AllReduce:每步恰好每条链路被一条流使用——完美流水线,零争用。这是 Ring 的最佳用例。
  • 非均匀流量(如 P2P、AllToAll):中间链路成为热点。跨半环的流量使 $\lfloor N/2 \rfloor$ 条链路被同一条流占用。

路由算法

最短路径路由:沿较短方向转发,最多 $\lfloor N/2 \rfloor$ 跳。

死锁避免:单向 Ring 路由天然无死锁。双向路由可用 dateline 机制——在环上指定一条链路为"日期线",跨越时强制切换虚通道(来源:Dally & Seitz, 1987)。


适用场景

  • Ring AllReduce 算法层面:适合大消息 AllReduce($M > 100$ MB),带宽利用率达到理论最优。NCCL 在 NVLink 环、PCIe 环上均实现了 Ring AllReduce 变体。
  • 小规模同质集群$N \leq 16$ 时,割集带宽绝对值不低,延迟步数尚可接受。
  • 作为更大拓扑的子结构:Fat-tree 内的同 rack GPU 通过 NVLink 形成逻辑 Ring,运行 Ring AllReduce。

局限性

  1. 割集带宽不随规模增长:恒为 $2b$,是所有可扩展拓扑中最差的。$N = 1024$ 时割集带宽等于 $N = 4$ 时。
  2. 延迟 $O(N)$:AllReduce 的延迟项 $2(N-1)\alpha$ 随节点数线性增长,大规模时延迟极差。
  3. 小消息性能极差:延迟项主导时($M < 1$ MB),Ring 比 Tree AllReduce 慢 $O(N/\log N)$ 倍。
  4. 故障脆弱性:单链路故障将环分裂为链,割集带宽降至 $b$(减半);两个不同位置的链路故障将环断开,网络分裂。

在大模型集群中的实际应用

Ring 作为独立互联拓扑已基本被淘汰,但 Ring AllReduce 算法在所有拓扑上广泛使用:

系统演进路径说明
DGX-1(2016)8× P100 构成混合 cube-mesh 拓扑来源:NVIDIA DGX-1 Whitepaper
DGX-2(2018)升级为 NVSwitch 全互联Ring 作为独立拓扑淘汰
现代 GPU 集群NCCL 在 NVLink / IB 拓扑上运行 Ring AllReduce算法保留,拓扑变化

AMD MI300X 封装内环形:MI300X 的 8 个计算 Die (XCD) 通过 Infinity Fabric 4 (IF4) 以环形连接,相邻 XCD 间带宽 ~200 GB/s,非相邻 Die 间带宽衰减明显(~50-70 GB/s,经中间 XCD 转发)。这是现代系统中 Ring 作为节点内拓扑的典型案例,同时也是其缺陷的体现——与 NVSwitch 全互联相比,非相邻 Die 间带宽显著降低。


成本

$N$ 条链路、度数 2——所有拓扑中成本最低。但割集带宽不随规模增长,独立用于集群级互联仅适合极小规模($N \leq 8$)或作为更大拓扑中的子环结构。


参考资料

资料关键内容
Gibiansky, "Bringing HPC Techniques to Deep Learning", 2017Ring AllReduce 算法原始描述
Thakur et al., 2005AllReduce 带宽下界证明
NCCLRing AllReduce 在 GPU 集群上的实现
Chips and Cheese, MI300X IF TopologyMI300X 环形拓扑带宽分析