InfiniBand:跨机器的高速网络
上一篇讲了机器内部 GPU 之间怎么通信(NVLink 和 PCIe)。但大模型训练动不动就要几十上百张卡,一台机器最多 8 张,肯定要跨机器。
跨机器通信用什么?大部分人第一反应是以太网。但以太网的带宽和延迟,跑分布式训练完全不够用。
这篇讲 AI 集群里真正在用的高速网络:InfiniBand。
以太网为什么不够用
带宽对比
| 网络类型 | 带宽 |
|---|---|
| 千兆以太网 | 125 MB/s |
| 万兆以太网(10GbE) | 1.25 GB/s |
| 25GbE | 3.1 GB/s |
| 100GbE | 12.5 GB/s |
| InfiniBand HDR | 25 GB/s |
| InfiniBand NDR | 50 GB/s |
就算用 100G 以太网,带宽也只有 12.5 GB/s。
而 NVLink 4.0 是 450 GB/s。跨机器通信比机器内通信慢 30 多倍。
延迟对比
| 网络类型 | 延迟 |
|---|---|
| 以太网(TCP/IP) | 50-100 微秒 |
| RoCE(以太网 RDMA) | 2-5 微秒 |
| InfiniBand | 0.5-1 微秒 |
以太网的协议栈太重(TCP/IP),每次通信都要经过操作系统内核,延迟高。
InfiniBand 是什么
InfiniBand 是一种高性能计算网络技术,最早用在超算领域,现在是 AI 训练集群的标配。
核心特点
- 高带宽:HDR 200Gbps,NDR 400Gbps
- 低延迟:亚微秒级
- RDMA:绕过 CPU 直接访问内存,效率极高
RDMA 是关键
RDMA(Remote Direct Memory Access)是 InfiniBand 的核心能力。
普通网络通信:
发送方内存 → CPU → 网卡 → 网络 → 网卡 → CPU → 接收方内存
RDMA:
发送方内存 → 网卡 → 网络 → 网卡 → 接收方内存
绕过了 CPU,数据直接从一台机器的内存传到另一台机器的内存。
好处:
- 延迟低(不用走内核协议栈)
- CPU 占用少(不用 CPU 搬数据)
- 带宽利用率高
InfiniBand 的版本
InfiniBand 也有代际演进:
| 版本 | 单端口带宽 | 常见配置 | 发布时间 |
|---|---|---|---|
| QDR | 40 Gbps | 4x QDR | 2008 |
| FDR | 56 Gbps | 4x FDR | 2011 |
| EDR | 100 Gbps | 4x EDR | 2014 |
| HDR | 200 Gbps | 4x HDR | 2018 |
| NDR | 400 Gbps | 4x NDR | 2022 |
目前主流是 HDR(200Gbps),高端集群开始用 NDR(400Gbps)。
换算
- HDR 200Gbps = 25 GB/s
- NDR 400Gbps = 50 GB/s
InfiniBand vs 高速以太网
RoCE
RoCE(RDMA over Converged Ethernet)是在以太网上实现 RDMA 的技术。理论上可以获得接近 InfiniBand 的性能。
对比
| 特性 | InfiniBand | RoCE(以太网) |
|---|---|---|
| 带宽 | 最高 400Gbps | 最高 400Gbps |
| 延迟 | 0.5-1 微秒 | 2-5 微秒 |
| 拥塞控制 | 成熟 | 需要额外配置 |
| 成本 | 高 | 相对低 |
| 运维复杂度 | 高 | 较低 |
怎么选
- 大规模训练集群:InfiniBand。性能最好,大厂都在用。
- 中小规模或预算有限:RoCE 以太网。性能稍差但成本低。
- 纯推理集群:普通高速以太网也能接受。推理对网络要求没训练那么高。
AI 集群的网络架构
大规模 AI 集群的网络通常是这样的:
计算网络(后端网络)
专门用于 GPU 之间的通信,跑训练的梯度同步。
- InfiniBand 或 RoCE
- 无阻塞交换
- 大带宽、低延迟
存储网络
连接分布式存储,读训练数据、存 checkpoint。
- 通常也是高速以太网或 InfiniBand
- 带宽要求高(训练数据量大)
管理网络
SSH、监控、日志这些。
- 普通千兆/万兆以太网
- 可靠性要求高
拓扑结构
大规模集群通常用 Fat-Tree 或 Dragonfly 拓扑:
Spine 交换机
╱ | | ╲
Leaf Leaf Leaf Leaf
/|\ /|\ /|\ /|\
服务器 服务器 服务器 ...
核心目标:任意两台机器之间的带宽尽量一致(无阻塞)。
GPUDirect RDMA
NVIDIA 做了一个优化叫 GPUDirect RDMA,让网卡可以直接访问 GPU 显存。
普通 RDMA:
GPU 显存 → CPU 内存 → 网卡 → 网络 → 网卡 → CPU 内存 → GPU 显存
GPUDirect RDMA:
GPU 显存 → 网卡 → 网络 → 网卡 → GPU 显存
省了两次 CPU 内存拷贝,延迟更低、带宽利用率更高。
要求
- NVIDIA GPU + CUDA
- 支持 GPUDirect 的网卡(如 Mellanox ConnectX 系列)
- 正确的 PCIe 拓扑(GPU 和网卡最好在同一个 PCIe Switch 下)
常见网卡
AI 集群常用的高速网卡:
| 型号 | 类型 | 带宽 | 厂商 |
|---|---|---|---|
| ConnectX-6 | InfiniBand HDR | 200 Gbps | NVIDIA(Mellanox) |
| ConnectX-7 | InfiniBand NDR | 400 Gbps | NVIDIA |
| ConnectX-6 Dx | 以太网 | 100/200 Gbps | NVIDIA |
| E810 | 以太网 | 100 Gbps | Intel |
NVIDIA 收购了 Mellanox,所以现在高端网卡也是 NVIDIA 家的。从 GPU 到网卡到交换机,NVIDIA 全包了。
实际部署注意事项
网卡和 GPU 的亲和性
GPUDirect RDMA 要求网卡和 GPU 在 PCIe 拓扑上尽量近。如果隔太远,性能会下降。
# 查看 PCIe 拓扑
$ nvidia-smi topo -m
网络带宽要和 GPU 匹配
8 卡 H100 机器,机器内 NVLink 带宽 900 GB/s。如果出口只有一张 200Gbps 网卡(25 GB/s),跨机器通信会成为瓶颈。
大厂的做法是每台机器配多张网卡,比如 8 张 400G 网卡,对应 8 张 GPU。
交换机不能是瓶颈
Spine-Leaf 架构里,Spine 交换机的背板带宽要足够大,否则多对多通信时会拥塞。
拥塞控制很重要
大规模训练时,所有机器同时通信,容易出现网络拥塞。InfiniBand 有成熟的拥塞控制机制,RoCE 需要额外配置(ECN、PFC 等)。
云上的选择
AWS
- P4d/P5 实例:用 EFA(Elastic Fabric Adapter),类似 RDMA
- 带宽:P4d 400 Gbps,P5 3200 Gbps
阿里云
- GPU 集群:支持 eRDMA
- 高端机型有 InfiniBand 或 RoCE 选项
Azure
- NDv4/NDv5:InfiniBand HDR/NDR
选云服务器跑分布式训练时,一定要看网络规格,不是所有 GPU 实例都有高速网络。
自建还是上云
自建集群
优点:
- 网络架构可以按需定制
- 长期成本可能更低
- 数据不用出公司
缺点:
- 前期投入大
- 需要专业运维团队
- InfiniBand 运维有门槛
云服务
优点:
- 按需使用,灵活
- 不用操心硬件
- 能快速扩容
缺点:
- 长期成本高
- 网络性能可能不如自建
- 高端机型经常缺货
建议
- 短期/探索阶段:用云
- 长期/大规模:自建划算
- 没有专业运维团队:用云
小结
跨机器 GPU 通信的关键点:
- 以太网不够用:带宽和延迟都不行
- InfiniBand 是主流:高带宽、低延迟、RDMA
- RoCE 是替代方案:性能稍差但成本低
- GPUDirect RDMA:GPU 显存直接和网卡通信,效率更高
选型建议:
- 大规模训练:InfiniBand
- 中小规模:RoCE 以太网
- 纯推理:普通高速以太网
第一部分(GPU 硬件)到这里就讲完了。下一部分讲训练数据。