具有多个嵌入的环的联网计算机制造技术

技术编号:30743219 阅读:14 留言:0更新日期:2021-11-10 11:51
提供了一种计算机,其包括布置在多个堆叠层中的多个互连的处理节点,该多个堆叠层形成多面棱柱。棱柱的每个面包括节点的多个堆叠对。所述节点通过至少两个层内链路连接。每个节点通过层间链路连接到相邻对中的对应节点。对应节点通过相应的层间链路连接以形成相应的边。每个对形成层的部分,每个层包括多个节点,每个节点通过至少一个层内链路连接到其在该层中的相邻节点以形成环。数据围绕由节点和链路的相应集合形成的路径而被传输,每个路径具有在第一最末端层与第二最末端层之间的第一部分,以及在第二最末端层与第一最末端层之间提供并且包括其中一个边的第二部分。间提供并且包括其中一个边的第二部分。间提供并且包括其中一个边的第二部分。

【技术实现步骤摘要】
【国外来华专利技术】具有多个嵌入的环的联网计算机


[0001]本公开涉及在计算机中连接的处理节点之间的数据交换,具体地但不排他地用于优化机器学习/人工智能应用中的数据交换。

技术介绍

[0002]集合体(collective)是在计算机中处理数据时常用的例程。它们是使得数据能够跨多个不同进程(process)而被共享和处理的例程,这些进程可能在同一处理节点或不同处理节点上运行。例如,如果一个进程从数据存储中读取数据,它可以使用“广播”进程来与其他进程共享该数据。另一个示例是当特定函数的结果被多个进程需要时。“归约(reduction)”是这样一种结果,其已要求对来自多个进程中的每一个进程的数据值应用计算函数。“聚集(Gather)”和“散射(Scatter)”集合体处理多于一个的数据项。某些集合体在处理机器学习应用中已变得越来越重要。
[0003]MPI(Message Passing Interface,消息传递接口)是一种消息传递标准,其可应用于多种并行计算架构。MPI定义了许多适用于机器学习的集合体。一个这样的集合体被称为“全归约(Allreduce)”。全归约操作使得作用于来自不同源进程的多个数据值的计算函数的结果能够在接收进程处被提供。注意,接收进程可以是源进程之一,也可以有多个接收进程。全归约集合体对来自多个源进程的数据值进行归约,并将结果分布到所有源进程(它们担任归约结果的接收进程)。根据MPI标准,全归约集合体是通过以下方式而实现的:在归约集合体中(例如,在多个进程之一处)对来自所有源进程的数据值进行归约,然后将结果广播到每个源进程。
[0004]图1是用于训练神经网络的分布式架构的示意框图。提供了训练数据源100。这可以是数据库或能够保留适用于正被训练的神经网络模型的训练数据的任何其他类型的数据存储。跨多个处理单元110a、110b、110c等而分布根据神经网络模型的处理本身。图1中仅示出了三个单元,但容易理解的是,可以使用任意数量的处理单元。每个处理单元110a、b、c从训练数据源100接收成批量的训练数据。每个处理单元110a、b、c保留定义该模型的一组参数112a、112b、112c。在计算函数114中用当前的一组参数来处理传入的一批训练数据,并且计算函数的结果被用于生成所谓的增量(delta),其表示原始参数与新参数之间的差异,作为对该批训练数据和当前的一组参数处理应用该计算函数的结果。在许多神经网络中,这些参数被称为“权重”,因此增量值被称为“增量权重”。在图1中,权重被标记为112a、b、c,而增量权重被标记为116a、b、c。应当理解,在实践中,权重和增量权重被存储在处理单元可访问的合适的存储器中。如果权重和增量权重可以被保留在本地存储器中,则这会使训练过程更加高效。
[0005]图1的架构并不旨在训练三个独立的模型,而是在于以分布式的方式训练单个模型。因此,目的是让模型参数(或权重)收敛到每个处理单元中的单个公共集。很明显,从任何特定的一组权重开始,并且假设每个处理单元处接收到的一批训练数据是不相同的,那么由每个处理单元中每个计算函数所产生的增量权重都会有所不同。因此,需要一种在批
量训练数据的每次迭代之后,跨处理单元而分布增量权重的方法。这在图1中被示意性地示出,其中组合函数118从每个处理单元接收增量权重,并执行对增量权重进行归约的数学函数(诸如平均函数)。组合函数118的输出然后被分别反馈到每个处理单元内的组合电路120a、120b和120c。因此产生一组新权重,其作为原始权重与来自组合函数118的经组合输出二者的组合,并且新权重118a、118b、118c被存储回本地存储器。然后,将下一批训练数据提供给每个处理单元,并且重复多次该过程。很明显,如果处理单元的起始权重相同,那么在每次迭代后,它们将再次被重置为相同的新值。很容易看出,上文是全归约函数特别有用的一个示例。增量权重被提供给组合函数118a,这些增量权重在那里被归约,然后这些增量权重以其归约后的形式被提供回每个处理单元,在那里它们可以与原始权重进行组合。
[0006]图1A是一个示意图,用于图示如何在五个处理节点N0...N5的行(line)连接拓扑中实现全归约集合体。这些处理节点可以对应于图1的处理单元,而组合函数分布于这些处理单元中。处理节点被示为以行配置连接,其中每个处理节点通过“前向”链路L
F
和“后向”链路L
B
连接到其邻居。如图所示,并且正如方向词所暗示的那样,前向链路将处理节点在图1A中从左到右连接,后向链路将处理节点在图1A中从右到左连接。每个处理节点具有被标示为200的处理能力和被标示为202的存储能力。处理能力和存储能力可以以非常多种方式中的任一种来实现。在一种特定的表现形式中,处理节点可以包括多个瓦片(tile),每个单独的瓦片具有其自己的处理能力和相关联的存储器能力。每个处理节点还具有一个或多个链路接口,以使其能够经由链路L
F
/L
B
连接到其相邻节点。
[0007]为了理解全归约集合体的实现,假设第一节点N0已经生成了一个标记为Δ0的局部(partial)向量。“局部”可以是一种数据结构,其包括增量权重的阵列(诸如向量或张量)。局部向量是多个局部的阵列。每个“局部”对应于处理节点上的计算。每个“局部”可以是一组增量权重。这被存储在准备在全归约集合体中要交换的存储能力202中。在一个简单的“流式传输(streaming)”行全归约算法中,前向链路被用于“归约”,且后向链路被用于“广播”。该算法开始于一端处的处理节点(图1A中的左侧节点)将其局部Δ0发送到其相邻节点N。在此节点处,对传入的局部(在此情况中为Δ0)与已由处理节点N1处的计算能力200生成的对应局部(Δ1)进行归约。然后将此归约(在图1A中被示为ADD函数)后的结果从处理节点N发送到下一个连接的节点N。如本文进一步提到的,可以将ADD函数替换为任何可用于对局部进行归约的组合函数。该过程发生在每个处理节点处,直到在最终的处理节点(在图1A中表示为N4)处,完成了对局部的归约。此时,经由后向链路L
B
,将归约(总和Δ)发送回每个处理节点。其在每个节点处被接收,并在该节点处被存储在存储器能力中,然后还被传输到下一个节点。以此方式,每个处理节点最终都以归约后的结果结束。
[0008]图1B示出了归约和广播阶段的时序图。注意,处理节点在其收到来自前一节点的传入数据之前,并不会将归约后的结果发送到下一节点。因此,对于前向链路上的每个传出传输,存在标记为Δ的固有延迟。
[0009]此外,在完全归约后的结果已在端(end)节点处被获得之前,并不使用后向链路进行广播。然而,如果局部向量很大,由于管线效应,则在起始节点已经完成发送其局部的数据项之前,结果的前导(lead)数据项就将返回到该起始节点,因此在所有的前向和后向链路上的活动可能存在实质上的重叠。
[0010]在此算法的修改(其代表一个小改进)中,行中的每一端处的处理节点可以开始向...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种计算机,包括多个互连的处理节点,所述多个互连的处理节点布置在处理节点的多个堆叠层的配置中,所述处理节点的多个堆叠层形成多面棱柱;其中,所述棱柱的每个面包括处理节点的多个堆叠对,其中,每个对的处理节点通过至少两个层内链路连接,并且每个对的处理节点通过至少一个层间链路连接到相邻对中的对应处理节点,其中,所述对应处理节点通过相应的层间链路连接以形成所述配置的相应边;以及其中,每对处理节点形成所述配置的其中一层的部分,每个层包括多个处理节点,每个处理节点通过至少一个层内链路连接到其在该层中的相邻处理节点以形成环;其中,所述多个堆叠层包括第一最末端层和第二最末端层,以及至少一个中间层,其中,所述处理节点被编程为操作所述配置以围绕由处理节点和链路的相应集合形成的多个一维路径中的每个一维路径来传输数据,每个一维路径具有在第一最末端层与第二最末端层之间的第一部分以及在第二最末端层与第一最末端层之间提供的第二部分,所述第一部分仅使用所述配置的其中一个面中的所有处理节点一次,并且所述第二部分包括所述配置的其中一个边。2.如权利要求1所述的计算机,其中,所述多面棱柱在每个层中具有三个处理节点,从而为相应的一维路径的第一部分提供三个相应的面。3.如前述权利要求中任一项所述的计算机,其中,在所述至少一个中间层中,每个处理节点通过两个层间链路连接到其相邻处理节点。4.如前述权利要求中任一项所述的计算机,其中,在所述第一最末端层和第二最末端层中,每个处理节点通过三个层间链路连接到其相邻处理节点,以使得能够同时在所述配置中的三个一维路径上传输数据。5.如前述权利要求中任一项所述的计算机,所述计算机已根据包括一组堆叠层的多面棱柱进行配置,每个堆叠层的处理节点具有到相邻堆叠层中的对应处理节点的层间链路和在该层中相邻处理节点之间的层间链路,通过断开指定堆叠层中的每个层间链路并将其连接到指定堆叠层中的相邻处理节点来提供层内链路,由此所述指定堆叠层形成第一最末端层和第二最末端层上。6.如前述权利要求中任一项所述的计算机,其中,所述处理节点中的每一个被编程为识别其层间链路和层内链路之中用于传输数据的一个链路,以便为该数据确定所述一维路径。7.如前述权利要求中任一项所述的计算机,其中,所述处理节点中的每一个被编程为去激活其层间链路和层内链路之中未在数据传输步骤中使用的任何链路。8.如前述权利要求中任一项所述的计算机,其中,每个处理节点被编程为将该节点相应的局部向量划分为片段,并且围绕每个一维路径以连续片段的形式传输数据。9.如权利要求8所述的计算机,所述计算机被编程为将每个路径作为一组逻辑环来操作,其中,所述连续片段在同时传输步骤中围绕每个逻辑环传输。10.如权利要求8所述的计算机,其中,每个处理节点被配置为同时在两个链路的每个链路上输出相应的片段。11.如权利要求8至10中任一项所述的计算机,其中,每个处理节点被配置为对两个传入片段与两个相应的本地存储的对应片段进行归约。
12.如权利要求11所述的计算机,其中,每个处理节点被配置为在全归约集合体的全聚集阶段中,同时在两个链路中的每个链路上传输完全归约后的片段。13.如前述权利要求中任一项所述的计算机,其中,每个链路是双向的。14.一种生成要在计算机上并行执行的一组程序的方法,所述计算机包括多个处理节点,所述多个处理节点在包括多面棱柱的配置中连接;其中,所述棱柱的每个面包括处理节点的多个堆叠对,其中,每个对的处理节点通过至少两个层...

【专利技术属性】
技术研发人员:S诺尔斯
申请(专利权)人:图核有限公司
类型:发明
国别省市:

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

1