本发明涉及计算机高性能计算领域,尤其涉及一种nccl库的自动在线调优方法、系统、设备及存储介质。
背景技术:
1、随着深度神经网络(deep neural networks,dnn)模型和数据集规模的不断扩大,利用多个gpu(图形处理器)节点进行分布式并行训练已成为标准实践。常用的并行策略包括数据并行、张量并行和流水线并行。尽管数据并行在单gpu内存限制内有效,但当模型超出限制时,需采用更复杂的通信模式,这往往导致通信成为训练的主要瓶颈。为了优化通信性能,研究者提出了多种方案,如调度、数据压缩、稀疏性探索和拓扑基础算法设计。大部分方法假设底层通信库已优化,实验表明,通信调优对提升带宽性能至关重要。
2、分布式深度神经网络训练引入了特定的通信模式,称为集合通信(collectivecommunications),用于在多个gpu间聚合或传播数据。nvidia(英伟达)集合通信库(nccl)旨在优化nvidia gpu和网络系统的多gpu和多节点通信,提供高性能的原语如reducescatter(散射规约)、allgather(全聚集)和allreduce(全规约),以实现低延迟和高带宽的通信。在dnn训练中,nccl库通常用于处理集体通信,根据模型参数数量、并行训练方法和gpu数量的不同,选择合适的通信原语。例如,vgg-19模型(19层的卷积神经网络模型)采用32路数据并行,每次迭代中使用allreduce交换六个模型梯度。yi-1.5-34b模型(是由零一团队开发的一种大语言模型)在一次训练迭代中执行allgather和reducescatter操作,传递56mb(兆字节)的激活数据。
3、当训练框架调用底层nccl通信原语的时候,nccl运行时将创建一个相应的集合通信任务,并为其分配配置形式为<algorithm, protocol, transport, nchannel,nthread, chunk_size>。其中,algorithm决定数据在 gpu 上的分布、组合或聚合方式;protocol决定数据在gpu内存中的管理方式,transport决定数据在gpu间的传输方式,而其他几个配置是决定集合通信任务所分配的计算资源。实验表明,这些配置的变化对集合通信的性能有着重要的影响,所以对这些参数的调优是有必要的;另一方面,在大模型训练场景下,计算和通信存在着互相干扰的问题,这使得线下调优寻找的配置并不是最优的,因此有必要对这些参数进行自动在线调优,以动态优化通信性能。
4、有鉴于此,特提出本发明。
技术实现思路
1、本发明的目的是提供一种nccl库的自动在线调优方法、系统、设备及存储介质,可以在保证nccl库的集合通信任务能正确执行的前提下,能够根据每一次配置的执行结果,进行在线的调优,不断地优化配置、提升性能、减少时间,适用于复杂的分布式通信场景下,并能在dnn模型训练过程中得到快速的收敛。
2、本发明的目的是通过以下技术方案实现的:
3、一种nccl库的自动在线调优方法,包括:
4、接收到nccl库的集合通信任务时,查询自身的配置表获得最佳配置并执行,完成相应的nccl库的集合通信任务,以及记录执行时间;其中,nccl库为英伟达集合通信库;
5、结合所述最佳配置及其执行时间更新历史表,并结合历史表启动调优过程,获得新的最佳配置;其中,调优过程中,将配置中的参数划分为与实现相关的参数,以及与计算资源分配相关的参数,以性能作为指标,选出与实现相关的参数及与计算资源分配相关的参数的最佳组合,并作为新的最佳配置;
6、将所述新的最佳配置更新至配置表中。
7、一种nccl库的自动在线调优系统,包括:领导者与工作者;其中,所述领导者包括:优化器、协调器与第一执行器;所述工作者包括第二执行器;所述领导者与工作者中均存储有配置表;
8、所述第一执行器与第二执行器,用于接收到nccl库的集合通信任务时,查询自身的配置表获得最佳配置并执行,完成相应的nccl库的集合通信任务,同时,第一执行器执行后,还记录执行时间;其中,nccl库为英伟达集合通信库;
9、所述优化器,用于结合所述最佳配置及第一执行器记录的执行时间更新历史表,并结合历史表启动调优过程,获得新的最佳配置;其中,调优过程中,将配置中的参数划分为与实现相关的参数,以及与计算资源分配相关的参数,以性能作为指标,选出与实现相关的参数及与计算资源分配相关的参数的最佳组合,并作为新的最佳配置;
10、所述协调器,用于将所述新的最佳配置更新至领导者与工作者的配置表中。
11、一种处理设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序;
12、其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现前述的方法。
13、一种可读存储介质,存储有计算机程序,当计算机程序被处理器执行时实现前述的方法。
14、由上述本发明提供的技术方案可以看出,首先,能够通过对配置参数的调优改善集合通信任务的性能,同时不引入过多调优上的开销;其次,能够通过有效的调优方案,在巨大的搜索空间内快速地找到性能较优的配置;最后,对多个集群和模型的评估表明,本发明在dnn模型训练上能够快速地收敛,同时能够保证相较于nccl更高的性能收益。
1.一种nccl库的自动在线调优方法,其特征在于,包括:
2.根据权利要求1所述的一种nccl库的自动在线调优方法,其特征在于,所述将配置中的参数划分为与实现相关的参数,以及与计算资源分配相关的参数包括:
3.根据权利要求1或2所述的一种nccl库的自动在线调优方法,其特征在于,所述以性能作为指标,选出与实现相关的参数及与计算资源分配相关的参数的最佳组合,并作为新的最佳配置包括:
4.根据权利要求3所述的一种nccl库的自动在线调优方法,其特征在于,所述在每一个子空间中,使用统一的性能模型来确定与计算资源分配相关的参数的最佳组合包括:
5.一种nccl库的自动在线调优系统,其特征在于,包括:领导者与工作者;其中,所述领导者包括:优化器、协调器与第一执行器;所述工作者包括第二执行器;所述领导者与工作者中均存储有配置表;
6.根据权利要求5所述的一种nccl库的自动在线调优系统,其特征在于,所述将配置中的参数划分为与实现相关的参数,以及与计算资源分配相关的参数包括:
7.根据权利要求5或6所述的一种nccl库的自动在线调优系统,其特征在于,所述以性能作为指标,选出与实现相关的参数及与计算资源分配相关的参数的最佳组合,并作为新的最佳配置包括:
8.根据权利要求7所述的一种nccl库的自动在线调优系统,其特征在于,所述在每一个子空间中,使用统一的性能模型来确定与计算资源分配相关的参数的最佳组合包括:
9.一种处理设备,其特征在于,包括:一个或多个处理器;存储器,用于存储一个或多个程序;
10.一种可读存储介质,存储有计算机程序,其特征在于,当计算机程序被处理器执行时实现如权利要求1~4任一项所述的方法。
