一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

分布式处理架构的制作方法

2022-08-13 16:07:10 来源:中国专利 TAG:

分布式处理架构


背景技术:

1.本公开涉及分布式计算,并且具体地涉及可用于处理人工神经网络的分布式处理架构。
2.概括而言,人工神经网络(下文中称为神经网络)在人工智能应用和现代计算中变得越来越重要。图1中示出了示例神经网络。神经网络100接收对应于要识别的特征的输入值。输入值乘以权重(由边101表示)并且在节点102中相加(例如,求和)。激活函数被应用于节点102中的结果以生成输出值。值跨多个节点和节点层被组合以产生对应于结果的网络输出值。
3.这种系统通过考虑示例来“学习”执行任务,通常不使用任务专用规则来编程。最初,权重可以是未被训练的。在训练阶段期间,网络处理对应已知结果的输入值,并且将网络输出值之间的差(或误差)与已知值进行比较。可以使用称为反向传播(backpropagation)的过程基于误差来调整权重,其中计算在相反方向上流动(例如,从输出到输入)。训练可以涉及跨许多输入样本和相应的已知网络输出值连续地调整权重。这通常被称为训练阶段。一旦被训练,系统可以接收输入并产生有意义的结果(例如,分类或识别)。这通常被称为推理阶段。
4.针对非常大的神经网络的训练和/或推理可能涉及大量的计算。因此,针对大网络的计算可以跨许多处理器被分区。然而,由于网络中的大量连接,经分区的网络计算可能涉及处理器之间的大量潜在数据通信(部分结果)。这种连接性可能需要例如通过潜在的多个网络交换机耦合在一起的多个处理器。为任意通信模式提供全带宽随着规模增大和高带宽可能变得过于昂贵。例如,组件的成本以及覆盖数据中心中的较长距离所需的电交换机和光收发器的能量消耗可能是不利的。


技术实现要素:

5.本公开的实施例包括用于处理神经网络的技术。可以使用组合处理器序列的拓扑来实现各种形式的并行性。在一个实施例中,本公开包括计算机系统,该计算机系统包括多个处理器组,处理器组中的每个处理器组包括多个处理器。多个网络交换机耦合到多个处理器组的子集。在一个实施例中,交换机可以是光交换机。处理器组中的处理器子集可被配置为形成序列,并且网络交换机可被配置为形成跨越多个处理器组中的一个或多个处理器组的至少一个序列,以执行神经网络计算。公开了用于创建哈密顿循环的各种替代配置,以支持数据并行性、流水线并行性、层并行性或其组合。在一些实施例中,网络交换机可以是光交换机。
附图说明
6.图1示出了示例神经网络。
7.图2示出了根据实施例分区的神经网络。
8.图3示出了跨越三个轴的神经网络通信。
9.图4示出了根据实施例的沿三个维度分区的图2的神经网络。
10.图5示出了根据实施例的可配置为形成序列的多个处理器的示例。
11.图6示出了根据实施例的耦合到多个处理器组的示例网络交换机。
12.图7示出了根据实施例的处理器组和网络交换机的另一示例拓扑。
13.图8示出了根据实施例的处理器组和网络交换机的又一示例拓扑。
14.图9示出了根据实施例分区的另一示例神经网络。
15.图10示出了分区的三维表示,以示出根据实施例的处理器的最近邻居通信。
16.图11示出根据实施例的处理器组中的处理器的另一配置。
17.图12示出了根据实施例的多维处理器组的集群的配置。
18.图13示出了根据另一实施例的示例处理器组。
19.图14示出了根据另一实施例的示例网络交换机和处理组。
20.图15示出了根据实施例的网络交换机的2层布置。
21.图16示出了根据实施例的沿第一集群维度的处理组的集群的示例拓扑。
22.图17示出了根据实施例的沿第二集群维度的处理组的集群的示例拓扑。
23.图18示出了根据实施例的示例二维集群拓扑。
24.图19示出了根据实施例的另一示例二维集群拓扑。
25.图20示出了根据实施例的耦合到多个处理器组的示例光网络交换机。
26.图21示出了根据实施例的耦合到多个处理器组的多个光网络交换机的示例。
27.图22示出了根据实施例的耦合到多个处理器组的多个光网络交换机的另一示例。
28.图23示出了根据实施例的耦合到多个处理器组的多个光网络交换机的又一示例。
29.图24示出了根据实施例的通过中间光网络交换机耦合到多个处理器组的多个光网络交换机的示例。
30.图25示出了根据实施例的包括光网络交换机的另一示例二维集群拓扑。
31.图26示出根据实施例的处理器组中的处理器的另一配置。
32.图27a示出根据实施例的处理器组中的处理器的另一配置。
33.图27b示出根据实施例的处理器组中的处理器的又一配置。
具体实施方式
34.在以下描述中,出于解释的目的,阐述了许多实例和细节以便提供对各种实施例的理解。然而,对于本领域的技术人员来说显而易见的是,可以在没有这些细节中的一些细节的情况下实践某些实施例,或者可以利用其修改或等同物来实践某些实施例。
35.图2示出了根据实施例分区的人工神经网络200。本公开的特征和优点利用神经网络中的通信模式来产生用于神经网络的分布式计算的更有效的拓扑。例如,神经网络200包括7个层201-207,包括输入层201和输出层202。在推理期间,可在输入层201上接收输入值,并且在输出层207上产生结果。在每个层,数据值乘以权重、求和,并且由每个节点使用激活函数来处理。在训练期间,数据沿相反方向流动,其中在输出处确定网络结果与期望结果之间的误差,并且从层207流到层201逐层地更新权重。
36.在各种实施例中,可能希望分区神经网络,以便在不同处理器上执行网络的不同分区的计算。示例神经网络200是示出分区之间的通信的简化网络。在此示例中,网络可以
沿流水线(表示为pi)或沿流水线的层(表示为li)来分区。在此示例中,网络200被分区为4个流水线级p1-p4和2个层l1-l2。分区l1、p1中的节点和边可在一个处理器上处理,而其他分区中的节点和边可各自在其他处理器上处理。然而,为了执行它们的计算,每个处理器必须接收某些数据输入并且向其他处理器发送数据输出。例如,分区l1、p1中的节点1可以接收输入,将输入乘以权重、应用激活函数、并将输出发送到分区l2、p1中的节点2。类似地,l2、p1中的节点3向分区l1、p1中的节点4发送输出数据。因此,当层201跨多个处理器被分区时,存在例如在处理器之间发生的层内通信。类似地,流水线通信可如下所示。分区l1、p1中的节点4的输出被发送到分配给分区l1、p2的处理器作为节点5的输入,分区l2、p1中的节点2的输出被发送到分配给分区l2、p2的处理器作为节点6的输入。同样,分区l1、p1中的节点4的输出被发送到分配给分区l2、p2的处理器作为节点6的输入,并且分区l2、p1中的节点2的输出被发送到分配给分区l1、p2的处理器作为节点5的输入。因此,可以看出,例如,流水线级p1与流水线级p2通信,流水线级p2与流水线级p3通信,但是流水线级p3可以不需要与流水线级p1通信。
37.图3示出了跨三个轴的神经网络通信。在此示例中,神经网络模型针对层并行性、流水线并行性和数据并行性被分区。上文在图2中描述了层并行性和流水线并行性。数据并行性可以在不同处理器上执行的模型的多个实例之间交换数据。例如,可以通过在不同处理器上执行模型的不同实例以及周期性地同步各层中的权重,来并行地训练相同的模型。
38.在此示例中,模型的m(整数)个实例接收层(0,0)-(m-1,0)上的输入,并在推理期间在层(0,n-1)-(m-1,n-1)上产生输出。对于训练,数据沿相反方向流动。因此,流水线通信如箭头350所示垂直流动(例如,激活/错误)。例如,层311和321可以被分区为在如上描述的不同处理器上运行。这里,j(整数)个处理器之间的层内通信由箭头351示出,其中层311和321被分区为例如j个分区。类似地,在训练期间,每个模型中的权重可以如上所述周期性地同步。如果神经网络模型的实例运行在不同处理器上(或分布在不同处理器的多个集合上),则此类处理器可以执行通信以更新权重(例如,使用全约简(all-reduce)算法,诸如一维环、多环、基于树的算法或层算法)。流水线可在训练期间独立地操作,但可能需要跨模型的不同实例的执行而周期性地同步其权重。例如,在全约简期间,可以在实例之间逐层地平均权重。因此,在一些应用中,流水线的每个层可与模型的其他实例一起周期性地执行全约简,如图3中箭头353所示出。并行运行的模型的实例可以被配置在环中,例如,其中模型之间的权重更新可以围绕环在两个方向上流动。
39.从图2和图3中,存在三种形式的并行性:数据并行性(例如,求和、平均、全约简)、流水线并行性以及层内(或只是“层”)并行性。这些潜在并行性的形式允许开发这样的架构,该架构在执行神经网络计算时利用一个或多个可用并行性。本公开的各种实施例利用了这样的理解,即,除了某些例外,所有三维(层内、流水线、数据)中的通信依赖性可以被映射(例如,不存在拥塞)到遵循耦合的一维环结构的通信模式。因此,如果将通信模式映射到网络拓扑,则可以将其建模为连接每个维度的哈密顿循环的集合。在一些示例实施例中,处理器序列可以逻辑地布置在三维笛卡尔空间中。因此,如下面更详细描述的,哈密顿循环可以指例如通过至少一个网络交换机跨一个或多个处理器组串联地配置多个处理器,以用于层内并行性、流水线并行性、数据并行性或其各种组合。
40.例如,图4示出了沿三个维度分区的图2的神经网络:层(l)、流水线级(p)和数据。
在此示例中,使用实例a,b和c(数据并行性)并行地处理模型200三次。模型200的分区可以被映射到图4所示的处理序列。例如,网络分区l1、p1和l1、p2的计算可以在序列中配置的不同处理器上执行以形成哈密顿循环401。类似地,针对流水线级p1-p2-p3-p4的计算可以在被配置为序列的多个处理器上执行,以形成哈密顿循环402。最后,例如,沿着数据轴a-b-c的计算(例如,全约简)可以在形成哈密顿循环403的多个处理器的序列上执行。应当理解,在各种示例实施例中,神经网络可以沿数据轴、流水线轴、层轴或其组合被分区。例如,处理器可以被配置为形成序列,并且处理器可以被配置为处理经分区的神经网络的多个局部层、经分区的神经网络的一个或多个流水线、神经网络的模型之间的数据并行性(例如,全约简)、和/或其组合。
41.图5示出了根据实施例的可配置为形成序列的多个处理器的示例。在此示例中,四(4)个处理器pr1 501、pr2 502、pr3 503和pr4 504被串行配置以形成一维(1d)阵列。例如,处理器501-504可以形成处理器组550,并且处理器501-504可以被配置为作为序列来处理经分区的神经网络。本公开的各种实施例可以使用各种处理器类型,包括但不限于例如x86架构处理器、arm架构处理器、图形处理器(例如gpu)或为执行神经网络计算而优化的专用人工智能(ai)处理器。
42.这里,处理器组550包括具有边缘端口510和511的边缘处理器501和504。在此示例中,边缘(或边界)处理器501处于阵列中的第一位置并且被耦合到端口510和处理器502,处理器502被耦合到相邻处理器501和相邻处理器503,处理器503被耦合到相邻处理器502和相邻处理器504,而处于最后位置的边缘(或边界)处理器504被耦合到相邻处理器503和边缘端口511。边缘端口510和511可以例如被耦合到网络交换机,使得多个处理器组550可以耦合在一起以形成更长序列,以便处理神经网络的更多分区。
43.图6示出了根据实施例的被耦合到多个处理器组的示例网络交换机610。网络交换机可被配置为跨处理器组中的一个或多个处理器组形成序列以执行神经网络计算。在此简单示出性示例中,四(4)个处理器组620、630、640和650各自包括配置为一维阵列的四(4)个处理器。每个组包括被耦合到网络交换机610的端口的边缘端口,使得不同组可以被耦合在一起以形成更长序列。例如,如果网络沿三个轴(例如,层、流水线、数据)中的任一个被分区,则分区可被加载到按顺序的处理器中,诸如处理器组620中的处理器621-624。在一些实施例中,序列可以形成闭环,例如使得处理器624与621通信。如果分区使得需要较长的处理器序列,则可通过交换机610来配置较长的处理器序列。例如,如果需要5到8个按顺序的处理器,则来自处理器624的端口626(其耦合到网络交换机610的端口6)可以被耦合到来自处理器组630的端口635(其被耦合到处理器631的网络交换机610的端口7)。因此,可以使用图6所示的拓扑将多达16个处理器的序列串接在一起。如下进一步所说明的,在一个实施例中,交换机610例如可以是光网络交换机。
44.图7示出了根据实施例的处理器组和网络交换机的另一示例拓扑。在此示例中,三个(3)处理器组711-713被耦合到网络交换机701,三个(3)处理器组721-723被耦合到网络交换机702,三个(3)处理器组731-733被耦合到网络交换机703,并且三个(3)处理器组741-743被耦合到网络交换机704。处理器组711-713、721-723、731-733和741-743中的每个处理器组可以包括例如图5所示的可配置为序列的多个处理器。在此示例中,可以通过直接耦合在一起的网络交换机701-704获得更多数量的处理器序列。例如,如果每个处理器组包括五
(5)个处理器,则可以通过将组711-713与组721耦合来获得二十(20)个处理器的序列。在此情况下,交换机701被配置为连接端口7和1、端口2和3、端口4和5以及端口6和9,并且交换机702被配置为连接端口1和4以及端口5和2。交换机702的端口5/2可以经由交换机703被路由回到交换机701上的端口1/7,交换机703例如可以连接端口7和8,以闭合用于专用无拥塞的最近邻处理器通信环路的环路。使用图7所示的拓扑,例如,可以在序列中配置多达六十(60)个处理器,以沿着上述三个轴之一执行神经网络计算。在一个实施例中,交换机701-704例如可以是光网络交换机。
45.图8示出了根据实施例的处理器组和网络交换机的另一示例拓扑。在此示例中,网络交换机801-804通过中间(又称核或层1)网络交换机805来耦合在一起。因此,一个或多个处理器组811-813可以被配置为例如通过直接连接的(又称层0)交换机801-804以及通过中间网络交换机805,与任何一个或多个其他处理器组821-823,831-833和/或841-843形成序列。在各种实施例中,交换机801-805例如可以是光网络交换机。
46.图9示出了根据实施例分区的另一示例神经网络900。神经网络900包括九(9)层的流水线,每层包括九(9)个节点。为了清楚起见,省略了大多数边,但是应当理解,边将节点耦合在一起。在此示出示例中,网络900在层轴(例如,l1、l2、l3)和流水线轴(例如,p1、p2、p3)上被分区,其中在不同处理器(例如,pr11-pr33)上执行针对每个分区的计算。
47.图10示出了分区的三维表示,以示出处理器的顺序通信。在此示例中,每个分区的计算可以在形成3
×
3阵列的处理器pr11-pr33(见图9和11)上执行。另外,每个模型可以被执行四(4)次(例如,数据并行性a、b、c、d)以形成3维的3
×3×
4阵列。本发明的实施例可将神经网络分区映射到处理器阵列以供执行,其中处理器被配置为(例如)执行哈密顿循环。在此示例中,沿着层轴,哈密顿循环可在执行流水线的第一层p1的计算中捕获l1、l2和l3之间的通信,如在1001处所示出。沿着流水线轴,在p1期间计算的l1层可与在p2期间计算的l1层通信,且随后与在p3期间的l1层通信以形成另一哈密顿循环,如在1002处所示出。沿着数据轴,哈密顿循环可以捕获跨多个模型a-d的执行的层之间的通信(例如,执行全约简操作以调整每个模型的权重),如在1003处所示。
48.图11示出了根据实施例的处理器组1100中的处理器的另一配置。在此示例中,处理器1140-1148被配置为行和列以形成二维处理器阵列。这里,2维处理器阵列(例如,pr11-pr33)被配置为3
×
3矩阵以形成处理器组1100,其中处理器1140-1148被耦合到n维处理器阵列中的最近邻处理器,以支持形成处理器的序列以执行例如哈密顿循环。处理器组1100包括边缘处理器1140-1147,每个边缘处理器1140-1147具有一个或多个边缘端口。端口1101-1106被耦合到处理器组1100中的处理器行,而端口1110-1115被耦合到处理器组1100中的处理器列。因此,图9的神经网络900的每个分区可以被加载到不同处理器中,用于对网络900的层和流水线执行神经网络计算,其中可以首先计算每个流水线级的层,然后计算每个连续流水线级。用于计算每个层的层内数据可以垂直地跨处理器列(例如,pr11-pr21-pr31)流动。当每个经分区的流水线级p1、p2、p3中的层完成时,结果水平地跨处理器行(例如,pr11-pr12-pr13)流动。
49.图12示出了根据实施例的处理器组的多维集群阵列1200的配置。在此示例中,处理器组1201、1202、1210和1211的二维集群1200可用于支持更大的神经网络、更多的分区、或上述分区、以及例如可经由全约简来组合的处理器组对模型900的其他多个执行。例如,
较大的网络可能需要更多的处理器序列来实现沿每个轴的哈密顿循环。例如,图12所示的架构允许不同处理器组中的行或列被配置为更大序列。具体地,在执行神经网络计算期间,第一处理器子集(例如,处理器组1201中的行)和第二处理器子集(例如,处理器组1210中的行)可以耦合在一起以形成包括处理器串(例如,a11、a12、a13、b11、b12、b13)的序列,其中每个处理器与处理器串中的相邻处理器通信。如上所述,在各种实施例中序列可以形成闭环,例如,使得a11与b13通信。
50.网络交换机的拓扑被配置为在处理器组之间耦合处理器的行和/或列,以产生用于执行神经网络计算的处理器串。在这里公开的各种实施例中,沿集群阵列的特定维度的处理器组具有耦合到对应的相同维度网络交换机的边缘处理器端口。在此示例中,沿每个维度处于第一位置和最后位置的处理器被耦合到行或列网络交换机。例如,处理器组1201包括一行处理器a11、a12、a13,其中a11和a13的边缘处理器端口被耦合到行网络交换机1221。另外,处理器组1210包括一行处理器b11、b12、b13,其中b11和b13的边缘处理器端口被耦合到行网络交换机1221。类似地,处理器组1201包括一行处理器a21、a22、a23,其中a21和a23的边缘处理器端口被耦合到行网络交换机1222,并且处理器组1210包括一行处理器b21、b22、b23,其中b21和b23的边缘处理器端口被耦合到行网络交换机1222。例如,组1201和1210中的第三行处理器同样被耦合到行网络交换机1223。因此,例如,行交换机1221-1223形成对应于每个处理器组中的处理器行的交换机层,其可用于将特定处理器行连接到多个交换机组。
51.每个处理器组1201和1202中的处理器列可以类似地跨集群1200的第一列来被耦合在一起。如以上示例中针对行所描述的,处理器组1201和1202上的处理器a11、a21、a31和c11、c21、c31的列的相对侧上的边缘处理器端口可以被耦合到列网络交换机1231。其他列的处理器ax2/cx2和ax3/cx3(x=1..3)例如可以分别从边缘处理器端口被耦合到列网络交换机1232和1233。因此,列交换机1231-1233形成对应于每个处理器组中的处理器列的交换机层,其可用于跨多个交换机组连接特定的处理器列。
52.同样,如上文针对集群的第一行所述,包括处理器组1202和1211的集群1200的第二行可以被耦合到多行网络交换机1225。最后,如上文针对集群的第一列所述,包括处理器组1210和1211的集群1200的第二列可以被耦合到多个列网络交换机1235。如下面更详细地描述的,例如,多个中间交换机可用于链接行交换机和列交换机,以允许更多的处理器以串的形式配置从而计算更长的哈密顿循环。
53.虽然图9-12中所示的上述示例示出了被分区为适合于处理器组的示例神经网络,但是可以以各种方式分区不同的网络以在根据本公开的网络拓扑上运行。虽然各种分区可以更有效地使用给定拓扑中的可用资源,但是在可以被用于例如一个处理器组中的给定数量的处理器或集群中的给定数量的组的网络分区之间没有严格的关系。例如,每个处理器可以对神经网络模型的一层、多层或部层执行计算。类似地,每个处理器可对一个流水线级、多个流水线级或流水线级的一部分执行计算。最后,例如,每个处理器可以对全神经网络模型(所有层和所有流水线)执行计算,并使处理器上的权重同步、或者对分区的神经网络执行操作的多组处理器可以同步权重。在各种实施例中,交换机1221-1223、1225、1231-1233和1235例如可以是光网络交换机。
54.图13示出了根据另一实施例的示例处理器组1300。在此示例中,4
×
4处理器阵列
pr11
……
pr44被布置为形成处理器组1300。这里,每个处理器具有12个输入/输出(i/o)通信端口,其可以是例如并行配置以扩展连接带宽的以太网端口(例如,50gbps以太网)。三个(3)i/o端口被耦合到相邻(例如,最近邻)处理器或网络交换机,如下文更详细描述的。处理器组1300包括具有边缘处理器端口1301-1308和1310-1317的边缘处理器1320-1331,边缘处理器端口1301-1308和1310-1317将每个边缘处理器耦合到例如特定的网络交换机。
55.图14示出了根据另一实施例的示例网络交换机和处理组。在此示例中,n个处理组1401-1402被耦合到配置在12个交换机平面中的多个交换机1410-1412,其中n是整数。例如,n可以是24组图13的4
×
4处理器阵列。如上所述,每个处理器组可以具有行和列。每行可以具有3个边缘处理器端口,例如,对于全部24个行处理器端口(4行(
×
4)中的每个行的每侧(
×
2)有3个端口;3
×4×
2=24)。在此示例中,跨第一多个处理器组的一行处理器的相对侧上的边缘处理器端口被耦合到行网络交换机。例如,处理器组1401-1402中第一行处理器的相对侧上的边缘处理器端口被耦合到网络交换机1410。类似地,处理器组1401-1402中的第二行处理器的相对侧上的边缘处理器端口被耦合到网络交换机1411,而处理器组1401-1402中的最后一行处理器的相对侧上的边缘处理器端口被耦合到网络交换机1412。在本图中,为了示出目的仅示出了3个端口,但是应当理解,如图13所示的示例中所示,每行和每列都有3个端口。因此,在此示例中,有12个交换机平面连接24个处理器组上的4行交换机。同样,对于24个处理器组中的每个处理器组中的4列,例如,跨第二多个处理器组的处理器列的相对侧上的边缘处理器端口被耦合到列网络交换机。因此,例如,存在12个网络交换机用于以与图14所示的行基本相同的方式耦合24个处理器组中的每个组中的处理器列。如上所述以及如将在下文进一步描述的,交换机1410-1412例如可以是光网络交换机。
56.图15示出了根据实施例的网络交换机的2层布置。本公开的特征和优点包括允许处理器组的子集跨不同的网络交换机耦合在一起(例如,以形成哈密顿循环)的拓扑。在此示例中,分层0网络交换机1501被耦合到处理器组1510a-c,层0网络交换机1502被耦合到处理器组1510d-f。交换机1501和1502进一步被耦合到分层1中间网络交换机1503。层0和层1交换机之间的每个连接可以包括两个链路(例如,两个端口)例如,一个用于非拥塞的数据上行链路,另一个用于非拥塞的数据下行链路。例如,图15所示的拓扑可以应用于图14的一个交换机平面。例如,类似的拓扑可以用于其他交换机平面。在一些配置中,处理器组的子集通过层0交换机耦合在一起。在其他配置中,中间层1交换机1503可用于将多个层0交换机耦合在一起,以形成比任何特定层0交换机可支持的处理器序列更长的处理器序列。例如,如果需要150个处理器的序列,则可以组合来自两个交换机的处理器组(例如,24组
×
4个处理器/组
×
2》150)。通过将层0交换机和相关联的处理器组串联耦合在一起,可以产生更长的序列,例如,这可以形成跨多个层0交换机和层1交换机的非拥塞环路。在一些示例实施例中,交换机1501-1503例如可以是光网络交换机。
57.交换机1501和1502可以是例如64端口交换机。因此,在此示例中,48个端口用于处理器组连接,留下16个端口来支持用于24个组的交换机间传输。由于更多的交换机端口用于本地连接并且仅有16个可用于交换机间传输,因此在该示例拓扑中的层0交换机被称为过度订阅(over-subscribed)的(例如,所有处理器组不能同时访问层1交换机)。一些示例实现的另一优点在于,网络交换机可以被过度订阅而不影响性能,因为在需要多个交换机之前处理器组可以被本地配置为序列。例如,处理器组1510a的一个端口可以耦合到处理器
组1510b的一个端口,处理器组1510b的另一个端口可以通过附加端口和处理器被耦合到处理器组1510c的一个端口,并且处理器组1510c的第二端口可以被耦合回到处理器组1510a的另一个端口(例如,以形成闭环),或者通过到交换机1503的链路被耦合到其他层0交换机和处理组。因为处理器组通常可以被配置为形成本地序列,所以在过度订阅的交换机中通常仍然存在足够的端口来建立与其他交换机中的其他处理器组的通信以执行期望的计算。
58.图16示出了根据实施例的沿第一集群维度的处理组的集群的示例拓扑。在此示例中,集群包括通过2层交换拓扑耦合在一起的处理器组的n
×
m的二维阵列(例如,24
×
24)。图16示出了一个交换机平面(例如,用于每个处理器组中一行的一个边缘端口的交换拓扑)。用于其他行中的其他边缘端口的其他平面可以具有基本上类似的实现。在该拓扑中,集群中的处理器组的行具有耦合到对应的相同行网络交换机的边缘处理器端口。例如,处理器组1610-1612(例如,集群的第一行中的处理器组)具有被耦合到同一行网络交换机(例如,集群行1的网络交换机1601)的边缘处理器端口(例如,每组2个)。类似地,例如,集群的第二行中的处理器组1613-1615被耦合到行网络交换机1602,而集群的最后一行中的处理器组1616-1618被耦合到行网络交换机1603。
59.集群的行网络交换机1601-1603可以通过一个或多个中间层1行网络交换机1620-1621耦合在一起。在此示例中,每个行网络交换机1601-1603包括到多个中间行网络交换机的多个连接。例如,行网络交换机1601-1603可以全部包括到两个中间行交换机1620-1621的连接。因此,例如,处理器组的每个行可以通过中间行交换机1620或中间行交换机1621建立到处理器组的一个或多个其他行的通道,以创建跨多行的一个或多个行的哈密顿循环。在此示例中,层0和层1之间的链路可以是用于上行和下行业务而不存在拥塞的单个全双工以太网链路。例如,通过使用剩余的40个端口将附加集群连接到层1交换机1620和/或1621,可以获得甚至更长的哈密顿循环。在一些实施例中,中间行网络交换机可以耦合到中间列网络交换机,如下所述。
60.图17示出了根据实施例的沿第二集群维度的处理组的集群的示例拓扑。在此拓扑中,集群中的处理器组的列具有耦合到对应的相同列网络交换机的边缘处理器端口。例如,处理器组1610、1613和1616(例如,集群的第一列中的处理器组)具有被耦合到相同列网络交换机(例如,集群列1的网络交换机1701)的边缘处理器端口。类似地,例如,集群的第二列中的处理器组1611、1614和1617被耦合到列网络交换机1702,而集群的最后一列中的处理器组1612、1615和1618被耦合到列网络交换机1703。例如,列交换机1701-1703可以被耦合到基本上如图16所示的中间层1列交换机1920。
61.图18示出了根据实施例的另一示例多维集群阵列。图16和17的拓扑可以组合以形成如图18所示的二维集群交换拓扑。对于所有交换机平面,12个行网络交换机可用于每行(例如,12个交换机/行
×
24行=288个行网络交换机),12个列网络交换机可用于每列(例如,12个交换机/列
×
24列=288个列网络交换机)。在1890示出层1中间行网络交换机,并且在1891示出层1中间列交换机。在某些实施例中,各种列和行中的处理器组可通过例如1892处所示的中间行网络交换机和列网络交换机间接地交叉耦合在一起。在图18所示的实施例中,每个交换机平面包括用于列和行的2个层1交换机,并且有12个交换机平面(12个边缘行端口和12个边缘列端口),因此总体存在12个平面
×
2个层1交换机/平面
×
2(列和行)=48个层1交换机。对于图18所示的示例配置,存在24
×
24组(9216个处理器)和24个平面(例如,
12行和12列)。对于每个平面,存在24个层0交换机,每个具有16个上行链路。每个上行链路连接到层1交换机。在一个示例实施例中,可以使用64端口交换机。因此,可以使用8个层1交换机(例如,然后可以不使用每个层1交换机的16个端口),这导致例如总共24个平面*8个层1交换机=192个交换机。
62.虽然在图13-18中示出了示例拓扑,但是应当理解,这些图仅仅是示出性的。各种不同数量的处理器可用于不同的处理器组,各种不同的组子集可耦合到网络交换机,并且各种不同的集群大小和配置可用于本公开的各种实施例中。此外,对于任何特定的硬件拓扑(例如,处理器组中的处理器数量,去往交换机的处理器组的数量,和/或集群中的处理器组的数量),可以使用任何特定的拓扑(例如图13-18所示的拓扑)来计算各种神经网络大小和分区。例如,对于给定的硬件配置,可以计算更小或更大的神经网络,其可以以不同的方式适合拓扑。例如,特定的硬件拓扑可以处理具有不同层数、不同层分区、不同流水线级数量,不同流水线级分区和不同数据量并行性的神经网络。在各种实施例中,例如,可以使用这里描述的技术将不同大小的网络模型映射到一个或多个维度中的各种不同的处理器和处理器序列。上述结合图16-18描述的交换机例如可以是光网络交换机。
63.图19示出了根据实施例的另一示例二维集群拓扑。在一些实施例中,集群中的中间(例如,层1)行网络交换机和中间列网络交换机可以耦合在一起。在此示例中,处理器组1901-1916被配置在类似于图12和18的多维(例如,二维)集群阵列中,例如,其中沿着集群阵列的特定维度的处理器组1901-1916具有耦合到对应的相同维度网络交换机的边缘处理器端口。在此示例中,集群阵列中的处理器组1901-1916的行具有耦合到对应的相同行网络交换机1920-1923的边缘处理器端口,而集群阵列中的处理器组的列具有耦合到对应的相同列网络交换机1930-1933的边缘处理器端口。在图12和18中示出这种连接的示例,但在此省略。在各种实施例中,一个或多个行网络交换机1920-1923可以耦合到一个或多个列网络交换机1930-1933。在此示例中,行网络交换机1920耦合到列网络交换机1930和1931,行网络交换机1921耦合到列网络交换机1931和1932,行网络交换机1922耦合到列网络交换机1932和1933,并且行网络交换机1923耦合到列网络交换机1930和1933。这有利地改善了容错性或者可以支持跨维度的哈密顿循环的映射(例如,当将大于单个维度的处理器序列映射在一起时)。如上所述,可以在如上所述的中间(层1)行网络交换机和列网络交换机之间连接间接交叉维连接。
64.调度和故障
65.本公开的某些实施例可以基于作业大小(例如,在小作业和大作业之间)进行区分。例如,小作业可以被定义为适合于处理器组的作业。例如,这样的作业可以仅被调度到容纳其他小作业的处理器组。大作业可跨多个处理器组分布。在这种情况下,分配的最小增量可以是例如单个处理器组。例如,如果作业所需的节点的数量或几何形状不完全适合处理器组中的多个节点,则节点可能未被使用并且仅仅转发流量。
66.各种实施例可以路由哈密顿循环的许多配置,并且当故障发生时透明地替换处理器组。例如,在一维配置中,系统可以交换相同交换机中的任意处理器组和任意两个处理器组,例如,如果可以保留足够的上行链路用于维持跨其他交换机的序列。在较高维的配置中,如果存在足够的链路可用,则系统可以将行和列(或连续的块)交换在一起。例如,这可以简化在出现故障的情况下或者当在操作一段时间之后处理分段分配时找到新的处理器
组。
67.路由
68.一旦执行了将网络的逻辑部分分配给处理器组和处理器,就可以路由哈密顿循环。环可以具有恒定的带宽保证,其保留至少部分链路用于处理器之间的通信。例如,以上针对一维、二维或更多维描述的各种实施例可以包括具有跨一个或多个处理器组和交换机的专用非拥塞的最近相邻处理器通信环路的处理器闭环。可以有利地优化网络,以便将100%的链路带宽传递到在哈密顿循环中使用的处理器序列。带宽预留和路由的实现将取决于网络技术。基于策略的简单路由方案或基于ecmp路由的更复杂的方案可用于建立路由,而qos缓冲器和带宽预留可用于保证某一速率。
69.为了利用网络的全局视图来路由哈密顿循环,网络管理器可以将可用链路分配给循环,然后将它们标记为已使用。然后可以将路由编程为仅使用那些环。如果需要全局业务并且链路不可用,则qos方案可占用每个哈密顿循环的某一百分比来实施此业务。例如,如果本地拓扑在任何维度上长于两个处理器,则一些处理器可以将全局业务转发到内部处理器。这可以使用简化机制来完成,因为本地拓扑中的跳数可以由其大小来控制。
70.使用光网络交换机的示例
71.如上所述,本公开的某些实施例可以有利地使用光网络交换机来实现。根据各种实施例的光网络交换机可用于维护一个或多个处理器组之间的信道以形成序列。根据各种实施例的光网络交换机可以是信道交换的,而根据其他实施例的电网络交换机可以是分组交换的。分组交换与信道交换的区别在于分组交换可以基于每个分组中的信息改变交换配置。可以在源和目的地(例如,相同或不同处理器组中的两个处理器)之间建立信道交换,并在通信周期期间保持信道交换。例如,信道交换可以将信道带宽中的一些或全部专用于源和目的地之间的通信。因此,例如,信道可以具有相关联的最小专用带宽以维持被配置为跨一个或多个处理器组的序列中的处理器之间的信道。
72.图20示出了根据实施例的耦合到光网络交换机的处理器组。例如,每个处理器组可以包括一个或多个处理器。处理器组2020通过光链路2030和2031被耦合到光网络交换机2010。类似地,处理器组2021通过光链路2032和2033被耦合到光网络交换机2010。同样,处理器组2022通过光链路2034和2035被耦合到光网络交换机2010。最后,处理器组2023通过光链路2036和2037被耦合到光网络交换机2010。因此,可以以各种方式形成处理器序列。例如,可以通过串联配置每个处理器组中的多个处理器(例如,通过连接端口1-2、3-4、5-6和7-8以形成环路)来形成一个示例序列。另一示例序列可以通过串联耦合多个组来形成。处理器组的多个串联配置是可能的。例如,通过连接端口2-3和1-4以及通过连接端口6-7和5-8,形成2个处理器组的一个串联连接。通过连接端口1-5和6-2以及通过连接端口3-7和8-4,形成2个处理器组的另一串联连接。在另一配置中,所有四个处理器组在一个长链上连接。在此示例中,3个处理器组也可以被串联配置,并且一个处理器组在循环中(例如,其中多个处理器在循环中的一个处理器组中)。处理器的特定配置可以基于正被处理的神经网络的分区和其他因素。
73.即使图20所示的简单示例也可以支持n/2个节点的任何子集之间的全带宽哈密顿循环。例如,由于光网络交换机支持任意点到任意点的连通性,可以看出,可以支持任意哈密顿循环,例如,可以通过配对端口([4,7],[8,5],[6,3])来支持循环(2,4,3),并且不存在
任何拥塞。可以简单地省略故障节点(例如,节点1在先前的示例中)。同一交换机中的任何节点都可用作备选节点。在此示例中,每个端点可以仅是全带宽的单个环的成员。如果端点具有更多的网络端口,则可以将每个端点连接到例如具有六个端口的多个交换机,每个客户端可以连接到三个交换机。
[0074]
在一些实施例中,多个光网络交换机可以耦合在一起,使得耦合到不同光网络交换机的处理器组可以被配置为跨交换机的序列。图21示出了光网络交换机直接耦合在一起的配置。在此示例中,光网络交换机2101通过两条光链路中的每一条耦合到处理器组2111-2114,并且光网络交换机2102通过两条光链路中的每一条耦合到处理器组2115-2118。光网络交换机2101通过光链路2119和2120直接耦合到光网络交换机2102。光链路2119可以专用于在耦合到光网络交换机2101的特定处理器组和耦合到光网络交换机2102的另一处理器组(例如,耦合到处理器组2114的端口8和耦合到处理器组2115的端口3)之间建立连接。类似地,光链路2120可以专用于在耦合到光网络交换机2101的特定处理器组和耦合到光网络交换机2102的另一处理器组(例如,耦合到处理器组2118的端口10和耦合到处理器组2111的端口1)之间建立另一连接。因此,可以在光网络交换机2101和2102内或跨越光网络交换机2101和2102形成各种处理器序列。
[0075]
有利地,如果拓扑支持第二光跳,则可以设计能够实现更高调度灵活性的不同变体。在最简单的(一维)配置中,将交换端口集合划分为两个不相交子集e(端点)和i(交换机间)端口,使得对于|e|=e存在n=e i并且|i|=i。交换机本身可以作为团(clique)与i端口连接。如果组合k个这样的交换机,则可以连接总数k
·
e个端点,但是需要i≥k-1。和之前一样,可以在每个交换机内路由任意的环,并且如果在两个交换机之间存在c个连接,可以在它们之间任意地路由c个环。确切的网络拓扑现在是参数e,i,c和k之间的折衷。图21示出了具有两个光交换机的网络,n=10、c=2、e=8、i=2。它可以支持跨越两个交换机(例如,1、3、5、8)一个哈密顿循环的配置,而不是两个例如(1,5),(2,8)的配置,因为这将需要4个交换机间连接。可以通过不同的网络端口在不同的平面中支持不同的维度。
[0076]
图22示出了根据实施例的耦合到多个处理器组的多个光网络交换机的另一示例。图22示出了多个光网络交换机通过两个或更多个光链路耦合在一起的另一示例。在此,两个光网络交换机2201和2202通过两个处理器组2214和2215耦合在一起。例如,处理器组2214通过第一光链路2220被耦合到光网络交换机2201。处理器组2214还通过第二光链路2221被耦合到光网络交换机2202。另一个处理器组2215通过第三光链路2222被耦合到光网络交换机2201,并且处理器组2215通过第四光链路2223被耦合到光网络交换机2202。
[0077]
图23示出了根据实施例的耦合到多个处理器组的多个光网络交换机的又一示例。此示例示出了三(3)个光网络交换机2301-2303,每个光网络交换机被耦合到处理器组的子集。光网络交换机2301-2303直接被耦合在一起(例如,经由端口8-1、2-8和7-7之间的光链路)。因此,例如,可以配置多达九(9)个处理器组以形成序列。图23示出了具有三个8端口交换机并且c=1的网络。例如,对于该网络,可以将所有环打包到交换机,并将最后一个环分发给所有三个交换机。通常,c越大则配置越容易分配。
[0078]
图24示出了根据实施例的通过中间光网络交换机耦合到多个处理器组的多个光网络交换机的示例。在各种实施例中,光网络交换机2401-2402可以被耦合到一个或多个中间光网络交换机2403。因为光网络交换机使用由激光器产生的光束来操作,所以光发射机
和光接收机之间的较长距离和/或信号路径中的附加光交换机可能需要例如更强的激光器。在此,为了将处理器组耦合到串行耦合到不同交换机的处理器,使用到中间网络交换机2403的附加光链路。在图24所示的拓扑中,具有10个端口的示例中间交换机2403可以连接多达5个端点交换机,支持总计20个端点(例如,处理器组),具有例如在任何两个交换机之间的一个环,或者在任何三个或更多个交换机之间的两个环。
[0079]
图25示出了根据实施例的包括光网络交换机的另一示例二维集群拓扑。在此示例中,处理器组2501-2516被配置在多维(例如,二维)集群阵列中,例如,其中沿着集群阵列的特定维度的处理器组2501-2516具有耦合到对应的相同维度的光网络交换机的边缘处理器端口。在此示例中,集群阵列中的处理器组2501-2516的行具有耦合到对应的相同行光网络交换机2520-2523的边缘处理器端口,而集群阵列中的处理器组的列具有耦合到对应的相同列光网络交换机2530-2533的边缘处理器端口。在各种实施例中,一个或多个行光网络交换机2520-2523可以耦合到一个或多个列光网络交换机2530-2533。在此示例中,沿一个维度的每个光网络交换机被耦合到沿另一维度的至少两个光网络交换机。例如,行光网络交换机2520被耦合到列光网络交换机2530和2531,行光网络交换机2521被耦合到列光网络交换机2531和2532,行光网络交换机2522被耦合到列光网络交换机2532和2533,以及行光网络交换机2523被耦合到列光网络交换机2530和2533。类似地,列光网络交换机2530被耦合到行光网络交换机2520和2523,列光网络交换机2531被耦合到行光网络交换机2520和2521,列光网络交换机2532被耦合到行光网络交换机2521和2522,以及列光网络交换机2533被耦合到行光网络交换机2522和2523。这有利地改善了容错性或者可以支持跨越维度的哈密顿循环的映射(例如,当将大于单个维度的处理器序列映射在一起时)。如上所述,可以在如上所述的中间(层1)行和列光网络交换机之间附加间接的交叉维连接。
[0080]
根据上面的示例,可以概括拓扑结构以将其扩展到两个或多个维度。这保持了从任意点到任意点的两个交换机跳,但是在映射方面失去了一些灵活性,这是因为现在沿着两个维度布置交换机(并且在一个维度内自由地“跳”)。交换机间链路现在可以用于连接相同大小或不同大小的交换机。例如,如果c=2,则每个交换机可以具有到其他维度的交换机的两个连接。对于n
×
n布局,并且c=1,将沿着主对角线连接所有交换机。对于较大的c,可以保持每个行/列中正好存在c个交叉连接的不变性。
[0081]
图26示出根据实施例的处理器组中的处理器的另一配置。在此示例中,处理器组2650中的边缘处理器2601和2604分别被耦合到光模块2620和2621。例如,光模块通常在连接到系统内部的一侧上具有电接口,并且在通过光缆连接到外界的一侧上具有光接口。例如,光模块2620和2621可以发送(tx)和接收(rx)光和电信号。
[0082]
图27a示出根据实施例的处理器组中的处理器的另一配置。在此示例中,处理器组2700a包括处理器2740-2748的二维阵列。边缘处理器2740-2747被耦合到一个或多个光模块2720-2731,用于通过光信道2701-2706和2710-2715(例如,光缆)发送和接收光信号。
[0083]
图27b示出根据实施例的处理器组中的处理器的又一配置2700b。在一些实施例中,光模块2720-2731可以耦合到例如分路器/组合器2760-2763以发送和接收多个不同的信道。在此示例中,通常不同的多个通信信道例如可以使用wdm被组合到公共光纤中,然后整个信道集合可以通过使用公共的一对光交换机端口和通过光交换机的单个光路径而被大量地交换。例如,光模块2720-2731可以从多个处理器组接收数据,并在多个波长上组合
数据,这些数据在光纤2790-2793上一起传输。例如,对于输入光信号,分路器可以向不同的光模块2720-2731和相应的处理器组发送不同的波长。有利地,本示例可以减少光交换端口的总数,这降低了成本。它还可以允许处理器(具有在它们的端点之间存在共同性的许多不同“通道”(例如,以太网端口))被视为单个集合,因此它们可以利用它们固有的组织,并且可以用非常低数量的光交换端口来交换,其中例如,由于神经网络使用并行的许多通道/端口来支持非常高的总数据速率的特定性质,在ml专用处理器之间找到通道/端口的集合的可能性是非常大的。
[0084]
以上描述示出了本公开的各种实施例以及如何实现这些实施例的各方面的示例。上述各种实施例可以有利地包括能够实现过度订阅因子(例如3:1,具有48个客户端链路和16个上行链路)的网络拓扑,这意味着显著的成本/功率节省,同时仍然能够维持全哈密顿循环带宽。在一些实施例中,这里描述的网络拓扑可以包括利用局部性的软件分配/重新分配方法(例如,将相邻处理器组分配给相同的层0交换机)。上述示例和实施例不应被认为是仅有的实施例,而是用于示出由所附权利要求限定的本公开的灵活性和优点。例如,虽然已经关于特定处理流程和步骤描述了某些实施例,但是对于本领域的技术人员显而易见的是,本公开的范围不必严格限于所描述的流程和步骤。串行描述的步骤可以并行执行,步骤的顺序可以改变,并且可以被修改、组合、添加或省略步骤。作为另一示例,尽管使用硬件和软件的特定组合描述了某些实施例,但是应当认识到,硬件和软件的其他组合也是可能的,并且也可以以硬件实现描述为以软件实现的特定操作,反之亦然。
[0085]
因此,说明书和附图被认为是示出性的而不是限制性的。其他布置、实施例、实现方式和等同物对于本领域技术人员而言是显而易见的,并且可以在不脱离所附权利要求中阐述的本公开的精神和范围的情况下使用。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献