3. NVIDIA AI集群网络拓扑设计
在 NVIDIA AI 集群中,网络拓扑不是“把交换机和 GPU 连起来”这么简单,它直接决定了 AllReduce、All-to-All 这类集合通信的可用带宽、跳数和尾延迟。本节围绕四条主线展开:主流拓扑的适用边界、GPU 与网卡的配比关系、超节点(SuperPOD/NVL72 类)架构的组网逻辑,以及带宽收敛比的量化计算。理解这些内容后,才能判断一个 8 卡、32 卡还是 1024 卡集群该选哪种拓扑,以及为什么同样的 400G 网卡在不同拓扑下表现差异巨大。
一、三类主流拓扑的结构与适用场景
Fat-Tree(胖树)是最经典的 Clos 结构,核心思想是“越往上带宽越大”。以三层胖树为例:接入层交换机连接 GPU 节点,汇聚层连接接入层,核心层连接汇聚层。若每台交换机有 k 个端口,则接入层每台交换机下挂 k/2 个节点、上联 k/2 条链路,整个网络可支持 k³/4 个节点,且任意两点间保持 1:1 无收敛。它的优点是路径对称、任意 GPU 对之间带宽一致,适合 All-to-All 密集的 MoE 训练;缺点是核心层交换机和光模块数量随规模平方级增长,1024 卡以上成本急剧上升。
Rail-Optimized(轨道优化)针对的是“同一台服务器内 8 张 GPU 的同一序号网卡走同一轨道”这一规律。把每台服务器第 0 张 GPU 的网卡接入 Rail-0 网络,第 1 张接入 Rail-1,依此类推。这样做的关键收益是:NCCL 在做 AllReduce 的 ReduceScatter 和 AllGather 阶段时,同一 GPU 只需与本 Rail 内其它节点的同序号 GPU 通信,流量被限制在单条轨道内,避免了跨轨道绕行。Rail-Optimized 通常与胖树结合,形成“轨道内胖树 + 轨道间全互联”的混合结构,在 8 卡服务器为主的集群中性价比很高。
DragonFly+则用“组内高带宽 + 组间长跳”换取更低的交换机端口消耗。每个组(Group)内部是全互联或胖树,组与组之间通过少量全局链路连接,形成直径更小的拓扑。它的优势是网络直径小、可扩展性好,适合跨机房或跨机柜的分布式训练;代价是组间链路存在收敛,需要靠自适应路由和全局负载均衡来弥补。DragonFly+ 在 NVIDIA 的 GB200 NVL72 等超节点场景中常与 NVLink 域配合使用。
二、GPU 与网卡的配比:1:1 还是 1:2
GPU 与网卡的配比决定了单节点对外带宽的上限。常见配置有三类:1:1 配比(每张 GPU 配一张 400G 网卡,单节点 8 卡配 8 张网卡,对外 3.2Tbps)、1:2 配比(每两张 GPU 共享一张网卡,单节点 4 张网卡,对外 1.6Tbps)、以及1:4 配比(每四张 GPU 共享一张网卡)。配比越低,单卡可用网络带宽越小,但成本也越低。
判断依据是“计算通信比”。以 400G 网卡、8 卡节点为例,若单卡算力对应 400G 网络带宽,则 1:1 配比下每卡可独享 400G;若采用 1:2,则每卡平均只有 200G,AllReduce 的通信时间会明显拉长。对于大模型训练,尤其是张量并行(TP)和专家并行(EP)场景,通信量极大,通常要求 1:1 甚至更高;而推理或小规模微调,1:2 往往已足够。NVIDIA 在 DGX H100 上采用 8 张 400G ConnectX-7,即 1:1 配比,正是为了匹配 NVLink 域内的高带宽需求。
三、超节点架构:把 NVLink 域当作一个“大 GPU”
超节点(如 GB200 NVL72)的核心思路是:用 NVLink 把 72 张 GPU 连成一个高带宽、低延迟的域,域内 GPU 之间通信不再经过以太网,而是走 NVLink Switch。对外则通过每张 GPU 对应的 ConnectX-8 网卡接入以太网,形成“域内 NVLink + 域间 RoCE”的两级网络。这样做的收益是:域内 AllReduce 带宽可达 1.8TB/s 量级,域间则用 800G 网卡做轨道优化互联。设计时要特别注意:NVLink 域的大小决定了“哪些通信可以不出域”,而域间拓扑则决定了跨域通信的收敛比。
四、带宽收敛比计算:从公式到实例
收敛比(Oversubscription Ratio)定义为“下行总带宽 ÷ 上行总带宽”。以一台 64 端口 400G 交换机为例,若下挂 32 台服务器(每台 8 卡、1:1 配比,即每台 8 张 400G 网卡),则下行带宽为 32 × 8 × 400G = 102.4Tbps;若该交换机只有 16 个上行端口,上行带宽为 16 × 400G = 6.4Tbps,收敛比 = 102.4 / 6.4 = 16:1。这个比值意味着:当所有 GPU 同时向域外发送数据时,实际可用带宽只有需求的 1/16。
实际设计中,收敛比通常控制在 2:1 到 4:1 之间。以 1024 卡集群为例,若采用三层胖树,接入层 32 台交换机、每台 32 个下行端口,汇聚层 16 台、核心层 8 台,则任意两点间保持 1:1 无收敛,但核心层需要 8 × 32 = 256 个 400G 端口,成本很高。若改用 Rail-Optimized,每条轨道内做 4:1 收敛,则核心交换机数量可减少约 75%,而 AllReduce 的轨道内通信仍能保持较高效率。计算时要注意:收敛比应按“最坏情况下的同时通信需求”评估,而不是按平均流量。
五、拓扑选型的决策要点
综合来看,Fat-Tree 适合对带宽对称性要求极高、预算充足的场景;Rail-Optimized 适合 8 卡服务器为主、以 AllReduce 为主的训练集群;DragonFly+ 适合跨机柜、跨机房的大规模扩展。GPU 与网卡配比要匹配计算通信比,超节点则把 NVLink 域和以太网域分开设计。收敛比不是越低越好,而是要在成本、带宽和实际通信模式之间找到平衡点。实际选型时,建议先用小规模集群做 NCCL 带宽测试,验证拓扑是否达到预期,再决定是否扩大规模。