一、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网络知识体系,方便你快速建立整体认知:

InfiniBand网络知识体系 IB网络概述 架构与协议 核心组件 对比以太网 通道式I/O 子网管理器 RDMA/零拷贝 HCA 交换机 线缆 延迟对比 流控机制 虚拟通道VL SMP探测 RC/UD/RD PCIe带宽匹配 LID转发表 DAC vs AOC 微秒级延迟 信用流控 核心目标:低延迟 + 高带宽 + CPU卸载

这张图把IB网络的核心脉络梳理清楚了。从顶层概述往下,分成架构协议、核心组件、对比以太网三大块,每块再细化到具体技术点。我个人习惯用这种“总-分-总”的结构来学习新技术,效率很高。

本章核心要点:

  • InfiniBand是专为HPC和AI设计的互联架构,核心优势是低延迟和CPU卸载
  • 与以太网相比,IB在延迟、流控、拓扑管理上有本质区别
  • HCA、交换机、线缆三大组件各有技术细节,选型时要注意匹配
  • 子网管理器是IB网络的“大脑”,自动完成拓扑发现和路由计算

嗯,这一章的内容就到这里。IB网络的基础概念先搭起来,后面我们再深入具体的性能测试方法。


公众号:蓝海资料掘金营,微信deep3321