CN113424198B - 基于柔性电缆连接的分布式ai训练拓扑 - Google Patents
基于柔性电缆连接的分布式ai训练拓扑 Download PDFInfo
- Publication number
- CN113424198B CN113424198B CN201980005607.XA CN201980005607A CN113424198B CN 113424198 B CN113424198 B CN 113424198B CN 201980005607 A CN201980005607 A CN 201980005607A CN 113424198 B CN113424198 B CN 113424198B
- Authority
- CN
- China
- Prior art keywords
- accelerator
- inter
- chip
- card
- accelerators
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
-
- 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
- G06F15/17306—Intercommunication techniques
-
- 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
- G06F15/17306—Intercommunication techniques
- G06F15/17318—Parallel communications techniques, e.g. gather, scatter, reduce, roadcast, multicast, all to all
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/28—Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
Abstract
数据处理系统包括中央处理单元(CPU)(107、109)和通过总线联接到CPU(107、109)的多个加速器卡,每个加速器卡都具有多个数据处理(DP)加速器,以从CPU(107、109)接收DP任务并执行所接收的DP任务。加速器卡中的至少两个经由卡间连接彼此联接,并且DP加速器中的至少两个经由芯片间连接彼此联接。卡间连接和芯片间连接中的每一个都能够被动态激活或去激活,使得响应于从CPU(107、109)接收的请求,能够启用或禁用任一加速器卡或任一加速器卡中的任一DP加速器,以处理从CPU(107、109)接收的任一DP任务。
Description
技术领域
本公开的实施方式大体上涉及机器学习。更具体地,本公开的实施方式涉及人工智能(AI)加速器芯片拓扑。
背景技术
分布式AI训练需要同时工作的多个AI加速器芯片,以加速整个训练过程并减少训练时间。因此,需要AI加速器芯片的拓扑来协调芯片。根据训练需要,这种拓扑的大小可以从一位数到数千个AI加速器芯片不等。通常,小拓扑可以使用基板上的印刷电路板(PCB)布线来建立;而大拓扑可以使用以太网建立以连接不同的基板。然而,这两种方法都不可行,因为它们要么笨拙,要么需要大量的硬件开销。
发明内容
根据第一方面,本公开的一些实施方式提供了一种数据处理系统,包括:中央处理单元(CPU);以及多个加速器卡,其通过总线联接到CPU,加速器卡中的每一个具有多个数据处理(DP)加速器,以从CPU接收DP任务并执行所接收的DP任务,其中加速器卡中的至少两个经由卡间连接彼此联接,其中DP加速器中的至少两个经由芯片间连接彼此联接,其中卡间连接和芯片间连接中的每一个都能够被动态激活或去激活,使得响应于从CPU接收的请求,可以启用或禁用任一加速器卡或者任一加速器卡中的任一DP加速器,意处理从CPU接收的任一DP任务。
根据第二方面,本公开的一些实施方式提供了一种加速器卡,包括:主机接口,其通过总线联接到中央处理单元(CPU);以及多个数据处理(DP)加速器,用于从CPU接收DP任务并执行所接收的DP任务,其中所述加速器卡中的至少两个经由卡间连接彼此联接,其中DP加速器中的至少两个经由芯片间连接彼此联接,其中每个芯片间连接能够被动态激活或去激活,使得响应于经由主机接口从CPU接收到的请求,能够启用或禁用任一DP加速器,以处理从CPU接收的任一DP任务。
附图说明
本公开的实施方式在附图的图中以示例的方式而不是限制的方式示出,在附图中相似的附图标记表示类似的元件。
图1示出了根据实施方式的用于AI模型训练的系统的示例。
图2A至图2F示出了根据实施方式的AI模型训练中的数据传递的示例性过程。
图3示出了根据实施方式的用于创建AI芯片拓扑的示例性系统。
图4示出了根据实施方式的示例性AI芯片。
图5示出了根据实施方式的示例性PCB基板。
图6示出了根据实施方式的示例性AI芯片拓扑600。
图7示出了根据实施方式的AI模型训练的示例性过程。
图8示出了根据实施方式的创建AI芯片拓扑的示例性过程。
具体实施方式
将参考以下讨论的细节来描述本公开的各种实施方式和方面,并且附图将示出各种实施方式。以下描述和附图是对本公开的说明,而不应被解释为限制本公开。为了提供对本公开的各种实施方式的透彻理解,描述了许多具体细节。然而,在某些情况下,为了提供对本公开的实施方式的简洁讨论,没有描述公知的或常规的细节。
在说明书中提及“一个实施方式”或“实施方式”意味着结合该实施方式描述的特定特征、结构或特性可以被包括在本公开的至少一个实施方式中。在说明书的各种地方出现的短语“在一个实施方式中”不一定都指同一实施方式。
在本公开中,AI加速器、AI加速器芯片和芯片等术语可互换地使用,并且它们中的每一个都是通用处理单元(GPU)的示例,该通用处理单元(GPU)是数据处理(DP)加速器的示例。
根据一个方面,数据处理系统包括中央处理单元(CPU)和通过总线联接到CPU的加速器卡,加速器卡中的每一个具有多个数据处理(DP)加速器,以从CPU接收DP任务并执行所接收的DP任务。加速器卡中的至少两个经由卡间连接彼此联接,并且DP加速器中的至少两个经由芯片间连接彼此联接。卡间连接和芯片间连接中的每一个都能够被动态激活或去激活,使得响应于从CPU接收的请求,可以启用或禁用任一加速器卡或者任一加速器卡中的任一DP加速器,以处理从CPU接收的任一DP任务。
根据另一方面,加速器卡包括:主机接口,其通过总线联接到中央处理单元(CPU);以及多个数据处理(DP)加速器,其从CPU接收DP任务并执行所接收的DP任务。DP加速器中的至少两个经由芯片间连接彼此联接。每个芯片间连接能够被动态激活或去激活,使得响应于经由主机接口从CPU接收的请求,可以启用或禁用任一DP加速器,以处理从CPU接收的任一DP任务。
根据各种实施方式,描述了用于动态创建AI芯片拓扑的系统和方法。可以通过动态地激活或去激活AI芯片集群中的基板(也称为加速器卡或加速器模块)之间的电缆连接(也称为芯片间或处理器间连接)来建立不同大小的AI拓扑。芯片集群可以包括在不同基板上的大量AI芯片。每个基板可以包括相等数量的AI芯片,其中AI芯片使用印刷电路板(PCB)布线或电气走线互连。
根据示例性方法,接收用于在芯片集群中创建芯片拓扑的请求,该请求指定用于该芯片拓扑的芯片的数量。芯片集群包括使用电缆连接彼此连接的大量基板,每个基板包括位于其上的一组芯片。响应于该请求,基于为芯片拓扑指定数量的芯片和每个基板上的芯片组的数量,确定用于芯片拓扑的一组基板。一旦确定了该组基板,检查该组基板之间的电缆连接,以确定是否有任何电缆连接处于去激活状态。然后将去激活的电缆连接激活以构建所请求的芯片拓扑。
在一实施方式中,每个芯片可以配置为执行一个或多个程序指令(命令或信号)以激活或去激活与芯片的芯片间连接。在一实施方式中,每个芯片是AI加速器芯片。每个基板上的芯片组布置成多行,每行包括相等数量的芯片,每个芯片使用双向印刷电路板(PCB)布线连接到其相邻的芯片。
在一实施方式中,芯片拓扑包括多行和多列芯片,每行或每列中的芯片以菊花链方式连接以形成双向物理环。对于每个物理环,每行或每列的两端上的芯片使用电缆连接彼此连接。电缆连接可以是加速器的缓存一致性互连(CCIX)连接。
在一实施方式中,每个板可以包括布置成两行的偶数个芯片。每行的端部上的芯片可以具有两个或多个芯片到芯片电缆接口,而其它芯片可以具有一个或多个芯片到芯片电缆接口。每个芯片在芯片的每一侧上具有至少一个芯片到芯片的电缆或PCB布线接口。
图1示出了根据实施方式的用于AI模型训练的系统的示例。如图1所示,系统包括分散在多个服务器(例如,服务器A 103和服务器B105)中的通用处理单元(GPU)集群101,其中每个服务器包括一个或多个CPU,并且每个CPU与一个或多个诸如GPU的数据处理(DP)加速器相关联。
服务器可以包括经由以太网连接111彼此通信的CPU 107和CPU 109。在图1所示的示例性系统中,每个CPU可以具有多个GPU,该多个GPU经由PCIe(周边装置互连高速)交换机连接到CPU。例如,在服务器A 103中,GPU 117、GPU 119和GPU 121经由PCIe交换机A 113连接到CPU A 107;在服务器B105中,GPU 123、GPU 125和GPU 127经由PCIe B 115连接到CPUB 109。
CPU 107和CPU 109可以经由诸如以太网连接111的处理器间链路彼此通信,以协调训练神经网络的任务。例如,作业命令可以经由以太网连接111被分发到每个服务器。然后可以将作业命令从服务器中的CPU分派到连接到该CPU的GPU。一旦作业命令被分派,系统中的GPU之间的数据就可以经由相应的芯片到芯片链路122来传递。芯片到芯片链路112可以是多种芯片到芯片互连解决方案中的一种,例如,加速器的缓存一致性互连(CCIX)兼容连接。如图1所示,尽管可以使用单向环形拓扑,但系统中的GPU被布置成双向环形拓扑。
CCIX是由CCIX联盟开发的开放缓存一致性互连架构。CCIX被设计成通过对标准PCIe的缓存一致性扩展来简化系统中的中央处理器(例如CPU)和各种加速器(例如GPU)之间的通信。CCIX是一种高性能的芯片到芯片互连架构,它提供了用于异构系统架构的缓存一致性框架。在系统中的中央处理单元和各种其他加速器之间的缓存一致性始终自动保持。每个支持CCIX的设备至少包括一个CCIX端口,CCIX端口与任何其他启用CCIX的设备是引脚兼容的。CCIX支持大量拓扑,诸如芯片到芯片、芯片到交换机到芯片、网格、菊花链和环。
在一实施方式中,GPU被配置为以管道化方式对从其相应CPU分发的数据块执行AI训练操作。GPU中的每一个还经由处理器间链路彼此通信。GPU可以被配置成环形布置,以接收上游GPU的处理结果,用于进一步的数据处理。每个GPU可进一步将处理结果发送到其对应的下游GPU以在其中进行进一步处理。因此,GPU中的每一个并行地执行其所分配的DP操作,并将其DP结果发送到下游GPU。同时,每个GPU还从其上游GPU接收处理结果,以便在其中进行进一步处理。
图2A至图2F示出了根据实施方式的AI模型训练中的数据传递的示例性过程。尽管本文示出了三个GPU 203、GPU 205和GPU 207,但是示例性过程可以根据多个因素来使用尽可能多的GPU(例如,数千个GPU),上述多个因素例如是要训练的神经网络的复杂度、训练数据的大小以及用户期望的训练速度。
可以在示例系统上训练的神经网络的示例包括多层感知器(MLP)神经网络,其包括连接的神经元的集合。随着一个层中的每个神经元以参数(例如,权重和偏置)与后续层中的每个神经元连接,MLP神经网络中的神经元可以被完全连接。
在神经网络模型的训练期间,可以使用梯度下降(即,反向传播)来确定一组参数,以最小化神经网络模型的期望值和实际输出之间的差异。梯度下降包括以下步骤:计算损失/误差函数的梯度,以及响应于该梯度更新现有参数。可以重复该循环,直到达到损失函数的极小值。
在一实施方式中,用于神经网络模型的训练数据集可以被分成多个子集,每个子集用于在GPU中的一个上训练神经网络模型,使得神经网络的训练可以由多个GPU并行地进行。每个GPU可以具有神经网络模型的完整副本。
训练数据集的每个子集可以逻辑地分成多个相等大小的数据块。在示例性过程中,块的数量可以等于GPU的数量。神经网络模型的并行化训练需要针对梯度下降的多次迭代。对于每次迭代,每个GPU在该GPU上的数据上运行神经网络模型的前向传播,接着是误差反向传播,以计算损耗相对于网络参数的梯度。GPU可随后彼此通信以计算梯度的统计量(例如,平均值、最大值或最小值),并应用统计量(例如,平均梯度)以获得更新的参数。神经网络模型可以具有大量参数(例如,数十亿个参数),并且每个参数可以与梯度值相关联。这样,对于神经网络来说,梯度的大小可能是巨大的,并且在GPU之间传递梯度会占用大量的带宽。
返回参照图2A至图2F,示例性过程示出了用于减少GPU之间的数据传递的带宽要求的算法。在一实施方式中,本文使用的带宽是给定网络连接上的最大数据传递速率。该算法可以包括两个过程。第一过程是分散规约(Scatter-Reduce)过程,第二过程是全聚集(Allgather)过程。在Scatter-Reduce过程期间,GPU可以交换数据,使得每个GPU以大量的最终结果块而结束。在Allgather过程期间,GPU可交换那些结果块,使得所有GPU以完整的最终结果结束。
每个GPU可以包括一个或多个应用,其被配置为将该GPU上的训练数据集的子集划分为相等大小的数据块;在示例性系统中,每个GPU上的数据块的数量是GPU的数量。在神经网络模型的训练期间,每个数据块可以生成它自己的梯度组。
在此示例中,如上文所示,由于在系统中存在三个GPU,因此,每个GPU上的数据块的数量为三。从GPU#0 203上的训练数据的子集,可以生成三组梯度a0 215、b0 231、c0237;从GPU#1 205上的训练数据的子集,还可以生成三组梯度a1 217、b1 223、c1 239。类似地,从GPU#2207上的训练数据的子集,生成三组梯度a2 219、b2 235、c2 241。在一实施方式中,可以以阵列或另一种数据结构存储每个GPU上的不同梯度组。
作为说明,该算法被设计为对由训练数据集的每个子集生成的梯度进行求和,使得在算法完成时,每个GPU将具有从训练数据集生成的梯度的和。
示例性过程中的GPU可以在Scatter-Reduce过程期间具有N-1次迭代,其中N是系统中GPU的总数。这样,示例性系统中的GPU可以具有2次迭代。在每次迭代中,每个GPU可将GPU上的一组梯度发送到其右侧相邻者,从其左侧相邻者接收一组梯度,并且将该两组梯度相加以生成一组新的梯度。对于每次迭代,每个GPU发送和接收的梯度的组是不同的;第n个GPU通过发送第n组梯度开始,并接收第(n-1)组梯度,然后由此反向进行处理。
图2A至图2C示出了Scatter-Reduce过程。图2A示出了在Scatter-Reduce过程的第一迭代中的数据传递。在完成第一发送和第一接收之后,每个GPU将具有拥有表示两个不同GPU上的两组梯度之和的值的阵列元素。例如,GPU 205上的第一元素a1可以包括来自第二GPU 205和第一GPU 203的梯度组之和。图2B示出了在Scatter-Reduce过程的第二迭代中的数据传递,并且还示出了在Scatter-Reduce过程的第一迭代完成之后的中间和。在第二迭代中,Scatter-Reduce过程继续,并且在Scatter-Reduce过程结束时(即,在本示例中在第二迭代之后),每个GPU将具有包含跨越所有GPU的对应阵列元素中的所有梯度之和的一个阵列元素。图2C示出了在Scatter-Reduce过程结束时的最终状态。
图2D至图2F示出了Allgather过程,其与Scatter-Reduce相同地进行并且也具有N-1次迭代,不同之处在于,所接收的梯度会覆盖接收GPU上的对应阵列元素中的梯度,而不是累积GPU接收的梯度。图2D示出了在Allgather过程的第一迭代中的数据传递。如图2E中所示,在完成第一迭代之后,每个GPU将具有各自包含跨越所有GPU的对应阵列元素中的所有梯度之和的两个阵列元素。图2E示出了在第二迭代中的Allgather过程,即在示例性过程中的最终迭代。在如图2F所示的Allgather过程结束时,GPU将具有来自整个训练数据集的完全累积的梯度。由于所有数据传递在离散迭代中同步发生,因此示例性过程是带宽最优的。
图3示出了根据实施方式的用于创建AI芯片拓扑的示例性系统。如图1所示,可以在云环境310中提供AI加速器芯片集群302。AI芯片集群302可以包括大量的PCB基板,例如基板A 304、基板B 305、基板C308和基板N 335。尽管在图中仅示出了四个基板,但是AI芯片集群302可以包括任意数量的PCB基板。
芯片集群302中的PCB板中的每一个包括相同数量的AI芯片。该图示出了每个基板上的AI芯片的示例,例如,基板A 304上的AI芯片A 303、基板B 305上的AI芯片B 311、基板C308上的AI芯片C 325、以及基板N 335上的AI芯片N 329。每个PCB板上的芯片具有相同的布局,并且使用PCB布线307、309、313、315、321、323、331和333彼此连接。
例如,每个PCB板可以包括以两行布置的偶数(例如,8个)的AI芯片。每行AI芯片可以使用PCB布线顺序地连接,并且一行上的每个AI芯片连接到另一行上的对应AI芯片。
AI芯片集群302中的PCB基板可以经由电缆连接彼此连接,电缆连接最初可以处于去激活状态。用于每个电缆连接的端点是对应的PCB基板上的AI芯片,而不是对应的板本身。每个AI芯片可以具有多个互连接口,每个互连接口可以用于电缆连接或PCB布线连接。然而,每个AI芯片可以具有用于电缆连接的至少一个互连接口,其用于连接到另一PCB基板上的AI芯片。
在一实施方式中,彼此水平的任何两个PCB基板之间的电缆连接333、335、337和339的数量可以与PCB基板上的AI芯片行的数量相同,而彼此竖直的任何两个PCB基板之间的电缆连接341、345、347、349、351和355的数量等于PCB基板上的AI芯片的列的数量。
AI芯片之间的每个PCB布线都是硬连线的,并且不能动态断开。然而,PCB基板之间的每个电缆连接(例如,CCIX连接)可以通过编程方式断开或重新连接。电缆连接的断开或重新连接可以通过在与电缆连接相关联的一个或多个PCB基板上执行的一个或多个程序指令来执行。
在图3中,用户301可以向AI加速器芯片集群302发送用于创建具有预定数量的AI芯片的AI芯片拓扑的请求。可以将云环境310作为平台即服务(PaaS)提供给多个租户。用户301可以是租户之一。
该请求可以由在一个或多个云服务器上执行的拓扑创建软件程序312接收。拓扑创建逻辑312可以实现预定的算法,以将请求中的信息转换为由AI加速器芯片集群302中的一个或多个PCB基板执行的一组程序指令。拓扑创建软件程序312可以跟踪AI加速器芯片集群302中的每个PCB基板的状态,包括该PCB基板是空闲还是忙碌。当PCB基板处于空闲状态时,PCB基板不被租户使用。拓扑创建逻辑312还可以实现一组规则,以确定如何选择一个或多个PCB基板来满足接收的拓扑创建请求。
例如,拓扑创建软件程序312可以扫描AI加速器芯片集群302并标记用于创建所请求的AI芯片拓扑的任何空闲PCB基板。可替代地,如果该PCB基板变得可用的剩余时间在预定范围内,并且该PCB基板处于更靠近已被选择用于创建所请求的拓扑的PCB基板的位置,则拓扑创建软件程序312也可以在一个或多个PCB基板上等待。
作为说明性示例,如果用户301请求创建具有32-芯片拓扑的拓扑,则拓扑创建软件程序312可以以多种不同方式创建拓扑。拓扑可以包括基板A 304和基板B 305;基板C308和基板N 335;基板A 304和基板C 308;以及基板B 305和基板N 335。根据在创建所请求的拓扑时用于选择PCB基板的预定算法和/或规则,拓扑创建软件程序312可以选择该四个选项中的任何一个。
图4示出了根据实施方式的示例性AI芯片。如图4所示,AI芯片401可以包括四个芯片到芯片互连接口402、403、405和407。在一实施方式中,AI芯片401可以具有多于四个的互连接口。
每个芯片到芯片互连接口可以是任何工业标准接口,诸如PCIe、CCIX或Interlaken。互连总线411、415、413或417可以与每个互连接口一起使用。每个互连总线可以是电缆或PCB布线,并且每个互连总线上的数据传递可以是单向的或双向的。
图5示出了根据实施方式的示例性PCB基板。如图5所示,PCB基板501可以包括偶数个AI芯片(例如,8个)501-515,其被布置成两行,每行具有相等数量的AI芯片。一对AI芯片可以通过PCB布线、电缆连接或两者连接。例如,使用PCB布线和电缆连接来连接AI芯片501和509,而仅使用PCB布线来连接AI芯片503和505。
在一实施方式中,每行的两端上的AI芯片(例如,AI芯片501、AI芯片507、AI芯片509和AI芯片515)可以各自具有两个互连电缆接口,而其余的AI芯片可以各自具有一个互连电缆接口。
示例性PCB基板501上的AI芯片可以被配置为两个双向物理环503和505,用于在全减(All-Reduce)算法中的AI模型训练中的数据交换。由于每个物理环都是双向的,因此两个物理环可以操作为四个逻辑环。
在AI模型训练中,特别是在一些算法(例如,全减算法)中,大量的环(物理的或逻辑的)意味着可以并行地执行大量的训练过程,从而加速AI模型的训练并减少总的所需训练时间。
利用PCB基板501上的AI芯片布局以及PCB布线和电缆连接的混合使用,由多个这种PCB基板创建的AI芯片拓扑可以最大化拓扑上的物理环的数量,同时保持创建不同大小的拓扑的灵活性,而不需要过多的硬件开销。
图6示出了根据实施方式的示例性AI芯片拓扑600。如图所示,16-芯片拓扑由两个PCB基板602和604组成,每个PCB基板包括布置成两行的8个AI芯片。
在一实施方式中,诸如图5所描绘的,当AI芯片拓扑包括单个PCB基板时,如该图所示,可以有2个双向物理环。然而,如图6所示,当多于一个这种PCB基板被用于构建AI芯片拓扑时,在AI芯片拓扑中形成物理环的方式可以是不同的。
在图6中,从整体来看,拓扑600可以包括4列和4行。可以使用多个PCB布线和电缆连接来连接每一行,以创建双向物理环。电缆连接用于连接行的端部的两个AI芯片。环601至607示出了由4行AI芯片创建的4个物理环。
拓扑600中的四列AI芯片还形成四个分离的物理环609、611、613和615。然而,对于每一列,需要多个电缆连接来创建物理环。例如,对于物理环609,第一电缆连接617用于连接AI芯片618和619,而第二连接616用于连接两个AI芯片620和621,这两个AI芯片620和621位于AI芯片行的端部。
可以基于电缆连接和PCB布线的混合使用来建立的16-芯片拓扑600能够竖直地扩展到一个服务器机架中的更大的拓扑(例如,64-芯片或128-芯片),只要服务器机架的电源容量可以支持该拓扑即可。在单个服务器机架已经达到其全部电源容量之后,16-芯片拓扑600可以跨服务器机架水平地扩展。
图7示出了根据实施方式的AI芯片拓扑700的另一示例。如上所述,AI芯片拓扑的大小可以受单个服务器机架的电源容量限制。为了克服一个服务器机架中的电源限制,图7示出了一种拓扑,该拓扑将AI芯片水平地跨在多个服务器机架上。
AI芯片拓扑700可以在不同的服务器机架中包括4个PCB基板701、703、705和707。例如,PCB基板701和705可以容纳在第一服务器机架中,并且PCB基板703和707可以容纳在第二服务器机架中。服务器机架中的PCB基板的数量可以增加到该服务器机架的电源容量的极限。芯片拓扑700还可以通过连接到更多的服务器机架而进一步水平地扩展。
图8示出了根据实施方式的创建AI芯片拓扑的示例性过程800。过程800能够由可以包括软件、硬件或其组合的处理逻辑来执行。
参照图8,在操作801中,处理逻辑在芯片集群中接收用于构建具有指定数量的芯片的芯片拓扑的请求,该芯片集群包括使用电缆连接彼此连接的多个基板,每个基板包括相同数量的芯片。在操作803中,响应于该请求,处理逻辑基于指定数量的芯片和每个基板上的芯片数量,从多个基板中确定用于构建芯片拓扑的一组基板。在操作805中,处理逻辑在该组基板内确定被去激活的电缆连接。在操作807中,处理逻辑激活电缆连接以构建所请求的芯片拓扑。
注意,可以用软件、硬件或其组合来实现如上所示和所述的一些或全部组件。例如,这种组件可以被实现为安装和存储在永久存储设备中的软件,该软件可以由处理器(未示出)在存储器中加载和执行,以实现在整个本申请中描述的过程或操作。可替代地,可将这种组件实现为经编程或嵌入到诸如集成电路(例如,专用IC或ASIC)、数字信号处理器(DSP)或现场可编程门阵列(FPGA)的专用硬件中的可执行代码,可经由对应的驱动器和/或操作系统从应用中访问可执行代码。此外,这种组件可以实现为处理器或处理器核中的特定硬件逻辑,作为由软件组件经由一个或多个特定指令可访问的指令组的一部分。
已经根据对计算机存储器内的数据位的操作的算法和符号表示来呈现了前面详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用来向本领域的其他技术人员最有效地传达其工作实质的方式。这里,算法通常被认为是导致期望结果的自相容的操作序列。这些操作是那些需要对物理量进行物理操纵的操作。
所有这些和类似的术语将与适当的物理量相关联,并且仅仅是应用于这些量的便利标签。除非如从上面的讨论中显而易见地那样另外明确地指出,否则应当理解,在整个说明书中,利用诸如以下权利要求书中所阐述的术语的讨论是指计算机系统或类似的电子计算设备的动作和过程、其将表示为计算机系统的寄存器和存储器内的物理(电子)量的数据转换为类似地表示为计算机系统存储器或寄存器或其他这种信息存储、传送或显示设备中的物理量的其他数据。
本公开的实施方式还涉及用于执行本文中的操作的装置。这种计算机程序存储在非暂时性计算机可读介质中。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机构。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质,例如,只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光存储介质、闪存设备。
在前面的图中描绘的过程或方法可以由包括硬件(例如,电路、专用逻辑等)、软件(例如,包含在非暂时性计算机可读介质上)、或两者的组合的处理逻辑来执行。尽管以上根据一些顺序操作描述了过程或方法,但是应当理解,所描述的一些操作可以以不同的顺序执行。此外,一些操作可以并行而不是顺序地执行。
本公开的实施方式并未参考任何特定编程语言来描述。应当理解,可使用各种编程语言来实现如本文所描述的本公开的实施方式的教导。
在前面的说明书中,已经参考本公开的具体示例性实施方式描述了本公开的实施方式。显而易见的是,可以对其进行各种修改,而不背离如后面的权利要求书中所阐述的本公开的更宽的精神和范围。因此,说明书和附图被认为是说明性的,而不是限制性的。
Claims (16)
1.数据处理系统,包括:
中央处理单元CPU;以及
多个加速器卡,通过总线联接到所述CPU,每个所述加速器卡具有多个数据处理DP加速器,以从所述CPU接收DP任务并执行所接收的DP任务,其中所述加速器卡中的至少两个经由卡间连接彼此联接,其中所述DP加速器中的至少两个经由芯片间连接彼此联接,
其中,所述卡间连接和所述芯片间连接中的每一个都被动态激活或去激活,使得响应于从所述CPU接收的请求,启用或禁用任一所述加速器卡或者任一所述加速器卡内的任一所述DP加速器,以处理从所述CPU接收的任一所述DP任务,
其中,每个所述加速器卡中的所述DP加速器布置为经由一个或多个芯片间连接彼此联接的多个行和列,所述加速器卡中的第一加速器卡的每行DP加速器经由芯片间连接串联联接,形成水平加速器环。
2.根据权利要求1所述的数据处理系统,其中,每个所述加速器卡的每个所述DP加速器包括多个芯片间接口,所述芯片间接口用于经由相应的芯片间连接与所述加速器卡的另一DP加速器互连。
3.根据权利要求1所述的数据处理系统,其中,每个所述加速器卡的每个所述DP加速器包括多个芯片间接口,所述芯片间接口用于经由相应的卡间连接与另一加速器卡的另一DP加速器互连。
4.根据权利要求1所述的数据处理系统,其中,每列第一加速器卡经由一个或多个相应的卡间连接联接到所述加速器卡中的对应列的第二加速器卡,形成竖直加速器环。
5.根据权利要求1所述的数据处理系统,其中,所述加速器卡中的第一加速器卡的每列DP加速器经由相应的竖直芯片间连接串联联接,形成竖直加速器环。
6.根据权利要求5所述的数据处理系统,其中,每行第一加速器卡经由一个或多个相应的卡间连接联接到所述加速器卡中的对应行的第二加速器卡,形成水平加速器环。
7.根据权利要求1-6中任一项所述的数据处理系统,其中,每个所述DP加速器包括人工智能AI加速器芯片。
8.根据权利要求1-6中任一项所述的数据处理系统,其中,所述总线包括周边装置互连高速PCIe链路或以太网连接,以及其中,芯片间连接或卡间连接包括加速器的缓存一致性互连CCIX链路。
9.加速器卡,包括:
主机接口,通过总线联接到中央处理单元CPU;以及
多个数据处理DP加速器,从所述CPU接收DP任务并执行所接收的DP任务,其中加速器卡中的至少两个经由卡间连接彼此联接,其中所述DP加速器中的至少两个经由芯片间连接彼此联接,
其中,每个芯片间连接被动态激活或去激活,使得响应于经由所述主机接口从所述CPU接收的请求,启用或禁用任一所述DP加速器,以处理从所述CPU接收的任一所述DP任务,
其中,每个所述加速器卡中的所述DP加速器布置为经由一个或多个芯片间连接彼此联接的多个行和列,所述加速器卡中的第一加速器卡的每行DP加速器经由芯片间连接串联联接,形成水平加速器环。
10.根据权利要求9所述的加速器卡,其中,每个所述DP加速器包括多个芯片间接口,所述芯片间接口用于经由相应的芯片间连接与另一DP加速器互连。
11.根据权利要求9所述的加速器卡,其中,每个所述DP加速器包括多个芯片间接口,所述芯片间接口用于经由相应的卡间连接与另一加速器卡的另一DP加速器互连。
12.根据权利要求9所述的加速器卡,其中,每列第一加速器卡经由一个或多个相应的卡间连接联接到所述加速器卡中的对应列的第二加速器卡,形成竖直加速器环。
13.根据权利要求9所述的加速器卡,其中,所述加速器卡中的第一加速器卡的每列DP加速器经由相应的竖直芯片间连接串联联接,形成竖直加速器环。
14.根据权利要求13所述的加速器卡,其中,每行第一加速器卡经由一个或多个相应的卡间连接联接到所述加速器卡中的对应行的第二加速器卡,形成水平加速器环。
15.根据权利要求9-14中任一项所述的加速器卡,其中,每个所述DP加速器包括人工智能AI加速器芯片。
16.根据权利要求9-14中任一项所述的加速器卡,其中,所述总线包括周边装置互连高速PCIe链路或以太网连接,以及其中,芯片间连接或卡间连接包括加速器的缓存一致性互连CCIX链路。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2019/118752 WO2021092890A1 (en) | 2019-11-15 | 2019-11-15 | Distributed ai training topology based on flexible cable connection |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113424198A CN113424198A (zh) | 2021-09-21 |
CN113424198B true CN113424198B (zh) | 2023-08-29 |
Family
ID=75911676
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980005607.XA Active CN113424198B (zh) | 2019-11-15 | 2019-11-15 | 基于柔性电缆连接的分布式ai训练拓扑 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11615295B2 (zh) |
EP (1) | EP3841530B1 (zh) |
JP (1) | JP2022511581A (zh) |
KR (1) | KR102525329B1 (zh) |
CN (1) | CN113424198B (zh) |
WO (1) | WO2021092890A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11934334B2 (en) * | 2021-04-29 | 2024-03-19 | Arm Limited | CCIX port management for PCI express traffic |
US20230385138A1 (en) * | 2022-05-25 | 2023-11-30 | Meta Platforms, Inc. | Chip-to-chip interconnect with a layered communication architecture |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110222005A (zh) * | 2019-07-15 | 2019-09-10 | 北京一流科技有限公司 | 用于异构架构的数据处理系统及其方法 |
CN110347636A (zh) * | 2019-07-15 | 2019-10-18 | 北京一流科技有限公司 | 数据执行体及其数据处理方法 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2644718B2 (ja) | 1983-12-28 | 1997-08-25 | 株式会社日立製作所 | コンピュータシステム |
JPH0661079B2 (ja) | 1984-12-27 | 1994-08-10 | 株式会社東芝 | デ−タ処理装置 |
JPH04344970A (ja) * | 1991-05-23 | 1992-12-01 | Nippon Telegr & Teleph Corp <Ntt> | ニューラルネット処理装置 |
JP2001185648A (ja) | 1999-12-24 | 2001-07-06 | Mitsubishi Electric Corp | 半導体装置 |
JP2005524239A (ja) | 2002-04-29 | 2005-08-11 | シリコン・パイプ・インコーポレーテッド | ダイレクト・コネクト形信号システム |
US8066515B2 (en) * | 2004-11-17 | 2011-11-29 | Nvidia Corporation | Multiple graphics adapter connection systems |
US7525548B2 (en) * | 2005-11-04 | 2009-04-28 | Nvidia Corporation | Video processing with multiple graphical processing units |
US7562174B2 (en) * | 2006-06-15 | 2009-07-14 | Nvidia Corporation | Motherboard having hard-wired private bus between graphics cards |
US7500041B2 (en) * | 2006-06-15 | 2009-03-03 | Nvidia Corporation | Graphics processing unit for cost effective high performance graphics system with two or more graphics processing units |
US8319782B2 (en) * | 2008-07-08 | 2012-11-27 | Dell Products, Lp | Systems and methods for providing scalable parallel graphics rendering capability for information handling systems |
US7705447B2 (en) | 2008-09-29 | 2010-04-27 | Intel Corporation | Input/output package architectures, and methods of using same |
US8155022B1 (en) | 2009-03-24 | 2012-04-10 | Qlogic, Corporation | Method and system for controlling power consumption in network nodes |
US9037770B2 (en) * | 2011-05-05 | 2015-05-19 | International Business Machines Corporation | Accelerator engine emulation over an interconnect link |
JP2012252490A (ja) * | 2011-06-02 | 2012-12-20 | Renesas Electronics Corp | マルチプロセッサおよびそれを用いた画像処理システム |
CN103105895A (zh) * | 2011-11-15 | 2013-05-15 | 辉达公司 | 计算机系统及其显示卡及该系统进行图形处理的方法 |
US10540588B2 (en) * | 2015-06-29 | 2020-01-21 | Microsoft Technology Licensing, Llc | Deep neural network processing on hardware accelerators with stacked memory |
US10169275B2 (en) * | 2015-11-27 | 2019-01-01 | International Business Machines Corporation | System, method, and recording medium for topology-aware parallel reduction in an accelerator |
US10387346B2 (en) * | 2016-05-06 | 2019-08-20 | Quanta Computer Inc. | Dynamic PCIE switch reconfiguration mechanism |
US10528321B2 (en) * | 2016-12-07 | 2020-01-07 | Microsoft Technology Licensing, Llc | Block floating point for neural network implementations |
US11501152B2 (en) | 2017-05-05 | 2022-11-15 | Intel Corporation | Efficient learning and using of topologies of neural networks in machine learning |
JP7242634B2 (ja) | 2017-07-30 | 2023-03-20 | ニューロブレード リミテッド | メモリチップ |
US9936577B1 (en) * | 2017-09-13 | 2018-04-03 | Wieson Technologies Co., Ltd. | Dual-channel flexible circuit bridge connector and dual graphics card system using the same |
JP6946955B2 (ja) * | 2017-11-10 | 2021-10-13 | 富士通株式会社 | 情報処理装置、演算処理装置及び情報処理装置の制御方法 |
US11263162B2 (en) * | 2017-12-20 | 2022-03-01 | Intel Corporation | System decoder for training accelerators |
US11270201B2 (en) * | 2017-12-29 | 2022-03-08 | Intel Corporation | Communication optimizations for distributed machine learning |
EP3735638A4 (en) * | 2018-01-24 | 2021-03-17 | Alibaba Group Holding Limited | DEEP LEARNING ACCELERATOR SYSTEM AND PROCEDURES FOR IT |
US10789194B2 (en) * | 2018-03-26 | 2020-09-29 | Nvidia Corporation | Techniques for efficiently synchronizing data transmissions on a network |
US10728091B2 (en) * | 2018-04-04 | 2020-07-28 | EMC IP Holding Company LLC | Topology-aware provisioning of hardware accelerator resources in a distributed environment |
US10802995B2 (en) * | 2018-07-26 | 2020-10-13 | Xilinx, Inc. | Unified address space for multiple hardware accelerators using dedicated low latency links |
US11025544B2 (en) * | 2019-06-07 | 2021-06-01 | Intel Corporation | Network interface for data transport in heterogeneous computing environments |
-
2019
- 2019-11-15 JP JP2020536942A patent/JP2022511581A/ja active Pending
- 2019-11-15 WO PCT/CN2019/118752 patent/WO2021092890A1/en unknown
- 2019-11-15 US US16/622,789 patent/US11615295B2/en active Active
- 2019-11-15 KR KR1020207019378A patent/KR102525329B1/ko active IP Right Grant
- 2019-11-15 EP EP19891675.1A patent/EP3841530B1/en active Active
- 2019-11-15 CN CN201980005607.XA patent/CN113424198B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110222005A (zh) * | 2019-07-15 | 2019-09-10 | 北京一流科技有限公司 | 用于异构架构的数据处理系统及其方法 |
CN110347636A (zh) * | 2019-07-15 | 2019-10-18 | 北京一流科技有限公司 | 数据执行体及其数据处理方法 |
Also Published As
Publication number | Publication date |
---|---|
US20210174174A1 (en) | 2021-06-10 |
US11615295B2 (en) | 2023-03-28 |
JP2022511581A (ja) | 2022-02-01 |
EP3841530A4 (en) | 2021-10-13 |
EP3841530A1 (en) | 2021-06-30 |
KR20210061304A (ko) | 2021-05-27 |
WO2021092890A1 (en) | 2021-05-20 |
CN113424198A (zh) | 2021-09-21 |
EP3841530B1 (en) | 2023-11-08 |
KR102525329B1 (ko) | 2023-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107807819B (zh) | 一种支持离散数据表示的用于执行人工神经网络正向运算的装置及方法 | |
JP7060720B2 (ja) | ネットワークオンチップによるデータ処理方法及び装置 | |
CN113424198B (zh) | 基于柔性电缆连接的分布式ai训练拓扑 | |
CN111860811A (zh) | 一种用于执行人工神经网络全连接层正向运算的装置和方法 | |
CN107766935B (zh) | 多层人造神经网络 | |
CN1577294A (zh) | 具有多个一致性区域的多处理器计算机系统及其方法 | |
CN111199275B (zh) | 用于神经网络的片上系统 | |
US20200117990A1 (en) | High performance computing system for deep learning | |
CN107851078A (zh) | 一种PCIe设备的聚合友好型地址分配的方法和系统 | |
KR102472282B1 (ko) | 고급 상호 연결 통신기술을 이용한 ai 훈련 가속화 방법 및 시스템 | |
CN113902111A (zh) | 多芯片互连系统及神经网络加速处理方法 | |
CN117493237B (zh) | 计算设备、服务器、数据处理方法和存储介质 | |
US11200096B1 (en) | Resource allocation for reconfigurable processors | |
CN112202600B (zh) | 一种多节点单主机与多主机通信自动切换装置及方法 | |
JP7282980B2 (ja) | オンチップ動作の初期化 | |
US11082327B2 (en) | System and method for computational transport network-on-chip (NoC) | |
CN116541338A (zh) | 一种计算系统、模型训练方法、装置及产品 | |
US10162913B2 (en) | Simulation device and simulation method therefor | |
CN114153784A (zh) | 一种upi信号互联装置及n路服务器 | |
CN210666768U (zh) | Ai训练推理服务器和系统 | |
CN117687956A (zh) | 多加速卡异构服务器及资源链路重构方法 | |
US10311013B2 (en) | High-speed inter-processor communications | |
CN115203117A (zh) | 计算系统、方法和介质 | |
CN117768545A (zh) | 一种考虑通信开销的分布式任务调度方法 | |
KR20230120532A (ko) | 다중 스테이지 전기 접속 네트워크를 활용하는 전자 장치 및 그 동작 방법 |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20211009 Address after: Baidu building, No. 10, Shangdi 10th Street, Haidian District, Beijing Applicant after: Kunlun core (Beijing) Technology Co.,Ltd. Address before: A2, 2f, building 17, Zhongguancun Software Park, No. 8, Dongbeiwang West Road, Haidian District, Beijing 100080 Applicant before: BAIDU.COM TIMES TECHNOLOGY (BEIJING) Co.,Ltd. Applicant before: Baidu (USA) Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |