CN115203117A - 计算系统、方法和介质 - Google Patents
计算系统、方法和介质 Download PDFInfo
- Publication number
- CN115203117A CN115203117A CN202110389884.4A CN202110389884A CN115203117A CN 115203117 A CN115203117 A CN 115203117A CN 202110389884 A CN202110389884 A CN 202110389884A CN 115203117 A CN115203117 A CN 115203117A
- Authority
- CN
- China
- Prior art keywords
- parallel processing
- processing units
- fully
- computing
- cluster
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 27
- 238000012545 processing Methods 0.000 claims abstract description 410
- 230000006854 communication Effects 0.000 claims description 107
- 238000004891 communication Methods 0.000 claims description 107
- 238000004364 calculation method Methods 0.000 claims description 11
- 230000007175 bidirectional communication Effects 0.000 claims description 6
- 238000000638 solvent extraction Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 47
- 230000015654 memory Effects 0.000 description 22
- 230000002093 peripheral effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
Abstract
本公开涉及一种计算系统、方法和介质。加速器系统包括多个并行处理单元,所述多个并行处理单元配置在一个或多个全连接计算集群中。基于给定全连接计算集群中的并行处理单元的数量分割输入数据,并且加载到给定全连接计算集群中的相应并行处理单元上。通过给定计算集群对加载的输入数据进行函数计算。
Description
计算领域
本公开涉及芯片领域,尤其涉及一种计算系统、方法和介质。
背景技术
目前,深度神经网络的当前的并行/分布式训练方法包括在多个分布式计算节点上应用同步的大、小批量随机梯度下降(SDG)处理,以探索基于数据并行的加速。参照图1,示出了在主CPU上运行的示例性的小批量SDG处理,其中包括伪代码。该处理受到同步部分的影响,同步部分在并行加速的整个过程中形成瓶颈。如图2所示,为了减少瓶颈,需要增加加速器侧网络的带宽和/或降低主加速器通信的频率。
小批量SDG处理的许多同步算法已经被提出。塌缩(Reduce)和全塌缩(All_Reduce)函数是常见的计算节点间通信模式函数。参照图3,图中示出了塌缩函数。在塌缩函数中,将多个节点,即节点310至节点340,各自的值集合传递给该多个节点中的给定节点310。该给定节点310将相应的值相加在一起。给定节点310存储值集合的和。例如,第一节点310从节点310至节点340接收值5、2、7和4,将接收到的值5、2、7和4相加并且存储得到的和18。第一节点310还将值1、3、8和2相加在一起并存储得到的和14。参照图4,图中示出了全塌缩函数。在全塌缩函数中,将多个节点,即节点410至节点440,各自的值集合传递给该多个节点中的给定节点410,该给定节点410将相应的值相加在一起。和值集合由给定节点410向节点410至节点440广播,并且节点410至节点440存储和值集合。例如,第一节点410将从节点410至节点440接收的值5、2、7和4相加在一起。第一节点410还将值1、3、8和2相加在一起。第一节点410向节点410至节点440广播18和14的和值集合,节点410至节点440中每个节点存储该和值集合。如图3和图4所示,塌缩函数和全塌缩函数同时应用于一组变量。
然而,需要改进芯片到芯片的高速序列化/反序列化(SerDes)互连,使得可以在芯片集群内实现计算全塌缩函数的这种分布式系统,而不是在经由更慢的以太网(ethernet)、无限宽带网(infiniband)或类似通信链路连接的分布式计算机上实现。
发明内容
参照以下描述和附图可以较佳地理解本公开,在附图中示出与全连接的多个并行处理单元(PPU)的分层缩放(hierarchical scaling)相关的本公开实施例。
本公开的一个目的是使得可以在芯片集群内实现计算塌缩或全塌缩函数的分布式系统。
在一个实施例中,一种计算系统包括:多个并行处理单元,其中,每个并行处理单元通过相应的通信链路耦合到每个其他并行处理单元,并且,基于指定计算参数,所述多个并行处理单元的相应的通信链路配置到一个或多个全连接计算集群中。
可选地,所述通信链路包括双向通信链路。
可选地,所述指定计算参数包括给定计算集群的并行处理单元的数量。
可选地,所述指定计算参数包括计算处理带宽的大小。
可选地,所述一个或多个全连接计算集群的每一个配置成对相应的输入数据进行相应的塌缩或全塌缩函数计算。
可选地,所述多个并行处理单元通过相应的通信链路被配置在八个并行处理单元组成的一个全连接计算集群中。
可选地,所述多个并行处理单元通过相应的通信链路被配置在两个分别由四个并行处理单元组成的全连接计算集群中。
可选地,所述多个并行处理单元通过相应的通信链路被配置在四个分别由两个并行处理单元组成的全连接计算集群中。
可选地,所述多个并行处理单元通过相应的通信链路被配置在由四个并行处理单元组成的一个全连接计算集群以及两个分别由两个并行处理单元组成的全连接计算集群中。
在一个实施例中,一种计算方法包括:
基于指定计算参数,将多个并行处理单元的通信链路配置到一个或多个全连接计算集群中;
基于给定全连接计算集群中并行处理单元的数量,分割输入数据;以及
通过所述给定全连接计算集群对所述输入数据进行函数计算。
可选地,所述指定计算参数包括给定计算集群的并行处理单元的数量。
可选地,所述指定计算参数包括计算处理带宽的大小。
可选地,所述多个并行处理单元通过相应的通信链路配置到由八个并行处理单元组成的一个全连接计算集群中;以及,将所述输入数据分割成八个部分并且加载到所述八个并行处理单元中的相应并行处理单元上。
可选地,所述计算方法还包括:
基于所述指定计算参数,将所述多个并行处理单元的通信链路配置到多个全连接计算集群中,其中,给定全连接计算集群中的并行处理单元之间的通信链路配置成将数据发送到所述给定全连接计算集群中的其他相应并行处理单元,并且,其他全连接计算集群中的并行处理单元配置成在所述给定全连接计算集群中的并行处理单元与所述其他全连接计算集群中的并行处理单元之间的通信链路上,将数据从所述给定全连接计算集群中的并行处理单元中继到所述给定全连接计算集群中的其他并行处理单元;
通过所述给定全连接计算集群对所述输入数据进行塌缩函数或全塌缩函数计算,其中,在所述给定全连接计算集群中的并行处理单元之间的通信链路上,将所述塌缩函数或全塌缩函数的数据发送到所述给定全连接计算集群中的其他相应并行处理单元,并且,在所述给定全连接计算集群中的并行处理单元与所述其他全连接计算集群中的并行处理单元之间的通信链路上,所述其他全连接计算集群中的一个或多个并行处理单元中继所述塌缩函数或全塌缩函数的数据。
可选地,所述多个并行处理单元通过相应的通信链路配置到两个分别由四个并行处理单元组成的全连接计算集群中;以及,将所述输入数据分割成四个部分并且加载到所述给定全连接计算集群的四个并行处理单元中的相应并行处理单元上。
可选地,所述多个并行处理单元通过相应的通信链路配置到四个分别由两个并行处理单元组成的全连接计算集群中;以及,将所述输入数据分割成两个部分并且加载到所述给定全连接计算集群的两个并行处理单元中的相应并行处理单元上。
可选地,所述通信链路包括双向通信链路。
在一个实施例中,提供了一个或多个计算设备可读介质,其上存储有指令,当一个或多个处理单元执行所述指令时,执行包括以下步骤的方法:
基于指定计算参数,将多个并行处理单元的通信链路配置到一个或多个全连接计算集群中;
基于给定全连接计算集群中并行处理单元的数量分割输入数据;以及
通过所述给定全连接计算集群对所述输入数据进行函数计算。
可选地,所述多个并行处理单元通过相应的通信链路配置在由八个并行处理单元组成的一个全连接计算集群中;以及
将所述输入数据分割成八个部分并且加载到所述八个并行处理单元中的相应并行处理单元上。
可选地,所述方法还包括:
基于所述指定计算参数,将所述多个并行处理单元的通信链路配置到多个全连接计算集群中,其中,给定全连接计算集群中的并行处理单元之间的通信链路配置成将数据发送到所述给定全连接计算集群中的其他相应并行处理单元,并且,其他全连接计算集群中的并行处理单元配置成在所述给定全连接计算集群中的并行处理单元与所述其他全连接计算集群中的并行处理单元之间的通信链路上,将数据从所述给定全连接计算集群中的并行处理单元中继到所述给定全连接计算集群中的其他并行处理单元;
通过所述给定全连接计算集群对所述输入数据进行塌缩函数或全塌缩函数计算,其中,在所述给定全连接计算集群中的并行处理单元之间的通信链路上,将所述塌缩函数或全塌缩函数的数据发送到所述给定全连接计算集群中的其他相应并行处理单元,并且,在所述给定全连接计算集群中的并行处理单元与所述其他全连接计算集群中的并行处理单元之间的通信链路上,所述其他全连接计算集群中的一个或多个并行处理单元中继所述塌缩函数或全塌缩函数的数据。
通过上述方案,使得可以在芯片集群内实现计算塌缩或全塌缩函数的分布式系统。
提供发明内容部分是为了以简要形式介绍发明构思的选择,在下面的具体实施例中将进一步描述发明构思。本发明内容部分的目的并非指明所要求保护的主题的关键特征或基本特征,也不是要用来限制所要求保护的主题的范围。
附图说明
在附图中,以示例的方式而不是以限制的方式示出本公开的实施例,其中,类似的附图标记表示类似的元件,并且,其中:
图1示出根据现有技术的示例性小批量SDG处理。
图2示出根据现有技术的另一个示例性小批量SDG处理。
图3示出根据现有技术的塌缩函数计算。
图4示出根据现有技术的全塌缩函数计算。
图5示出根据本公开实施例的提供分层缩放的全连接的多个并行处理单元。
图6示出根据本公开实施例的在提供分层缩放的全连接的多个并行处理单元上的塌缩或全塌缩函数计算。
图7示出根据本公开实施例的全连接的多个并行处理单元的分层缩放方法。
图8示出根据本公开实施例的提供分层缩放的全连接的多个并行处理单元的计算集群。
图9示出根据本公开实施例的在提供分层缩放的全连接的多个并行处理单元的计算集群上的塌缩或全塌缩函数计算。
图10示出根据本公开实施例的提供分层缩放的全连接的多个并行处理单元的计算集群。
图11示出根据本公开实施例的提供分层缩放的分割的全连接的多个并行处理单元。
图12示出根据本公开实施例的全连接的多个并行处理单元的增强分层缩放方法。
图13示出根据本公开实施例的提供分层缩放的全连接的多个并行处理单元的计算集群。
图14示出根据本公开实施例的提供分层缩放的全连接的多个并行处理单元的计算集群。
图15示出根据本公开实施例的提供分层缩放的全连接的多个并行处理单元的计算集群。
图16示出根据本公开实施例的包括多个并行处理单元的示例性计算系统。
图17示出根据本公开实施例的示例性并行处理单元。
具体实施例
现在将详细说明本公开的实施例,其示例在附图中示出。尽管将结合实施例来描述本公开,但是应当理解,其目的并非将本公开限制于这些实施例。相反,本公开旨在覆盖所附权利要求限定的本公开的范围内的替代方案、修改方案和等同方案。此外,在下面对本公开实施例的详细描述中,阐述了许多具体细节,以便提供对本公开的透彻理解。然而,应当理解,本公开可以在无需这些具体细节的情况下实施。在另一些情况下,为了避免模糊本公开的方面,公知的方法、过程、部件和电路未进行详细描述。
下文中本公开的一些实施例是按照例程、模块、逻辑块、以及对一个或多个电子设备内的数据的操作的其他符号形式来呈现的。这些描述和形式是本领域技术人员采用的将工作实质最有效地传达给本领域技术人员的方式。在本文中,例程、模块、逻辑块和/或类似物通常认为是导致期望结果的过程或指令的自洽序列。这些过程包括对物理量的物理操作。尽管并非必要,通常这些物理操作采取的形式是能够在电子设备中存储、传输、比较和以其他方式操作的电或磁信号。为方便起见,以及参考公共用法,参考本公开实施例,这些信号称为数据、比特、值、要素、符号、字符、术语、数字、字符串等。
然而,应当记住,这些术语将解释为提及物理操作和物理量,并且仅仅是方便的标记,并且将根据本领域中常用的术语进一步解释。除非在下面的讨论中显而易见地特别说明,否则应当理解,在本公开实施例的全部讨论中,使用诸如“接收”等术语的讨论指的是电子设备的动作或过程,电子设备例如是操纵和转换数据的电子计算设备。数据表示为电子设备的逻辑电路、寄存器、存储器等内部的物理(例如,电子)量,并被转换成类似地表示为电子设备内的物理量的其他数据。
在本公开中,析取词的使用意在包括合取词。定冠词或不定冠词的使用并非意在指示基数。特别地,对“所述”对象或“一个”对象的引述意在也表示可能存在的多个这种对象之一。术语“包括”、“包含”等的使用指定存在所述元件,但不排除存在或添加一个或多个其他元件和/或元件组。还应理解,尽管术语第一、第二等可用于描述不同元件,然而,这些元件不应受到这些术语的限制。这些术语用来将一个元件与另一个元件彼此区分。例如,第一元件可以被称为第二元件,并且类似地,第二元件可以被称为第一元件,而不脱离实施例的范围。还应当理解,当一个元件被称为“耦合”到另一个元件时,它可以直接或间接地连接到另一个元件,或者可以存在一个中间元件。相反,当一个元件被称为“直接连接”到另一个元件时,则不存在中间元件。还应理解,术语“和/或”包括一个或多个相关联元件的任何组合和所有组合。还应理解,这里使用的短语和术语是出于描述的目的,而不应被视为限制性的。
现在参照图5,图5示出根据本公开实施例的提供分层缩放的全连接的多个并行处理单元。所述多个并行处理单元可以通过多个通信链路配置成彼此耦合。例如,所述全连接的多个并行处理单元包括八个并行处理单元,每个并行处理单元包括七个通信端口。所述八个并行处理单元中的每一个并行处理单元可以通过各自的七个可配置通信链路直接连接到每个其他七个并行处理单元。在一个实施例中,每个通信链路是双向通信链路。
所述全连接的多个并行处理单元可用于计算塌缩、全塌缩等不同函数。例如,为了计算塌缩函数,可以将输入数据分割成八个部分,并且加载到八个全连接的并行处理单元中的每一个并行处理单元中。如图6所示,第一并行处理单元610可以在相应的通信链路上从并行处理单元610至并行处理单元680的每一个接收相应的数据值。第一并行处理单元610可以将相应的接收到的数据值相加,并且将和保存在第一并行处理单元610的缓存中。类似地,其他七个并行处理单元(并行处理单元620至并行处理单元680)也可以从并行处理单元610至并行处理单元680中每一个并行处理单元接收相应的数据值。每个其他并行处理单元可以将各自相应接收到的数据值相加,并且将各自的和保存在各自的缓存中。在另一个示例中,可以通过将输入数据分割为八个部分,并且将输入数据的分割部分加载到全连接的八个并行处理单元的每个并行处理单元中来进行全塌缩函数计算。如图6所示,第一并行处理单元610可以在相应的通信链路上从并行处理单元610至并行处理单元680中每个并行处理单元接收相应的数据值。第一并行处理单元610可以将相应的接收到的数据值相加。如图6所示,然后,第一并行处理单元610可以在相应的通信链路上向并行处理单元610至并行处理单元680广播相应的和值。类似地,其他七个并行处理单元(并行处理单元620至并行处理单元680)也可以从并行处理单元610至并行处理单元680中每个并行处理单元接收相应的数据值。每个其他并行处理单元可以将各自相应的接收的数据值相加。每个其他并行处理单元也可以在相应的通信链路上向相应的并行处理单元广播相应的和值。
将参照图7进一步解释并行处理单元的分层缩放,图7示出根据本公开实施例的全连接的多个并行处理单元的分层缩放方法。在步骤710,基于指定计算参数,多个并行处理单元的通信链路配置到一个或多个全连接计算集群中。在一个实施例中,计算参数可以是给定计算集群的并行处理单元的数量,例如,给定计算集群的八个、四个或两个并行处理单元。在另一个实施例中,计算参数可以是计算处理带宽的大小。计算处理带宽可以映射到给定数量的并行处理单元。在一个实施例中,如图5所示,多个并行处理单元可以配置在通过双向通信链路通信耦合的全连接的并行处理单元的一个计算集群中。在一些情况下,在应用中可能不需要用包括全部的多个并行处理单元的计算集群来进行塌缩、全塌缩或其他类似函数的计算。在另一些情况下,例如云计算服务,客户可能希望选择是否为八个、四个或两个并行处理单元的计算处理带宽付费。
相应地,在另一个实施例中,如图8所示,并行处理单元505至并行处理单元540可配置在两个分别由四个并行处理单元组成的计算集群中,即计算集群805和计算集群810,计算集群805由并行处理单元505至并行处理单元520组成,计算集群810由并行处理单元525至并行处理单元540组成。可以通过启用互连每个相应计算集群中的并行处理单元的通信链路的给定子集,并且禁用不同计算集群的并行处理单元之间的其他通信链路来配置通信链路。例如,可以启用全连接第一计算集群805的并行处理单元505至并行处理单元520的通信链路子集。类似地,可以启用全连接第二计算集群810的并行处理单元525至并行处理单元540的通信链路。然而,可以禁用第一计算集群805的并行处理单元和第二计算集群810的并行处理单元之间的通信链路。在另一实施例中,如图10所示,并行处理单元505至并行处理单元540可以配置在四个分别由个两个并行处理单元组成的计算集群中,即计算集群1005、计算集群1010、计算集群1015和计算集群1020。计算集群1005由并行处理单元505和并行处理单元510组成。计算集群1010由并行处理单元515和并行处理单元520组成。计算集群1015由并行处理单元525和并行处理单元530组成。计算集群1020由并行处理单元535和并行处理单元540组成。在又一实施例中,如图11所示,并行处理单元505至并行处理单元540可以配置在两个分别由两个并行处理单元组成的计算集群和一个由四个并行处理单元组成的计算集群中,即计算集群1105、计算集群1110和计算集群1115。计算集群1105由并行处理单元505和并行处理单元510组成。计算集群1110由并行处理单元515和并行处理单元520组成。计算集群1115由并行处理单元525至并行处理单元540组成。图6、图8、图10和图11所示的示例性配置仅仅是将多个并行处理单元配置在一个或多个计算集群中的一些可能配置。
再次参照图7,全连接的多个并行处理单元的分层缩放方法还包括:在步骤720,为了在给定全连接计算集群上计算塌缩、全塌缩或类似函数,分割输入数据,并且将相应的分割部分加载到给定全连接计算集群的相应的并行处理单元上。例如,在八个并行处理单元的计算集群中,可以将输入数据分成八个部分,并且加载到给定全连接计算集群的相应的并行处理单元上。对于四个并行处理单元的计算集群,可以将输入数据分成四个部分,并且加载到给定全连接计算集群的相应的并行处理单元上。对于两个并行处理单元的计算集群,可以将输入数据分割成两个部分,并且加载到给定全连接计算集群的相应并行处理单元上。
在步骤730,通过给定全连接计算集群对输入数据进行塌缩、全塌缩或类似函数的计算。例如,在八个并行处理单元的全连接计算集群中,可以参照上文中图6所述的那样来进行塌缩或全塌缩函数的计算。
如图9所示,在计算塌缩函数的四个并行处理单元的全连接计算集群示例中,第一并行处理单元505可以在相应的通信链路上从给定计算集群805的并行处理单元505至并行处理单元520中每个并行处理单元接收相应的数据值。第一并行处理单元505可以将相应的接收到的数据值相加,并且将和保存在第一并行处理单元505的缓存中。类似地,给定计算集群805的其他并行处理单元,即并行处理单元510至并行处理单元520,可以从给定计算集群805的并行处理单元接收其他相应数据值。每个其他并行处理单元可以将各自相应的接收到的数据值相加,并且将和保存在相应的并行处理单元的缓存中。如图9所示,在计算全塌缩函数的四个并行处理单元示例中,第一并行处理单元505可以在相应的通信链路上从给定计算集群805的并行处理单元505至并行处理单元520中每个并行处理单元接收相应的数据值。第一并行处理单元505可以将相应的接收到的数据值相加。然后,第一并行处理单元505可以在相应的通信链路上向给定计算集群805的并行处理单元505至并行处理单元520广播相应的和值。类似地,其他三个并行处理单元,即并行处理单元510至并行处理单元520,可以从并行处理单元505至并行处理单元520中每个并行处理单元接收其他相应的数据值。每个其他并行处理单元可以将各自相应接收的数据值相加。每个其他并行处理单元也可以在相应的通信链路上向相应的并行处理单元广播相应的和值。还应理解,对于相同应用、相同客户端的另一应用、不同应用等,其他四个并行处理单元的计算集群810可配置成计算另一个函数。
如图10所示,在计算塌缩函数的两个并行处理单元的全连接计算集群中,第一并行处理单元505可以在相应的通信链路上从给定计算集群1005的其他并行处理单元510接收相应的数据值。第一并行处理单元505可以将相应的接收到的数据值相加,并且将和保存在第一并行处理单元505的缓存中。类似地,给定计算集群1005的其他并行处理单元510也可以从给定计算集群1005的第一并行处理单元505接收相应的数据值。其他并行处理单元510可以将相应的接收到的数据值相加,并且将和保存在并行处理单元510的缓存中。如图10所示,在计算全塌缩函数的两个并行处理单元的示例中,第一并行处理单元505可以在相应的通信链路上从给定计算集群1005的其他并行处理单元510接收相应的数据值。第一并行处理单元505可以将相应的接收到的数据值相加。然后,第一并行处理单元505可以在相应的通信链路上向给定计算集群1005的其他并行处理单元510广播相应的和值。类似地,其他并行处理单元510也可以从第一并行处理单元505接收相应的数据值。其他并行处理单元510可以将相应的接收到的数据值相加。其他并行处理单元也可以在相应的通信链路上向第一并行处理单元505广播相应的和值。应当理解,对于相同应用、相同客户端的另一应用、不同应用等,其他两个并行处理单元的计算集群,即计算集群1010、计算集群1015和计算集群1020,可被配置成计算另一个函数。
在一些情况下,全连接的多个并行处理单元的给定计算集群中的通信链路可能成为处理瓶颈。此外,另一计算集群的通信链路可能未充分利用。图12示出根据本公开实施例的全连接的多个并行处理单元的增强分层缩放方法。参照图13-图15,将进一步解释全连接的多个并行处理单元的增强分层缩放。全连接的多个并行处理单元的增强分层缩放方法包括:在步骤1210,基于指定计算参数将多个并行处理单元的通信链路配置在多个全连接计算集群中。在一个实施例中,计算参数是给定计算集群的并行处理单元数量,例如给定计算集群的八个、四个或两个并行处理单元。在另一个实施例中,计算参数是计算处理带宽的大小。在一个实施例中,每个通信链路可以是双向通信链路。给定全连接计算集群中的并行处理单元之间的通信链路可以配置成发送数据到给定全连接计算集群中的其他相应的并行处理单元。此外,其他全连接计算集群中的并行处理单元可以配置成在给定全连接计算集群中的并行处理单元与其他全连接计算集群中的并行处理单元之间的通信链路上,将数据从给定全连接计算集群中的并行处理单元中继到给定全连接计算集群中的其他并行处理单元。其他全连接计算集群中的并行处理单元可用来提供单跳传输,以中继数据,从而增加通信带宽。通常,并行处理单元的数据中继可以在很少或不利用中继并行处理单元的数据处理带宽的情况下执行。因此,不同计算集群中的并行处理单元之间的通信链路上的可用通信带宽可用来增加同一计算集群中的并行处理单元之间的通信带宽。
在一个实施例中,如图13所示,所述多个并行处理单元包括八个并行处理单元,即并行处理单元505至并行处理单元540,所述八个并行处理单元可以配置在两个分别由四个并行处理单元组成的全连接计算集群中,即全连接计算集群1305和全连接计算集群1310。全连接计算集群1305由并行处理单元505至并行处理单元520组成。全连接计算集群1310由并行处理单元525至并行处理单元540组成。第一全连接计算集群1305中的并行处理单元505至并行处理单元520之间的通信链路(如实线所示)可以配置成发送数据到第一全连接计算集群1305中的相应并行处理单元。此外,第二全连接计算集群1310中的并行处理单元525至并行处理单元540可以配置成在第一全连接计算集群1305中的并行处理单元505至并行处理单元520和第二全连接计算集群1310中的并行处理单元525至并行处理单元540之间的通信链路上(如虚线所示)将数据从第一全连接计算集群1305中的并行处理单元中继到第一全连接计算集群1305中的其他并行处理单元。当利用另一个全连接计算集群中的并行处理单元来中继数据时,第一全连接计算集群1305中的给定并行处理单元520可以随机选择第二全连接计算集群1310中的并行处理单元525至并行处理单元540中的任意并行处理单元以及相应的通信链路来中继数据。在另一个实施例中,第一全连接计算集群1305中的给定并行处理单元510可以选择第二全连接计算集群1310中的相应给定并行处理单元525和相应的通信链路来中继数据。
在另一个示例中,如图14所示,所述多个并行处理单元包括八个并行处理单元,即并行处理单元505至并行处理单元540,所述八个并行处理单元可以配置在四个分别由两个并行处理单元组成的全连接计算集群中,即全连接计算集群1405、全连接计算集群1410、全连接计算集群1415和全连接计算集群1420。全连接计算集群1405由并行处理单元505和并行处理单元510组成。全连接计算集群1410由并行处理单元515和并行处理单元520组成。全连接计算集群1415由并行处理单元525和并行处理单元530组成。全连接计算集群1420由并行处理单元535和并行处理单元540组成。第一全连接计算集群1405中的并行处理单元505和并行处理单元510之间的通信链路(如实线所示)可以配置成发送数据到第一全连接计算集群1405中的其他并行处理单元。此外,其他全连接计算集群,即全连接计算集群1410至全连接计算集群1420,中的并行处理单元515至并行处理单元540可以配置成在第一全连接计算集群1405中的并行处理单元505至并行处理单元510和全连接计算集群1410至全连接计算集群1420中的并行处理单元515至并行处理单元540之间的通信链路上(如虚线所示),将数据从第一全连接计算集群1405中的并行处理单元中继到第一全连接计算集群1405中的其他并行处理单元。当利用另外的全连接计算集群中的并行处理单元来中继数据时,第一全连接计算集群1405中的给定并行处理单元510可以随机选择全连接计算集群1410至全连接计算集群1420中的并行处理单元515至并行处理单元540中的任意并行处理单元以及相应的通信链路来中继数据。在另一实施例中,第一全连接计算集群1405中的给定并行处理单元510可以例如选择第三计算集群1420中的相应给定并行处理单元535和相应的通信链路来中继数据。
在又一个示例中,如图15所示,所述多个并行处理单元包括八个并行处理单元,即并行处理单元505至并行处理单元540,所述八个并行处理单元可以配置在三个全连接计算集群中,包括一个由四个并行处理单元组成的全连接计算集群1505和两个分别由两个并行处理单元组成的全连接计算集群,即全连接计算集群1510和全连接计算集群1515。全连接计算集群1505由并行处理单元505至并行处理单元520组成。全连接计算集群1510由并行处理单元525和并行处理单元530组成。全连接计算集群1515由并行处理单元535和并行处理单元540组成。第一全连接计算集群1505中的并行处理单元505至并行处理单元520之间的通信链路(如实线所示)可以配置成发送数据到第一全连接计算集群1505中的其他并行处理单元。此外,其他全连接计算集群,即全连接计算集群1510至全连接计算集群1515,中的并行处理单元525至并行处理单元540可以配置成在第一全连接计算集群1405中的并行处理单元505至并行处理单元520和全连接计算集群1510至全连接计算集群1515中的并行处理单元525至并行处理单元540之间的通信链路上(如虚线所示),将数据从第一全连接计算集群1505中的并行处理单元中继到第一全连接计算集群1505中的其他并行处理单元。当利用另外的全连接计算集群中的并行处理单元来中继数据时,第一全连接计算集群1505中的给定并行处理单元515可以随机选择全连接计算集群1510至全连接计算集群1515中的并行处理单元525至并行处理单元540中的任意并行处理单元以及相应的通信链路来中继数据。在另一实施例中,第一全连接计算集群1505中的给定并行处理单元515可以选择另一全连接计算集群1510中的相应给定并行处理单元530和相应的通信链路来中继数据。应当理解,如图13-图15所示的示例性计算集群和通信链路的配置仅仅是许多可能配置中的一些。
再次参照图12,全连接的多个并行处理单元的增强分层缩放方法还包括:在步骤1220,为了在给定全连接计算集群上计算塌缩、全塌缩或类似函数,分割输入数据并且将相应部分加载到给定全连接计算集群的相应并行处理单元上。例如,在图13所示的四个并行处理单元组成的全连接计算集群中,将输入数据分割成四个部分,并且加载到给定全连接计算集群的相应并行处理单元上。对于图14所示的两个并行处理单元组成的全连接计算集群,将输入数据分割成两个部分,并且将相应部分加载到给定全连接计算集群的相应的并行处理单元。
在步骤1230,通过给定全连接计算集群对输入数据进行塌缩、全塌缩或类似函数的计算。例如,如图13所示,在计算塌缩函数的四个并行处理单元的全连接计算集群1305中,第一并行处理单元505在相应的通信链路1315至通信链路1325上从给定全连接计算集群1305的并行处理单元505至并行处理单元520中的每一个并行处理单元接收相应的数据值的至少一部分。此外,可以在相应的通信链路1330至通信链路1345上由其他计算集群1310中的相应并行处理单元525至并行处理单元540从给定计算集群1305的并行处理单元510至并行处理单元520中继相应数据值的一部分。第一并行处理单元505可以将相应的接收到的数据值相加,并且将和保存在第一并行处理单元505的缓存中。类似地,给定计算集群1305的其他并行处理单元,即并行处理单元510至并行处理单元520,也可以直接在相应的通信链路上或者经由在其他相应的通信链路上的单跳传输从给定计算集群1305的并行处理单元接收相应的数据值。每个其他并行处理单元可将各自相应的接收到的数据值相加,并且将和保存在各自的缓存中。同样,如图13所示,在计算全塌缩函数的四个并行处理单元的示例中,第一并行处理单元505在相应的通信链路1315至通信链路1325上从给定计算集群1305的并行处理单元505至并行处理单元520中的每个并行处理单元接收相应的数据值的至少一部分。此外,可以在相应的通信链路1330至通信链路1345上,通过其他计算集群1310中相应的并行处理单元525至并行处理单元540从给定计算集群1305的并行处理单元510至并行处理单元520中继相应数据值的一部分。第一并行处理单元505可以将相应的接收到的数据值相加。然后,第一并行处理单元505可以在相应的通信链路上向给定计算集群1305的并行处理单元505至并行处理单元520广播相应和值的至少一部分。此外,相应和值的一部分可以在相应的通信链路上,通过其他计算集群1310中的相应并行处理单元540从给定计算集群1305的第一并行处理单元505中继到其他的并行处理单元,即并行处理单元510至并行处理单元520。类似地,其他三个并行处理单元,即并行处理单元510至并行处理单元520,也可以直接在相应的通信链路上或者经由在其他相应的通信链路上的单跳传输从并行处理单元505至并行处理单元520中每个并行处理单元接收相应的数据值。每个其他并行处理单元可以将各自相应接收的数据值相加。每个其他并行处理单元可直接在相应的通信链路上或者经由其他相应的通信链路上的单跳传输将相应的和值广播给相应的并行处理单元。应当理解,对于相同应用、相同客户端的另一应用、不同应用等,其他四个并行处理单元的计算集群1310可配置成计算另一个函数。
参照图16,示出根据本公开实施例的包括多个并行处理单元的示例性计算系统。示例性计算系统1600可以包括通过一个或多个高带宽芯片间网络1630耦合在一起的多个并行处理单元1610和并行处理单元1620。所述多个并行处理单元1610和并行处理单元1620包括多个神经处理加速器。所述多个并行处理单元1610和并行处理单元1620还可以通过一个或多个通信总线1660和通信总线1670耦合到多个主处理单元1640和主处理单元1650。所述一个或多个通信总线1660和通信总线1670包括一个或多个外围组件接口快速(PCIe)总线。所述一个或多个主处理单元1640和主处理单元1650可以通过一个或多个网络接口卡(NIC)1690和网络接口卡1695耦合到一个或多个主机侧网络1680。
参照图17,示出根据本公开实施例的示例性并行处理单元。并行处理单元1700包括多个计算核1705和计算核1710,多个芯片间链路(ICL)1715和芯片间链路1720,一个或多个高带宽存储器接口(HBM I/F)1725和高带宽存储器接口1730,一个或多个通信处理器1735,一个或多个直接存储器访问(DMA)控制器1740和直接存储器访问控制器1745,一个或多个命令处理器(CP)1750,一个或多个片上网络(NoC)1755,共享存储器1760以及一个或多个高带宽存储器(HBM)1765和高带宽存储器1770。并行处理单元1700还包括一个或多个联合测试动作组(JTAG)引擎1775,一个或多个集成电路间(I2C)接口和/或串行外设接口(SPI)1780,一个或多个外设组件接口快速(PCIe)接口1785,一个或多个编解码器(CoDec)1790等。在一个实施例中,可以在一个单片集成电路(IC)中制造多个计算核1705和计算核1710,多个芯片间链路1715和芯片间链路1720,一个或多个高带宽存储器接口1725和高带宽存储器接口1730,一个或多个通信处理器1735,一个或多个直接存储器访问控制器1740和直接存储器访问控制器1745,一个或多个命令处理器1750,一个或多个片上网络1755,共享存储器1760,一个或多个高带宽存储器1765和高带宽存储器1770,一个或多个联合测试动作组引擎1775,一个或多个集成电路间接口和/或串行外设接口1780,一个或多个外设组件接口快速接口1785,一个或多个编解码器1790等。
芯片间链路1715和芯片间链路1720可以用于多个并行处理单元之间的芯片到芯片通信。在一个实施例中,并行处理单元1700可以包括七个芯片间链路1715和芯片间链路1720。通信处理器1735、存储器直接访问引擎1740和存储器直接访问引擎1745可以用于通过芯片间链路1715和芯片间链路1720协调发送和接收的数据。片上网络1755可以用于协调计算核1705、计算核1710和共享存储器1760之间的数据移动。通信处理器1735、直接存储器访问引擎1740、直接存储器访问引擎1745、片上网络1755和高带宽存储器接口1725和高带宽存储器接口1730可以用于协调高带宽存储器1765、高带宽存储器1770、共享存储器1760和芯片间链路1715和芯片间链路1720之间的数据移动。命令处理器1750可以用作并行处理单元1700和一个或多个主处理单元之间的接口。参照上文中如图5-15所述的那样,多个并行处理单元1700可以用于有效地计算塌缩、全塌缩或其他类似函数。
根据本公开实施例,分层缩放使得多个并行处理单元可以配置在通过相应数量的并行通信环耦合的一个或多个计算集群中。当应用需要多个并行处理单元的计算资源的部分少于所述多个并行处理单元的子集的计算集群所能提供的计算资源,分层缩放所述多个并行处理单元是有效的。类似地,在云计算平台中可以有效地采用分层缩放,使客户端能够购买并行处理单元的计算集群的计算带宽,而不是全部并行处理单元的计算带宽。
对于本公开实施例的前述描述是为了说明和描述的目的而呈现的。前述描述并非意在排他或限制本公开为所公开的精确形式,在上述教导的启示下显然可能实现许多修改和变化。实施例的选择和描述是为了最好地解释本公开的原理及其实际应用,从而使本领域的其他技术人员能够最好地利用本公开以及利用对于预期的特定用途合适的各种修改的各种实施例。本公开的范围由所附权利要求及其等同物限定。
Claims (14)
1.一种计算系统,包括:
多个并行处理单元,其中,每个并行处理单元通过相应的通信链路耦合到每个其他并行处理单元,并且,基于指定计算参数,所述多个并行处理单元的相应的通信链路配置到一个或多个全连接计算集群中。
2.根据权利要求1所述的计算系统,其中,所述通信链路包括双向通信链路。
3.根据权利要求1所述的计算系统,其中,所述指定计算参数包括给定计算集群的并行处理单元的数量。
4.根据权利要求1所述的计算系统,其中,所述指定计算参数包括计算处理带宽的大小。
5.根据权利要求1所述的计算系统,其中,所述一个或多个全连接计算集群的每一个配置成对相应的输入数据进行相应的塌缩或全塌缩函数计算。
6.根据权利要求1所述的计算系统,其中,所述多个并行处理单元通过相应的通信链路被配置在八个并行处理单元组成的一个全连接计算集群中。
7.根据权利要求1所述的计算系统,其中,所述多个并行处理单元通过相应的通信链路被配置在两个分别由四个并行处理单元组成的全连接计算集群中。
8.根据权利要求1所述的计算系统,其中,所述多个并行处理单元通过相应的通信链路被配置在四个分别由两个并行处理单元组成的全连接计算集群中。
9.根据权利要求1所述的计算系统,其中,所述多个并行处理单元通过相应的通信链路被配置在由四个并行处理单元组成的一个全连接计算集群以及两个分别由两个并行处理单元组成的全连接计算集群中。
10.一种计算方法,包括:
基于指定计算参数,将多个并行处理单元的通信链路配置到一个或多个全连接计算集群中;
基于给定全连接计算集群中并行处理单元的数量,分割输入数据;以及
通过所述给定全连接计算集群对所述输入数据进行函数计算。
11.根据权利要求10所述的计算方法,其中,所述指定计算参数包括给定计算集群的并行处理单元的数量。
12.根据权利要求10所述的计算方法,其中,所述指定计算参数包括计算处理带宽的大小。
13.根据权利要求10所述的计算方法,所述计算方法还包括:
基于所述指定计算参数,将所述多个并行处理单元的通信链路配置到多个全连接计算集群中,其中,给定全连接计算集群中的并行处理单元之间的通信链路配置成将数据发送到所述给定全连接计算集群中的其他相应并行处理单元,并且,其他全连接计算集群中的并行处理单元配置成在所述给定全连接计算集群中的并行处理单元与所述其他全连接计算集群中的并行处理单元之间的通信链路上,将数据从所述给定全连接计算集群中的并行处理单元中继到所述给定全连接计算集群中的其他并行处理单元;
通过所述给定全连接计算集群对所述输入数据进行塌缩函数或全塌缩函数计算,其中,在所述给定全连接计算集群中的并行处理单元之间的通信链路上,将所述塌缩函数或全塌缩函数的数据发送到所述给定全连接计算集群中的其他相应并行处理单元,并且,在所述给定全连接计算集群中的并行处理单元与所述其他全连接计算集群中的并行处理单元之间的通信链路上,所述其他全连接计算集群中的一个或多个并行处理单元中继所述塌缩函数或全塌缩函数的数据。
14.一个或多个计算设备可读介质,其上存储有指令,当一个或多个处理单元执行所述指令时,执行包括以下步骤的方法:
基于指定计算参数,将多个并行处理单元的通信链路配置到一个或多个全连接计算集群中;
基于给定全连接计算集群中并行处理单元的数量分割输入数据;以及
通过所述给定全连接计算集群对所述输入数据进行函数计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110389884.4A CN115203117A (zh) | 2021-04-12 | 2021-04-12 | 计算系统、方法和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110389884.4A CN115203117A (zh) | 2021-04-12 | 2021-04-12 | 计算系统、方法和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115203117A true CN115203117A (zh) | 2022-10-18 |
Family
ID=83571383
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110389884.4A Pending CN115203117A (zh) | 2021-04-12 | 2021-04-12 | 计算系统、方法和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115203117A (zh) |
-
2021
- 2021-04-12 CN CN202110389884.4A patent/CN115203117A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8775698B2 (en) | Performing an all-to-all data exchange on a plurality of data buffers by performing swap operations | |
US8516490B2 (en) | Rule-based dynamic resource adjustment for upstream and downstream processing units in response to an intermediate processing unit event | |
US8544065B2 (en) | Dataspace protection utilizing virtual private networks on a multi-node computer system | |
WO2008154552A1 (en) | Resource management in multi-processor system | |
KR101950786B1 (ko) | 분산처리용 인공신경망 연산 가속화 방법 | |
CN114281521B (zh) | 优化深度学习异构资源通信效率方法、系统、设备及介质 | |
US11355163B2 (en) | Memory interconnection architecture systems and methods | |
WO2023040197A1 (zh) | 一种跨节点通信方法、装置、设备及可读存储介质 | |
US7106600B2 (en) | Interposer device | |
CN114742000B (zh) | 基于FPGA集群的SoC芯片验证系统、验证方法、装置 | |
US20220114132A1 (en) | Data Switch Chip and Server | |
CN113312304B (zh) | 一种互联装置、主板及服务器 | |
CN113424198B (zh) | 基于柔性电缆连接的分布式ai训练拓扑 | |
CN115994115B (zh) | 芯片控制方法、芯片组及电子设备 | |
US8572723B2 (en) | Utilizing virtual private networks to provide object level security on a multi-node computer system | |
CN115203117A (zh) | 计算系统、方法和介质 | |
CN111274193A (zh) | 数据处理装置及方法 | |
CN114445260B (zh) | 基于fpga的分布式gpu通信的方法及装置 | |
CN112805727A (zh) | 分布式处理用人工神经网络运算加速装置、利用其的人工神经网络加速系统、及该人工神经网络的加速方法 | |
US20220308890A1 (en) | Multi-processing unit interconnected accelerator systems and configuration techniques | |
JP2021507384A (ja) | ニューラルネットワークプロセッサのためのオンチップ通信システム | |
US11501134B2 (en) | Convolution operator system to perform concurrent convolution operations | |
US11720521B2 (en) | Topologies and algorithms for multi-processing unit interconnected accelerator systems | |
CN116991488B (zh) | 一种芯片板卡和服务器 | |
US20230090604A1 (en) | Parallel processing unit virtualization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20240221 Address after: 5th Floor, No. 2, Lane 55, Chuanhe Road, No. 366 Shangke Road, Pudong New Area Free Trade Pilot Zone, Shanghai Applicant after: Pingtouge (Shanghai) semiconductor technology Co.,Ltd. Country or region after: China Address before: Room 01, 45th Floor, AXA Building, 8 Shanton Road, Singapore Applicant before: Alibaba Singapore Holdings Ltd. Country or region before: Singapore |
|
TA01 | Transfer of patent application right |