链路负载如何均衡?网络故障如何恢复?以太网的春天来了吗?
专家谈:通信网如何迎接AI普及?
AI对通信网的三个需求
AI模型通常是采用分布式训练的方式进行计算,分布式训练需要多台主机之间同步参数、梯度,以及中间变量。对于大模型而言,单次的参数同步量一般都在百MB~GB的量级,因此需求网络高带宽。
现在,25Gbps带宽的网络已经成为数据中心内的主流,40Gbps、100Gbps甚至200Gbps的网络都开始逐步使用,那是不是直接用大带宽网络就能提升GPU集群的性能呢?
业内相关专家告诉《通信产业报》全媒体记者,其实并不尽然,研究表明,40Gbps和100Gbps的网络根本无法充分利用其带宽,原因是网络协议栈的开销影响了传输性能。因此,AI对通信网的第一个要求就是能够充分利用现在以太网的大带宽。
此外,大模型训练一般会将数据并行、流水线并行、张量并行等多种并行模式混合使用,以充分利用集群的算力。无论是哪种并行模式,多机之间都会涉及一种叫AllReduce的集合通信。一个AllReduce任务包含多个点对点的通信,而AllReduce的完成需要所有点对点通信都成功完成,因此集合通信存在“木桶效应”,即AllReduce的完成时间,由其中最慢的点对点通信时间决定。
正因为如此,大模型训练对网络提出了另外两个要求。
一是链路负载均衡要做到完美。因为“木桶效应”,只要有一条链路出现负载不均导致网络拥塞,成为了木桶的短板,那么即使其它链路都畅通无阻,集合通信时间仍然会大幅增加,从而影响训练效率。当前的负载均衡技术基于能做到流比较多时的一个近似均衡散列,并不能保证所有链路都完美均衡开。因此,寻找一种完美的负载均衡技术,是提升机器学习大模型训练效率的关键。
二是网络出现故障能快速恢复。随着集群规模增大,链路故障在所难免。类似的,一条链路故障就会导致整个AllReduce通信停滞,进而使模型训练停滞。如何做到故障后快速恢复,哈希随机,只最好是上层训练业务不感知,是保障一个AI大规模集群性能的关键。
AI对通信网带来哪些挑战?
首先,以太网在AI通信网络中是怎么实现大带宽的呢?
传统TCP网络因为主机侧协议栈开销大,无法充分利用网络带宽。RDMA通信技术通过网卡硬件实现通信控制,绕过了主机侧协议栈,因此既避免了协议栈内存拷贝,又节约了CPU的开销。使RDMA通信相比TCP,具有更低时延和更高吞吐的特点,非常适合大模型GPU训练的场景。但是,RDMA是无损协议,需要链路层PFC来保障不丢包。PFC在大规模集群可能会出现队头阻塞、拥塞扩散,甚至网络死锁等危害,因此直接大规模部署RDMA存在很高的风险。
据了解,华为智能无损RDMA,在标准RDMA over Ethernet(ROCE)的基础上,通过PFC防死锁技术解决了死锁问题;通过基于AI的自适应拥塞控制技术,解决头阻问题的同时保证了网络的有效吞吐。基于无损以太的数据中心网络已经可以支持RDMA应用的规模部署,并且已经在互联网、教育、科研、气象、金融、油气等领域得到了广泛的应用。这些技术在大规模GPU集群中,也拥有极高的价值。
其次,以太网又是怎么做到“完美”的负载均衡呢?
现有的网络负载均衡技术绝大多数只是解决了本地等价路径之间的均衡,但对于整个网络而言,局部均衡并不意味着全局均衡。更何况,对于ECMP这种依赖哈希随机性的负载均衡技术,在网络流量比较少时,对于本地路径的完美均衡都难以做到。就像抛10000次硬币,正反面各出现一半很正常;但抛4次硬币,就有63%几率不是正反面各一半。“AI训练是一种吞吐敏感型业务,其典型流量特征是流数少、单流带宽大、强同步,在这种场景下,ECMP技术因为可能出现的哈希不均匀,难以保证网络负载均衡。”专家指出。
针对这个问题,华为提出了网络级负载均衡(Network Scale Load Balance, NSLB)的概念。华为基于算网协同实现多任务全局均衡路由,基于全局拥塞状态的自适应路由算法,实现AI训练流量满吞吐和网络带宽的完全利用。类似于拥有多条跑道的超大型机场的智慧调度系统,多条跑道同时起飞降落时,也不会互相冲撞,同时也满足最大游客吞吐量。基于NSLB,AI训练效率都可以大幅提升,测试结果显示,单任务、多任务线性度均达到90%以上。
最后,以太网又是怎么做到故障能快速恢复呢?
传统网络的故障收敛依赖设备控制面或者集中的控制器的动态路由收敛,网络故障收敛时间数百ms到数s,网络故障尽管是可以恢复的,但是故障期间大量丢包,会导致RDMA连接中断,直接影响AI训练业务的稳定性和性能。
对此,华为提出了一种基于数据面的故障无感自愈的方案,即数据面故障快速自愈(Data Plan Fast Recovery,DPFR),故障的感知、通告和自愈完全在数据面实现,不需要控制面参与,基于这种技术网络故障收敛,网络故障基本可以做到业务无感。这项技术可以有效消除网络故障对大规模AI训练的影响。
通俗的讲,这就好比在一个部门里面,上级一开始就和下级,以及周边部门协商好了任务处理模式,当有任务触发时,下级部门直接就和周边部门协同处理来提高工作效率,不用像传统模式一层层协商汇报后再等上级部门下达命名再处理任务。华为做的就是开发出了这个“下级部门”的处理能力,不再单纯只做执行者。
AI对通信网的需求和网络挑战将会产生深远的影响,从而对网络的可靠性、安全性、效率和服务质量等方面提出更高要求。因此,产业链企业需要不断探索和研究AI在通信网中的应用,以更好地满足用户的需求,提高网络的性能和服务质量。
推荐阅读