2. 网络基础

多节点训练集群的性能瓶颈,往往不在 GPU 算力,而在网络。当数百张 GPU 卡协同训练一个大模型时,每一轮梯度同步都需要在节点间传输海量数据。理解 TCP/IP、RDMA、InfiniBand 与以太网之间的本质差异,是后续进行网络调优的前提。

核心原理:从 TCP/IP 到 RDMA 的演进逻辑

TCP/IP 协议栈是互联网的基石,其设计目标是可靠、通用,而非低延迟。数据从用户态应用发送到网卡,需要经过用户态缓冲区 → 内核 Socket 缓冲区 → 协议栈处理(TCP 分段、IP 路由)→ 网卡驱动 → 物理链路,接收端再反向走一遍。这个过程涉及多次内存拷贝、上下文切换和内核中断,单次往返延迟通常在 10~50 微秒量级。

RDMA(Remote Direct Memory Access)的核心思想是绕过内核,让应用直接与网卡交换数据。网卡硬件负责传输层的可靠性、流控和报文重组,CPU 仅在连接建立和完成通知时介入。数据从应用内存直接发出,接收端直接写入应用内存,实现零拷贝与内核旁路。

关键差异对照:

  • TCP/IP:内核协议栈处理,CPU 参与每个报文,适合广域网与异构网络。
  • RDMA:网卡硬件卸载传输逻辑,适合高吞吐、低延迟的集群内部网络。
  • InfiniBand:原生支持 RDMA 的专用网络,提供无损传输与高带宽。
  • RoCE(RDMA over Converged Ethernet):在以太网上实现 RDMA,需依赖流控机制保证无损。
TCP/IP 数据路径(内核参与) 应用缓冲区 内核 Socket + TCP/IP (多次拷贝 + 上下文切换) 网卡(NIC) 物理链路 RDMA 数据路径(内核旁路) 应用缓冲区 RDMA 动词接口 (用户态直接访问) RDMA 网卡(RNIC) 硬件卸载传输逻辑 物理链路 对比维度 CPU 参与度 TCP/IP:高 RDMA:极低 内存拷贝次数 TCP/IP:≥2 次 RDMA:0 次 典型延迟(节点内) TCP/IP:10~50μs RDMA:1~3μs 核心区别:RDMA 将传输可靠性、流控、报文重组从 CPU 卸载到网卡硬件 同时实现内核旁路(Kernel Bypass)与零拷贝(Zero-Copy),大幅降低端到端延迟

方法流程:选择网络技术时的决策路径

在实际构建训练集群时,网络选型需要结合规模、预算、现有设施综合判断。以下是一个实用的决策流程:

  1. 确认规模与带宽需求:计算模型大小、数据并行度、梯度同步频率,估算所需聚合带宽。例如,训练 175B 参数模型,使用 Adam 优化器,梯度总量约为 700GB,若要求 10 秒内完成 all-reduce,则聚合带宽需 ≥ 70GB/s。
  2. 评估延迟敏感度:若采用同步训练且每轮迭代时间短(如 < 100ms),延迟对吞吐影响显著,应优先 RDMA。
  3. 检查现有网络设施:若机房已部署 25/100G 以太网交换机,可考虑 RoCEv2;若新建集群且追求极致性能,InfiniBand 是更稳妥的选择。
  4. 验证无损能力:RoCE 依赖无损以太网(PFC 流控),需确认交换机支持并正确配置。

案例场景:三种典型组网对比

场景 网络方案 优势 局限
8 卡单机(数据并行) PCIe + NVLink(无外部网络) 延迟极低,带宽高 无法跨节点扩展
32~128 卡多节点 RoCEv2 over 100G 以太网 复用现有以太网,成本可控 需 PFC 调优,大规模时拥塞管理复杂
512 卡以上大规模集群 InfiniBand NDR 400G 原生 RDMA,无损,拥塞控制完善 硬件成本高,运维技能要求高

实操建议:在 RoCE 环境中,务必检查交换机的 PFC 优先级映射与 ECN 配置。使用 ib_write_bw 或 perftest 工具验证实际带宽与延迟,不要仅看网卡标称速率。

误区与复盘:常见认知偏差

误区一:认为 InfiniBand 一定比 RoCE 快。实际上,在中小规模(≤ 64 节点)且网络拓扑简单时,RoCEv2 与 InfiniBand 的性能差距很小。差异主要体现在大规模场景下的拥塞控制与故障恢复能力。

误区二:忽略 TCP/IP 的卸载技术。现代网卡支持 TCP 分段卸载(TSO)、接收侧缩放(RSS)等特性,能显著降低 CPU 负载。但即便如此,TCP/IP 的延迟仍远高于 RDMA,因为内核协议栈的固有开销无法完全消除。

误区三:将网络带宽等同于有效吞吐。实际训练中,all-reduce 的通信模式是多对多,而非简单的点对点。若采用环形 all-reduce 算法,有效带宽受限于单条链路的带宽;若采用树形算法,则受限于交换机的扇出能力。因此,拓扑结构与集合通信库(如 NCCL)的算法选择,往往比链路带宽更关键。

排障复盘:某 64 节点集群使用 RoCEv2,训练时发现吞吐仅为预期的 60%。排查过程:

  1. 使用 ibstat 检查链路速率,确认无降速。
  2. 使用 perftest 测试点对点带宽,结果正常。
  3. 检查交换机 PFC 计数器,发现大量 pause 帧,说明存在缓冲区溢出。
  4. 最终定位为 ECN 阈值设置过低,导致交换机过早标记拥塞,引发发送端降速。

调整 ECN 阈值并启用动态拥塞窗口后,吞吐恢复至预期的 95% 以上。

理解这些基础差异后,下一步需要深入 NCCL 的通信原语与拓扑感知策略,才能针对具体集群做出有效的网络调优。