一种粗粒度可重构的卷积神经网络加速器及系统的制作方法

文档序号:11729869阅读:312来源:国知局
一种粗粒度可重构的卷积神经网络加速器及系统的制作方法与工艺

本发明涉及高能效硬件加速器设计技术领域,更具体地,涉及一种粗粒度可重构的卷积神经网络加速器及系统。



背景技术:

卷积神经网络(convolutionalneuralnetwork,cnn)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网络已经成为在图像识别、语音识别等领域最常用的算法,这一类方法需要非常多的计算量,需要设计专用的加速器。在可移动设备中也有很好的应用前景。但由于可移动设备资源受限,目前在gpu和fpga(fieldprogrammablegatearray,现场可编程门阵列)平台上设计的加速器很难在这些要求低功耗、资源受限的平台上使用。

由于卷积神经网络具有多种大小的网络结构和卷积核,专用的卷积网络加速器应该高效的支持这些不同大小的网络以及卷积核。传统的加速器为了支持卷积网络的多样性通常可以被分为两大类;第一大类是指令式加速器,把不同的卷积核计算操作拆解成一条条指令,在同一时刻取出正确的权重数据与图像数据,这种方法需要大量片上带宽和片上存储,在处理小网络是比较高效,但处理大网络时权重数据不可能全部存储在片上,所以能量效率下降严重;第二大类采用细粒度可重构电路的方式来支持不同大小的网络和卷积核,例如采用重构片上网络的方式,给每个处理单元设置一个地址,每次发送数据到对应地址,这种方式虽然在处理不同卷积神经网络时比指令式加速器更加高效,但细粒度重构电路带来了很多额外的能量与重配置开销。

在大规模计算领域中,可重构系统是目前体系结构的一个研究热点,它将通用处理器的灵活性和asic(applicationspecificintegratedcircuits,专用集成电路)的高效性很好地结合起来,是面向大规模计算中比较理想的解决方案。传统dsp(digitalsignalprocessing,数字信号处理)具有运算速度低、硬件结构不可重构、开发升级周期长和不可移植等缺点,在面向大规模计算时,这种缺点就更加明显。asic在性能、面积和功耗等方面具有较大优势,但多变的应用需求和快速增长的复杂度使得asic的设计和验证难度大,开发周期长,很难满足产品快速应用的要求。在可编程逻辑器件中,虽然xilinx公司的virtex-6系列fpga利用600mhz的dsp48e1slice实现了超过1000gmacs(1×1012次乘累加运算/秒)的性能,但在面向大规模计算时,需要配置的电路规模过大,综合和配置时间过长,且实际工作频率不高,难以保持高性能的同时,追求灵活性和低功耗的目标。

因此,急需设计一种低功耗高能效的专用加速器架构来满足低功耗的可移动设备的使用。



技术实现要素:

本发明提供一种克服上述问题或者至少部分地解决上述问题的粗粒度可重构的卷积神经网络加速器及系统,采用粗粒度可重配的方式,通过sram(staticrandomaccessmemory,即静态随机存取存储器)或其他互联单元链接不同的权重与图像轨道,以实现不同的卷积核处理结构,可以高效的支持不同太小的网络和卷积核,同时大量减少重新配置的开销。

根据本发明的一个方面,提供一种粗粒度可重构的卷积神经网络加速器,包括多个处理单元簇,所述每个处理单元簇包括若干基本计算单元,所述若干基本计算单元通过一子加法单元连接,所述多个处理单元簇的子加法单元分别连接到一母加法单元;所述每个子加法单元用于产生相邻的若干基本加法单元的部分和,所述母加法单元用于累加所述子加法单元。

作为优选的,所述基本计算单元包括3×3卷积单元。

作为优选的,所述处理单元簇为4个,所述4个处理单元簇呈正交矩阵排布;所述每个处理单元簇包括4个基本计算单元,所述4个基本计算单元呈正交矩阵排布。

作为优选的,所述每个基本计算单元包括9个呈九宫格排布的乘法器,还包括1个加法器,所述同一列上的3个乘法器的输入寄存器为位移寄存器。

作为优选的,所述每个处理单元簇矩阵每行中相邻的基本计算单元通过权重互联单元连接权重轨道,每列中相邻两个基本计算单元通过图像互联单元连接图像轨道;

所述权重互联单元用于给每个基本计算单元连接权重轨道,通过sram控制选择,从权重轨道中选出权重数据给每个基本计算单元;

所述图像互联单元用于连接基本计算单元与图像数据,在sram的控制下从图像轨道和上一个基本计算单元的输出集合中选出3个连续的数据。

作为优选的,所述每个处理单元簇中乘法器和加法器在不用时关闭,所述子加法单元和母加法单元在不用时断电。

一种粗粒度可重构的卷积神经网络加速系统,包括若干并行的卷积神经网络加速器。

本申请提出一种粗粒度可重构的卷积神经网络加速器及系统,采用粗粒度可重配的方式,通过sram或其他互联单元链接不同的权重与图像轨道,以实现不同的卷积核处理结构,可以高效的支持不同太小的网络和卷积核,同时大量减少重新配置的开销。通过一种粗粒度可重构的加速器硬件架构,可以用极少的重配置开销支持不同网络,并设计高效支持粗粒度可重构架构的计算单元、支持粗粒度可重配置的互联结构、用小卷积核重构大卷积核的机制,相比于传统可重构fpga,重配置速度提升了105倍,能量效率达到了18.8倍。相比于传统细粒度可重配的asic,重配置时间减少了81.0%,平均能量效率提升了80.0%。

附图说明

图1为根据本发明实施例的粗粒度可重构的卷积神经网络加速器结构示意图;

图2为根据本发明实施例的为粗粒度配置后支持不同大小卷积核的工作模式示意图;

图3为根据本发明实施例的加速器架构配置5x5模式后的等效电路示意图;

图4为根据本发明实施例中细粒度重构asic加速器、传统可重构fpga、本发明的粗粒度可重构的卷积神经网络加速器能效比较示意图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

图1示出了一种粗粒度可重构的卷积神经网络加速器,包括多个处理单元簇,所述每个处理单元簇包括若干基本计算单元,所述若干基本计算单元通过一子加法单元连接,所述子加法单元如图1中的addb1-addb4,所述多个处理单元簇的子加法单元分别连接到一母加法单元,所述母加法单元如图1中所示的addb0,所述子加法单元与母加法单元结构相同;所述每个子加法单元用于产生相邻的若干基本加法单元的部分和,所述母加法单元用于累加所述子加法单元。

粒度指一个系统可重构组件(或可重构处理单元)操作数据的位宽大小,运算单元的粒度分为细粒度、粗粒度、混合粒度;在本实施例中,所述基本计算单元包括3×3卷积单元,3×3卷积单元为最常用的神经网络卷积核。由于细粒度的可重构会给带来大量的芯片面积和功耗开销。因此,本发明提出一种对3x3卷积核做专门优化,同时通过粗粒度重构的方法支持其他类型卷积核的加速器架构。由于加速器对3x3做了专门的优化,它可以高效的处理3x3的卷积核。由于3x3的卷积核在常用的神经网络所占比重大,可以明显提升效率,通过粗粒的可重配的方法组合这些3x3卷积单元构成更大的核。因此,采用粗粒度可重构的方法支持其他卷积核,在不损失太多性能的前提下大大降低可重配开销。

在本实施例中,所述处理单元簇为4个,所述4个处理单元簇呈正交矩阵排布;所述每个处理单元簇包括4个基本计算单元,如图1中所述的ne11、ne12、ne21、ne22及子加法单元addb1组成第一处理单元簇,ne13、ne14、ne23、ne24及子加法单元addb2组成第二处理单元簇,ne31、ne32、ne41、ne42及子加法单元addb3组成第三处理单元簇,ne33、ne34、ne43、ne44及子加法单元addb4组成第四处理单元簇,所述每个处理单元簇中的4个基本计算单元呈正交矩阵排布;如图1中(e)所示,所述子加法单元包括四个输入(如图1中所述的输入0、输入1、输入2、输入3)及buffer;所述四个输入分别连接所述第一处理单元簇、第二处理单元簇、第三处理单元簇、第四处理单元簇;所述buffer作为子加法单元输出(即图中的加法器输出)。

作为优选的,所述每个基本计算单元包括9个呈九宫格排布的乘法器mul,还包括1个加法器add;所述9个乘法器mul和所述加法器add都可以在不用时关闭以节省功耗。同一列上的三个乘法器mul的输入寄存器为移位寄存器,图像数据会从上向下移动。同时,基本计算单元有输出端口,可以把图像数据移出本单元。

如图1中(d)所示,所述每个处理单元簇矩阵每行中相邻的基本计算单元通过权重互联单元fc连接权重轨道,每列中相邻两个基本计算单元通过图像互联单元ic连接图像轨道;

所述权重互联单元fc用于给每个基本计算单元连接权重轨道,通过sram(staticrandomaccessmemory,静态随机存取存储器)控制选择,从权重轨道中选出权重数据给每个基本计算单元;

所述图像互联单元用于连接基本计算单元与图像轨道,由于每个基本计算单元有三列,所以图像互联单元在sram的控制下从图像轨道和上一个基本计算单元图像输出的集合中选出三个连续的数据。当需要重新配置芯片时,只需要载入数据到配置sram中,即可完成芯片重配置。

作为优选的,所述每个处理单元簇中乘法器和加法器在不用时关闭,所述子加法单元和母加法单元在不用时断电,以节省功耗。

如图2所示,为粗粒度配置后支持不同大小卷积核的工作模式示意图,本发明支持1x1到12x12卷积核大小,可以被配置成16个(1x1)到(3x3)核处理,或者4个(4x4)到(6x6)核和1个(7x7)-(12x12)核。如一个5x5的核,将会有4个基本计算单元和一个子加法单元构成,其中4个基本计算单元中有三个中的部分乘法器会被断电,保证5x5核的大小,同时节省功耗。

如图3所示,为加速器架构配置5x5模式后的等效电路示意图;经过粗粒度重配置,以5x5的核为例,该结构可以形成一个高效的运算结构,其高效利用了两种数据复用模式,从而大大降低数据的搬运,提升计算能效,第一种复用是卷积核内复用,例如一个5x5的卷积核,通过粗粒度重构,在相邻的卷积核之间有4个像素可以被重复使用,不需要重新载入。同时,通过粗粒度重构,每个图像数据会被n个卷积核公用,直到n个卷积核都处理完。这种卷积核间复用也减少了图像数据的搬移,n个卷积核都处理完以后,整个图像数据下移一行,在此基础重复上述过程。同时实现另一个方向的卷积核内数据复用。

如图4所示,为细粒度重构asic加速器、传统可重构fpga、本发明的粗粒度可重构的卷积神经网络加速器能效比较示意图,图中分别为细粒度重构asic加速器、传统可重构fpga、本发明的加速器在alexnet深度卷积网络、clarifai网络模型、overfeat算法、vgg16深度卷积神经网络中应用时的能效比较示意图;从图中可以看出,本发明相比于传统可重构fpga,重配置速度提升了105倍,能量效率达到了18.8倍。相比于传统细粒度可重配的asic,重配置时间减少了81.0%,平均能量效率提升了80.0%。

本实施例中还提供了一种粗粒度可重构的卷积神经网络加速系统,包括若干并行的卷积神经网络加速器,由于不同单元之间无数据交换,这种架构并行后带来的收益是线性的。

本申请提出一种粗粒度可重构的卷积神经网络加速器及系统,采用粗粒度可重配的方式,通过sram或其他互联单元链接不同的权重与图像轨道,以实现不同的卷积核处理结构,可以高效的支持不同太小的网络和卷积核,同时大量减少重新配置的开销。通过一种粗粒度可重构的加速器硬件架构,可以用极少的重配置开销支持不同网络,并设计高效支持粗粒度可重构架构的计算单元、支持粗粒度可重配置的互联结构、用小卷积核重构大卷积核的机制,相比于传统可重构fpga,重配置速度提升了105倍,能量效率达到了18.8倍。相比于传统细粒度可重配的asic,重配置时间减少了81.0%,平均能量效率提升了80.0%。

最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1