什么是NSLB?
AI训练场景下网络传输的数据流数少、流量大,使用传统HASH算法,极易造成负载不均,训练效率降低。为此,华为推出了NSLB(Network Scale Load Balance)网络级负载均衡算法,通过智能调优,实现整网负载均衡,保障网络高吞吐,释放AI时代高算力。
为什么需要NSLB?
AI大模型并行计算模式,高性能的最大挑战是负载不均
AI大模型训练相比通用计算需要更多的处理器参与并行计算,业界推出了如下多种并行计算方式:
- 数据并行(DP,Data Parallelism):通过把训练数据集分为多份,并行训练,减少训练时间。
- 流水线并行(PP,Pipeline Parallelism):通过把模型的不同层部署到不同的GPU上,减少大模型计算对GPU内存的需求。
- 张量并行(TP,Tensor Parallelism):当一张GPU卡的内存无法满足大模型计算时,可以将模型切分到不同的GPU卡上,使得每一个GPU上的参数量大大减小,从而容纳更大的模型进行训练。
大模型训练一般会将数据并行、流水线并行、张量并行等多种并行模式混合使用,以充分利用集群的算力。无论是哪种并行模式,多机之间都会涉及AllReduce的集合通信。一个AllReduce任务包含多个点对点的通信,而要完成整个AllReduce任务,所有点对点通信都要成功完成,因此集合通信存在“木桶效应”,即AllReduce的完成时间,由其中最慢的点对点通信时间决定。
根据“木桶效应”,只要有一条链路出现负载不均导致网络拥塞,成为了木桶的短板,那么即使其他链路都畅通无阻,集合通信时间仍然会大幅增加,从而影响训练效率。当前的负载均衡技术基于HASH随机,只能做到流比较多时的一个近似均衡散列,并不能保证所有链路都完美均衡。因此,提升AI大模型训练效率的关键是解决负载不均的问题。
Reduce和AllReduce集合通信特点
AI训练场景流少量大,传统HASH算法容易负载不均
和通用计算相比,AI训练的流量模型特征是“少流”和“大流”。通用计算是短连接,每个服务器的流数量可达数十万条;而AI服务器是长连接,每个GPU上的流数量仅数百条,所以称为“少流”。相比通用计算以KBytes/ MBytes的小流为主,AI服务器的流量以GBytes的大流为主,因而称为“大流”。
传统的ECMP(Equal-Cost Multi-Path)流量均衡机制,是为了应对通用计算的“多流”、“小流”场景创建的,但是在“少流”、“大流”的AI场景流量模型下,就因为ECMP哈希机制,造成链路上流量不均,即有的链路上满吞吐,有的链路上却存在空闲。
传统HASH算法容易负载不均
NSLB是如何工作的?
为了解决负载不均的问题,华为推出了NSLB网络级负载均衡算法。NSLB配套NPU时,iMaster NCE站在全局视角,主动获取或解析AI流量通信关系,统一算路下发配置,实现全网链路0冲突。NSLB配套GPU时,网络可主动感知拥塞,并自动切换路径,实现网络负载均衡。
NSLB配套NPU的工作机制
NSLB配套GPU的工作机制
NSLB的典型应用
近年来,AI算法已迈入万亿参数大模型时代,算力需求增长近十万倍。AI大规模计算需要高效协同数万张AI处理器,需要持续优化网络,提高并行计算效率;且由于AI处理器成本高昂,亟需搭建零丢包高吞吐的高性能网络,充分释放AI处理器效率;AI训练主要以大流为主,流数量少,单流通信数据量大,传统网络容易负载不均。而网络性能取决于最慢的那条流,也就是说,在一个周期内只有最慢的流到达后,才能进行下一轮通信。
面对以上挑战,华为星河AI高运力智算网络方案,是面向智能时代打造的超大规模、超高吞吐、长稳可靠的新型数据中心网络解决方案。该方案凭借独家网络级负载均衡NSLB算法,将训练效率提高20%,充分释放AI算力。
华为星河AI高运力智算网络
- 作者: 张艳琳
- 最近更新: 2024-07-25
- 浏览次数: 5925
- 平均得分: