01 前言
以ChatGPT为代表的生成式AI大火以来,LLM(Large Language Model)已经成为了各个企业的焦点关注对象。随着AI业务的快速发展,当前LLM训练参数已达万亿级别,而要完成如此量级的参数训练,通常需要拥有千卡、甚至万卡级别的GPU资源。然而只有GPU资源是不够的,更需要有一张零丢包、低时延、高吞吐的AI计算网络将各GPU连接在一起为业务提供高稳定的计算训练服务。
B站网络团队基于业务需求和特性出发,并结合业界对于AI网络的落地实践方案,设计并落地了自己的AI计算网络。本文将简单介绍B站网络团队在建设AI计算网络上的一些设计关键因素和选择。
02 AI组网结构
2.1 Fat-Tree组网
Fat-Tree架构是一种特殊的 CLOS 网络,由传统的Binary-Tree网络发展而来,采用无阻塞数据中心交换机,其上联端口与下联端口带宽、数量保持一致,从而达到各层级之间采用1:1无带宽收敛设计。Fat-Tree组网也是目前数据中心通用网络使用的最广泛的拓扑之一,它提供低延迟并最大限度地提高了各种流量模式的数据吞吐量。Fat-Tree组网拓扑如下图所示:
要设计AI网络架构,首先需要大致了解业务GPU资源的需求以及未来发展计划,从而设计2 层 Fat-Tree 或 3 层Fat-Tree网络匹配业务发展需求。从当前网络资源硬件来看, Fat-Tree 中所有交换机都有相同个数的 Port,从而可得出不同层数的Fat-Tree组网所需的交换机数量,以单台交换机P个端口为例,得出如下结论:
2 层 Fat-Tree 拓扑
Spine 交换机:P/2 个,对应 P*(P/2) 个 Port。
Leaf 交换机:P个,对应 P*P 个Port。
最多实现 P*P/2 个 Server 的无阻塞网络。需要 P+P/2=3*P/2 个交换机。
3 层 Fat-Tree 拓扑
Super Spine交换机:(P/2)^2 个,对应P*(P/2)^2 个 Port。
Spine交换机:2*(P/2)^2 个,对应P*2*(P/2)^2 个 Port。
Leaf 交换机:2*(P/2)^2 个,对应 P*2*(P/2)^2 个 Port。
最多实现 P*2*(P/2)^2/2=P^3/4个 Server 的无阻塞网络。需要(P/2)^2+ 2*(P/2)^2 + 2*(P/2)^2 = 5*(P/2)^2 = 5*P^2/4个交换机。
2.2 Dragonfly组网
Dragonfly是一种直连拓扑网络架构,它的特点是网络直径小、成本较低,支持超大规模组网。Dragonfly每个网络节点均有终端节点与之直连,采用自适应智能选路来灵活选择转发路径。目前Dragonfly已经在高性能计算网络中被广泛落地应用,如谷歌数据中心分布式交换架构Aquila。
Dragonfly组网如下图所示:
Dragonfly是一个二阶全连接网络,由Switch层、Group层以及整个System层构成。
Switch 层:包括一个交换机, p 个端口接入计算节点, h 个端口连接到其他 Group的交换机。
Group 层:包含 a 个 Switch 层,这 a 个 Switch 层的 a 个交换机是全连接的;换言之,每个交换机都有 a-1 条链路连接分别连接到其他的 a-1 台交换机。
System 层:包含 g 个 Group 层,这 g 个 Group 层也是全连接。
Dragonfly 网络中具备如下关系:
每个交换机的端口数为 k=p+(a-1)+h。
Group 的数量为 g=ah+1。
网络中一共有 N=ap(ah+1) 个计算节点。
通过调研发现Dragonfly与Fat-Tree相比,在同等组网规模下,网元可减少 20%~40%,能够降低大规模集群的网络成本。但在AI计算网络实际应用落地上Dragonfly与Fat-Tree相差甚远,且Dragonfly网络在软件成熟度上也是一个未知数,网络运维难度极大。
2.3 InfiniBand组网
InfiniBand是一种高性能、低延迟的网络通信技术,专为大规模并行计算系统设计。组网的结构上和Fat-Tree基本一样,关键组成包括子网管理器(SM)、InfiniBand网卡、InfiniBand交换机和InfiniBand连接线缆。
InfiniBand采用了链路级流控机制和自适应路由技术。链路级流控机制能够防止发送过量数据导致的缓冲区溢出或数据丢包问题,确保数据传输的连续性和稳定性。自适应路由技术则能够根据每个数据包的具体情况进行动态路由选择,实现网络资源的实时优化和最佳负载。
在InfiniBand 组网下,如果希望这个网络中任何两个计算节点的网卡之间互相无损地通信,一般也采用Fat-Tree的网络拓扑结构。
从性能角度来看,InfiniBand网络在应用层业务性能上展现出一定优势,特别是在大规模场景下,能够提供卓越的网络吞吐性能。但从成本角度来看,InfiniBand网络则需要额外的专用硬件支持和较高的建设成本且整个生态相对来说比较封闭。
三种组网方式对比如下:
通过以上对比汇总,根据B站业务需求现状以及未来发展规划,综合考虑成本及转发性能,决定采用Fat-Tree的组网设计AI计算集群网络。
03 硬件选型
当前业界AI计算网络GPU服务器普遍采用200G/400G网口与交换机互联,用于不同GPU服务器之间通信。与通用数据中心网络一样,网络技术人员整体考虑AI计算网络中的相关硬件选型,包括交换机,光模块,光纤等。
3.1 交换机
B站基于不同的GPU硬件,B站组建了两套不同的AI计算网络集群。
以海外某类型GPU服务器选型为例,每台GPU服务器配置8个200G网口用来连接AI计算网络交换机进行GPU与GPU之间网络通信。配置2个25G网口用来连接通用存储网络,从外部拉取训练所需资源以及将训练完成后的数据传递到专用推理网络。另外配置一个MGT口用于GPU服务器的带外管理。交换机选型采用博通Tomahawk 4芯片25.6Tbps交换容量的盒式交换机,端口密度为64*400Gbps口。
以国产某类型GPU服务器选型为例,每台GPU服务器配置8个400G网口用来连接AI计算网络交换机进行GPU与GPU之间网络通信。配置2个25G网口用来连接通用存储网络,从外部拉取训练所需资源以及将训练完成后的数据传递到专用推理网络。另外配置一个MGT口用于GPU服务器的带外管理。然而由于GPU服务器在硬件和软件上的一些功能限制,无法与海外GPU服务器混部在同一张AI算力网络中,因此不得不单独设计一套用于适配国产GPU服务器的AI计算网络。厂商推荐了两种组网方案,一种基于自研芯片+商用芯片的框盒组网方案,另一种是基于商用芯片盒盒组网方案。B站网络技术团队充分考虑组网统一性,采用盒盒组网方案落地应用。
3.2 光模块
光模块是实现网络通信的关键配件,完成电信号与光信号之间的互相转换,光模块作为网络设备间传输信息的桥梁,重要性不言而喻。在组网中光模块数量规模庞大,一般为GPU服务器数的4-6倍,一定程度上说光模块的稳定性直接决定了整个AI网络训练的稳定性。组网中任意一个光模块异常将直接影响到训练任务的效率,轻则无法按时完成训练任务,重则造成训练任务中断。
下表为数据中心常见光模块封装类型和典型传输距离:
3.3 光纤
以上3.2章节讲了可热插拔光模块配件,数据中心的网络要进行通信,还有另外一个重要的配件---光纤。按光传输模式的不同,光纤可以分为多模光纤和单模光纤,多模光纤的纤芯较粗,直径通常为50μm或62.5μm,能传输多种模式的光,但其模式色散较大,并且随着传输距离的增大模式色散会逐渐加重,因此常和多模光模块配合用于短距离低成本的通信传输。多模光纤分为OM1、OM2、OM3、OM4和OM5光纤。当前数据中心主要使用OM3多模光纤,AI计算网络由于高稳定性要求,大多使用OM4多模光纤,部分特殊场景使用单模光纤。
不同的多模光纤应用在不同的以太网,所支持的最大传输距离各不相同,如下表所示:
单模光纤的纤芯较细,直径通常为9μm,包层直径和多模光纤一样为125μm。只能传输一种模式的光,因此模式色散很小,适用于远距离通信。常用的单模光纤为G.652标准的光纤,分OS1和OS2两种,当前主要使用OS2光纤,可传输1260~1360nm、1530~1565nm波长的光。外观上,单模光纤的外表上印有“SM”的字样,单模光纤大多为黄色。
在实际的数据中心综合布线中,应根据业务实际需求,权衡传输距离、功耗、成本、应用场景等因素,选择最适合的连接解决方案。
04 B站AI网络集群整体设计
前面确认了整体的组网方案和硬件相关的选型。下图所示为整体的网络架构设计图,整个网络集群被设计为两张独立的网络,分别为存储网络(又称前端网络Frontend Network)及算力网络(又称后端网络Backend Network)。
其中Frontend Network网络主要用于诸如数据输入、检查点和日志记录等任务,通过服务器上的两个25G网口双上联到2台接入交换机,Frontend Network网络可以与外部网络正常通信。
Backend Network网络则主要用于大模型训练,基于以太网实现,并通过RDMA技术提供GPU服务器之间实现高速通信。Backend Network网络无法与外部数据中心通用网络直接通信,为一张典型的两层无带宽收敛比的Fat-Tree组网。由SPINE和LEAF两种角色组成。
由于某国产GPU服务器的硬件设计特殊性,在Backend Network网络上做了亲和性设计,以提升网络通信效率。简单来说通过组网上的轨道划分,使得一组POD内不同GPU服务器NIC编号相同的卡号上联至同一轨道,这样使得不同GPU之间通信最优只需要一跳即可到达。如下图所示为整个算力网络的详细拓扑图,每4台LEAF组成一个POD,单POD可接入8台服务器,128张GPU卡。总共16台SPINE组成一个Cluster,可连接至多8个POD,总共容纳64台服务器1024张GPU卡。
如下图所示为某国产GPU服务器集群:
如下图所示为对应算力网络集群:
05 网络负载均衡
随着AI计算网络交付业务使用,同样碰到了业界普遍存在的问题,基于以太网的RDMA技术带来拥塞问题时有发生,并且不同程度的影响到了业务训练效率,因此解决网络拥塞问题成为了B站AI网络的重点。
要解决网络拥塞问题,首先要分析问题产生的原因,在AI计算网络中,流量有以下几个特点:低熵、突发性、大象流(每个突发,每条流量强度可以达到网卡上限),以上特点在当前以太网逐流负载均衡技术上容易产生局部热点效应,多条流HASH到同一个物理链路上,从而产生拥塞现象。
由于传统五元组哈希的负载存在随机性导致AI网络中局部链路拥塞,经过与厂商交流可选用固定路径策略,根据下行链路的索引,将数据包转发至特定上行链路。且由于某国产GPU服务器默认不支持ECN特性,因而在传统五元组ECMP的HASH策略下选择路径固定模式NSLB负载均衡方式。
从配置上来讲,每台LEAF交换机下联的32个逻辑200G端口打上32个index标签,当GPU服务器之间需要跨POD进行通信时,会根据32个index标签均匀的哈希到16个上联400G口,明确转发路径,减少网络拥塞,通过该手段调优,在实际使用中无链路故障场景下链路带宽利用率可达98%。而在故障场景下降级使用传统五元组ECMP的HASH策略,保持与优化之前一样的通信效率。
另外由于以太网逐流负载均衡技术在AI计算网络应用中的硬伤,B站网络技术团队随时关注业界发展情况,目前正在调研分布式机框(DDC)组网方案。与传统以太网逐流哈希相比,DDC采用信元(Cell)交换,基于Cell进行负载均衡,通过将数据流切分成等长的Cell并负载到所有链路,提升网络带宽利用率;先通过VOQ(Virtual Output Queue)技术先将网络中接收到的报文分配到不同的虚拟出队列中,再通过Credit通信机制确定接收端有足够的缓存空间后再发送这些报文,实现最优速率匹配。
06 监控平台建设
对于网络监控来说,首先想到的是SNMP,但由于SNMP采样周期时间过长,对于高性能计算网络场景中,每条流量突发可达到网卡上限,且ms级即可完成一次数据的传输,SNMP采集反应不了现网的真实情况。Telemetry是一种新的网络设备监控技术,提供周期性采样网络设备数据,包括管理、控制和数据平面数据。它通过Yang模型定义数据源,使用GPB编码,通过gRPC或UDP进行数据订阅和推送。Telemetry相较于传统SNMP等方式,具有更高效、丰富的数据采集能力,设备采用推的方式周期性主动向采集器上送监控数据,可提供亚秒级的网络监控精度。因此B站网络团队与监控团队从0开始,基于Telemetry技术搭建了一套完整的AI计算网络监控平台,用来实时监控AI网络的运行情况。
结合Telemetry技术,实现AI算力网络端口队列流量亚秒级监控:
监控展示算力网络服务器及SPINE和LEAF交换机的端口PFC计数,直观体现网络拥塞热点:
07.未来展望
本文从组网结构,硬件设备选型,AI算力网络整体设计,网络负载均衡设计,监控平台建设等方向介绍了B站的自有AI计算网络集群的建设实践。
未来,B站的AI计算网络集群将持续扩展,从千卡集群向万卡集群迈进。B站网络技术团队也会持续关注最新网络架构与技术,构建更大规模的AI算力网络;完善网络监控平台,提升各个关键指标的监控力度;做到端网协同,通过控制器实现更精细化的流量工程,来做到正常情况下预先规划数据流避免拥塞,拥塞发生时动态调整快速消除拥塞,提升整体AI达模型的训练效率。
参考文献:
[1]Next-Gen Data Transfer: SFP112/QSFP112/QSFP-DD800/OSFP 800G DAC
[2]Optimized Network Architectures for Large Language Model Training with Billions of Parameters
[3]面向超万卡集群的新型智算技术白皮书(2024年)
[4]DDC 技术白皮书
[5]Dragonfly 直连拓扑技术白皮书
[6]RDMA over Ethernet for Distributed AI Training at Meta Scale
-End-
作者丨一颗苹果
开发者问答
关于AI算力网络建设、优化及运维,大家还有什么优秀的方案和经验分享?
欢迎在留言区分享你的见解~
转发本文至朋友圈并留言,即可参与下方抽奖⬇️
小编将抽取1位幸运的小伙伴获取龙年小电视鼠标垫键盘垫
抽奖截止时间:01月03日12:00
如果喜欢本期内容的话,欢迎点个“在看”吧!
往期精彩指路
丨丨
丨丨
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...