DGX/HGX GPU 集群网络拓扑结构:胖树、脊叶和蜻蜓+ 对比
分享
介绍
在设计用于人工智能训练的GPU集群时,选择合适的网络拓扑结构是最关键的决策之一。拓扑结构决定了带宽可用性、延迟特性、可扩展性限制以及总体拥有成本。本文深入比较了DGX和HGX集群的三种主流拓扑结构:胖树(Fat-Tree)、脊叶(Spine-Leaf,CLOS)和蜻蜓+(Dragonfly+)。
拓扑学基础
网络拓扑定义了交换机和计算节点之间的互连方式。对于人工智能集群而言,理想的拓扑结构必须满足以下条件:
- 高二分带宽:集群的任意一半都可以以全速与另一半通信。
- 低直径:任意两个节点之间的最小跳数
- 可扩展性:能够从数百个节点扩展到数万个节点。
- 容错性:端点之间有多条路径以实现冗余
- 成本效益:性能与资本支出之间的最佳平衡
胖树拓扑
建筑学
胖树是一种多根树状结构,其带宽向核心递增。一个典型的三层胖树包含:
- 边缘/叶层:直接连接到GPU服务器的交换机
- 聚合/主干层:连接叶交换机的中间交换机
- 核心层:提供 pod 间连接的顶层交换机(适用于超大规模部署)
在纯粹的 Fat-Tree 架构中,每个叶子交换机都连接到每个脊交换机,从而形成一个无阻塞的结构,具有完整的二分带宽。
主要特征
- 二分带宽: 100%(无阻塞)
- 直径: 4-6个啤酒花(叶→刺→刺→叶)
- 可扩展性:采用三层架构,最多可支持 10 万个以上的终端节点。
- 冗余:任意两台服务器之间有 N 条路径(N = 脊交换机的数量)
优势
- 可预测的、确定性的性能
- 成熟的设计模式和操作实践
- 完全二分带宽消除网络瓶颈
- 非常适合全员通信(梯度同步)
缺点
- 电缆数量多:N 个交换机需要 O(N²) 根电缆
- 成本高:需要很多高基数开关
- 功耗与集群规模呈线性关系
- 大型部署中物理布线的复杂性
最佳应用案例
- 拥有 100-5,000 个 GPU 的集群
- 需要保证带宽的工作负载(LLM培训)
- 可预测性比成本更重要的环境
脊柱-叶片(CLOS)拓扑结构
建筑学
Spine-Leaf 是一种两层 CLOS 架构,是 Fat-Tree 的通用化版本,专为数据中心部署而优化:
- 叶层:连接服务器的机架顶部 (ToR) 交换机
- 脊层:提供叶级互连的聚合交换机
每个叶子都连接到每个脊柱,但与 Fat-Tree 不同,Spine-Leaf 允许不对称设计(例如,不同的端口数量、超额订阅率)。
主要特征
- 二分带宽: 50-100%(可通过超额订阅进行配置)
- 直径: 2 个啤酒花(叶→刺→叶)
- 可扩展性: 10,000-100,000 个端点
- 灵活性:支持锥形设计(2:1、4:1 超额订阅)
优势
- 比 Fat-Tree 延迟更低(跳数更少)
- 灵活的超额订阅机制可实现成本优化
- 符合行业标准的设计,并有广泛的供应商支持
- 更易于逐步扩展(根据需要添加脊柱交换机)
缺点
- 过度设计可能会造成瓶颈
- 需要精心设计交通方案以避免交通热点区域。
- 仍然需要大量的布线(虽然比 Fat-Tree 少)。
最佳应用案例
- 通用GPU集群(混合训练/推理)
- 部署方案优先考虑成本效益平衡
- 具有本地感知工作负载放置功能的集群
DGX SuperPOD 示例
NVIDIA 的 DGX SuperPOD 采用 Spine-Leaf 设计,并搭载 InfiniBand 技术:
- 叶交换机: NVIDIA Quantum-2 QM8700(64 个端口,400Gbps)
- 主干交换机: NVIDIA Quantum-2 QM9700(64 个端口,400Gbps)
- 配置:每叶节点 20 个 DGX A100 系统,每叶节点 8 条上行链路连接至脊节点
- 二分带宽:每个 SuperPOD 25.6Tbps(无阻塞)
Dragonfly+拓扑
建筑学
Dragonfly+ 是一种专为超大规模系统(10,000 个以上节点)设计的分层拓扑结构。它将节点组织成组,组内节点之间相互连通,组间连接稀疏:
- 组内:组内所有交换机完全连接。
- 组间:每个交换机都与其他组中的交换机相连。
- 层级式:可以扩展到多个层级(组的组合)
主要特征
- 二分法带宽: 40-60%(低于 Fat-Tree,但足以满足大多数工作负载的需求)
- 直径: 3 跳(本地交换机 → 全局链路 → 远程组 → 目的地)
- 可扩展性:支持 10 万个以上的端点,具有两级层次结构
- 电缆效率: O(N^1.5) vs. Fat-Tree 的 O(N²)。
优势
- 电缆数量大幅减少(比 Fat-Tree 减少 50-70%)
- 以极高的规模降低每个港口的成本
- 非常适合具有局部性的工作负载(模型在组内并行化)
- 开关数量减少,从而降低了功耗。
缺点
- 需要复杂的路由算法(自适应路由至关重要)
- 性能很大程度上取决于流量模式
- 对于所有类型的流量而言,Fat-Tree 的可预测性较差。
- 需要复杂的工作负载分配策略
最佳应用案例
- 超大规模集群(10,000+ GPU)
- 具有强局部性的工作负载(流水线并行、联邦学习)
- 对成本较为敏感且不需要 100% 二分带宽的部署
拓扑结构对比表
| 方面 | 肥树 | 脊叶 | 蜻蜓+ |
|---|---|---|---|
| 二分 BW | 100% | 50-100% | 40-60% |
| 直径 | 4-6个啤酒花 | 2 跳 | 3次跳跃 |
| 可扩展性 | 10万个节点 | 10万个节点 | 100万+个节点 |
| 电缆数量 | 非常高 | 高的 | 中等的 |
| 成本(相对) | 最高 | 中等的 | 最低 |
| 复杂 | 低的 | 低的 | 高的 |
| 可预测性 | 出色的 | 好的 | 公平的 |
选择合适的拓扑结构
适用于中小型集群(100-1000 个 GPU)
推荐:脊柱叶(2层CLOS)
- 成本、性能和简易性之间的最佳平衡
- 2跳延迟非常适合训练工作负载
- 易于部署和操作
适用于大型集群(1,000-10,000 个 GPU)
建议:Fat-Tree 或 Spine-Leaf,尽量减少超额认购。
- 在此规模下,完整的二分带宽至关重要。
- 可预测的性能足以证明更高的成本是合理的。
- 这些拓扑结构的运行成熟度降低了风险
适用于超大规模集群(10,000+ GPU)
推荐:蜻蜓+或多层CLOS
- 在这种规模下,电缆缩减变得至关重要。
- 工作负载放置策略可以缓解二分带宽降低的问题。
- 与 Fat-Tree 相比,成本可节省 30-50%。
混合方法
许多部署都采用混合拓扑结构:
- 组内胖树 + 组间蜻蜓:训练组内全带宽,组间稀疏连接
- 采用轨道优化的脊叶式架构:计算、存储和管理流量采用独立的网络结构
- 分层式 CLOS:用于超大规模部署的多层主干网络
结论
GPU集群没有万能的拓扑结构。由于其可预测性和运维成熟度,Fat-Tree和Spine-Leaf架构在100到10000个GPU的规模范围内占据主导地位。而Dragonfly+架构则因其成本效益,成为超大规模部署的理想选择,能够充分利用工作负载的局部性。
选择拓扑结构时,请考虑以下因素:
- 集群规模和增长轨迹
- 工作量特征(全员沟通与本地化沟通)
- 预算限制(资本支出和运营支出)
- 操作方面的专业知识和工具
对于目前部署 DGX 或 HGX 集群的大多数组织而言,采用 400G/800G 光模块和 1:1 或 2:1 超额订阅的两层 Spine-Leaf 架构,在性能、成本和操作简易性方面达到了最佳平衡。