InfiniBand与RoCEv2负载均衡机制的技术梳理与优化实践
近期文章
在人工智能迅速发展的今天,大模型训练已成为推动技术进步的核心动力。然而,随着大模型规模的不断扩大和训练需求的增加,智算网络面临的挑战也日益严峻。网络作为连接计算集群的重要基础设施,其性能直接影响着AI训练的效率和效果。
智算网络的主流架构
目前智算网络的领域的两大主流架构:InfiniBand 和RoCEv2 在性能、成本、通用性等多个关键维度上展现出各自的优势,相互竞争。我们将细致分析这两种架构的技术特性、它们在 AI 智算网络中的应用场景,以及各自的优势和局限性。
InfiniBand
InfiniBand 网络主要通过子网管理器(Subnet Manager,简称 SM)来进行集中管理。SM 通常部署在子网内的某台服务器上,充当网络核心控制器。通过 SM 的集中控制,InfiniBand网络实现了拓扑发现、路径优化、故障恢复等功能的自动化,保障高性能与高可靠性。
InfiniBand网络架构示意图(来源:2023智算中心网络架构白皮书)
RoCEv2
RoCE(RDMA over Converged Ethernet)协议是一种能在以太网上进行 RDMA(Remote Direct Memory Access 远程内存直接访问)的集群网络通信协议。RoCEv1作为链路协议层,要求通信双方位于同一二层网络内。而RoCEv2 则为网络层协议,它采用以太网网络层和 UDP 传输层,取代了 InfiniBand 的网络层,从而提供了更为优秀的可扩展性。与 InfiniBand 网络的集中管理方式不同,RoCEv2 采用的是纯分布式架构,通常由两层构成,在扩展性和部署灵活性方面具有显著优势。
RoCEv2网络架构示意图(来源:2023智算中心网络架构白皮书)
智算网络中的负载均衡与流量控制
AI大模型时代下,数据中心与智算网络,如Spine-Leaf架构,拓扑规整,选路简易。就网络流量模式而言,GPU服务器间常存在多条并行路径,如Fat tree网络中会有数十条。
如何在这些路径中实现负载均衡路由,成为智算中心路由设计的核心挑战。
InfiniBand网络的负载均衡和流控机制
InfiniBand网络通过多层次技术协同,实现了高效的数据传输与资源管理。在负载均衡方面,子网管理器(SM)作为核心调度者,首先基于最短路径算法构建初始路由表,为流量分布奠定基础。尽管SM的动态路径优化能根据链路负载实时调整路径,但其对控制带宽和计算资源的消耗不容忽视。为进一步提升灵活性,自适应路由(AR)技术应运而生,允许交换机基于队列深度、拥塞情况等实时状态独立选择路径,既降低了延迟,又增强了网络可靠性。
然而,AR的动态特性可能导致数据包乱序,这需要上层协议或应用进行额外处理。为弥补单一路径的局限性,应用程序还可通过创建多个队列对(QP),利用硬件队列的并行传输能力分散流量,例如MPI库或Lustre存储中间件通过任务分配避免路径瓶颈,形成应用层与网络层的双重负载均衡。
负载均衡机制的高效运行,离不开底层流控机制的强力支撑。InfiniBand采用信用令牌(credit)系统,在每条链路上预设缓冲区,确保发送端仅在确认接收端资源充足时传输数据,从根本上避免了缓冲区溢出或丢包问题。与此同时,网络还结合逐包自适应路由技术,为每个数据包独立选择传输路径,实时响应拥塞、延迟等状态变化。这种细粒度的动态调整能力,不仅与信用令牌机制形成互补,更在超大规模网络中实现了资源的实时优化配置,使负载均衡从局部扩展到全局。
由此可见,InfiniBand通过负载均衡与流控机制的深度耦合,构建了一个兼具敏捷性、可靠性与扩展性的高性能网络架构。
RoCE网络的负载均衡和流控机制
图片引用自:公众号西北吹风
负载均衡技术
1、基于流(Flow-based)ECMP(Equal Cost Multi Path)是一种路由技术,用于在IP交换网络中实现负载均衡。即等价多路径路由,当存在多条到达同一个目的地址的相同开销的路径,网络设备按照自有的Hash根据流量N元组计算多路径下一跳。由于通用计算以“多流”、“小流”为主,能够实现较好的负载均衡效果。
当AIDC中的大象流连续到达交换机,传统Hash通常会将大象流集中在少数链路上传输,庞大的数据流占用相当大的带宽资源,导致传输链路发生拥塞,而其他链路上则处于空闲。这种Hash不均导致了链路负载不均,进而出现拥塞和时延加剧。
2、基于包(Packet based)随机包喷洒(Random Packet Spraying,RPS)是一种基于包级别的负载均衡策略。当交换机发现有多条等价路径指向同一目的地址时,RPS会将数据包以单个包为单位分散到这些路径上。与ECMP不同,RPS以数据包为单位进行操作,将同一流中的不同数据包转发到不同的等价路径上。
RPS的优点在于简单易实施,通过细粒度的负载均衡,可以在多条并行路径之间实现较为均衡的路由选择,提升端到端的网络吞吐率,可以将并行链路利用率提高到90%以上。缺点在于可能会造成同一个流的包乱序问题,所以这种方式必须要解决乱序问题。
3、基于流片(Flowlet)Flowlet是根据流中的“空闲”时间间隔将一个流划分为若干片段。在一个flowlet内,数据包在时间上紧密连续;而两个flowlet之间,存在较大的时间间隔。这一间隔远大于同一流分片内数据包之间的时间间隔,足以使两个流分片通过不同的网络路径传输而不发生乱序。
流控机制
1、优先流控制(PFC)是一种逐跳流控策略,通过合理配置水位标记来充分利用交换机的缓存,以实现以太网络中的无丢包传输。当下游交换机端口的缓存过载时,该交换机就会向上游设备请求停止传输。已发送的数据则会存储在下游交换机的缓存中,等到缓存恢复正常,端口将会请求恢复数据包的发送,从而维持网络的流畅运行。
【参考白皮书:https://asterfusion.com/priority-based_flow_control_pfc/ 】
2、显式拥塞通知(ECN)定义了一种基于 IP 层和传输层的流量控制和端到端拥塞通知机制。通过在交换机上向服务器端传递特定拥塞信息,然后服务器端再发送至客户端通知源端降速从而实现拥塞控制的目的。
【参考技术手册:https://asterfusion.com/t20250416-ecn/ 】
3、数据中心量化拥塞通知(DCQCN)是显式拥塞通知(ECN)和优先流控制(PFC)两种机制的结合,旨在支持端到端的无损以太网通信。
对比项 | InfiniBand | RoCEv2 |
---|---|---|
流控机制 | 基于Credit的流控机制 | PFC/ECN,DCQCN等 |
转发模式 | 基于Local ID转发 | 基于IP转发 |
负载均衡模式 | 逐包的自适应路由 | ECMP方式路由、基于包(Packet based)、基于流片(Flowlet)、基于遥测的路由 |
故障恢复 | Self-Healing Interconnect Enhancement for Intelligent Datacenters | 路由收敛 |
网络配置 | 通过UFM实现零配置(按端口收费) | 手工配置、或基于开放网络技术实现的 EasyRoCE |
技术选型
根据前文我们了解到,InfiniBand和RoCEv2是两种支持RDMA的高性能网络协议,但其负载均衡机制在实现方式、性能和应用场景上存在显著差异:
InfiniBand依赖专用硬件和动态自适应路由,通过子网管理器实时优化路径,实现超低延迟和高吞吐,但成本高且扩展受限,适合HPC/AI等极致性能场景
RoCEv2基于以太网,采用静态ECMP哈希多路径分发,成本低、扩展性强,但依赖无损网络配置(如PFC/ECN),易受哈希不均影响,适合云数据中心等性价比优先场景。虽然RoCE还是很难应对大象流/老鼠流分布不均的影响,但是各厂家也在做各种努力尝试:
WCMP
结合前文,ECMP技术将包、Flowlet或整个流均匀的分布到多个路径上,很大程度上忽略了不同路径上的实际负载。为了进一步提升网络利用率。星融元采用加权代价多路径(Weighted Cost Multiple Path)算法,基于遥测获取的时延等信息,在时延更低的路径上调度更多的流量,在时延更高的路径上调度更少的流量,从而实现所有路径的公平利用。在理想情况下,流量经过不同路径的总时延是相等的,可充分利用所有可用带宽。
星融元CX864E等超级以太网交换机通过支持Flowlet、基于遥测的路由以及WCMP(加权代价多路径)三大创新技术,将AI训练和推理网络的利用率提升至90%以上,从而加速AI训练和推理过程,为AI数据中心进一步节省建设成本和运营成本。
【参考文档】
- https://www.c114.com.cn/other/241/a1270305.html
- https://mp.weixin.qq.com/s?__biz=MzAxNzU3NjcxOA==&mid=2650751430&idx=1&sn=bffa26e57db61c930c8eb2c71b902706&chksm=82a06995994e62a7391df4a0bcf047c0c332c395773964c283a3e9b814db15ced8720f450753#rd
- https://baijiahao.baidu.com/s?id=1800081227247028165&wfr=spider&for=pc
- https://blog.csdn.net/weixin_38889300/article/details/140366370