首页 / 一种可重构卷积神经网络的PE单元和脉动阵列

一种可重构卷积神经网络的PE单元和脉动阵列有效专利 实用

技术领域

[0001] 本实用新型涉及卷积神经网络领域,特别是指一种可重构卷积神经网络的PE单元和脉动阵列。

相关背景技术

[0002] 目前,卷积神经网络发展迅速,在计算机视觉、语音识别、自然语言处理等领域均取得了接近甚至反超人类的表现。但是随着网络识别率的提高,带来的却是更深更复杂的网络结构和更庞大的参数运算量的出现。这就使得神经网络在运算量和运算时间上同样激增。为了处理这方面问题,有人提出了通过神经网络的逐层精度优化来降低计算复杂度,低比特多精度量化参数由此而生。经过实验验证,对于不同网络、不同层的权重位宽存在差异并不会导致网络正确率下跌,因此可以使用较低的数据精度量化来表示不同网络层的权重参数,从而降低计算复杂度和参数存储量,达到神经网络提速的效果。
[0003] 然而,多精度神经网络的计算需要定制的硬件电路来支持,因为单精度处理器在计算混合精度时会浪费大量资源,而多精度神经网络处理器在电路级支持多精度,计算可以得到比单精度处器更高的利用率,但是现有技术中的多精度计算无法平衡低计算成本消耗和更高速度的要求,大部分在低精度下仍然需要将数据位宽向下缩减至更低比特,易导致性能损失。
[0004] 同时,面对神经网络大量数据,如何复用调度数据从而减少数据搬迁量也是一个问题,需要合适的加速计算结果将基本乘法单元有效地组织起来,目前比较主流单精度的加速结构主要有行缓冲、二维阵列、脉动阵列等,都是通过数据复用的方式来减少搬运,但是针对多精度的加速结构却并不完备,复杂的调度形式以及需要兼容不同精度权重的情况使得传统的加速架构在上面并不能通用,会造成效率低下甚至数据出错的情况。
[0005] 因此,现有针对多精度的网络计算硬件存在许多需要改进的地方,设计出一个可以兼容多精度并实现合理数据调度的硬件电路是当下所需。实用新型内容
[0006] 本实用新型的主要目的在于克服现有技术中的上述缺陷,提出一种可重构卷积神经网络的PE单元,能完成2bit、4bit、6bit低位宽权重卷积神经网络;同时设计了新型脉动阵列,将九个PE单元组合成一组,图像数据横向传输,权重行间循环,计算结果纵向传输,能在一个循环内实现四个8bitx6bit运算,六个8bitx4bit运算或十二个8bitx2bit运算,极大提升了卷积运算的速度。
[0007] 本实用新型采用如下技术方案:
[0008] 一种可重构卷积神经网络的PE单元,包括六个乘法器、五个移位寄存器、两个第一加法器和一个第二加法器;六个所述乘法器并列设置,每个所述乘法器的一输入端输入图像数据,另一输入端输入权重数据;五个所述移位寄存器的输入端与其中五个所述乘法器的输出端相连;其中一所述第一加法器的两输入端分别与其中一组的两所述移位寄存器的输出端相连,另一所述第一加法器的两输入端分别与另一所述移位寄存器的输出端以及未连接所述移位寄存器的所述乘法器的输出端相连;所述第二加法器的两输入端分别连接另一组的两所述移位寄存器的输出端,两所述第一加法器的输出端和所述第二加法器的输出端相连。
[0009] 设置所述PE单元封装后的引脚包括clk端、rst端、data端、weight端、choose端、result端和data_out端,所述clk端用于输入时钟信号,所述rst端用于输入复位信号,所述data端用于输入图像数据,所述weight端用于输入权重数据、所述choose端用于输入权重位宽选择数据、所述result端用于输出图像数据,所述data_out端用于输出计算结果。
[0010] 所述权重位宽选择数据包括有00代表2bit、01代表4bit以及10代表6bit;所述计算结果为8bit位宽,当权重位宽为2bit时,输出七个数据;当权重位宽为4bit时,输出三个数据;当权重位宽为6bit时,输出两个数据。
[0011] 一种多宽位可重构卷积脉动阵列,其特征在于:包括寄存器和若干个所述的一种可重构卷积神经网络的PE单元。
[0012] 包括纵向排列的第一行单元、第二行单元和第三行单元,所述第一行单元、所述第二行单元和所述第三行单元分别设置有三个从左到右排列且相连的所述PE单元,所述第一行单元的每个所述PE单元计算结果级联至第二行单元的对应的所述PE单元,所述第二行单元的每个所述PE单元计算结果级联至第三行单元对应的所述PE单元,所述第三行单元的每个所述PE单元的计算结果传输至所述寄存器进行数据累加后输出。
[0013] 所述图像数据从每一行单元的右侧的所述PE单元流入并且横向传播,权重数据流入每一行单元的三个所述PE单元,所述图像数据和所述权重数据流入所述第二行单元比流入所述第一行单元慢一个时钟周期,所述图像数据和所述权重数据流入所述第三行单元比流入所述第二行单元慢一个时钟周期。
[0014] 所述权重数据为行间循环设置,对于3x3卷积的九个权重数据来说,所述第一行单元按[w1,w2,w3]顺序循环,w1、w2、w3分别表示第一行单元的三个所述PE单元的权重,所述第二行单元按[w4,w5,w6]顺序循环并比所述第一行单元慢一个时钟周期,w4、w5、w6分别表示第二行单元的三个所述PE单元的权重,所述第三行单元按[w7,w8,w9]顺序循环并比所述第二行单元慢一个时钟周期,w7、w8、w9分别表示第三行单元的三个所述PE单元的权重。
[0015] 由上述对本实用新型的描述可知,与现有技术相比,本实用新型具有如下有益效果:
[0016] 本实用新型设计了一种可完成2、4、6bit低位宽权重和固定位宽图像数据的可重构卷积神经网络PE单元,并采用脉动阵列形式传输数据,可以用于3x3神经网络的硬件加速硬件系统中,在满足多位宽运算的条件下提高运算速度。
[0017] 本实用新型的电路结构具有重构性,可以根据输入位宽确定运算模式,兼容2bit、4bit、6bit三种卷积中常见的低bit位宽,并和卷积加速运算中的输出通道并行相结合,可以在一次运算中输出多通道数据结果,极大减少了数据搬运量,提高运算效率。
[0018] 本实用新型采用新型脉动阵列结构替换加法树结构,并将滑动窗和脉动阵列结合起来,处理单元间数据通信距离短,使数据流和控制流的设计,同步控制节省IO带宽。

具体实施方式

[0023] 以下通过具体实施方式对本实用新型作进一步的描述。
[0024] 本实用新型中,对于术语“第一”、“第二”、“第三”等仅用于区别类似的对象,而不必用于描述特定的顺序或先后次序,也不能理解为指示或暗示相对重要性。对于描述中,采用了“上”、“下”、“左”、“右”、“前”和“后”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本实用新型,而不是指示或暗示所指的装置必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本实用新型保护范围的限制。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
[0025] 另外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
[0026] 参见图1,一种可重构卷积神经网络的PE单元,其包括六个乘法器10、五个移位寄存器20、两个第一加法器31和一个第二加法器32等。六个乘法器10并列设置,每个乘法器10的一输入端输入图像数据,另一输入端输入权重数据。五个移位寄存器20的输入端与其中五个乘法器10的输出端相连,参见图中,最右侧的乘法器10输出端并未连接移位寄存器20。其中一第一加法器31的两输入端分别与其中一组的两移位寄存器20的输出端相连,该组为最左侧的两移位寄存器20;另一第一加法器31的两输入端分别与另一移位寄存器20的输出端以及与之相邻的未连接移位寄存器20的乘法器10的输出端相连,该第一加法器31为三输入加法器,两第一加法器31的第三输入端连接or。第二加法器32的两输入端分别连接另一组的两移位寄存器20的输出端,该另一组的两移位寄存器20为处于中间的两相邻的移位寄存器20,两第一加法器31的输出端和第二加法器32的输出端相连。
[0027] 其中,or是做一个数据选择作用,选择接入第一加法器31的最后一个数据是0还是正常移位后的数据,该位移后的数据是指位于中间的一移位寄存器20的输出端输出的数据。当权重是4bit的时候,只需要将两个结果相加,因此or选择第一加法器31输入的一个加数为0;当权重为6bit时,需要三个结果相加,第一加法器31的最后一个加数为位于中间的其中一移位寄存器20移位后的数据。
[0028] 本实用新型中,多bit权重乘法器结构是相同的图像数据和不同的权重数据,类似卷积神经网络中的输出通道并行。输入数据时,按照通道并行策略将对应位置权重数据加载进入PE单元,同时输入图像数据。
[0029] 当参数设定为8bitx6bit时,第一个时钟周期完成6个8bitx2bit的乘法运算,第二个时钟周期完成移位运算,第三个时钟周期完成两个第二加法器32的加法运算。
[0030] 当参数设定为8bitx4bit时,第一个时钟周期完成6个8bitx2bit的乘法运算,第二个时钟周期完成移位运算,第三个时钟周期完成两个第一加法器31和一个第二加法器32的加法运算,并且其中一个第一加法器31的一输入端为0。
[0031] 当参数设定为8bitx2bit时,第一个时钟周期完成6个8bitx2bit的乘法运算。
[0032] 可知,权重位宽为6bit和4bit时,需要三个时钟周期输出一批次计算结果,当权重为2bit时,一个时钟周期就可以输出一批计算结果。
[0033] 本实用新型的PE单元封装引脚如图2所示,其中输入输出端口具体含义如表1所示。
[0034] 表1
[0035]
[0036]
[0037] 本实用新型设置PE单元封装后的引脚包括clk端、rst端、data端、weight端、choose端、result端和data_out端,clk端用于输入时钟信号,rst端用于输入复位信号,data端用于输入图像数据,weight端用于输入权重数据、choose端用于输入权重位宽选择数据、result端用于输出图像数据,data_out端用于输出计算结果。
[0038] 权重位宽选择数据包括有00代表2bit、01代表4bit以及10代表6bit;计算结果为8bit位宽,当权重位宽为2bit时,输出七个数据;当权重位宽为4bit时,输出三个数据;当权重位宽为6bit时,输出两个数据。
[0039] 基于此,本实用新型还提出一种多宽位可重构卷积脉动阵列,包括寄存器40和上述的一种可重构卷积神经网络的PE单元构成纵向排列的第一行单元、第二行单元和第三行单元,第一行单元、第二行单元和第三行单元分别设置有三个从左到右排列且相连的PE单元,第一行单元的每个PE单元计算结果级联至第二行单元的对应的PE单元,第二行单元的每个PE单元计算结果级联至第三行单元对应的PE单元,第三行单元的每个PE单元的计算结果传输至寄存器40进行数据累加后输出;图像数据从每一行的右侧的PE单元流入并且横向传播,权重数据流入每一行的三个PE单元,图像数据和权重数据流入第二行单元比流入第一行单元慢一个时钟周期,图像数据和权重数据流入第三行单元比流入第二行单元慢一个时钟周期。
[0040] 本实用新型采用九个PE单元组成脉动阵列,图像数据按照行顺序依次从右侧的PE单元流入脉动阵列,同时,每一行的三个PE单元输入同一个权重数据,对于3x3卷积的九个权重数据来说,权重数据为行间循环设置,对于3x3卷积的九个权重数据来说,第一行单元按[w1,w2,w3]顺序循环,第二行单元按[w4,w5,w6]顺序循环并比第一行单元慢一个时钟周期,第三行单元按[w7,w8,w9]顺序循环并比第二行单元慢一个时钟周期,w1、w2、w3表示第一行单元的三个所述PE单元的权重,w4、w5、w6表示第二行单元的三个所述PE单元的权重,w7、w8、w9表示第三行单元的三个所述PE单元的权重。两者相乘的结果向下传递,与下一个PE单元的相乘结果相加,一个权重数据和一个图像数据相乘,结果是得到的中间结果,最后所有中间结果相加后即为一个3x3卷积的结果。
[0041] 本实用新型采用这样设定使得纵向每一个行单元的三个PE单元在三个周期内可以完成一个3x3的卷积运算,流水线情况下三个纵向就可以在三周期内完成三个3x3的卷积运算。
[0042] 本实用新型的脉动多位宽可重构卷积脉动阵列运行过程可分为三步:
[0043] (1)数据加载阶段:前三个周期,图像数据依次从三个行单元最右侧的PE单元流入,权重数据按照广播形式循环进入脉动阵列,脉动阵列启动工作,阵列的内PE单元依次开启2bit乘法、移位计算和累加计算等。
[0044] (2)循环运算阶段:从第四个周期开始,第一行单元、第二行单元、第三行单元的数据依次完成第一次计算,结果级联后向下传递也即纵向传递,累加到最下方的寄存器40。寄存器40每传满三个输出数据累加后输出,然后继续等待新的三个数据。
[0045] (3)数据流出阶段:此阶段为换行或换图像时,三个行单元的图像数据依次停止流入,同时权重数据也按照从上到下形式清空,直到脉动阵列最下方最后一个输出数据累加完成,此时脉动阵列内已经清空,代表可以导入新一行或新一张图像数据。
[0046] 本实用新型设计的电路结构具有重构性,可以根据输入位宽确定运算模式,兼容2bit、4bit、6bit三种卷积中常见的低bit位宽,并和卷积加速运算中的输出通道并行相结合,可以在一次运算中输出多通道数据结果,极大减少了数据搬运量,提高运算效率。
[0047] 本实用新型提出了一种新型脉动阵列结构替换加法树结构,并将滑动窗和脉动阵列结合起来,处理单元间数据通信距离短,使数据流和控制流的设计,同步控制节省IO带宽。
[0048] 上述仅为本实用新型的具体实施方式,但本实用新型的设计构思并不局限于此,凡利用此构思对本实用新型进行非实质性的改动,均应属于侵犯本实用新型保护范围的行为。

当前第1页 第1页 第2页 第3页