AI 基础架构 · 第 04 条 · 集群
训练集群怎么连起来:NVLink 与 InfiniBand
一张卡再快也没用。当几千张卡一起训练时,真正的瓶颈变成了它们之间怎么说话。
两层结构
AI 集群的网络通常分成两层:
- 机内互联(如 NVLink):同一台服务器内 GPU 之间的直连,带宽极高、延迟极低。
- 机间互联(如 InfiniBand / 高速以太网):服务器之间的连接,带宽和延迟都差一个档次。
这个层级差异决定了并行策略的设计:通信密集的操作尽量放在机内,通信稀疏的放到机间。很多优化的核心就是「怎么切分,才能让跨机通信最少」。
带宽和延迟是两件事
| 指标 | 含义 | 影响什么 |
|---|---|---|
| 带宽 | 每秒能传多少数据 | 大批量参数同步的速度 |
| 延迟 | 一次往返要多久 | 小消息频繁通信的效率 |
训练中的通信分两类:大块的梯度同步(吃带宽)和频繁的小消息(吃延迟)。两者对网络的要求不同,这就是为什么高端集群会用专门的协议栈而不是通用以太网——通用的协议栈在延迟上有额外开销。
拓扑决定上限
把几千张卡两两连起来是不现实的(成本按平方增长)。所以实际用的是分层拓扑:机内全连接、机间按一定结构连接(胖树、环形、多维环面等)。
拓扑决定了「哪些卡之间通信便宜、哪些贵」,而并行策略必须在拓扑的约束下设计。同样的模型和同样的卡数,用不同的拓扑和切分方式,实际训练速度可能差好几倍。
为什么加卡会变慢
这听起来反直觉,但确实会发生:如果并行策略不合适,新增的卡带来的通信开销超过了它贡献的算力,整体速度反而下降。
经验规律是:数据并行随卡数增加,通信量也线性增加;当卡数到了某个规模,通信就会成为主导。这就是为什么大规模训练必须用更复杂的混合并行,不能简单地堆数据并行。
工程上的含义
网络的成本在集群总成本里占比不低(交换芯片、光模块、线缆),而且它决定了集群的有效算力——标称算力打多少折扣,很大程度取决于网络设计得好不好。
这解释了一件事:为什么同样是「几万张卡」,不同公司实际能跑出来的训练速度差异很大。差距往往不在卡本身,在网络和调度。
要点回顾
- 集群网络分两层:机内(NVLink 类)带宽极高,机间(InfiniBand 类)差一个档次。
- 带宽和延迟是两件事:梯度同步吃带宽,频繁小消息吃延迟。
- 拓扑决定了卡间通信的成本结构,并行策略必须在其约束下设计。
- 加卡不一定变快——如果通信开销超过新增算力,速度会下降。
- 标称算力打多少折扣,很大程度取决于网络和调度,而不只是卡本身。