InfiniBand
InfiniBand 是高性能计算和 AI 集群常用的低延迟、高吞吐网络技术。它支持远程直接内存访问 (Remote Direct Memory Access, RDMA),让跨节点训练和推理可高效执行集合通信与数据传输。
快速开始¶
确认网卡、端口和链路状态:
在全部节点运行相同版本的 NCCL Tests,测量 All-Reduce,而不仅是单向 iperf。集合通信才能反映训练实际使用的 Ring、Tree 和 GPU Direct 路径。
RDMA¶
传统 TCP 通信通常经过内核协议栈并复制数据。RDMA 允许网卡在权限受控的内存区域间直接读写,减少 CPU 参与、复制和延迟。
GPU Direct RDMA 进一步让网卡直接访问 GPU 显存,避免 GPU -> CPU -> NIC 的中转。它需要兼容的 GPU、NIC、PCIe 拓扑、Driver、IOMMU 和通信库配置。
组网组件¶
InfiniBand 网络通常包括主机通道适配器、交换机、线缆、Subnet Manager 和监控组件。Subnet Manager 负责发现拓扑、分配本地标识并配置路由;它不可用或配置错误时,端口可能显示正常却无法稳定通信。
网络设计还要考虑 Oversubscription、路径冗余、故障域和机架布线。只看网卡的标称速率无法说明集群全双向集合通信能力。
训练案例¶
假设 32 个节点执行数据并行,每步需同步梯度。若单节点计算时间小于 All-Reduce 时间,增加节点会产生明显扩展效率下降。
排查时先分别测:GPU 间 NVLink、同节点 NIC 到 GPU、跨节点 NCCL。若只有跨节点慢,检查网卡速率、交换机拥塞、NUMA 绑定和 RDMA 是否真正启用。
关键指标¶
| 指标 | 含义 |
|---|---|
| Link Rate | 单端口理论物理速率 |
| Latency | 小消息与同步操作的响应时间 |
| Bus Bandwidth | 集合通信算法估算的有效总线带宽 |
| Message Rate | 小消息处理能力 |
| 丢包与重传 | 拥塞、错误和稳定性信号 |
| GPU Direct 使用率 | 是否避免 CPU 中转 |
调优与排查¶
- 确保固件、Driver、OFED 或系统 RDMA 栈兼容;
- 将 GPU、NIC 和 CPU 绑定到同一 NUMA 节点;
- 检查端口速率、错误计数与交换机拥塞;
- 固定 NCCL 网卡和 HCA 配置后做 A/B 测试;
- 检查 MTU、队列深度和多轨网络配置;
- 将慢节点单独跑基准,避免平均值掩盖尾部问题。
常见问题¶
- 端口 UP 不代表 RDMA 与 GPU Direct 正常;
iperf的 TCP 吞吐不能代表 NCCL All-Reduce;- 一个慢网卡、错绑 NUMA 或交换机拥塞会拖慢整个同步组;
- 更高网卡速率不一定改善计算受限任务;
- InfiniBand 配置与运维复杂,需要持续监控错误和拓扑变化。
以太网 RDMA 方案见 RoCE,集合通信见 NCCL,主机设备路径见 PCIe。