一种用于卷积神经网络的脉动阵列计算结构及方法技术

技术编号:22755432 阅读:18 留言:0更新日期:2019-12-07 04:07
本申请公开了一种用于卷积神经网络的脉动阵列计算结构及方法,解决了脉动阵列在卷积运算时重复访问外部存储模块获取重复数据的问题。包括脉动子阵列、暂存单元和累加模块;脉动子阵列,用于接收特征图数据,与对应的卷积核相乘后累加;累加模块,用于累加接收的数据;暂存单元,用于暂存特征图数据。本申请装置的使用方法:将卷积核在特征图上滑动截取的多组数据分别按照卷积核的行数拆分成小组,并将重用的数据暂存,通过卷积核和特征图的大小确定暂存的周期;将小组中属于同一组的数据进行卷积运算,将结果进行进行累加。本发明专利技术不仅可以充分的利用输入特征数据,降低存储访问次数,还可以减少脉动阵列中乘加单元的无效时间,提高运算效率。

A computing structure and method of pulse array for convolution neural network

The application discloses a pulse array computing structure and method for convolution neural network, which solves the problem that pulse array repeatedly accesses external memory module to obtain repeated data during convolution operation. It includes pulse sub array, temporary storage unit and accumulation module; pulse sub array, which is used to receive the characteristic map data and accumulate after multiplying with the corresponding convolution kernel; accumulation module, which is used to accumulate the received data; temporary storage unit, which is used to temporarily store the characteristic map data. Use method of the application device: divide multiple groups of data intercepted by the convolution kernel sliding on the feature graph into groups according to the number of rows of the convolution kernel, and store the reused data temporarily, determine the period of the temporary storage by the size of the convolution kernel and the feature graph; convolute the data belonging to the same group in the group, and accumulate the results. The invention can not only make full use of the input characteristic data, reduce the storage access times, but also reduce the invalid time of the multiplication and addition unit in the pulse array and improve the operation efficiency.

【技术实现步骤摘要】
一种用于卷积神经网络的脉动阵列计算结构及方法
本申请涉及深度学习
,尤其涉及一种用于卷积神经网络的脉动阵列计算结构及方法。
技术介绍
目前深度学习领域深受各界关注,其中卷积神经网络在计算机视觉、医学图像处理以及自然语言处理等领域得到广泛应用,效果良好。其中卷积层的运算次数占到整体运算的90%以上。因此,卷积运算是卷积神经网络处理速度的瓶颈。卷积层的作用是通过一定大小的卷积核作用于局部图像区域获得图像的局部信息,提取图像中相应特征。卷积运算是一种规则且重复多次的乘加运算,特征图像数据和权重数据的重用度高。脉动阵列常用于完成大规模乘加运算,并且脉动阵列可实现充分的流水,因此实现的频率可以很高,有利于提高系统的整体算力,这些特点使得脉动阵列非常适合处理卷积操作运算。在实际卷积运算过程中,从存储中读取特征图所消耗的能量远高于运算时消耗的能量,因此提高输入特征数据的重用度成为减少卷积运算模块功耗的关键。利用脉动阵列进行卷积运算时,通常先将卷积运算转换为矩阵乘法运算,之后将矩阵乘法运算映射到脉动阵列上进行运算。虽然脉动阵列可以较好的解决卷积运算量大的问题,但是在将卷积运算变换为矩阵乘法后,输入特征矩阵中包含大量的重复数据,因此利用传统的方法脉动阵列将无法重复利用特征图数据,这将大大增加存储器的访问次数。
技术实现思路
本申请实施例提供一种用于卷积神经网络的脉动阵列计算结构及方法,解决了脉动阵列在卷积运算时重复访问外部存储模块获取重复数据的问题。本申请实施例提供一种用于卷积神经网络的脉动阵列计算结构,包括脉动子阵列、暂存单元和累加模块;X个Y×n×n大小的卷积核,Y个m×m大小的特征图,所述Y为输入数据通道个数,所述m>n;所述脉动子阵列,用于接收卷积核在特征图上滑动截取的一行特征图数据,与对应的权重数据相乘后累加;脉动子阵列的个数为n;所述累加模块,用于累加同一输出特征图通道的脉动子阵列输出的数据,得到输出特征图数据;所述暂存单元,用于接收一个脉动子阵列输送的特征图数据,暂存m-n+1周期后后输送至与其相连的前一个脉动子阵列。进一步地,所述脉动子阵列是由多个乘加单元组成的阵列;脉动子阵列的行数为X,列数为n,脉动子阵列的个数为Y×n;所述乘加单元,包含第一输入端口、第二输入端口、第三输入端口、第一输出端口、第二输出端口和第三输出端口;所述第一输入端口的输入数据与第三输入端口的输入数据求乘法,并与第二输入端口的输入数据求加法经过一周期暂存后通过第二输出端口输出;所述第一输入端口的输入数据经过一周期暂存后从第一输出端口输出;所述第三输入端口的输入数据经过一周期暂存后从第三出书端口输出;所述多个乘加单元组成脉动子阵列,由上方的乘加单元的第一输出端口和第三输出单元分别连接下方乘加单元的第一输入端口和第三输入端口;左侧乘加单元的第二输出端口连接右侧乘加单元的第二输入端口。进一步地,所述特征图数据通过外部存储模块获得。进一步地,所述特征图数据为M11、M12、M13...M1m、M21..Mmm共m×m个数据,卷积核为N11、N12、N13...N1n、N21...Nnn共n×n个数据,用于特征图输送的时序为:第一周期,外部存储单元输送特征图数据M11至第一脉动子阵列,输送特征图数据M21和M1(m-n+2)至第二脉动子阵列,以此类推,输送特征图数据Mn1和M(n-1)(m-n+2)至第n脉动子阵列;第二周期,外部存储单元输送特征图数据M12至第一脉动子阵列,输送特征图数据M22和M1(m-n+3)至第二脉动子阵列,以此类推,输送特征图数据Mn2和M(n-1)(m-n+3)至第n脉动子阵列;第n脉动子阵列输送Mn1和M(n-1)(m-n+2)至第一个暂存模块,第n-1脉动子阵列输送M(n-1)1和MM(n-2)(m-n+2)至第二个暂存模块,以此类推,第二脉动子阵列输送M21和M1(m-n+2)至第n-1个暂存模块;第n-1周期,外部存储单元输送特征图数据M1(n-1)至第一脉动子阵列,输送特征图数据M2(n-1)和M1m至第二脉动子阵列,以此类推,输送特征图数据Mn(n-1)和M(n-1)m至第n脉动子阵列;第n脉动子阵列输送M(n-1)(n-2)和M(n-2)(m-1)至第一个暂存模块,第n-1脉动子阵列输送M(n-2)(n-2)和M(n-2)(m-1)至第二个暂存模块,以此类推,第二脉动子阵列输送M2(n-2)和M1(m-1)至第n-1个暂存模块;第n周期,外部存储单元输送特征图数据M1n至第一脉动子阵列,输送特征图数据M2n至第二脉动子阵列,以此类推,输送特征图数据Mnn至第n脉动子阵列;第n脉动子阵列输送Mn(n-1)和M(n-1)m至第一个暂存模块,第n-1脉动子阵列输送M(n-1)(n-1)和M(n-2)m至第二个暂存模块,以此类推,第二脉动子阵列输送M2(n-1)和M1m至第n-1个暂存模块;第n+1周期,外部存储单元输送特征图数据M1(n+1)至第一脉动子阵列,输送特征图数据M2(n+1)至第二脉动子阵列,以此类推,输送特征图数据Mn(n+1)至第n脉动子阵列;第n脉动子阵列输送Mnn至第一个暂存模块,第n-1脉动子阵列输送M(n-1)n至第二个暂存模块,以此类推,第二脉动子阵列输送M2n至第n-1个暂存模块;第一脉动子阵列送Mnn×Nnn+Mn(n-1)×Nn(n-1)+......+M11×N11至累加单元;第二脉动子阵列送M(n-1)n×N(n-1)n+M(n-1)(n-1)+N(n-1)(n-1)+......+M21×N21至累加单元,以此类推,第n脉动子阵列送M2n×N2n+M2(n-1)×N2(n-1)+......+Mn1×Nn1至累加单元;第n+2周期,外部存储单元输送特征图数据M1(n+2)至第一脉动子阵列,输送特征图数据M2(n+2)至第二脉动子阵列,以此类推,输送特征图数据Mn(n+2)至第n脉动子阵列;第n脉动子阵列输送Mn(n+1)至第一个暂存模块,第n-1脉动子阵列输送M(n-1)(n+1)至第二个暂存模块,以此类推,第二脉动子阵列输送M2(n+1)至第n-1个暂存模块;第m-n+1周期,外部存储单元输送特征图数据M1(n+2)至第一脉动子阵列,输送特征图数据M2(n+2)至第二脉动子阵列,以此类推,输送特征图数据Mn(n+2)至第n脉动子阵列;第一个暂存单元输送Mnn~Mn1至第n-1脉动子阵列,第二个暂存单元送M(n-1)n~M(n-1)1至第n-2脉动子阵列,以此类推,送M1n~M11至第1脉动子阵列;进一步地,输入数据通过寄存器在乘加单元内暂存一周期。优选地,所述暂存单元在脉动子阵列与外部存储模块之间。进一步地,只有脉动子阵列边缘的乘加单元可以与外部连接。进一步地,所述脉动子阵列最左侧的乘加单元的第二输入端口输入的数据为0。本申请实施例还提供一种用于卷积神本文档来自技高网...

【技术保护点】
1.一种用于卷积神经网络的脉动阵列计算结构,其特征在于,包括脉动子阵列、暂存单元和累加模块;/nX个Y×n×n大小的卷积核,Y个m×m大小的特征图,所述Y为输入数据通道个数,所述m>n;/n所述脉动子阵列,用于接收卷积核在特征图上滑动截取的一行特征图数据,与对应的权重数据相乘后累加;脉动子阵列的个数为n;/n所述累加模块,用于累加同一输出特征图通道的脉动子阵列输出的数据,得到输出特征图数据;/n所述暂存单元,用于接收一个脉动子阵列输送的特征图数据,暂存m-n+1周期后后输送至与其相连的前一个脉动子阵列。/n

【技术特征摘要】
1.一种用于卷积神经网络的脉动阵列计算结构,其特征在于,包括脉动子阵列、暂存单元和累加模块;
X个Y×n×n大小的卷积核,Y个m×m大小的特征图,所述Y为输入数据通道个数,所述m>n;
所述脉动子阵列,用于接收卷积核在特征图上滑动截取的一行特征图数据,与对应的权重数据相乘后累加;脉动子阵列的个数为n;
所述累加模块,用于累加同一输出特征图通道的脉动子阵列输出的数据,得到输出特征图数据;
所述暂存单元,用于接收一个脉动子阵列输送的特征图数据,暂存m-n+1周期后后输送至与其相连的前一个脉动子阵列。


2.根据权利要求1所述用于卷积神经网络的脉动阵列计算结构,其特征在于,所述脉动子阵列是由多个乘加单元组成的阵列;
脉动子阵列的行数为X,列数为n,脉动子阵列的个数为Y×n;
所述乘加单元,包含第一输入端口、第二输入端口、第三输入端口、第一输出端口、第二输出端口和第三输出端口;
所述第一输入端口的输入数据与第三输入端口的输入数据求乘法,并与第二输入端口的输入数据求加法经过一周期暂存后通过第二输出端口输出;
所述第一输入端口的输入数据经过一周期暂存后从第一输出端口输出;
所述第三输入端口的输入数据经过一周期暂存后从第三出书端口输出;
所述多个乘加单元组成脉动子阵列,由上方的乘加单元的第一输出端口和第三输出单元分别连接下方乘加单元的第一输入端口和第三输入端口;左侧乘加单元的第二输出端口连接右侧乘加单元的第二输入端口。


3.根据权利要求1所述用于卷积神经网络的脉动阵列计算结构,其特征在于,所述特征图数据通过外部存储模块获得。


4.根据权利要求1所述用于卷积神经网络的脉动阵列计算结构,所述特征图数据为M11、M12、M13...M1m、M21..Mmm共m×m个数据,卷积核为N11、N12、N13...N1n、N21...Nnn共n×n个数据,其特征在于,用于特征图输送的时序为:
第一周期,外部存储单元输送特征图数据M11至第一脉动子阵列,输送特征图数据M21和M1(m-n+2)至第二脉动子阵列,以此类推,输送特征图数据Mn1和M(n-1)(m-n+2)至第n脉动子阵列;
第二周期,外部存储单元输送特征图数据M12至第一脉动子阵列,输送特征图数据M22和M1(m-n+3)至第二脉动子阵列,以此类推,输送特征图数据Mn2和M(n-1)(m-n+3)至第n脉动子阵列;第n脉动子阵列输送Mn1和M(n-1)(m-n+2)至第一个暂存模块,第n-1脉动子阵列输送M(n-1)1和MM(n-2)(m-n+2)至第二个暂存模块,以此类推,第二脉动子阵列输送M21和M1(m-n+2)至第n-1个暂存模块;
第n-1周期,外部存储单元输送特征图数据M1(n-1)至第一脉动子阵列,输送特征图数据M2(n-1)和M1m至第二脉动子阵列,以此类推,输送特征图数据Mn(n-1)和M(n-1)m至第n脉动子阵列;第n脉动子阵列输送M(n-1)(n-2)和M(n-2)(m-1)至第一个暂存模块,第n-1脉动子阵列输送M(n-2)(n-2)和M(n-2)(m-1)至第二个暂存模块,以此类推,第二脉动子阵列输送M2(n-2)和M1(m-1)至第n-1个暂存模块;
第n周期,外部存储单元输送特征图数据M1n至第一脉动子阵列,输送特征图数据M2n至第二脉动子阵列,以此...

【专利技术属性】
技术研发人员:李洪革李玉亮
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京;11

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

1