本文版权为《邮电设计技术》所有,如需转载请联系《邮电设计技术》编辑部
摘要:Ring all-reduce算法被广泛应用在分布式机器学习之中,其同步过程会受到慢节点的影响进而降低整个系统的效率。对Ring all-reduce中的Reduce_Scatter和 Allgather 2 个阶段进行分析,针对 Reduce_Scatter数据汇总过程提出优化策略,其主要思想是将慢节点多出的计算时间与通信时间进行重叠。使用OMNet++对 Ring all-reduce和优化策略进行对比仿真,仿真结果与理论分析相一致,该策略相比Ring all-reduce算法最高能缩短25.3%的训练时间。
关键词:Ring all-reduce算法;分布式机器学习;Ring all-reduce优化策略
doi:10.12045/j.issn.1007-3043.2024.02.005
概述
近些年随着互联网的蓬勃发展及大数据技术的不断演进,在图像识别、语言翻译、自动驾驶等相关领域,机器学习取得了众多突破并被广泛成功应用。在进行机器学习训练时,通常需要大量的数据用于计算,以保证模型的准确性。在海量数据的背景下,训练所使用的数据集的规模越来越大,训练的模型越来越复杂,单个机器无法满足存储与算力的需求,分布式机器学习将是未来发展的必然趋势。分布式机器学习需要快速、高效的连接网络作为支撑,该网络结构有 2 种主要的并行方式:数据并行与模型并行。数据并行是最为常见的并行模式,广泛应用于大规模分布式系统中。在采用数据并行的方式进行训练时,各个机器之间需要对大量的数据进行同步,例如 GPT-3就拥有超过 1 750亿个机器学习参数。通信时间在训练时间中占比较大,如何减少通信开销成为了热门课题。数据并行使用all-reduce操作进行梯度同步,其中Ring all-reduce算法在高性能计算领域得到广泛应用。
Ring all-reduce基于同步通信,在计算节点的性能存在差异时,整体的计算性能会被较慢的计算节点拖慢。为解决同步通信的这一弊端,异步并行(ASP)与延迟同步并行(SSP)被相继提出,但 Ring all-reduce架构难以支持ASP和SSP等模型的一致性协议。本文进一步分析 Ring all-reduce 算法特性,提出一种对其同步参数的过程进行加速的优化方案,降低慢节点带来的影响。