AI 集群网络 —— InfiniBand、RoCE 与万卡训练
NVL72 内 72 GPU 全互联只是开始——大模型训练要几千甚至几万 GPU。这层网络叫 scale-out。本文专题讲。本章作为第六章网卡的”前传”。
一张全景
graph TB GPU[GPU SM] HBM[HBM 显存] NVL[NVLink/NVSwitch
72-576 GPU 紧耦合] NIC[RDMA 网卡
400G/800G InfiniBand 或 RoCE] SW[Spine/Leaf 交换机
整集群] GPU --- HBM GPU --- NVL NVL -.- NIC NIC --- SW SW --- SW
每跨一层带宽掉 5-10×、延迟涨 5-10×——AI 集群网络设计就是想方设法让最重的通信留在低层。
为什么以太网 TCP 不够
传统数据中心的”以太网 + TCP”路径:
1 | |
AI 训练每步要做 AllReduce——成千上万次集合通信,要求微秒级延迟和 CPU 零开销。TCP 完全不行。
RDMA(Remote Direct Memory Access) 就是为这个而生:
graph LR A[GPU A 显存] -.- B[GPU B 显存] A --> N1[网卡 A] N1 --> N2[网卡 B] N2 --> B CPU[CPU] -.-> X[不参与
kernel bypass]
RDMA 让网卡直接读写远端显存——不过 CPU、不过 kernel、零拷贝。
RDMA 的两条物理路线
graph TB RDMA[RDMA] RDMA --> IB[InfiniBand
专用网卡 + 专用交换机
NVIDIA Mellanox 主导] RDMA --> ROCE[RoCE
RDMA over Converged Ethernet
跑在普通以太网上] RDMA --> IWARP[iWARP
RDMA over TCP
已边缘化]
InfiniBand(IB)
历史最悠久——2000 年开始用,原本是 HPC 专用:
1 | |
InfiniBand 是 NVIDIA AI 集群的”默认”网络。
RoCE v2
把 RDMA 协议跑在普通以太网上:
1 | |
IB vs RoCE 实际选择
1 | |
选 IB 还是 RoCE 是 AI 集群的世纪之争:
1 | |
“轨道”拓扑(Rail-Optimized)
AI 集群最大的特殊之处——Rail(轨道)拓扑。
普通 Fat-Tree
graph TB S1[Spine 1] --- L1[Leaf 1] & L2[Leaf 2] & L3[Leaf 3] & L4[Leaf 4] S2[Spine 2] --- L1 & L2 & L3 & L4 S3[Spine 3] --- L1 & L2 & L3 & L4 S4[Spine 4] --- L1 & L2 & L3 & L4 L1 --- N1[节点 1
8 GPU] L2 --- N2[节点 2
8 GPU]
普通 Fat-Tree 每节点 1-2 张网卡——8 GPU 共享 1 张 400G 网卡。
Rail 拓扑:每 GPU 一张网卡
graph TB
subgraph Rail0["Rail 0"]
L0[Leaf-0 交换机] --- G00[节点 1 GPU 0] & G10[节点 2 GPU 0]
end
subgraph Rail1["Rail 1"]
L1[Leaf-1 交换机] --- G01[节点 1 GPU 1] & G11[节点 2 GPU 1]
end
subgraph RailN["Rail 2-7"]
LN[Leaf-2..7]
end
8 GPU/节点 → 8 个 Rail,每 Rail 一张 IB 卡。同 Rank 的 GPU(GPU 0)跨节点直接走自己的 Rail——不和别的 GPU 抢带宽。
1 | |
为什么 Rail 适合 AI
1 | |
NVIDIA SuperPOD 设计指南就把 Rail-Optimized 作为默认。
几种典型集群拓扑
NVIDIA SuperPOD(256 H100)
1 | |
xAI Colossus(10 万 H100,2024)
1 | |
Meta 24K H100 集群(2024)
1 | |
Google Gemini 集群(TPU)
1 | |
NCCL:集合通信的事实标准
graph TB PT[PyTorch / JAX / TF] PT --> NCCL[NCCL
NVIDIA Collective
Communications Library] NCCL --> NVLINK[NVLink
节点内] NCCL --> IB[IB / RoCE
跨节点]
NCCL 主要算法:
1 | |
NCCL 调优要点
1 | |
“无损以太网”的复杂
RoCE 跑在以太网上要”无损”——靠两个机制:
PFC(Priority Flow Control)
graph LR A[发送端] -->|流量| B[交换机] B -->|缓冲快满| A A[发送端] -.->|PAUSE| A
队列快满时交换机发 PAUSE 帧让发送方暂停——链路级背压。
PFC 调优坑:
1 | |
ECN(Explicit Congestion Notification)
1 | |
PFC + ECN 配合,让 RoCE 在以太网上达到”近 IB”性能——但调优极其复杂。这是为什么 AI 集群运维比一般数据中心难十倍。
集群网络的”故障” reality
万卡集群每天有 GPU 故障、网络抖动、链路 flap:
1 | |
网卡的代次
1 | |
NVIDIA 不只是卖 GPU——网卡的”墙内市场”也是它的:
graph TB NV[NVIDIA AI 集群] NV --> GPU[GPU: H100/B200] NV --> NIC[网卡: ConnectX-7/8 + BlueField] NV --> SW[交换机: Quantum-2 NDR / Spectrum] NV --> CABLE[线缆: 光模块 / DAC / AOC] NV --> SW2[NVSwitch + NVLink Switch]
整套 AI 集群基础设施都是 NVIDIA 一家供货——这是 NVIDIA 比 AMD 强的真正护城河。
为什么 800G 网络没让训练更快
每代 IB 带宽翻倍——但 AllReduce 时间没线性下降,因为:
1 | |
PCIe 6.0 / NVLink 5 是配套必须升级的——B200 就是这么设计。
国产 AI 集群网络
鹊信(Galaxlink,华为)
华为 Atlas 集群的 RDMA 网络:
1 | |
国产 RDMA 网卡
1 | |
待补充:国产 AI 集群网络(万卡级)部署案例和性能数据。
一些诊断命令
1 | |
一张总结:AI 集群网络栈
graph TB L1[GPU SM
shared mem TB/s] L2[GPU 内 HBM
3-8 TB/s] L3[NVLink 节点内
1.8 TB/s, 700 ns] L4[NVL72 机柜
72 GPU, 1 us] L5[InfiniBand/RoCE
400-800 G, 3-5 us] L6[跨数据中心
WAN, 10-100 ms] L1 --> L2 --> L3 --> L4 --> L5 --> L6
AI 训练集群”软件栈”必须理解每一层带宽和延迟——只有把通信安排在合适的层,才能跑出好的 MFU。
经验数字
1 | |
小结
- AI 集群分两层:scale-up(NVLink,紧耦合)+ scale-out(IB/RoCE,松耦合)
- IB 默认稳定,RoCE 价格优但调优难
- Rail-Optimized 是 AI 集群标准拓扑
- NCCL 是事实标准的集合通信库
- 万卡集群每天有数十个故障——容错训练是必须能力
- NVIDIA 的网卡 + 交换机 + GPU “全栈”是真正护城河
下一篇是第五章收口——GPU 选型和小结。