一文速通Infiniband技术---详解
一、Infiniband技术概念定义IB是无限带宽技术是基于IB架构的RDMA技术提供了一种基于通道的点对点消息队列转发模型每个对端应用都可以通过创建虚拟通道直接获取本端应用的数据消息不需要其他操作系统或协议栈的介入。IB技术是致力于服务器端的高性能计算的互联技术具有极高的吞吐量和极低的时延用于计算机与计算机之间的数据互连(如复制分布式工作等)InfniBand也用作服务器与存储系统之间的直接或交换互连(如SAN和直接存储附件)以及存储系统之间的互连服务器和网络之间(比如LANWANs和the Interet)的通信。 【IB必须运行在IB网络环境下必须使用IB交换机及IB网卡才可实现】应用场景最早用于 HPC 和云计算场景现更多用于 AIGC 场景。发展历程为解决 PCI 总线带宽瓶颈惠普、戴尔等发起 IBTA 制定标准后英特尔转向 Pcie主要用于计算机集群高速互联。Infiniband技术特点优势说明极低延迟网络延迟低至微秒级别。保障 AllReduce 效率。低延迟是实现高效的梯度同步AllReduce和高 Tokens/s 每秒模型能处理多少个 “词”的前提。超高带宽现代 IB 链路如 HDR、NDR能提供200 Gb/s 到 800Gb/s 的高传输速率。 确保在数千卡集群中也能快速同步海量模型参数和梯度。可扩展性高IB网络具有出色的可扩展性适用于构建大规模计算集群和数据中心。它支持多级拓扑结构如全局互连网络、多子网互联网络、树状结构和扁平结构可以根据应用需求和规模进行灵活配置和扩展。高吞吐量由于低延迟和高带宽的特性IB网络能够实现高吞吐量的数据传输。它支持大规模数据流的并行传输同时减少了中间处理和拷贝操作提高了系统的整体性能。原生RDMA支持原生支持 远程直接内存访问RDMA允许数据在 GPU 显存之间直接传输绕过 CPU 和操作系统内核消除 CPU 通信瓶颈。 极大提高了通信效率和 GPU 算力利用率 (SUL)。二、Infiniband网络组成IB网络主要由网卡、模块和线缆、交换机及子网管理器组成。最底层是服务器和存储设备通过网卡经光模块或高速线缆连接到交换机多设备互联需交换机转发多台交换机时要考虑多层架构。与传统网络不同IB网络有子网管理器是关键中枢可参与拓扑发现、LID分配和路由计算并分发支持多种链路传输速率EDR规格达200Gbps带宽HDR规格达400Gbps最新NDR规格已实现800Gbps传输能力。网卡类型2种类型HCA连接服务器与IB网络、TCA连接存储和I/O设备。模块和线缆模块主要用单模块和多模块接 电缆线缆实现互联IB侧主要用 OSFP 形态模块。线缆DAC、ACC为铜缆AOC是光纤光缆等交换机主流用 9700 系列9700和9790区别在于管理方式端口和数据形态一致。9700分前出风和后出风实施要关注与机房环境适配。外观上9700多带外管理口和console口后出风后背有红点。子网管理器有开源、IV 网管交换机内嵌、商用三种部署方式对比了open SM和UFMUFM集成了open SM功能open SM无需授权UFM需授权购买基于网卡节点数量计算。HCAHost Channel Adapter主机通道适配器TCATarget Channel Adapter目标通道适配器InfiniBand link连接通道可以是电缆或光纤也可以是板上链路InfiniBand交换机和路由器组网使用三、Infiniband与RDMARDMA最早在Infiniband传输网络上实现技术先进但是价格高昂业界厂家把RDMA移植到传统Ethernet以太网上降低了RDMA的使用成本推动了RDMA技术普及。在Ethernet以太网上根据协议栈融合度的差异分为iWARP和RoCE两种技术而RoCE又包括RoCEv1和RoCEv2两个版本(RoCEv2的最大改进是支持IP路由)。各RDMA网络协议栈的对比如下图所示四、Infiniband协议栈物理层物理接口与以太网高速接口的形态相同但接口的底层信令编码、链路协议、误码率要求不同该层决定了光信号、电信号在IB网络的传输物理层由端口信号连接器、物理连接电和光、硬件管理、电源管理、编码线等模块组成。【定义端口形态】链路层定义了数据包的格式以及数据包操作的协议核心基于信用的流控该层负责处理分组中链路数据的发送和接收提供寻址、缓冲、流量控制、错误检测和数据交换等服务同时服务质量QoS由该层体现。【0丢包】网络层核心是基于LID16位或GID128位的路由本地路由由子网管理器预先计算LFT线性转发表硬件直转全局路由由路由协议/管理平面计算GID到LID的路径硬件同样直转。【发送端到接收端的路径确认硬件处理路由】传输层核心作用是在已建立的队列QP上端到端地管理可靠连接RC或不可靠数据报UD的报文分拆、重组、丢包重传和流量控制并依靠硬件卸载完成协议处理从而让上层应用如RDMA几乎不感知网络细节直接实现极低延迟的零拷贝数据传输。【端到端传输过程中确保数据完整性】应用层通过Verbs接口直接向HCA硬件提交QP工作请求以单侧RDMA或双侧Send/Recv语义驱动端到端零拷贝数据传输全程旁路内核与CPU数据搬移仅由硬件完成内存读写与传输头处理。【通过网卡直接对QP进行处理】IB层级核心职责核心总结物理层定义端口形态接口形态相同但编码/协议不同链路层0丢包信用流控 帧封装 QoS网络层路径确认LID/GID路由硬件直转传输层端到端完整QP上可靠/不可靠传输硬件卸载应用层网卡直接操作QPVerbs RDMA旁路内核IB网络中CPU仅执行应用层逻辑并调用Verbs API下发指令传输层及以下四层全部由HCA硬件卸载处理通过硬件DMA实现零拷贝数据搬移全程旁路操作系统内核无需系统调用及协议栈参与。IB 自适应路由 网络层的多路径选择能力 链路层的虚拟通道VL隔离与缓冲机制两者配合实现逐包动态选路。五、Infiniband技术通信同一个 GPU 节点内通信由 NVLink/NVSwitch 负责、 IB 负责跨节点通信通信类型互连技术作用节点内 (Intra-Node)NVLink/NVSwitch连接单个服务器内的 4 到 8 张 GPU节点间 (Inter-Node)InfiniBand (IB)连接不同服务器上的 GPU六、Infiniband常用命令ibv_asyncwatch监视 InfiniBand 异步事件ibv_devices或ibv_devinfo 列举 InfiniBand 设备或设备信息 -ibstatus查询 IB 设备的基本状态ibping 验证 IB 节点之间的连通性ibtracert跟踪 IB 路径iblinkinfo查看IB交换模块的所有端口的连接状态。此命令会将集群内所有的IB交换模块都进行列举。子网管理器 在网络中宏观调度· 绘制地图自动扫描并发现子网内所有IB设备构建包含连接关系和端口状态的完整网络拓扑图。· 规划路线为每对通信端点计算出最优的无环路径并将这些信息写入交换机的线性转发表LFT。· 分配身份为子网内每个端口分配唯一的本地标识符LID。· 高可用保障支持一主多备模式即使主管理器故障备份管理器也能秒级无缝接管。· 稳定运行持续监控网络健康处理设备接入/移除保证链路长期稳定。注开启自适应路由后SM还能在局部过载时自动零散切换路径进一步优化流量。基本概念补充基于信用的流控动态协商的“微观流控在SM铺好路后数据传输时网卡HCA会启动这个实时刹车系统防止瞬时本地拥塞· 核心原理接收端【直连的下一跳】必须提前赠送Credit信用/额度代表可用的缓冲区数量。发送端数据不带Credit时必须暂停发送。· 运行流程连接建立后接收端告知初始Credit。发送端每发一包消耗1个信用用完即停。接收端处理完数据后立即自动返还信用形成循环控制。· 底层支撑多虚拟通道隔离不同类型流量配合直通交换技术保证极低延迟。整个Credit管理工作由网卡硬件完成零CPU开销。