CN113902111A - 多芯片互连系统及神经网络加速处理方法 - Google Patents
多芯片互连系统及神经网络加速处理方法 Download PDFInfo
- Publication number
- CN113902111A CN113902111A CN202111494734.6A CN202111494734A CN113902111A CN 113902111 A CN113902111 A CN 113902111A CN 202111494734 A CN202111494734 A CN 202111494734A CN 113902111 A CN113902111 A CN 113902111A
- Authority
- CN
- China
- Prior art keywords
- acceleration
- neural network
- chip
- accelerated
- convolution
- 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
Images
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
- 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
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Neurology (AREA)
- Multi Processors (AREA)
Abstract
本发明提供了一种多芯片互连系统及神经网络加速处理方法,应用于人工智能技术领域,其中多芯片互连系统包括若干桥接器和至少两个加速芯片,每个加速芯片均通过桥接器与其余加速芯片进行互连,以构成板上芯片组对神经网络进行加速处理。通过多芯片互连构成板上芯片组,为小算力加速处理器实现大规模算法模型运算提供了技术基础,可提高终端、边缘计算等设备应用神经网络的应用可能。
Description
技术领域
本发明涉及人工智能技术领域,具体涉及一种多芯片互连系统及神经网络加速处理方法。
背景技术
随着AI(Artificial Intelligence,人工智能)技术在各领域(如算法、加速硬件等)的发展,卷积神经网络模型已被大规模应用到各行各业中,如人脸识别、安防监控、自动驾驶、语音识别等领域。
如图1所示,卷积神经网络的宏观结构主要包含输入层、隐藏层和输出层,其中输入层为上一层特征数据经卷积、池化、激活后的特征数据,如输入的特征向量x1至特征向量xn;隐藏层包含若干数量、不同结构的卷积层、池化层和全连接层等网络,如突触权值wk1至wkn;输出层通常是特征向量输出层通过全连接层使用逻辑函数或归一化指数函数(如softmax function作为激活函数)分类概率输出层,输出结果yk;其中全连接层的每一个结点都与上一层的所有结点相连,用来把前边提取到的特征综合起来,比如通过求和节点,根据各个权值wk1-wkn和偏置bk得到全连接层输出Vk。
现有应用方案中,虽然终端(如智能电子设备)、边缘计算等设备可以支持基于神经网络模型的加速推理运算,但是鉴于目前单芯片的算力、主存大小等方面均很难支持大规模神经网络模型,因而现有终端、边缘计算等设备中用于推理的加速器芯片,均是基于特定的小规模、简单神经网络模型设计,这时基于GPU(Graphics Processing Unit,图形处理器)或TPU(Tensor Processing Unit,张量处理单元)等生产的超大规模(如上百兆)或大模型(如几十兆)等复杂神经网络,却无法部署到现有终端、边缘计算等设备中,或者即使部署成功亦无法满足实时加速推理运算要求。
因此,亟需一种新的多芯片互连方案,以将大规模神经网络模型应用于多芯片互连后的终端、边缘计算等设备中。
发明内容
有鉴于此,本说明书实施例提供一种多芯片互连系统及神经网络加速处理方法,以支持大规模神经网络模型应用于终端、边缘计算等设备中,满足这些设备对神经网络加速推理运算要求。
本说明书实施例提供以下技术方案:
本说明书实施例提供一种多芯片互连系统,应用于神经网络的加速推理运算,所述多芯片互连系统包括:若干桥接器和至少两个加速芯片,每个加速芯片均通过桥接器与其余加速芯片进行互连,以构成板上芯片组对神经网络进行加速处理,其中芯片组中的加速芯片加载至少一个网络单元,所述网络单元为神经网络被按预设的分拆策略进行分拆后形成的网络单元。
在其中一个实施例中,每个所述桥接器用于各加速芯片中相同链路端口编号的互连,其中每个加速芯片中各个链路端口按序编号。
在其中一个实施例中,所述桥接器与每个设备的两个或两个以上端口相连。
在其中一个实施例中,所述分拆策略包括以下一种分拆方式:沿模型深度方向纵向拆分、沿模型深度方向横向拆分、沿模型深度方向纵向及横向拆分。
在其中一个实施例中,所述至少两个加速芯片包括第一主加速芯片和第一从加速芯片,其中所述第一主加速芯片和所述第一从加速芯片构成第一主从设备模式。
在其中一个实施例中,所述第一主加速芯片通过广播方式向所述第一从加速芯片请求数据,其中所述第一主加速芯片向所述桥接器广播指令令牌信息,所述桥接器解析所述指令令牌信息,若发现目的地址与本地桥接器无路由连接,则丢弃;若发现目的地址与本地桥接器有路由连接,则向目的地地址设备转发指令令牌信息并建立握手连接,以便所述第一主加速芯片向所述第一从加速芯片请求数据。
在其中一个实施例中,所述第一主加速芯片向所述第一从加速芯片请求数据的方式包括以下至少一种方式:直接IO/DMA模式、消息传递模式。
在其中一个实施例中,所述多芯片互连系统还包括:控制器和主机内存,所述控制器和所述主机内存通过总线连接,所述控制器均与每个所述桥接器连接,以控制芯片组根据预设的程序指令按照预设的任务模式进行推理运算和数据通信。
在其中一个实施例中,所述多芯片互连系统还包括:I/O设备,所述I/O设备与实时视频采集设备连接,以将所述实时视频采集设备采集的图像信息通过所述I/O设备的接口经所述桥接器加载于所述至少两个加速芯片中的至少一个加速芯片中。
本说明书实施例还提供一种神经网络加速处理方法,包括:
根据待加速处理的神经网络模型生成所述神经网络对应的计算图,按预设的分拆策略对所述计算图进行分割以形成若干网络单元;
按预设的部署策略将分割后的网络单元加载到板上芯片组,其中板上芯片组为本发明提供的所述多芯片互连系统中的任意一项实施例所述的芯片组;
将待处理输入数据加载至所述板上芯片组对应的内存中;
从所述内存中获取对应的当前卷积层所需的卷积核数据,以使所述芯片组中的各加速芯片加载相应数据,并对所述待处理输入数据进行卷积运算,生成卷积运算结果进行输出。
在其中一个实施例中,所述神经网络加速处理方法应用于神经网络训练过程,其中按预设的分拆策略对所述计算图进行分割以形成若干网络单元包括:按预设的分拆策略对全连接层对应的所述计算图进行分割以形成若干网络单元。
在其中一个实施例中,在根据待加速处理的神经网络模型生成所述神经网络对应的计算图前,所述神经网络加速处理方法还包括:
获取多个待加速处理的神经网络模型,判断所述多个待加速处理的神经网络模型是否相同;
若相同,则将所述多个待加速处理的神经网络模型均衡部署到所述芯片组,以对相同的所述多个待加速处理的神经网络模型进行加速处理;
若不相同,则根据预设的资源分配策略为所述多个待加速处理的神经网络模型分配所述芯片组中的相应计算资源,以对不相同的所述多个待加速处理的神经网络模型进行加速处理。
在其中一个实施例中,当所述多个待加速处理的神经网络模型获取的输入数据相同时,所述神经网络加速处理方法还包括:对所述多个待加速处理的神经网络模型的加速处理而输出的结果进行投票决策。
在其中一个实施例中,当所述神经网络模型的模型参数超出预设的数量阈值时,所述神经网络加速处理方法还包括:
将所述模型参数均衡加载至各加速芯片的本地内存中;
通过所述桥接器向其他加速芯片请求对应模型参数,以使当前加速芯片加载到对应模型参数用于加速运算。
在其中一个实施例中,在加速芯片仅有一条通信链路与其他加速芯片通信时,所述神经网络加速处理方法还包括:配置所述桥接器或将各加速芯片采用环状网络耦合,以使每个加速芯片采用单向访存方式,获取邻接加速芯片的本地内存中的卷积结果与本地卷积核进行卷积运算,并将对应卷积核的卷积结果求和后作为该卷积核的卷积输出。
与现有技术相比,本说明书实施例采用的上述至少一个技术方案能够达到的有益效果至少包括:
通过桥接器将多个加速芯片进行互连,以构成板上芯片组,不仅可支持更多的芯片和芯片组进行互连,而且加速芯片不局限于神经网络加速处理器NPU,拓展了加速处理方案在智能电子设备中的适应能力,同时多芯片互连系统为大规模甚至是超大规模的神经网络模型在加速处理中需要进行庞大数据通信(比如千兆字节)提供较大通信带宽,很好地支持芯片间的数据通信,可为小算力加速处理器实现大规模算法模型运算提供了技术基础。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是一种神经网络的结构示意图;
图2是一种用于车辆识别的VGG16神经网络的结构示意图;
图3是收发端基于总线互连通信的结构示意图;
图4是多芯片基于总线互连的两种网络拓扑的结构示意图;
图5.a是本说明书实施例提供的一种多芯片互连系统中沿模型深度方向纵向拆分神经网络的示意图;
图5.b是本说明书实施例提供的一种多芯片互连系统中沿模型深度方向横向拆分神经网络的示意图;
图5.c是本说明书实施例提供的一种多芯片互连系统中沿模型深度方向纵向及横向拆分的示意图;
图6是本说明书实施例提供的一种多芯片互连系统的结构示意图;
图7是本说明书实施例提供的一种多芯片互连系统的结构示意图;
图8是本说明书实施例提供的一种多芯片互连系统的结构示意图;
图9是本说明书实施例提供的一种神经网络加速处理方法的流程图;
图10是本说明书实施例提供的一种神经网络加速处理方法中不同卷积核分布到不同加速芯片的结构示意图;
图11是本说明书实施例提供的一种神经网络加速处理方法中采用环状耦合互连拓扑关系进行加速处理的示意图。
具体实施方式
下面结合附图对本申请实施例进行详细描述。
以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本申请,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目和方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
还需要说明的是,以下实施例中所提供的图示仅以示意方式说明本申请的基本构想,图式中仅显示与本申请中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
另外,在以下描述中,提供具体细节是为了便于透彻理解实例。然而,所属领域的技术人员将理解,可在没有这些特定细节的情况下实践所述方面。术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等描述的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
如图2所示,在VGG16的卷积神经网络结构中,输入层为224x224x3的彩色图,表示3通道的长和宽都为224的图像数据,即网络的输入层;在输入层后,便是若干卷积层(convolution)、池化层(pooling)、全连接层(fullynected)等网络层,其中紧接着输入层的是两层卷积层(如图中224×224×64),后紧接着是池化层(可使用最大池化,即maxpooling),依次类推,共有13层卷积层和5层池化层,并在卷积池化后有3层全连接层(如两层1×1×4096和一层1×1×1000),其中卷积层和全连接层的激活函数均使用ReLU函数;最后是输出层,采用softmax进行分类输出。
换言之,卷积神经网络的结构是一种多层网络拓扑结构,每层通过若干个卷积核(权重参数)实现层间数据连接,且每个卷积核可共享上一层多个输出通道的输出数据(即每个卷积核均需要与输入通道的特征数据进行卷积求和运算),经过卷积、求和、池化、激活后作为下一层卷积运算的输入数据,卷积核数量与输出特征数据通道可相同。以此循环进行上述运算,直至输出特征向量数据或分类结果等数据,完成整个神经网络的推理运算过程。
目前,基于GPU、TPU等设计的卷积神经网络,通常为更复杂结构的网络,即网络层的规模可为超大规模(如上百兆)、大模型(如几十兆)等,而现有应用方案中,如终端(如智能电子设备)、边缘计算等设备中,用于推理的加速器芯片均是基于特定的小规模、简单神经网络模型设计,这时大规模甚至是超大规模的前述卷积神经网络模型却无法部署到现有终端、边缘计算等设备中,或者即使部署成功亦无法满足实时加速推理运算要求。
另外,单颗加速芯片性能的提升已不断放缓甚至达到瓶颈情形,因而在面对性能和功耗的要求时,现有方案中更多的是选择了不同于传统上的方案,比如采用定制化计算模块来提升性能,比如采用多核架构。但是,定制化只适用于特定一种或者某几种特定的应用场景,缺乏通用性及系统可扩展性,而多核架构方案不仅单芯实现成本高,而且无法适应灵活多变的市场应用需要,对大规模、超大规模的卷积神经网络模型应用在智能设备中进行加速推理运算带来很大制约。
还有,在一些场景中,如对安全性要求极高的自动驾驶场景,还需要进行多冗余设计,进一步限制了终端、边缘计算等设备支持大规模、超大规模神经网络模型进行加速推理运算。
现有方案中,如图3所示,虽然可以在板上多个芯片(如发送端的芯片、接收端的芯片)的物理层上采用通信总线构成芯片组,其中总线可为PCI/PCIe/SRIO/SPI/I2C/UART/GPIO等总线协议,但受限于总线协议以及互连拓扑结构的一些限制条件,如图4所示,在计算板的CPU(center processing units,中央处理器)、NPU(Neural-network ProcessingUnit,神经网络处理器)等芯片构成的两种互连结构中,不仅无法获得更高芯片组间的通信带宽,而且多芯片中多端口两两互连,还造成板上总线过多,PCB(印制线路板)的布线和制造变得困难。
有鉴于此,发明人通过对神经网络模型和芯片互连技术进行深入研究及改进,提出了一种新的解决方案:先将神经网络模型进行分拆,然后将这些网络单元均衡地部署到多个神经网络加速芯片组,实现复杂神经网络模型在实际场景中的加速推理运算应用。
如图5.a-图5.c所示,可将大规模甚至是超大规模的卷积神经网络模型,进行模型分拆后形成较小的网络单元。
其中,模型分拆可按以下三种模式:
(a)如图5.a所示,将神经网络沿模型深度方向纵向拆分,并将拆分后的网络单元部署到加速芯片中,使得不同加速芯片运行不同网络层,比如GPU1运行第一层网络单元,GPU2运行第二层网络单元,直至GPU6运行最后的输出层网络单元,输出分类结果y1至y3;
(b)如图5.b所示,将神经网络沿模型深度方向横向拆分,并将拆分后的网络单元部署到加速芯片中,使得不同芯片运行同一层不同卷积核的部分网络,比如GPU1运行上半部分的卷积核网络单元,GPU2运行下半部分的卷积核网络单元;
(c)如图5.c所示,将神经网络沿模型深度方向纵向和横向拆分,并将拆分后的网络单元部署到加速芯片中,使得不同芯片运行不同层组、不同卷积核的部分网络单元,比如GPU1运行图中左上半部分的网络单元,GPU2运行右上半部分的网络单元,GPU3运行图中左下半部分的网络单元,GPU4运行右下半部分的网络单元等。
如图6所示,加速芯片组可为由至少两片加速芯片构成的芯片组,芯片组之间通过通信链路进行通信,芯片组中有I个通信链路(Link),每个加速芯片拥有L个链路端口,如图中一个数据通路(Lane)中,可由两组差分信号,共4根信号线组成,比如芯片A的发送端TX1中编号为8和芯片B接收端RX2中编号1构成一组差分信号、芯片A的接收端RX1中编号为8和芯片B发送端TX2中编号1构成一组差分信号,这两组差分信号可构成一个数据通路(Lane),可双向同步发送和接收1bit位的数据,即双向带宽为2bit。
需要说明的是,发送端的TX部件与接收端的RX部件使用一组差分信号连接,该链路也被称为发送端的发送链路,也是接收端的接收链路;而发送端的RX部件与接收端的TX部件使用另一组差分信号连接,该链路也被称为发送端的接收链路,也是接收端的发送链路。上述链路共同构成一个双向通信链路。
需要说明的是,前述通信链路可为采用桥接器进行互连形成的通信链路,桥接器可为现有的桥接器,这里不作限定。
图7为一种多芯片互连系统,应用于神经网络的加速推理运算,其中多芯片互连系统可包括:若干桥接器和至少两个加速芯片,每个加速芯片均通过桥接器与其余加速芯片实现互连,以构成板上多芯片组对神经网络进行加速处理(即加速推理运算),其中神经网络采用前述的任意一种分拆模式,根据所述至少两个加速芯片的数量进行分拆,形成对应数量的网络单元,以将分拆的网络单元部署到对应的所述至少两个加速芯片中。
需要说明的是,加速芯片为用于部署并运行神经网络分拆后的网络单元的芯片,芯片可为GPU、NPU等,下面以NPU为例进行示意说明。
如图7所示,每个加速芯片(其中加速芯片可表示为本地内存和NPU的结合体)均通过桥接器与其他加速芯片互连,其中加速芯片的端口编号数量可与桥接器的数量相同,比如采用3个桥接器进行加速芯片的互连,这里第一加速芯片(如图中左上包含NPU1的加速芯片,为便于阅读,可简记为NPU1,下同)的端口1通过桥接器1与其余加速芯片(如NPU2、NPU3、NPU4、NPU5、NPU6等)进行互连,NPU1的端口2通过桥接器2与其余加速芯片互连,NPU1的端口3通过桥接器3与其余加速芯片互连等等,不再展开说明。
实施中,桥接器可包含2k(k为正整数)个通信链路端口,每个桥接器端口分别连接对应芯片组链路端口,桥接器用于根据预设通信协议和当前指令令牌信息(如发送设备端标识ID+接收设备端标识ID+数据,来确定源地址和目的地地址)建立芯片组间数据通路。
实施中,可将“桥接器ID+桥接器端口ID”作为桥接器的唯一标识,“芯片ID+链路端口ID”作为唯一设备标识,这时可根据通信指令令牌信息建立芯片组间数据通路,如“指令格式类型,事务类型(读、写…),发NUP1+端口1:3,收NUP2:3+端口1:3,数据”,该指令定义了发送设备NPU1利用发射链路端口1:3将数据通过桥接器1:3的端口1经过路由转发至目的地设备端NPU2的接收链路端口1:3)。
加速芯片通过桥接器进行互连后,若每个链路通信带宽为a,每个芯片组与桥接器的链接数为b,则每对芯片组间通信带宽为a*b,N/2对芯片组的总通信带宽为N*a*b/2,且每一对芯片组通信不占用其他芯片组件的通信带宽,既解决了PCB版布线和制造复杂度,又相较于传统互连拓扑架构,不再受总线资源的限制,以及芯片间通信带宽得到极大提高,还有可互连更多的功能芯片组。
在一些实施方式中,如图7所示,每个桥接器负责每个设备(即加速芯片或加速芯片组)的一个链路端口通信,如桥接器1每个端口分别与多个设备的第1端口相连接,桥接器2每个端口分别与多个设备的第2端口相连接,可简化互连关系,便于构成芯片组。
在一些实施方式中,桥接器可与每个设备(即加速芯片或者加速芯片组)的两个或两个以上端口相连,相当于将端口通信链路进行合并,即两个传统链路合并为一个大的链路,可提高芯片间的通信带宽。
例如,两个设备间(如芯片A、B之间)的通信链路可以由多个Lane组成,这里不再展开说明。另外,每个链路可包含若干个数据通路Lane以传输对应位宽的数据,一般可为偶数倍个,其中×1、×2、×4、×8、×12、×16和×32表示每个链路的通路数Lane与双向通信带宽一致,而×5表示同步双向通信5个bit位宽的数据传输。
实施中,可将数据通路Lane进行编号,便于配置。比如一个设备有4个Lane,即编号为Lane1~Lane4,如在通信交互配置(Switch)时,可配置成 1Link,那么Lane编号就是Lane1~Lane4;也可配置成2Link,那么Lane编号就分别为Link _1:Lane1~Lane2、Link _2:Lane3~Lane4;即不同link用来传输不同数据,比如芯片A(如3D视觉芯片)中端口编号为1-4的链路用来传输图像RGB数据,端口编号为5-8的链路用来传输深度图数据等。
在一些实施方式中,可对互连芯片组定义主从设备,可简化通信过程,提高通信效率。
实施中,可从多个加速芯片中定义出主设备和从设备,比如所述至少两个加速芯片包括第一主加速芯片和第一从加速芯片,这时第一主加速芯片和第一从加速芯片可构成第一主从设备模式,进而基于主从设备模式,提高第一主加速芯片与第一从加速芯片之间的通信效率。
实施中,当某一主芯片设备向某一从芯片设备请求数据时,可采用广播方式向各桥接器广播指令令牌信息。
实施中,可能部分设备为连接到本地桥,桥接器对指令令牌解析,若发现目的地址与本地桥接器无路由连接,则丢弃;若发现目的地址与本地桥接器有路由连接,向目的地地址设备转发指令令牌信息并建立握手连接。
在一些实施方式中,在建立连接后,芯片组件的通信可包括直接IO/DMA模式、消息传递模式。
实施中,直接IO/DMA模式可为:主设备对被访问从设备内存地址映射空间进行读写操作,通过该操作可实现各设备内存共享,根据内存管理分页机制,当前各设备内存作为第一级分页,各设备内存空间被作为为第二级分页,从而实现设备内存空间共享扩展,可在面向多路视频分析及规模级神经网络部署场景中,打破了内存存储空间的限制,同时直接IO/DMA在经过桥接器建立通信连接握手后,直接由桥接器硬件电路建立硬连接,实现对从设备的内存读写操作。
实施中,读写操作可下表1所示,读写操作可通过以下参数进行:目地设备地址表示、数据长度、数据在目地器件存储器中的地址,这里不再展开说明。
操作 | 使用的事务 | 描述 |
读 | NREAD、RESPONSE | 从目标器件中读数据 |
写 | NWRITE | 往目标器件中写数据 |
有响应写 | NWRITE_R、RESPONSE | 往目标器件中写数据,写完后等待目标的响应 |
流写 | SWRITE | 面向大数据量DMA传输优化写数据 |
Atomic | ATOMIC、RESPONSE | 原子操作,读-修改-写,事务不能被打断 |
表1读写操作
消息传递模式可为:主设备向从设备发送相关指令/数据,通知或指令从设备进行相应动作(如触发/中断),这时可不需要对从设备数据或指令地址空间可见。
在一些实施方式中,所述多芯片互连系统还可包括:控制器和主机内存,如CPU、MCU等,控制器和主机内存通过总线连接,控制器均与每个桥接器连接,控制加速芯片组件根据程序指令按照既定任务模式推理运算及数据通信。
如图8所示,CPU可以通过设备总线(如PCI、SPI、I2C等)与桥接器连接,进而通过桥接器与NPU芯片组进行耦合连接。
比如,CPU1可通过桥接器1与各NPU耦合,并向至少1个NPU下达运算指令(如向NPU1指令进行任务A,或指令NUP1将数据发送至其余NPU,或指令NPU1和NPU2分别进行任务A和B等。
需要说明的是,控制器可多于一个,比如CPU1和CPU2。
在一些实施方式中,所述多芯片互连系统还可包括I/O设备,便于与外部设备通过IO设备进行连接通信。
例如,在实时视频图像识别任务中,摄像头实时采集的图像信息,可通过I/O设备接口按照预设程序指令或配置信息经过桥接器端口被加载至NPU的本地内存中,比如通过桥接器1的端口10加载至各个NPU的本地内存中,然后可经至少1个NUP进行图像识别任务运算,获得运算结果。
在一些实施方式中,通过CPU可对各桥接器进行配置,如初始化配置,即让桥接器按照预设通讯协议或指令进行芯片互连通信;如静态模式配置,根据预设配置信息,指令不同芯片组按照预设模式指令进行互连,从而减少在某些固定应用场景中因CPU配置指令下发而占用带宽资源,例如在自动驾驶场景中,计算版需要对不同方向摄像头图像帧数据进行神经网络运算,因此可配置由NPU1和NPU2负责前置摄像头的计算工作、而NPU3和NPU4负责侧置摄像头的运算等。
基于相同发明构思,本说明书实施例还提供一种基于板上多芯片互连的神经网络加速处理方法。
如图9所示,本说明书实施例提供的一种神经网络加速处理方法,包括:
步骤S202、根据待加速处理的神经网络模型生成所述神经网络对应的计算图,按预设的分拆策略对所述计算图进行分割以形成若干网络单元。
实施中,分拆策略可包括以下任意一种策略:
(a)不同芯片运行不同层网络,即沿模型深度方向纵向拆分;
(b)不同芯片运行同一层至少一个卷积核对应的部分网络(若为多个则构成卷积核组,则该加速芯片负责当前卷积核组对应的卷积运算),即沿模型深度方向横向拆分;
(c)不同芯片运行不同层组不同卷积核部分网络,即沿模型深度方向纵向和横向拆分。
需要说明的是,计算图可为将神经网络模型的计算过程用图形表示出来的图,这里不作限定;计算图的分割可采用现有成熟的图分割方式,这里不作限定。
需要说明的是,待加速处理的神经网络模型可为一个,也可为多个(即两个及以上),因而分拆策略为针对一个或多个神经网络模型进行分拆的策略。
步骤S204、按预设的部署策略将分割后的网络单元加载到板上芯片组。
实施中,板上芯片组可为前述所述多芯片互连系统中所提供的任意一个实施例中由加速芯片互连而构成的芯片组,芯片组可为一个或者多个,这里不作限定。
实施中,加速芯片的数量可以与分拆得到的网络单元的数量相同,也可以不同,这时部署策略可根据实际的部署需要进行预设、调整,比如一个加速芯片只部署一个网络单元,比如一个芯片可部署两个及以上的网络单元,这里不再限定。
实施中,系统可向芯片组发出配置指令,以使芯片组中的芯片加载对应的网络单元完成部署。
步骤S206、将待处理输入数据加载至所述板上芯片组对应的内存中。
实施中,待处理输入数据可为网络单元对应的输入数据,比如针对神经网络模型的输入层对应的网络单元,其输入数据可为图像、声音、文字等原始数据,比如针对神经网络中的中间层(如卷积层、池化层等),其输入数据可为前一层卷积运算结果等数据。
实施中,芯片组的内存可为用于芯片组中的加速芯片装载数据的内存,因而该内存可为加速芯片(或者芯片组)的本地内存,也可为芯片(或者芯片组)的共享内存。
步骤S208、从所述内存中获取对应的当前卷积层所需的卷积核数据,以使所述芯片组中的各加速芯片加载相应数据,并对所述待处理输入数据进行卷积运算,生成卷积运算结果进行输出。
如图10所示,可将不同卷积核的卷积运算分布在不同加速芯片,每个加速芯片(或者芯片组)输出对应卷积核(或者多个卷积核构成的卷积核组)与待处理输入数据的卷积运算结果,比如各个Filter针对InputChannels进行处理,获得对应的OutputChannels。
实施中,在进行下一层卷积运算时,由于前一层各输出通道的卷积结果分布在各加速芯片(或者芯片组)自身的本地内存或者共享内存中,因此各加速芯片仍需要访问其他加速芯片中的前一层部分卷积结果数据。
实施中,可采用前述所述多芯片互连系统中所提及的读写模式,比如控制每个加速芯片通过桥接器IO/DMA模式、消息传递模式等方式,访问存储于其他加速芯片(或者芯片组)的本地内存或共享内存中的前一层卷积结果数据。
需要说明的是,神经网络模型中输出层对应的网络单元,其输出结果可为目标特征向量、分类信息等,与未分拆的模型输出结果类型相同,这里不对网络单元的输出作限定。
通过上述步骤S202~S208,基于桥接器进行多芯片互连构成的板上芯片组进行神经网络的加速处理,不仅可支持大规模甚至是超大规模的神经网络进行加速处理(即加速推理运算),而且可以不局限一个或多个神经网络的加速处理,从而为小算力加速处理器实现大规模算法模型运算提供了技术基础,为芯片间进行通信提供极大通信带宽,很好地支持芯片间的数据通信,增强了现有终端、边缘计算等设备应用神经网络模型的能力。
在一些实施方式中,可将上述基于板上多芯片互连的神经网络加速处理方法应用于神经网络的训练,可加速训练过程,提高训练效率。
实施中,可应用于神经网络训练的全过程,也可应用于神经网络中的某些网络层。
例如,神经网络训练中的全连接层计算、梯度更新阶段等,其中在计算全连接层时,需要将全连接层横向分成若干部分,部署到不通加速芯片运算,而在梯度更新时,各加速芯片需要收集所有损失误差,用于即梯度数据,用于参数更新,这时上述数据通信量一般在GB(千兆字节)数量级,各训练芯片间需要很大通信带宽,因而本说明书提供的方案可很好地支持芯片间的通信。
在一些实施方式中,在对多个模型进行加速处理时,可先对待加速处理的神经网络模型进行判断,以确定是针对多个相同模型进行加速处理,还是针对多个不同模型进行加速处理,实现整体加速处理的均衡化。
实施中,在步骤S202前,所述神经网络加速处理方法还可包括:获取多个待加速处理的神经网络模型,判断所述待加速处理的神经网络模型是否相同;若相同,则将这些模型均衡部署到芯片组,即将芯片组分为多个子芯片组,每个子芯片组分别部署一个模型,且每个子芯片组中,每个芯片负责模型部分运算(即一个或多个卷积核);若不同,则可根据预设的资源分配策略为各个模型分配相应的计算资源,比如根据模型的规模分配相应的计算资源,如按模型大小比例分配加速芯片数量,即大的模型分配较多的计算资源、小的模型分配较小的计算资源;比如根据模型的重要等级分配相应资源,如优先级高、重要程度高的模型优先分配资源,分配较多资源等。
在一些实施方式中,在对多个模型加速处理中,可采用投票机制对输出结果进行投票,提高加速处理的准确性。
实施中,若各模型获取数据相同,则对输出结果进行投票,若投票结果满足预设的可信阈值,则确定输出结果可信,反之为不可信。
在一些实施方式中,当模型参数较多,比如超出预设的数量阈值,导致子芯片组(或者加速芯片)的本地内存不能缓存整个网络单元对应的模型参数数据时,可将模型参数均衡加载至各芯片组内存中,从而在计算时,各子芯片组(或者加速芯片)通过桥接器分别访存其他芯片组(或者加速芯片)的本地内存中的对应模型参数,并将对应参数按着预设指令均衡加载至各自芯片组用于加速运算。
在一些实施方式中,在加速芯片(如NPU)只有一条通信链路与其他NPU通信时,通过配置桥接器或将各加速芯片采用环状网络耦合,将各加速芯片耦合构成一个环形连接拓扑关系,采用如图11所示的单向访存方式,获取邻接加速芯片本地内存中的卷积结果,然后与本地卷积核组进行卷积运算,并将对应卷积核的卷积结果求和作为该卷积核的卷积输出。
加速芯片(如NPU)有N个,桥接器有M个,输入总通道数为C_in,输出总通道数为C_out,卷积核总个数为f,则每个加速芯片上,在均衡负载的情况下实现a=f/N个卷积核对应的卷积运算,即每个NPU输出通道数为C’_out=a,各NPU输出通道卷积结果数据集合为{Q1、Q2…QN};每个子集Qi包含a个卷积输出结果;
这时,该卷积结果数据集合作为下一层卷积运算的输入数据;因此在进行下一层卷积时,各NPU卷积核组需要与其他NPU卷积运算的结果子集进行卷积求和运算;
例如,即N取4时,在第0周期,各加速芯片计算本地卷积核组与当前本地内存中存储的前一层卷积结果数据的卷积运算,生成部分卷积运算结果数据;第1-(N-1)周期,各芯片依次接收邻接的加速芯片本地内存中的前一层卷积结果据并与当前卷积核组进行卷积运算,对应卷积结果与前一周期卷积结果进行求和,直至各个芯片卷积核组分别与其他芯片组本地内存中前一层卷积结果数据完成卷积求和运算后,经过池化、激活输出当亲卷积核组对应卷积运算输出结果;循环上述步骤,可完成模型的加速处理。
实施中,当每个NPU有I个通信链路时,每个NPU可同时分别接收其他I个NPU本地数据,即每个通信周期接收各子集Qi中的部分数据。
需要说明的是,当多个通信链路置于邻接芯片连接耦合,多个链路相当于一个,只是增减了通信带宽,因而仍可采用前述实施例进行数据集获取。
需要说明的是,对于其他复杂神经网络模型,可通过配置桥接器实现多种NPU拓扑连接关系及芯片间通信方式,这里不再赘述。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例侧重说明的都是与其他实施例的不同之处。尤其,对于后面说明的实施例而言,由于其与前面的实施例是对应的,描述比较简单,相关之处参见在前实施例的部分说明即可。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (15)
1.一种多芯片互连系统,其特征在于,应用于神经网络的加速推理运算,所述多芯片互连系统包括:若干桥接器和至少两个加速芯片,每个加速芯片均通过桥接器与其余加速芯片进行互连,以构成板上芯片组对神经网络进行加速处理,其中芯片组中的加速芯片加载至少一个网络单元,所述网络单元为神经网络被按预设的分拆策略进行分拆后形成的网络单元。
2.根据权利要求1所述的多芯片互连系统,其特征在于,每个所述桥接器用于各加速芯片中相同链路端口编号的互连,其中每个加速芯片中各个链路端口按序编号。
3.根据权利要求1所述的多芯片互连系统,其特征在于,所述桥接器与每个设备的两个或两个以上端口相连。
4.根据权利要求1所述的多芯片互连系统,其特征在于,所述分拆策略包括以下一种分拆方式:沿模型深度方向纵向拆分、沿模型深度方向横向拆分、沿模型深度方向纵向及横向拆分。
5.根据权利要求1所述的多芯片互连系统,其特征在于,所述至少两个加速芯片包括第一主加速芯片和第一从加速芯片,其中所述第一主加速芯片和所述第一从加速芯片构成第一主从设备模式。
6.根据权利要求5所述的多芯片互连系统,其特征在于,所述第一主加速芯片通过广播方式向所述第一从加速芯片请求数据,其中所述第一主加速芯片向所述桥接器广播指令令牌信息,所述桥接器解析所述指令令牌信息,若发现目的地址与本地桥接器无路由连接,则丢弃;若发现目的地址与本地桥接器有路由连接,则向目的地地址设备转发指令令牌信息并建立握手连接,以便所述第一主加速芯片向所述第一从加速芯片请求数据。
7.根据权利要求6所述的多芯片互连系统,其特征在于,所述第一主加速芯片向所述第一从加速芯片请求数据的方式包括以下至少一种方式:直接IO/DMA模式、消息传递模式。
8.根据权利要求1所述的多芯片互连系统,其特征在于,所述多芯片互连系统还包括:控制器和主机内存,所述控制器和所述主机内存通过总线连接,所述控制器均与每个所述桥接器连接,以控制芯片组根据预设的程序指令按照预设的任务模式进行推理运算和数据通信。
9.根据权利要求8所述的多芯片互连系统,其特征在于,所述多芯片互连系统还包括:I/O设备,所述I/O设备与实时视频采集设备连接,以将所述实时视频采集设备采集的图像信息通过所述I/O设备的接口经所述桥接器加载于所述至少两个加速芯片中的至少一个加速芯片中。
10.一种神经网络加速处理方法,其特征在于,包括:
根据待加速处理的神经网络模型生成所述神经网络对应的计算图,按预设的分拆策略对所述计算图进行分割以形成若干网络单元;
按预设的部署策略将分割后的网络单元加载到板上芯片组,其中板上芯片组为如权利要求1-9中任意一项所述多芯片互连系统中的芯片组;
将待处理输入数据加载至所述板上芯片组对应的内存中;
从所述内存中获取对应的当前卷积层所需的卷积核数据,以使所述芯片组中的各加速芯片加载相应数据,并对所述待处理输入数据进行卷积运算,生成卷积运算结果进行输出。
11.根据权利要求10所述的神经网络加速处理方法,其特征在于,应用于神经网络训练过程,其中按预设的分拆策略对所述计算图进行分割以形成若干网络单元包括:按预设的分拆策略对全连接层对应的所述计算图进行分割以形成若干网络单元。
12.根据权利要求10所述的神经网络加速处理方法,其特征在于,在根据待加速处理的神经网络模型生成所述神经网络对应的计算图前,所述神经网络加速处理方法还包括:
获取多个待加速处理的神经网络模型,判断所述多个待加速处理的神经网络模型是否相同;
若相同,则将所述多个待加速处理的神经网络模型均衡部署到所述芯片组,以对相同的所述多个待加速处理的神经网络模型进行加速处理;
若不相同,则根据预设的资源分配策略为所述多个待加速处理的神经网络模型分配所述芯片组中的相应计算资源,以对不相同的所述多个待加速处理的神经网络模型进行加速处理。
13.根据权利要求12所述的神经网络加速处理方法,其特征在于,当所述多个待加速处理的神经网络模型获取的输入数据相同时,所述神经网络加速处理方法还包括:对所述多个待加速处理的神经网络模型的加速处理而输出的结果进行投票决策。
14.根据权利要求10所述的神经网络加速处理方法,其特征在于,当所述神经网络模型的模型参数超出预设的数量阈值时,所述神经网络加速处理方法还包括:
将所述模型参数均衡加载至各加速芯片的本地内存中;
通过所述桥接器向其他加速芯片请求对应模型参数,以使当前加速芯片加载到对应模型参数用于加速运算。
15.根据权利要求10所述的神经网络加速处理方法,其特征在于,在加速芯片仅有一条通信链路与其他加速芯片通信时,所述神经网络加速处理方法还包括:配置所述桥接器或将各加速芯片采用环状网络耦合,以使每个加速芯片采用单向访存方式,获取邻接加速芯片的本地内存中的卷积结果与本地卷积核进行卷积运算,并将对应卷积核的卷积结果求和后作为该卷积核的卷积输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111494734.6A CN113902111A (zh) | 2021-12-09 | 2021-12-09 | 多芯片互连系统及神经网络加速处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111494734.6A CN113902111A (zh) | 2021-12-09 | 2021-12-09 | 多芯片互连系统及神经网络加速处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113902111A true CN113902111A (zh) | 2022-01-07 |
Family
ID=79025787
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111494734.6A Pending CN113902111A (zh) | 2021-12-09 | 2021-12-09 | 多芯片互连系统及神经网络加速处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113902111A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116074179A (zh) * | 2023-03-06 | 2023-05-05 | 鹏城实验室 | 基于cpu-npu协同的高扩展节点系统及训练方法 |
WO2024067373A1 (zh) * | 2022-09-30 | 2024-04-04 | 华为技术有限公司 | 一种数据处理方法及相关装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105488565A (zh) * | 2015-11-17 | 2016-04-13 | 中国科学院计算技术研究所 | 加速深度神经网络算法的加速芯片的运算装置及方法 |
CN109447257A (zh) * | 2018-09-18 | 2019-03-08 | 复旦大学 | 一种通道自组织的深度神经网络加速芯片的运算装置 |
CN110991634A (zh) * | 2019-12-04 | 2020-04-10 | 腾讯科技(深圳)有限公司 | 人工智能加速器、设备、芯片及数据处理方法 |
CN112970037A (zh) * | 2018-11-06 | 2021-06-15 | 创惟科技股份有限公司 | 用于实施神经网络应用的多芯片系统、适用于多芯片系统的数据处理方法、和非暂时性计算机可读介质 |
CN113722266A (zh) * | 2021-11-02 | 2021-11-30 | 上海埃瓦智能科技有限公司 | 一种桥接器、加速设备互连系统及数据加速处理方法 |
-
2021
- 2021-12-09 CN CN202111494734.6A patent/CN113902111A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105488565A (zh) * | 2015-11-17 | 2016-04-13 | 中国科学院计算技术研究所 | 加速深度神经网络算法的加速芯片的运算装置及方法 |
CN109447257A (zh) * | 2018-09-18 | 2019-03-08 | 复旦大学 | 一种通道自组织的深度神经网络加速芯片的运算装置 |
CN112970037A (zh) * | 2018-11-06 | 2021-06-15 | 创惟科技股份有限公司 | 用于实施神经网络应用的多芯片系统、适用于多芯片系统的数据处理方法、和非暂时性计算机可读介质 |
CN110991634A (zh) * | 2019-12-04 | 2020-04-10 | 腾讯科技(深圳)有限公司 | 人工智能加速器、设备、芯片及数据处理方法 |
CN113722266A (zh) * | 2021-11-02 | 2021-11-30 | 上海埃瓦智能科技有限公司 | 一种桥接器、加速设备互连系统及数据加速处理方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024067373A1 (zh) * | 2022-09-30 | 2024-04-04 | 华为技术有限公司 | 一种数据处理方法及相关装置 |
CN116074179A (zh) * | 2023-03-06 | 2023-05-05 | 鹏城实验室 | 基于cpu-npu协同的高扩展节点系统及训练方法 |
CN116074179B (zh) * | 2023-03-06 | 2023-07-14 | 鹏城实验室 | 基于cpu-npu协同的高扩展节点系统及训练方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zamarreño-Ramos et al. | Multicasting mesh AER: A scalable assembly approach for reconfigurable neuromorphic structured AER systems. Application to ConvNets | |
CN113902111A (zh) | 多芯片互连系统及神经网络加速处理方法 | |
US20190138890A1 (en) | Expandable and real-time recofigurable hardware for neural networks and logic reasoning | |
KR101950786B1 (ko) | 분산처리용 인공신경망 연산 가속화 방법 | |
WO2020133317A1 (zh) | 计算资源分配技术及神经网络系统 | |
KR102137802B1 (ko) | 분산처리용 인공신경망 연산 가속화 장치, 이를 이용한 인공신경망 가속화 시스템, 및 그 인공신경망의 가속화 방법 | |
CN113261015A (zh) | 神经网络系统及数据处理技术 | |
CN109753319A (zh) | 一种释放动态链接库的装置及相关产品 | |
CN114564434B (zh) | 一种通用多核类脑处理器、加速卡及计算机设备 | |
CN113424198A (zh) | 基于柔性电缆连接的分布式ai训练拓扑 | |
CN113722266B (zh) | 一种桥接器、加速设备互连系统及数据加速处理方法 | |
CN114764374A (zh) | 一种在加速卡系统中执行通信任务的方法和设备 | |
JP2021507384A (ja) | ニューラルネットワークプロセッサのためのオンチップ通信システム | |
CN113556242B (zh) | 一种基于多处理节点来进行节点间通信的方法和设备 | |
CN113645282A (zh) | 一种基于服务器集群的深度学习方法 | |
CN111078624B (zh) | 片上网络处理系统和片上网络数据处理方法 | |
CN113627620A (zh) | 一种面向深度学习的处理器模组 | |
CN111078625B (zh) | 片上网络处理系统和片上网络数据处理方法 | |
CN111078623B (zh) | 片上网络处理系统和片上网络数据处理方法 | |
JP5393588B2 (ja) | 電子回路及び配線方式 | |
CN113553286A (zh) | 基于多处理节点来构建通信拓扑结构的方法和设备 | |
CN220340711U (zh) | 数据处理装置 | |
CN105830368B (zh) | 光互联系统、节点、光网络控制器和传输数据的方法 | |
CN115203117A (zh) | 计算系统、方法和介质 | |
CN116185641B (zh) | 融合架构系统、非易失性存储系统及存储资源获取方法 |
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 |