IB网络核心组件:HCA、交换机、线缆、子网管理器等
InfiniBand(IB)网络之所以能在GPU集群中承担高带宽、低时延的互联任务,关键在于其组件分工明确、协议栈精简。与以太网“尽力而为”的转发模式不同,IB网络从设计之初就面向可靠传输与硬件卸载。理解每个核心组件的职责边界,是后续进行选型和拓扑设计的基础。
4.1 核心组件全景与职责划分
一套完整的IB网络由四类基本组件构成:HCA(Host Channel Adapter,主机通道适配器)、IB交换机、线缆(铜缆/光缆)以及子网管理器(Subnet Manager,SM)。此外,在规模较大的集群中还会出现IB路由器(用于跨子网互联)和网关(用于与以太网存储或管理网络互通),但核心数据通路仍由前四者承担。
4.2 HCA:GPU与IB网络之间的桥梁
HCA是安装在服务器PCIe插槽上的板卡(或SoC集成),它一端通过PCIe总线与GPU/CPU内存相连,另一端提供1~2个IB端口(通常为QSFP或OSFP接口)。HCA的核心价值在于卸载:它内置RDMA引擎,能够直接访问GPU显存或系统内存,完成数据的发送、接收、校验和重传,而无需CPU逐包干预。
选型时需关注以下关键参数:
- 端口速率与数量:当前主流为单端口400Gb/s(NDR)或双端口200Gb/s(HDR)。GPU集群通常要求每GPU至少配1个400Gb/s端口,避免通信带宽成为训练瓶颈。
- PCIe接口版本与通道数:400Gb/s HCA需要PCIe 5.0 x16或PCIe 6.0 x8才能跑满带宽。若服务器仅提供PCIe 4.0 x16,则实际吞吐会受限。
- 显存直通能力:支持GPUDirect RDMA的HCA可绕过CPU与内存,直接在GPU显存和网卡之间搬运数据,将时延从数十微秒降至3~5微秒。
- 协议卸载范围:除IB Transport层外,是否支持RoCE v2(用于兼容以太网场景)、NVMe-oF等,影响集群的存储方案设计。
4.3 IB交换机:无阻塞转发与自适应路由
IB交换机负责在子网内根据LID(Local Identifier,本地标识符)转发数据包。与以太网交换机最大的不同在于,IB交换机采用基于信用的流控机制,每个端口都有接收缓冲区信用值,发送方只有在获得足够信用后才发送数据,从而从机制上避免了丢包。这一特性对GPU集群至关重要——训练过程中任何丢包都会导致AllReduce等集合通信操作整体超时回退。
交换机选型时需区分盒式(固定端口)与框式(模块化)两种形态:
| 对比维度 | 盒式交换机(如QM9790) | 框式交换机(如MQ8700) |
|---|---|---|
| 端口形态 | 固定QSFP/OSFP端口,通常32~64个 | 线卡+交换矩阵,可扩展至数百端口 |
| 适用规模 | 单机柜或小规模GPU集群(≤128 GPU) | 大规模集群(≥512 GPU),需多级组网 |
| 冗余能力 | 电源/风扇冗余,但控制引擎单一 | 控制引擎、矩阵、线卡均可冗余 |
| 典型时延 | 约100~130ns | 约130~170ns(因内部多级交换) |
此外,现代IB交换机还支持自适应路由(AR)功能。传统静态路由中,同一对源目的地址的流量始终走同一条路径,容易造成局部拥塞;自适应路由则允许交换机根据实时拥塞状态,将不同数据包动态分配到多条等价路径上,显著提升多租户或非均匀流量场景下的有效带宽。
4.4 线缆:铜缆与光缆的选择逻辑
线缆是连接HCA与交换机的物理介质,分为无源铜缆(DAC)、有源铜缆(ACC)和有源光缆(AOC)三类。选择的核心依据是传输距离与功耗预算:
- DAC(无源铜缆):长度通常≤3米,功耗最低(<0.1W),成本最低。适用于同机柜内GPU服务器与Leaf交换机的互联。
- ACC(有源铜缆):长度可达5~7米,内部带信号整形芯片,功耗约1~2W。用于跨机柜但距离较短的场景。
- AOC(有源光缆):长度可达30~100米,功耗约3~5W,重量轻、弯曲半径小。用于Leaf到Spine或跨机柜的长距离连接。
4.5 子网管理器:IB网络的控制大脑
子网管理器(SM)是IB网络中最容易被忽视却至关重要的组件。它运行在某个节点上(可以是独立服务器、交换机内置管理处理器,或HCA所在主机),负责以下任务:
- 发现网络拓扑:通过SMP(子网管理包)广播发现所有交换机、HCA和链路。
- 分配LID:为每个端口分配16位或32位LID,作为数据转发的地址。
- 计算路由:基于拓扑和链路状态,计算从每个源端口到目的端口的最优路径,并下发到交换机的转发表。
- 监控链路状态:持续探测链路健康,当链路故障时重新计算路由,实现秒级收敛。
在部署中,SM通常采用主备模式。例如,在NVIDIA环境中,可将两台服务器分别配置为主SM和备SM,使用sm_config工具设置优先级:
# 主SM节点
sm_config -p 15 -s 10
# 备SM节点
sm_config -p 5 -s 10
其中-p指定SM优先级(数值越大越优先),-s指定Sweep间隔(秒)。当主SM故障时,备SM会在数个sweep周期内接管控制平面,期间数据面转发不受影响,但新加入的节点无法获得LID,直到新SM完成拓扑发现。
4.6 案例:一个典型GPU Pod的组件清单
以一个包含8台GPU服务器(每台8卡,共64 GPU)的训练Pod为例,其IB组件配置如下:
- HCA:每台服务器2张ConnectX-7双端口HDR(2×200Gb/s),共16张。每张HCA的两个端口分别连接至两台不同的Leaf交换机,实现服务器级别的高可用。
- Leaf交换机:2台QM9790(32端口NDR),每台提供16个端口连接服务器,剩余端口用于Spine上行。
- Spine交换机:若Pod独立运行,则无需Spine;若需与其他Pod通信,则增加2台Spine交换机,Leaf与Spine之间采用400Gb/s AOC光缆。
- 线缆:服务器到Leaf使用DAC铜缆(≤3米),Leaf到Spine使用AOC光缆(10~20米)。
- 子网管理器:部署在2台管理服务器上,主备模式,sweep间隔5秒。
该配置可提供无阻塞带宽:每台服务器拥有2×200Gb/s上行,而8张GPU的聚合通信需求约为8×200Gb/s(若每GPU配200Gb/s),因此Leaf交换机上行带宽需等于或大于下行带宽,才能避免收敛比大于1:1。
4.7 误区与复盘:组件选型中的常见教训
ibdiagnet工具进行全网健康检查,重点查看是否存在LID冲突、链路降速、SM主备切换记录。同时,通过ibstatus确认每张HCA的端口速率与宽度是否达到预期(如Rate: 400、Width: 4x)。这些检查能提前暴露80%以上的物理层配置问题。
综上所述,IB网络的四个核心组件各司其职:HCA负责将GPU数据高效注入网络,交换机提供无丢包、低时延的转发通道,线缆决定物理链路的带宽与距离边界,而子网管理器则保障整个网络的控制平面稳定运行。在实际项目中,建议按照“先定交换机拓扑与端口速率,再选HCA与线缆,最后规划SM部署”的顺序推进,可有效避免组件间不匹配导致的返工。