一种用于执行神经网络计算的脉动阵列系统及处理设备技术方案

技术编号:23762190 阅读:36 留言:0更新日期:2020-04-11 18:00
本实用新型专利技术实施例公开了一种用于执行神经网络计算的脉动阵列系统及处理设备,本公开基于脉动阵列系统建立,核心组成包括:脉动阵列单元,用于数据传输和乘加计算,由若干相同的处理单元耦合而成;存储阵列,用于将传输脉动阵列单元的矩阵进行暂存和缓存处理,存储阵列包括与权值数据和神经元数据相关的多种性质数据对应的不同存储阵列。通过存储阵列与脉动阵列单元的相对位置优化,实现了数据矩阵在脉动阵列单元内部的可控转置。另一方面,多种存储阵列的存在,使得在采用本实用新型专利技术实施例时,能够解决现有脉动阵列系统难以实现的高效流水作业,提高了装置运行效率,还使脉动阵列系统具有能够应对多个不同权值矩阵的灵活性。

A pulse array system and processing equipment for performing neural network calculation

【技术实现步骤摘要】
一种用于执行神经网络计算的脉动阵列系统及处理设备
本技术涉及人工智能技术,尤其涉及一种实施神经网络矩阵乘加运算装置。
技术介绍
当下来自物联网、互联网的可用数码数据呈指数增长,这驱动了对高性能数据分析算法的需求,在众多算法中又以深度神经网络(DeepNeuralNetwork,DNN)尤为突出,其应用领域包括目标识别、自动驾驶和无人机导航等。但深度神经网络的实现需要进行大量数据的传输和计算,传统处理架构在面对复杂度高且数量巨大的数据传输和运算时无法实现平衡且高效运行,主要体现在海量的数据传输、载入、计算在使用传统的处理架构时存在资源占用多、运算速度慢、能量消耗大等问题。因此,一个能提高计算效率且能高传输数据流的方法对于实现深度神经网络计算至关重要。脉动阵列(SystolicArray)结构是一种由多个处理单元耦合形成的网络,每个重复的处理单元可以独立地进行计算,并将结果传递给周围的处理单元。脉动阵列的结构特性使它能够在消耗较小的内存带宽的基础上实现高的运算吞吐量,这恰好满足了深度神经网络计算的特点需求。脉动阵列使数据传输在阵列内部进行,通过使数据在处理单元间不断流动,降低了系统的负担。此外,由于脉动阵列具有复用计算单元的特性,还以较小带宽实现了较高的运算吞吐率。但目前的脉动阵列灵活性较差且不能在脉动阵列中实现矩阵变换,例如在深度神经网络运算中除了载入最常用的权值矩阵,在核心的反向传播运算中需要载入转置的权值矩阵时需要停止数据流动,求出转置的权值矩阵后再载入网络。另一方面,目前的脉动矩阵仅支持将权值固定在阵列中再进行运算的形式,这使得每次载入新的权值矩阵时均需要停止数据流动,造成较大的时滞。
技术实现思路
本技术的目的之一在于提供一种基于脉动阵列的神经网络计算装置,以解决现有脉动阵列灵活性差、运算涉及多个权值矩阵时效率较低等技术问题。为实现上述目的,根据本技术的第一方面,提供了一种用于执行神经网络计算的脉动阵列系统。该系统提供有输入矩阵,输入矩阵包括权值矩阵和神经元数据矩阵,该脉动阵列系统包括脉动阵列单元、存储阵列、运算单元和控制单元。其中脉动阵列单元由若干结构相同的处理单元构成二维矩阵形式,每个处理单元至少包括一个内置的运算器和两个内置的寄存器,每个处理单元在脉动阵列单元的行方向上和列方向上与相邻的处理单元耦合。每个处理单元接收控制单元指令,并使用内置的运算器对输入矩阵中的元素执行相关运算得到结果矩阵,每个处理单元还使用内置的寄存器将接收到的输入矩阵的元素或结果矩阵的元素沿对应矩阵的传动方向传递给下一个处理单元。其中运算单元由处理单元中的运算器耦合而成。具体的,存储阵列包括转置权值矩阵存储阵列,转置权值矩阵存储阵列设有输入端阵列,该输入端阵列为第一输入端阵列,转置权值矩阵存储阵列的输入端为第二输入端阵列。第一输入端阵列与脉动阵列单元中由处理单元耦合而成的一条外边缘相连接,与第一输入端阵列相连的脉动阵列单元外边缘与输入矩阵的传入方向平行。存储阵列还包括神经元数据矩阵存储阵列,神经元数据矩阵存储阵列的输入端阵列为第二输入端阵列,第二输入端阵列与脉动阵列单元中由处理单元耦合而成的一条外边缘相连接,脉动阵列单元中与第一输入端阵列和第二输入端阵列连接处的两条外边缘相邻或平行;存储阵列用于接收外部传入脉动阵列单元的上述输入矩阵,并按照先进先出规则将其输出到运算单元进行运算得到结果矩阵。本技术通过使输入端阵列相互正交的存储阵列改变权值矩阵流向从而实现转置,与现有的通过算法变换预处理实现矩阵转置再输入脉动阵列不同,本技术通过简单改变存储阵列输入端位置来实现矩阵转置的形式更为优越。这不仅不会增加每个运算单元的设计逻辑复杂度和布局布线的复杂度,还消除了外部进行转置所需的预处理成本,减少了额外输入转置矩阵所需的传输成本,降低了功耗。同时,仅传输权值矩阵的并存储的同时将转置矩阵存储于系统中,避免了现有技术方案中存在的多次传入矩阵导致的操作复杂问题,提升了脉动阵列系统的效率和实用性。这种利用改变矩阵传输方向来实现矩阵转置的方法在深度神经网络中最适用于对权值矩阵进行转置,但这种方法也适用于其他需要转置的矩阵。优选地,向脉动阵列系统中传入的输入矩阵呈平行四边形排布,将平行四边形矩阵中与脉动阵列单元的侧边缘平行的一组对边作为平行边,平行边中最先传入脉动阵列单元的一条为前锋平行边,另一组对边作为斜边,斜边中最先传入脉动阵列单元的一条为前锋斜边。当使用平行四边形排布的阵列时,无需在脉动阵列内部进行矩阵形状调整,从而可以减少控制信号输入,降低传动系统的复杂度。更为优选地,脉动阵列单元中还包括载入网络,载入网络由搭载了载入网络单元的处理单元耦合而成,载入网络单元至少包括一个权值矩阵转置选择器和一个神经元数据传送选择器。具体地,载入网络用于将输入矩阵加到脉动阵列单元并储存到相应存储阵列中。载入网络的引入将数据载入过程使用的寄存器网络与数据传动运算过程使用的寄存器网络分开使用,从物理层面上确保了数据载入和传动运算过程在同时进行的时候不会出现寄存器读写错误,并且可以实现数据载入和传动运算的并行运行,提高了系统效率。更为优选地,存储阵列还包括权值矩阵存储阵列,权值矩阵存储阵列设有输入端阵列,该输入端阵列为第三输入端阵列,第三输入端阵列与脉动阵列单元中由处理单元耦合而成的一条外边缘相连接,脉动阵列单元中与第一输入端阵列和第三输入端阵列连接处的两条外边缘相邻;当载入网络用于接收外部传入的权值矩阵时,控制单元控制权值矩阵沿传入方向进入载入网络并以此为第一方向流动,权值矩阵控制信号与权值矩阵同步传入脉动阵列单元,当权值矩阵的前锋斜边流动到与脉动阵列单元的一条对角线重合的位置时,控制单元根据权值矩阵控制信号进行如下操作:若接收到的权值矩阵控制信号为矩阵无需转置信号,控制单元则控制权值矩阵继续沿第一方向流动,最终进入权值矩阵存储阵列;若接收到的权值矩阵控制信号为矩阵转置信号,控制单元则将权值矩阵流动方向转到正交于第一方向并以转置权值矩阵存储阵列为终点的第二方向,然后沿此方向继续流动,直至进入转置权值矩阵存储阵列。以上方法通过改变菱形矩阵传输方向和矩阵存储阵列的位置实现了矩阵的转置,在深度神经网络中该方法最适用于对权值矩阵进行转置。同样地,该方法还实现了权值矩阵及其转置矩阵的同步存储。显然,这种方法还可以对权值矩阵之外的其他矩阵进行转置。更为优选地,脉动阵列单元还包括传动运算网络,传动运算网络由搭载了传动运算网络单元的处理单元耦合而成,传动运算网络单元至少包括一个权值矩阵数据选择器、一个乘加器、一个部分结果加法器、一个神经元数据流水寄存器、一个部分结果寄存器。传动运算网络在控制单元的控制下接收权值矩阵或转置权值矩阵中的一个,并接收神经元数据矩阵,接收后将上述两矩阵流动至处理单元中进行运算,最后将计算出的结果矩阵经传动运算网络传出脉动阵列单元。传动运算网络配合原矩阵/转置矩阵的设计,进行矩阵流水移动和运算,形成在原矩阵/转置矩阵之间可以灵活选本文档来自技高网
...

【技术保护点】
1.一种用于执行神经网络计算的脉动阵列系统,提供有输入矩阵,所述输入矩阵包括权值矩阵和神经元数据矩阵,所述脉动阵列系统包括脉动阵列单元、存储阵列、运算单元和控制单元,所述脉动阵列单元由若干结构相同的处理单元构成二维矩阵形式,每个处理单元至少包括一个内置的运算器和两个内置的寄存器,每个处理单元在所述脉动阵列单元的行方向上和列方向上与相邻的处理单元耦合,每个处理单元接收控制单元指令,并使用所述运算器对接收到的所述输入矩阵元素执行相关运算得到结果矩阵,每个处理单元还使用所述寄存器将接收到的所述输入矩阵的元素或所述结果矩阵的元素沿对应矩阵的传动方向传递给下一个处理单元,所述运算单元由处理单元中的运算器耦合而成;/n其特征在于,所述存储阵列包括转置权值矩阵存储阵列,所述转置权值矩阵存储阵列设有输入端阵列,所述转置权值矩阵存储阵列的输入端阵列为第一输入端阵列,所述第一输入端阵列与所述脉动阵列单元中由处理单元耦合而成的一条外边缘相连接,与所述第一输入端阵列相连的所述脉动阵列单元外边缘与所述输入矩阵的传入方向平行;/n所述存储阵列还包括神经元数据矩阵存储阵列,所述神经元数据矩阵存储阵列的输入端阵列为第二输入端阵列,第二输入端阵列与脉动阵列单元中由处理单元耦合而成的一条外边缘相连接,所述脉动阵列单元中与所述第一输入端阵列和所述第二输入端阵列连接处的两条外边缘相邻或平行;/n所述存储阵列用于接收外部传入脉动阵列单元的所述输入矩阵,并按照先进先出规则将其输出到所述运算单元进行运算得到所述结果矩阵。/n...

【技术特征摘要】
1.一种用于执行神经网络计算的脉动阵列系统,提供有输入矩阵,所述输入矩阵包括权值矩阵和神经元数据矩阵,所述脉动阵列系统包括脉动阵列单元、存储阵列、运算单元和控制单元,所述脉动阵列单元由若干结构相同的处理单元构成二维矩阵形式,每个处理单元至少包括一个内置的运算器和两个内置的寄存器,每个处理单元在所述脉动阵列单元的行方向上和列方向上与相邻的处理单元耦合,每个处理单元接收控制单元指令,并使用所述运算器对接收到的所述输入矩阵元素执行相关运算得到结果矩阵,每个处理单元还使用所述寄存器将接收到的所述输入矩阵的元素或所述结果矩阵的元素沿对应矩阵的传动方向传递给下一个处理单元,所述运算单元由处理单元中的运算器耦合而成;
其特征在于,所述存储阵列包括转置权值矩阵存储阵列,所述转置权值矩阵存储阵列设有输入端阵列,所述转置权值矩阵存储阵列的输入端阵列为第一输入端阵列,所述第一输入端阵列与所述脉动阵列单元中由处理单元耦合而成的一条外边缘相连接,与所述第一输入端阵列相连的所述脉动阵列单元外边缘与所述输入矩阵的传入方向平行;
所述存储阵列还包括神经元数据矩阵存储阵列,所述神经元数据矩阵存储阵列的输入端阵列为第二输入端阵列,第二输入端阵列与脉动阵列单元中由处理单元耦合而成的一条外边缘相连接,所述脉动阵列单元中与所述第一输入端阵列和所述第二输入端阵列连接处的两条外边缘相邻或平行;
所述存储阵列用于接收外部传入脉动阵列单元的所述输入矩阵,并按照先进先出规则将其输出到所述运算单元进行运算得到所述结果矩阵。


2.根据权利要求1所述的脉动阵列系统,其特征在于,向所述脉动阵列系统中传入的所述输入矩阵呈平行四边形排布,所述平行四边形矩阵中与脉动阵列单元侧边缘平行的一组对边作为平行边,所述平行边中最先传入脉动阵列单元的一条为前锋平行边,另一组对边作为斜边,所述斜边中最先传入脉动阵列单元的一条为前锋斜边。


3.根据权利要求2所述的脉动阵列系统,其特征在于,所述脉动阵列单元还包括载入网络,所述载入网络由搭载了载入网络单元的所述处理单元耦合而成,所述载入网络单元至少包括一个权值矩阵转置选择器和一个神经元数据传送选择器,所述载入网络用于将所述输入矩阵加载到所述脉动阵列单元并储存到相应存储阵列中。


4.根据权利要求...

【专利技术属性】
技术研发人员:杨龚轶凡郑瀚寻闯小明
申请(专利权)人:深圳芯英科技有限公司
类型:新型
国别省市:广东;44

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

1