Skip to content

超节点账:容量、吞吐与同步代价 ​

单卡显存放不下、单卡带宽喂不饱,行业给出的答案是超节点——用机内高速互连把 8~64 张卡包装成一个"大 GPU"抽象。但包装是有代价的:容量线性加,带宽受拓扑限制,同步代价随规模增长。本文把超节点的三本账算清:聚合容量、聚合吞吐、同步代价。方法框架参考开源书稿《深入理解 AI Infra》(Apache-2.0),公式与算例为本站自行推导整理,可复算。

1. 为什么需要超节点 ​

两个原因为什么"卡越多越好但单卡不够用":

  1. 显存墙:700B 模型 FP16 权重 1.4 TB,单卡 80G 放不下——需要 N 卡分摊;
  2. 带宽墙:decode 每 token 读全量权重(见 加速器算力账),单卡带宽决定了单卡吞吐上限。

超节点的本质:把 N 张卡的容量相加,同时把卡间互连带宽当作"新的内存带宽"。设计问题变成:互连要多快,同步代价才不至于吃掉并行收益?

2. 容量账:线性相加,但要扣内存墙 ​

Capnode=N×(VRAM_per_card),Peaknode=N×Peak_per_cardCap_{node} = N \times (VRAM\_per\_card), \quad Peak_{node} = N \times Peak\_per\_card

容量与算力随卡数线性增长——但"可交付"的容量要扣掉三笔:

扣减项说明
并行切分冗余TP/PP 每卡都要保留一部分重叠状态,聚合显存利用率 70-90%
KV/激活驻留推理超节点里 KV 也要摊到各卡,占用不可用于权重的显存
通信缓冲区NCCL 等集合通信要预留缓冲,规模越大占比越高

判断:规划超节点规模时按"聚合显存 × 0.8"做可用容量,别按 N×VRAM 拍脑袋。

3. 吞吐账:机内互连才是超节点的灵魂 ​

超节点与"一堆服务器"的区别,全在机内互连带宽。数量级对比(单向,近似):

互连带宽相对 200G IB
NVLink 3(H 系列)~900 GB/s~36×
NVLink 4(新一代)~1800 GB/s~72×
PCIe Gen4×16(L40S 机内)~32 GB/s~1.3×
200G HDR IB(机间)~25 GB/s1×
400G NDR IB(机间)~50 GB/s2×

这就是超节点的核心账:把通信从"机间 IB 25GB/s"搬到"机内 900GB/s",同一笔梯度同步快 36 倍。反过来看 L40S:机内 PCIe 只有 32GB/s,和机间 IB 几乎一个数量级——L40S 的"超节点"体验约等于没有超节点(见 L40S 无 NVLink),训练规模一大就必须靠机间拓扑补。

4. 同步代价账:通信时间 vs 计算时间 ​

训练中每步的集合通信时间(ring 模型,见 通信账):

Tsync=2(N−1)N×MsgBWnode,同步占比=TsyncTcompute+TsyncT_{sync} = \frac{2(N-1)}{N} \times \frac{Msg}{BW_{node}}, \quad 同步占比 = \frac{T_{sync}}{T_{compute}+T_{sync}}

超节点规模的选择标准:同步占比 < 30%。两个推论:

  • 超节点越大,单步梯度 Msg 固定、busbw 越接近 2×BW——机内互连的 busbw 优势是超节点能撑大的前提;
  • 超节点内适合放通信频繁的并行(TP/PP 每层都同步),超节点间放通信稀疏的并行(DP 每步一次)——这就是"TP 在超节点内、DP 跨超节点"的标准架构。

5. 可复算 Python 函数 ​

python
def supernode_sync(msg_gb, bw_gbps, n, compute_s):
    """超节点内 ring 同步时间与占比;bw 传机内互连聚合带宽(Gbps)"""
    busbw = bw_gbps * (2 * (n - 1) / n) / 8          # GB/s
    t_sync = 2 * (n - 1) / n * msg_gb / busbw
    ratio = t_sync / (compute_s + t_sync)
    return t_sync, ratio

supernode_sync(msg_gb=140, bw_gbps=7200, n=8, compute_s=5)   # NVLink 聚合 ~7.2Tbps
# (0.155 s, 3.0%)  → 机内同步占比 3%,可忽略
supernode_sync(msg_gb=140, bw_gbps=256, n=8, compute_s=5)    # PCIe 聚合 ~256Gbps
# (4.38 s, 46.7%) → 占比 47%,通信吃掉一半时间,扩展效率崩

6. 交付清单 ​

  1. 先定超节点"够不够":聚合显存 × 0.8 ≥ 模型+KV,否则扩大规模或换并行;
  2. 看机内互连数量级:机内带宽 ≤ 机间带宽 × 2 时,"超节点"名不副实,直接按普通节点设计拓扑;
  3. 同步占比 <30% 才扩超节点规模,否则先优化互连或改并行策略;
  4. 并行放置:TP/PP 放超节点内、DP 跨超节点,别混放;
  5. 实测每步通信时间与模型对比(见 验收基线)。

本文为本站自行推导整理,方法框架参考开源书稿《深入理解 AI Infra》(Apache-2.0);具体版本号与实测数据以现场为准。

AI-HPC 智算超算专家 · Contact: openaihpc@gmail.com