一、IB网络概述:InfiniBand架构简介
聊到高性能计算,InfiniBand是个绕不开的话题。我最早接触IB是在做某超算中心项目的时候,当时客户要求节点间通信延迟必须低于2微秒。嗯,传统以太网根本做不到。说白了,IB就是为HPC和AI训练这类场景量身定做的互联方案。
1.1 InfiniBand架构简介
InfiniBand的架构,我习惯把它理解成一套“端到端的通道系统”。它不像以太网那样靠IP地址寻址,而是用LID(Local Identifier)和GID(Global Identifier)来标识设备。每个HCA(Host Channel Adapter)和交换机端口都有唯一的地址。
它的核心设计理念是:卸载CPU的网络处理负担。你想想看,传统网卡收个包,CPU要中断、拷贝、协议栈处理,这一套下来几十微秒就没了。IB通过RDMA(Remote Direct Memory Access)技术,让数据直接从一台机器的内存搬到另一台机器的内存,CPU几乎不参与。
核心架构特点:
- 通道式I/O架构:数据在虚拟通道(Virtual Lane)中传输,支持QoS
- 子网管理器(Subnet Manager):负责拓扑发现、路由计算、路径分配
- 可靠传输:支持可靠连接(RC)、不可靠数据报(UD)、可靠数据报(RD)等多种服务类型
- 内存语义:支持RDMA读、RDMA写、原子操作
我记得第一次配置IB子网管理器时,差点被它的拓扑发现机制搞晕。后来才明白,SM会定期发送SMP(Subnet Management Packet)探测整个网络,自动生成路由表。这个机制比以太网的STP(生成树协议)智能多了。
1.2 IB与以太网对比
很多人问我:“为什么不用以太网?现在100G、200G以太网不也挺快吗?”
这个问题我回答过不下几十次。直接上对比表吧:
| 对比维度 | InfiniBand | 以太网 |
|---|---|---|
| 设计目标 | 低延迟、高带宽、CPU卸载 | 通用互联、兼容性、成本 |
| 典型延迟 | 0.5-2微秒(节点间) | 5-50微秒(节点间) |
| 数据包大小 | 最大4KB(MTU),支持大消息分段 | 最大1500字节(标准MTU) |
| 流控机制 | 基于信用的流控(Credit-Based) | 暂停帧(Pause Frame)或PFC |
| CPU卸载 | 原生支持RDMA,零拷贝 | 需要RoCEv2或iWARP支持 |
| 拓扑管理 | 子网管理器自动管理 | STP/RSTP/SPB等 |
| 成本 | 较高(专用硬件) | 较低(生态成熟) |
这里有个避坑指南:千万别以为IB只是“快一点的以太网”。我曾经遇到一个团队,直接把以太网上的TCP应用搬到IB上,结果性能还不如千兆以太网。为什么?因为IB的RDMA需要应用层配合,用传统的Socket接口根本发挥不出优势。
我的建议:如果你的应用是MPI、NCCL、GDS这类原生支持RDMA的,果断上IB。如果是传统TCP应用,先评估改造成本,或者考虑RoCEv2方案。
1.3 IB网络核心组件
IB网络的核心组件,说白了就三样:HCA、交换机、线缆。但每一样都有讲究。
1.3.1 HCA(Host Channel Adapter)
HCA就是IB网络中的“网卡”。但它比普通网卡复杂得多。我拆解过几块Mellanox的ConnectX系列HCA,里面有个完整的嵌入式处理器,负责处理传输层协议。
HCA的关键参数:
- 端口速率:EDR(100Gbps)、HDR(200Gbps)、NDR(400Gbps)
- 端口数:单端口、双端口(用于冗余或双轨)
- PCIe接口:Gen3/Gen4/Gen5,x8或x16
- 支持特性:RDMA、GPUDirect、DCT(动态连接传输)
注意:HCA的PCIe带宽必须与端口速率匹配。比如HDR100(100Gbps)至少需要PCIe Gen3 x8。我曾经见过有人把HDR100 HCA插在PCIe Gen2 x4插槽上,结果性能只有标称的1/4。
1.3.2 IB交换机
IB交换机和以太网交换机最大的区别在于:它没有MAC地址表,而是靠LID转发表。每个端口有一个LID,SM负责计算整个网络的转发表并下发到交换机。
常见的IB交换机系列:
- Mellanox SB7800:36端口EDR,常用于中小规模集群
- Mellanox SB8800:36端口HDR,支持无阻塞架构
- QM9700:40端口NDR,最新一代
我个人习惯把交换机分为两类:导轨交换机(Rail Switch)和核心交换机(Core Switch)。导轨交换机直接连接计算节点,核心交换机负责汇聚。这种两层Clos架构在超算中非常常见。
1.3.3 线缆
IB线缆主要有两种:铜缆(DAC)和光缆(AOC)。
| 类型 | 最大距离 | 功耗 | 成本 | 适用场景 |
|---|---|---|---|---|
| DAC铜缆 | 3-5米 | 低(约0.1W) | 低 | 机柜内互联 |
| AOC光缆 | 10-100米 | 中(约1-2W) | 中 | 跨机柜、跨列 |
| 光模块+光纤 | 100米-10公里 | 高(约3-5W) | 高 | 跨机房、跨建筑 |
这里有个小技巧:机柜内互联尽量用DAC铜缆。为什么?因为DAC的延迟比光缆低,而且功耗小、成本低。我见过有人为了“好看”全上光缆,结果延迟反而高了0.1微秒,得不偿失。
1.4 知识体系结构图
下面这张图是我自己总结的IB网络知识体系,方便你快速建立整体认知:
这张图把IB网络的核心脉络梳理清楚了。从顶层概述往下,分成架构协议、核心组件、对比以太网三大块,每块再细化到具体技术点。我个人习惯用这种“总-分-总”的结构来学习新技术,效率很高。
本章核心要点:
- InfiniBand是专为HPC和AI设计的互联架构,核心优势是低延迟和CPU卸载
- 与以太网相比,IB在延迟、流控、拓扑管理上有本质区别
- HCA、交换机、线缆三大组件各有技术细节,选型时要注意匹配
- 子网管理器是IB网络的“大脑”,自动完成拓扑发现和路由计算
嗯,这一章的内容就到这里。IB网络的基础概念先搭起来,后面我们再深入具体的性能测试方法。
公众号:蓝海资料掘金营,微信deep3321