用于分布式并行深度学习的高效片间互连拓扑结构制造技术

技术编号:29526020 阅读:25 留言:0更新日期:2021-08-03 15:12
本申请为用于分布式并行深度学习的高效片间互连拓扑结构,公开了一种系统,包括:第一组计算节点和第二组计算节点,其中,所述第一组计算节点和所述第二组计算节点是相邻设备,第一组计算节点和第二组计算节点各自包括:一组计算节点A‑D,和一组组内互连结构,其中,组内互连结构将计算节点A与计算节点B和计算节点C通讯耦合,将计算节点D与计算节点B和计算节点C通讯耦合;所述系统还包括一组组间互连结构,将第一组计算节点的计算节点A与第二组计算节点的计算节点A通讯耦合,将第一组计算节点的计算节点B与第二组计算节点的计算节点B通讯耦合,将第一组计算节点的计算节点C与第二组计算节点的计算节点C通讯耦合,将第一组计算节点的计算节D的与第二组计算节点的计算节点D通讯耦合。

【技术实现步骤摘要】
用于分布式并行深度学习的高效片间互连拓扑结构
技术介绍
目前的神经网络分布式训练方法包括,在多个分布式计算节点上应用同步大-小批量随机梯度下降(“SDG”)方法来尝试数据并行加速。在这种方法中,计算节点间的通信模式是所谓的“AllReduce”算法。用于实现所述AllReduce算法的传统硬件互连结构是基于圆环拓扑结构,所述圆环拓扑结构存在许多重要问题,包括长连接线的延迟和无法分割计算节点来分配多个计算任务。
技术实现思路
本公开的实施例提供了一种系统,包括第一组计算节点和第二组计算节点,其中,所述第一组计算节点和第二组计算节点是相邻设备,并且所述第一组计算节点和所述第二组计算节点分别包括:一组计算节点A-D,和一组组组内互连结构;所述组内互连结构将所述计算节点A与所述计算节点B和所述计算节点C通讯耦合,所述计算节点D与所述计算节点B和C通讯耦合;所述系统还包括一组组间互连结构,所述组间互连结构将所述第一组计算节点的计算节点A与所述第二组计算节点的计算节点A通讯耦合,将所述第一组计算节点的计算节点B与所述第二组计算节点的计算节点B通讯耦合,将所述第一组计算节点的计算节点C与所述第二组计算节点的计算节点C通讯耦合,并将所述第一组计算节点的计算节点D与所述第二组计算节点的计算节点D通讯耦合。本专利技术的实施例还提供了一种在多组计算节点之间分配计算任务的方法,多组计算节点中的每一组包括一组计算节点A-D和一组组内互连结构,所述组内互连结构将计算节点A与计算节点B和C通讯耦合,以及将计算节点D与计算节点B和C通讯耦合,所述方法包括:获取所述计算任务;确定所述计算任务的硬件负荷;以及根据所述硬件负荷,将所述计算任务分配给多组计算节点中的第一组计算节点和第二组计算节点,其中,执行所述计算任务生成的数据包通过所述第一组计算节点和所述第二组计算节点之间的一组组间互连结构转发。本专利技术的实施例还提供了一种非临时性计算机可读介质,其存储一组指令集,该指令集可由设备的一个或多个处理器执行,以使所述设备启动在多组计算节点之间分配某个计算任务的方法,每组计算节点包括一组计算节点A-D和一组组内互连结构,所述组内互连结构将计算节点A与计算节点B和计算节点C通讯耦合,将计算节点D与计算节点B和计算节点C通讯耦合,所述方法包括:获取所述计算任务;确定所述计算任务的硬件负荷;以及根据所述硬件负荷将所述计算任务分配给多组计算节点中的第一组计算节点和第二组计算节点,其中,执行所述计算任务生成的数据包通过所述第一组计算节点和所述第二组计算节点之间的一组组间互连结构转发。附图说明所示附图,包含在本说明书中并构成本说明书一部分,示出与本专利技术一致的实施例,并与实施方式一起,阐释本专利技术的原理。图1示出了一种基于环的AllReduce操作的示例性实现。图2示出了一种示例性4x4二维圆环互连结构。图3A根据本公开的一些实施例,示出了一种分布式系统的示例性服务器的原理图。图3B根据本公开的一些实施例,示出了一种包括服务器的示例性计算集群的原理图。图4根据本公开的一些实施例,示出了某个计算节点与在所述计算节点的周围超正方拓扑结构中的计算节点的示例性连接。图5根据本公开的一些实施例,示出了一种示例性超正方互连拓扑结构。图6A-C根据本公开的一些实施例,示出了来自超正方互连拓扑结构的一行六个计算节点的示例性环形连接。图7A-C根据本公开的一些实施例,示出了来自超正方互连拓扑结构的一行四个计算节点的示例性环形连接。图8根据本公开的一些实施例,示出了在某个计算集群中,使用超正方互连拓扑结构的示例性板卡。图9根据本公开的一些实施例,示出了包括计算节点板卡的示例性计算集群。图10根据本公开的一些实施例,示出了划分为子部分的示例性超正方互连拓扑结构。图11根据本公开的一些实施例,示出了一种用于在超正方互连拓扑结构中分配计算节点的示例性方法的流程图。具体实施方式现在请详细参考示例性实施例,其示例在附图中示出。以下说明请参考附图,除非另有说明,否则不同附图中的相同编号表示相同或相似的元件。在以下示例性实施例的描述中所阐述的实现并不代表与本专利技术一致的所有实现。相反,它们仅仅是与所附权利要求中所述的与本专利技术有关的方面一致的装置和方法的示例。分布式计算是研究分布式系统的计算机科学领域。分布式系统是一个组件位于不同联网计算机上的系统,这些计算机通过相互传递消息来通信和协调它们的动作。分布式深度学习是深度学习算法的一种实现方式。由于深度学习算法需要大量的计算能力,因此对于大型计算任务来说,特别是在深度学习算法的训练阶段,将此类算法的工作负荷分配到多台计算机或芯片,以并行方式加速计算变得很有必要。目前神经网络分布式训练的方法包括,在多个分布式计算节点上应用SDG方法来尝试数据并行加速。在这种方法中,计算节点间的通信模式是所谓的“AllReduce”算法。在这种方法中,所述AllReduce操作是计算节点间通信的主要模式之一。在一个AllReduce操作中,首先从所有分布式节点收集或整合同一变量的所有版本的值,然后计算平均值并将其广播到所有分布式节点。换句话说,AllReduce操作是涉及整合步骤和广播步骤的两阶段的通信操作。AllReduce操作可以同时应用于许多变量。虽然在取平均值之前,整合步骤可以通过添加不同版本的值来实现,但是整合步骤也可能包括其他操作,例如乘法运算,“或”运算、“异或”运算,等等。可以理解的是,所有的操作通常都满足关联性和交换性。例如,在对其他版本执行其他整合步骤之前,可以首先对某个值的某些版本执行整合步骤。最终结果可以与一次对所有版本执行单个整合步骤相同。还有许多方法可以实现所述AllReduce操作,尽管AllReduce的简单拓扑结构的实现是基于树结构的,但由于其更高的带宽利用率和效率,基于环结构的AllReduce操作是行业中的主要解决方案。图1示出了一种基于环的AllReduce操作的示例性实现。如图1所示,有三个计算节点,分别命名为工作节点A、工作节点B和工作节点C,并且每个计算节点包括三组变量。例如,最初,工作节点A包含具有值(5,13)、(8,19)和(42,1)的三组变量。在AllReduce操作中,首先对所有计算节点上的变量求和,然后计算每个变量的平均值并将其广播到每个计算节点。例如,AllReduce操作可以分解为图1所示的五个步骤。在步骤1中,所有变量都已准备好启动AllReduce操作。在步骤2中,将工作节点A和工作节点B中的第一变量的值相加并存储到工作节点B中,将工作节点B和工作节点C中的第二变量的值求和并存储到工作节点C中,以及将工作节点C和工作节点A中第三变量的值相加并存储到工作节点A中。在步骤3中,将工作节点A和工作节点B中的第三变量的值相加并存储在工作节点B中,将工作节点B和工作节点C中的第一变量的值求和并存储到工作节点C中,以及将工作节点C和工作节点A中第二变量的值求和并存储到工作节本文档来自技高网...

【技术保护点】
1.一种系统,其特征在于,包括:/n第一组计算节点和第二组计算节点,所述第一组计算节点和所述第二组计算节点是相邻设备,并且所述第一组计算节点和所述第二组计算节点分别包括:/n一组计算节点A-D,和/n一组组内互连结构,所述组内互连结构将所述计算节点A与所述计算节点B和所述计算节点C通讯耦合,并将所述计算节点D与所述计算节点B和所述计算节点C通讯耦合;/n所述系统还包括一组组间互连结构,所述组间互连结构将所述第一组计算节点的计算节点A与所述第二组计算节点的计算节点A通讯耦合,将所述第一组计算节点的计算节点B与所述第二组计算节点的计算节点B通讯耦合,将所述第一组计算节点的计算节点C与所述第二组计算节点的计算节点C通讯耦合,并将所述第一组计算节点的计算节点D与所述第二组计算节点的计算节点D通讯耦合。/n

【技术特征摘要】
20200130 US 16/777,6831.一种系统,其特征在于,包括:
第一组计算节点和第二组计算节点,所述第一组计算节点和所述第二组计算节点是相邻设备,并且所述第一组计算节点和所述第二组计算节点分别包括:
一组计算节点A-D,和
一组组内互连结构,所述组内互连结构将所述计算节点A与所述计算节点B和所述计算节点C通讯耦合,并将所述计算节点D与所述计算节点B和所述计算节点C通讯耦合;
所述系统还包括一组组间互连结构,所述组间互连结构将所述第一组计算节点的计算节点A与所述第二组计算节点的计算节点A通讯耦合,将所述第一组计算节点的计算节点B与所述第二组计算节点的计算节点B通讯耦合,将所述第一组计算节点的计算节点C与所述第二组计算节点的计算节点C通讯耦合,并将所述第一组计算节点的计算节点D与所述第二组计算节点的计算节点D通讯耦合。


2.根据权利要求1所述的系统,其特征在于,所述组内互连结构与所述组间互连结构包括片间互连结构。


3.根据权利要求1所述的系统,其特征在于,还包括:
第三组计算节点,所述第三组计算节点与所述第二组计算节点相邻接,所述第三组计算节点包括:
一组计算节点A-D,和
一组组内互连结构,所述组内互连结构将所述计算节点A与所述计算节点B和所述计算节点C通讯耦合,将所述计算节点D与所述计算节点B和所述计算节点C通讯耦合;
所述系统还包括第二组组间互连结构,所述第二组组间互连结构将所述第三组计算节点的计算节点A与所述第二组计算节点的计算节点A通讯耦合,将所述第三组计算节点的计算节点B与所述第二组计算节点的计算节点B通讯耦合,将所述第三组计算节点的计算节点C与所述第二组计算节点的计算节点C通讯耦合,并将所述第三组计算节点的计算节点D与所述第二组计算节点的计算节点D通讯耦合。


4.根据权利要求1所述的系统,其特征在于,所述组内互连结构与所述第一组组间互连结构形成一个环形连接,该环形连接将所述第一组计算节点的计算节点A与所述第一组计算节点的计算节点B通讯耦合,将所述第一组计算节点的计算节点B与所述第二组计算节点的计算节点B通讯耦合,将所述第二组计算节点的计算节点B与所述第二组计算节点的计算节点A通讯耦合,并将所述第二组计算节点的计算节点A与所述第一组计算节点的计算节点A通讯耦合。


5.根据权利要求3所述的系统,其特征在于,
所述组内互连结构与所述第一组组间互联结构和所述第二组组间互连结构形成环形连接,所述环形连接将所述第一组计算节点的计算节点A与所述第一组计算节点的计算节点B通讯耦合,将所述第一组计算节点的计算节点B与所述第二组计算节点的计算节点B通信耦合,将所述第二组计算节点的计算节点B与所述第三组计算节点的计算节点B通讯耦合,将所述第三组计算节点的计算节点B与所述第三组计算节点的计算节点A通讯耦合,将所述第三组计算节点的计算节点A与所述第二组计算节点的计算节点A通讯耦合,以及将所述第二组计算节点的计算节点A与所述第一组计算节点的计算节点A通讯耦合。


6.根据权利要求1所述的系统,其特征在于,还包括:
多组计算节点,包括所述第一组计算节点和所述第二组计算节点,其中
所述多组计算节点被分组成多个子部分,其中至少一个子部分包括环形连接,所述环形连接包括一行或一列计算节点。


7.根据权利要求1所述的系统,其特征在于,所述的计算节点是处理器。


8.根据权利要求7所述的系统,所述计算节点是人工智能训练处理器、AI训练芯片、神经处理单元,或图形处理单元。


9.根据权利要求1所述的系统,其特征在于,所述组内互连结构或所述组间互连结构的所述片间互连结构是双向的。


10.根据权利要求9所述的系统,所述片间互连结构是铜电缆。


11.根据权利要求1所述的系统,其特征在于,所述第一组计算节点和第二组计算节点分别为板卡,每个板卡还包括:
一个主处理器;和
硬件桥,所述硬件桥连接所述板卡上的计算节点A-D与所述主处理器。


12.一种在多组计算节点之间分配计算任务的方法,其特征在于:所述多组计算节点中的每一组计算节点包括一组计算节点A-D和一组组组内互连结构,所述组内互连结构将计算节点A与计算节点B和计算节点C通讯耦合,将计算节点D与计算节点B和计算节点C通讯耦合,所述方法包括:
获取所述计算任务;
确定所述计算任务的硬件负荷;以及
根据所述硬件负荷,将所述计算任务分配给所述多组计算节点中的第一组计算节点和第二组计算节点,其中,执行所述计...

【专利技术属性】
技术研发人员:韩亮焦阳
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1