一种集合通信方法、装置和计算设备集群与流程

摘要: 本技术涉及集合通信,尤其涉及一种集合通信方法、装置和计算设备集群。背景技术:1、在大模型的训练与推理场景中,常采用数据并行(dataparallelism,dp...
一种集合通信方法、装置和计算设备集群与流程

本技术涉及集合通信,尤其涉及一种集合通信方法、装置和计算设备集群。

背景技术:

1、在大模型的训练与推理场景中,常采用数据并行(data parallelism,dp)、张量并行(tensor parallelism,tp)、序列并行(sequence parallelism,sp)等多种并行模式。这些并行技术的实现通常依赖于规约发散(reducescatter)、全收集(allgather)以及全规约(allreduce)等集合通信算子。集合通信的完成时间是衡量训练推理通信性能的核心指标。因此,如何有效降低集合通信的完成时间,成为当前大模型训练与推理优化中亟待解决的关键问题。

技术实现思路

1、为了解决上述的问题,本技术的实施例中提供了一种集合通信方法,该方法可以降低集合通信算子在计算设备集群上进行集合通信时的通信时延。另外,本技术还提供了与该集合通信方法对应的集合通信装置和计算设备集群。

2、为此,本技术的实施例中采用如下技术方案:

3、第一方面,本技术实施例中提供了一种集合通信方法,方法应用于计算设备集群,计算设备集群包括多个计算卡,多个计算卡中的任意一个计算卡部署有集合通信算子,方法包括:获取集合通信算子所在的通信域的拓扑信息,通信域为参与集合通信算子进行集合通信的多个目标计算卡,多个目标计算卡包括多个计算卡中的任意一个计算卡;根据多个目标计算卡的数量,得到集合通信算子的通信步数;根据拓扑信息和集合通信算子的通信步数,得到集合通信算子的每一步的通信关系。

4、在该实施方式中,该方法根据集合通信算子所在通信域的拓扑信息构建出通信环,并根据通信域内计算卡的数量,确定出集合通信算子的通信步数,以及根据集合通信算子的通信步数和通信环上计算卡先后顺序,确定出集合通信算子每一个步的通信关系。通过这种实现方式,集合通信过程中的所有通信对象之间的传输的总通信量与现有的通过ring算法的总通信量一致,却将通信步数从(n-1)级别降低,从而实现降低通信时延的目的。

5、在一种实施方式中,根据拓扑信息和集合通信算子的通信步数,得到集合通信算子的每一步的通信关系,包括:根据拓扑信息和多个目标计算卡,得到集合通信算子的通信环,通信环指示出多个目标计算卡通信顺序;根据通信环和集合通信算子的通信步数,得到集合通信算子的每一步的通信关系。

6、在该实施方式中,该方法根据集合通信算子所在通信域的拓扑信息构建出通信环,使得无论通信域内计算卡的数量是否为2的幂次,该方法均可以使reducescatter和allgather算子以通信步数完成通信,或者使allreduce算子以通信步数完成通信。通过这种实现方式,集合通信过程中的所有通信对象之间的传输的总通信量与现有的ring算法的总通信量一致,却将通信步数从(n-1)级别降至级别,从而实现降低通信时延的目的。而且,该方法突破现有的rhd算法对计算卡的数量必须为2的幂次的限制,可以应用于任意数量的计算卡的场景,从而增加应用场景。

7、在一种实施方式中,集合通信算子为规约发散算子或全收集算子,集合通信算子的通信步数为n为多个目标计算卡的数量,且大于1的正整数。

8、在该实施方式中,当集合通信算子为规约发散算子或全收集算子时,该方法可以保持集合通信算子都以步数完成通信,实现将通信步数从(n-1)级别降至级别,从而降低通信时延。

9、在一种实施方式中,集合通信算子为全规约算子,集合通信算子的通信步数为n为多个目标计算卡的数量,且大于1的正整数。

10、在该实施方式中,当集合通信算子为全规约算子时,该方法可以保持集合通信算子都以步数完成通信,实现将通信步数从2(n-1)级别降至级别,从而降低通信时延。

11、在一种实施方式中,根据通信环和集合通信算子的通信步数,得到集合通信算子的每一步的通信关系,包括:根据集合通信算子的通信步数,得到集合通信算子每一步的通信步长;按照通信环的通信顺序,根据集合通信算子每一步的通信步长,得到集合通信算子的每一步的通信关系。

12、在一种实施方式中,集合通信算子为规约发散算子,集合通信算子每一步的通信步长依次为2k,k为通信步数的序号。

13、在一种实施方式中,集合通信算子为全收集算子,集合通信算子每一步的通信步长依次为n为多个计算卡的数量,k为通信步数的序号。

14、在一种实施方式中,根据拓扑信息和多个目标计算卡,得到集合通信算子的通信环,包括:从同一层级内选择出两个边界计算卡,所述多个目标计算卡分别属于多个层级,所述层级为机架顶部(tor)或舱(pod);按照计算卡与计算卡之间的带宽高低的顺序,将所述同一层级内的除所述两个边界计算卡以外的其它目标计算卡在所述两个边界计算卡之间连接,得到所述同一层级的通信链;将所述多个层级的通信链中的边界计算卡进行连接,得到所述通信环。

15、在该实施方式中,在每个物理层级内部,该方法会依据计算卡间的直连带宽和时延对计算卡进行排序,将层级内可以直连的计算卡、计算卡与计算卡之间的带宽高的计算卡、计算卡与计算卡之间的通信时延低的计算卡优先连接,以生成局部最优的通信链。每个通信链会选取两个边界计算卡,作为与其他层级对应通信链连接的锚点。边界计算卡的选择依据是:在层级内所有计算卡中,综合评估与相连的物理层级内的计算卡链路的物理距离最近和带宽最高的两个标准,选出得分最高的两个计算卡。这样的选择可保障相互连接的通信链的质量。通信链构建完成后,该方法通过递归方式将各层通信链的边界计算卡依次连接,最终形成全局闭合的通信环结构。由此可见,集合通信算子在利用拓扑信息构建通信环时,按照通信效率优先原则进行构建。这种方式使通信环的构建与拓扑信息紧密结合,从而优化每一步的通信效率,并增强拓扑信息与通信效率之间的亲和性。

16、在一种实施方式中,从同一层级内选择出两个边界计算卡,包括:从同一层级内的多个目标计算卡中选择出与其他层级内计算卡的链路距离最近和/或通信带宽最高的两个边界计算卡。

17、在该实施方式中,该方法选择边界计算卡时,选择与其他层级内计算卡的链路距离较近,以及通信带宽较高。通过这种选择规则,集合通信算子能够确保所构建的跨层级连接链路具有高质量的通信性能,从而减少信号传输延迟并提高数据传输效率。

18、在一种实施方式中,计算卡为图像处理器(graphics processing unit,gpu)、神经网络处理器(neural processing unit,npu)、张量处理器(tensor processing unit,tpu)、中央处理器(central processing unit,cpu)中的一种或多种。

19、第二方面,本技术实施例中提供了一种集合通信装置,包括:第一处理模块,用于获取集合通信算子所在的通信域的拓扑信息,通信域为参与集合通信算子进行集合通信的多个目标计算卡,多个目标计算卡包括多个计算卡中的任意一个计算卡;第二处理模块,用于根据多个目标计算卡的数量,得到集合通信算子的通信步数;第三处理模块,用于根据拓扑信息和集合通信算子的通信步数,得到集合通信算子的每一步的通信关系。

20、在一种实施方式中,第三处理模块,用于根据拓扑信息和多个目标计算卡,得到集合通信算子的通信环,通信环指示出多个目标计算卡通信顺序;根据通信环和集合通信算子的通信步数,得到集合通信算子的每一步的通信关系。

21、在一种实施方式中,集合通信算子为规约发散算子或全收集算子,集合通信算子的通信步数为n为多个目标计算卡的数量,且大于1的正整数。

22、在一种实施方式中,集合通信算子为全规约算子,集合通信算子的通信步数为n为多个目标计算卡的数量,且大于1的正整数。

23、在一种实施方式中,第三处理模块,用于根据集合通信算子的通信步数,得到集合通信算子每一步的通信步长;按照通信环的通信顺序,根据集合通信算子每一步的通信步长,得到集合通信算子的每一步的通信关系。

24、在一种实施方式中,集合通信算子为规约发散算子,集合通信算子每一步的通信步长依次为2k,k为通信步数的序号。

25、在一种实施方式中,集合通信算子为全收集算子,集合通信算子每一步的通信步长依次为n为多个计算卡的数量,k为通信步数的序号。

26、在一种实施方式中,第三处理模块,用于从同一层级内选择出两个边界计算卡,所述多个目标计算卡分别属于多个层级,所述层级为tor或pod;按照计算卡与计算卡之间的带宽高低的顺序,将所述同一层级内的除所述两个边界计算卡以外的其它目标计算卡在所述两个边界计算卡之间连接,得到所述同一层级的通信链;将所述多个层级的通信链中的边界计算卡进行连接,得到所述通信环。

27、在一种实施方式中,第三处理模块,用于从同一层级内的多个目标计算卡中选择出与其他层级内计算卡的链路距离最近和/或通信带宽最高的两个边界计算卡。

28、在一种实施方式中,计算卡为gpu、npu、tpu、cpu中的一种或多种。

29、第三方面,本技术实施例中提供了一种计算设备,包括:至少一个存储器;至少一个处理器,处理器用于执行存储器中存储的指令,以使得计算设备执行如第一方面各个可能实现的实施例。

30、第四方面,本技术实施例中提供了一种计算机可读存储介质,包括计算机程序指令,当计算机程序指令由计算设备执行时,计算设备执行如第一方面各个可能实现的实施例。

31、第五方面,本技术实施例中提供了一种包含指令的计算机程序产品,其特征在于,计算机程序产品存储有指令,指令在由计算设备执行时,使得计算设备实施第一方面各个可能实现的实施例。

32、第六方面,本技术实施例中提供了一种计算设备集群,包括至少一个计算设备,每个计算设备包括处理器和存储器;至少一个计算设备的处理器用于执行至少一个计算设备的存储器中存储的指令,以使得计算设备集群执行如第一方面各个可能实现的实施例。

33、第七方面,本技术实施例中提供了一种计算机可读存储介质,包括计算机程序指令,当计算机程序指令由计算设备集群执行时,计算设备集群执行如第一方面各个可能实现的实施例。

34、第八方面,本技术实施例中提供了一种包含指令的计算机程序产品,其特征在于,计算机程序产品存储有指令,指令在由计算设备集群执行时,使得计算设备集群实施第一方面各个可能实现的实施例。