当前位置: 首页 > 专利查询>中山大学专利>正文

一种基于FPGA的高速低资源的二值卷积单元制造技术

技术编号:28037049 阅读:14 留言:0更新日期:2021-04-09 23:19
本发明专利技术提供一种基于FPGA的高速低资源的二值卷积单元,所述的二值卷积单元包括若干个乘加单元MA,若干个加法树,所述的乘加单元MA所实现的运算为

【技术实现步骤摘要】
一种基于FPGA的高速低资源的二值卷积单元
本专利技术涉及数字电路设计
,更具体地,涉及一种基于FPGA的高速低资源的二值卷积单元。
技术介绍
近年来,卷积神经网络(CNN)被广泛应用于图像识别和物体检测等领域。随着网络的深度和结构复杂性不断增加带来的计算效率较低和功耗较大等问题,人们开始关注使用FPGA对CNN的运算进行加速。另一方面,研究人员发现,通过二值化手段将权重数据量化成1或-1,在基本保持网络原有精度的同时,显著降低了网络的参数规模和运算复杂度。这不仅极大提高了网络的推断速度,也为在资源有限的FPGA平台上部署大规模的CNN模型提供了支持。传统的二值卷积单元通常包含两个部分,分别为“二值乘法器”以及“多操作数加法树”,前者用以实现单比特权重与激活值的乘积,后者用以实现所有乘积结果的累加。“二值乘法器”根据单比特权重而产生激活值的原值或负值,负值计算包括“取反加一”。为了减少“加一”操作带来的资源开销,提出一种“近似二值乘法器”,它移除了二值乘法器中的加一操作,将卷积核参数的“-1”个数作为一个补偿值最后与卷积结果相加。此外,多操作数加法树作为实现累加操作的硬件模块,通常分成“二叉累加树”以及“压缩树”两种类型。在ASIC设计中,压缩树相比于二叉累加树有着更好的面积和时序性能;然而在FPGA平台中,由于快速进位链的使用,流水式二叉累加树在面积以及时序性能上与流水式压缩树相差无几,同时具有更加简单和规整的结构。在二值化网络的加速器设计中,二值乘法器和多操作数累加树占据了FPGA查找表资源的主要消耗,部分研究工作的卷积核所消耗的查找表占总消耗量的54%以上。所以,资源友好的二值化卷积单元有助于在相同的FPGA平台上部署更加密集的卷积运算核。另一方面,尽管利用FPGA内部专用的进位链可以有效地改善流水式二叉累加树的时延特性,但是随着累加树深度的增加,单个加法器的操作数位宽越来越大,因此需要更多级联的进位链。从而增加了加法器的延迟,进而影响了累加树的整体时延性能。
技术实现思路
本专利技术为克服上述现有技术二值化卷积单元所消耗的查找表占总消耗量高,高时延性能的问题,提供了一种基于FPGA的高速低资源的二值卷积单元,其能节省查找表资源,降低时延,具有高速、低资源的特点。为解决上述技术问题,本专利技术的技术方案如下:一种基于FPGA的高速低资源的二值卷积单元,所述的二值卷积单元包括若干个乘加单元MA,若干个加法树,所述的乘加单元MA所实现的运算为w2i-1⊙I2i-1+w2i⊙I2i,所述的加法树完成所有乘加单元MA输出结果的求和操作;所述的二值卷积单元所实现的运算如下:并输出:其中,N表示卷积运算的长度,In表示输入特征图的激活值,Wn表示二值化权重,取值为-1或1,分别用单比特0和1代表,wn表示单比特,i表示大于0的整数。优选地,当N为偶数,所述的二值卷积单元包括N/2个的乘加单元MA,以及N/2个输入多操作数加法树,每两组Wn和每两组In作为一个乘加单元MA的输入数据;当N为奇数,所述的二值卷积单元包括个乘加单元MA单元,个输入多操作数加法树,以及一个近似二值乘法器用于处理余下的Wn数据和In数据。进一步地,所述的乘加单元MA采用XilinxFPGA中进位链Carry4实现Mbit的有符号加法操作,Mbit表示位宽。再进一步地,对于Mbit的有符号加法操作,采用M个LUT6和个进位链Carry4实现有符号加法操作;每4个LUT6处理的结果输入一个进位链Carry4中进行处理,相邻的两个进位链Carry4级联,实现进位比特在个Carry4中传输。再进一步地,在级联的两个进位链Carry4之间插入一级进位寄存器,将Mbit乘加单元MA分为处理高M-Lbits输入数据的高比特乘加单元和处理低Lbits输入数据的低比特乘加单元,即高比特乘加单元和低比特乘加单元通过一个进位寄存器级联。再进一步地,在t时刻,低比特乘加单元的进位比特Cint-1通过进位寄存器传输到高比特乘加单元,实现低比特乘加单元计算来自t-1时刻的w1,t-1×I1,t-1[M-1:L]与w2,t-1×I2,t-1[M-1:L]之和。再进一步地,所述的输入多操作数加法树包括若干个加法器,所述的加法器采用HRCL加法器,所述的HRCL加法器由一个Lbit的低比特加法器、一个进位比特寄存器与一个(M-L)bit的高比特加法器串联组成;再进一步地,在t时刻,低比特加法器的进位比特c1,t-1通过进位比特寄存器传输到高比特加法器,实现低比特加法器计算来自t-1时刻的a1,t-1[M-1:L]与b1,t-1[M-1:L]之和。再进一步地,L为再进一步地,所述的近似二值乘法器实现的运算如下:其中,O代表输出特征图的激活值,f是激活函数,bias是偏置项,⊙代表XNOR操作,与现有技术相比,本专利技术技术方案的有益效果是:本专利技术所述的二值卷积单元,由乘加单元以及输入多操作数加法树。其中,该乘加单元可以实现两个近似二值乘法器运算结果的求和操作;该多操作数加法树包含更少的加法器数量,在关键路径上相比传统的二叉累加树减少一半的进位链长度。因此,本专利技术提出的二值卷积单元能节省查找表资源,降低时延,具有高速、低资源的特点。附图说明图1是传统的二值化卷积单元。图2是传统Wi×Ii的二值乘法器。图3是本实施例所述的二值卷积单元的结构示意图。图4是本实施例XilinxFPGA的进位链单元结构示意图。图5是本实施例MA1单元的内部结构。图6是本实施例MA1单元的最终实现方案的内部结构图。图7是本实施例HRCL加法器的结构示意图。图8是本实施例所述的多操作数加法树的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,仅用于示例性说明,不能理解为对本专利的限制。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。下面结合附图和实施例对本专利技术的技术方案做进一步的说明。实施例1传统的二值化权重的卷积运算可表示为其中,N表示卷积运算的长度,In表示输入特征图的激活值,位宽为Mbits;Wn表示二值化权重,取值为-1或1,分别用单比特(wn)0和1代表。则通常而言,In数据以补码的形式存储,所以,因此基于公式(1)的传统二值化卷积单元,结构如图1所示,包含了N个二值乘法器,用以计算Wn×In,其输出为M+1bits,以及一个M+1bitN输入的流水式二叉累加树。其中,二值乘法器包含一个数据选通器以及一个“数值反转”单元,其结构如图2所示。根据公式(3),一次完整卷积计算所需要的“加一”数量应该等于权重Wn=-1的数量本文档来自技高网
...

【技术保护点】
1.一种基于FPGA的高速低资源的二值卷积单元,其特征在于:所述的二值卷积单元包括若干个乘加单元MA,若干个加法树,/n所述的乘加单元MA所实现的运算为w

【技术特征摘要】
1.一种基于FPGA的高速低资源的二值卷积单元,其特征在于:所述的二值卷积单元包括若干个乘加单元MA,若干个加法树,
所述的乘加单元MA所实现的运算为w2i-1⊙I2i-1+w2i⊙I2i,所述的加法树完成所有乘加单元MA输出结果的求和操作;
所述的二值卷积单元所实现的运算如下:并输出:
其中,N表示卷积运算的长度,In表示输入特征图的激活值,Wn表示二值化权重,取值为-1或1,分别用单比特0和1代表,wn表示单比特,i表示大于0的整数。


2.根据权利要求1所述的基于FPGA的高速低资源的二值卷积单元,其特征在于:当N为偶数,所述的二值卷积单元包括N/2个的乘加单元MA,以及N/2个输入多操作数加法器,每两组Wn和每两组In作为一个乘加单元MA的输入数据;
当N为奇数,所述的二值卷积单元包括个的乘加单元MA单元,个输入多操作数加法器,以及一个近似二值乘法器用于处理余下的Wn数据和In数据。


3.根据权利要求2所述的基于FPGA的高速低资源的二值卷积单元,其特征在于:所述的乘加单元MA采用XilinxFPGA中进位链Carry4实现Mbit的有符号加法操作,Mbit表示位宽。


4.根据权利要求3所述的基于FPGA的高速低资源的二值卷积单元,其特征在于:对于Mbit的有符号加法操作,采用M个LUT6和个进位链Carry4实现有符号加法操作;每4个LUT6处理的结果输入一个进位链Carry4中进行处理,相邻的两个进位链Carry4级联,实现进位比特在个Carry4中传输。


5.根据权利要求4所述的基于FPGA的高速低资源的二值卷积单元,其特征...

【专利技术属性】
技术研发人员:黄以华曾世豪罗聪慧黄文津
申请(专利权)人:中山大学
类型:发明
国别省市:广东;44

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

1