CN112508174B - 面向权重二值型神经网络的预计算逐列卷积计算单元 - Google Patents
面向权重二值型神经网络的预计算逐列卷积计算单元 Download PDFInfo
- Publication number
- CN112508174B CN112508174B CN202011450728.6A CN202011450728A CN112508174B CN 112508174 B CN112508174 B CN 112508174B CN 202011450728 A CN202011450728 A CN 202011450728A CN 112508174 B CN112508174 B CN 112508174B
- Authority
- CN
- China
- Prior art keywords
- output
- unit
- weight
- calculation
- column
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 125
- 230000001537 neural effect Effects 0.000 title description 2
- 239000013598 vector Substances 0.000 claims abstract description 60
- 238000009825 accumulation Methods 0.000 claims abstract description 53
- 238000013528 artificial neural network Methods 0.000 claims abstract description 18
- 238000001514 detection method Methods 0.000 claims description 16
- 238000000034 method Methods 0.000 claims description 16
- 230000003111 delayed effect Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000001133 acceleration Effects 0.000 description 3
- 238000010845 search algorithm Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开一种面向权重二值型神经网络的预计算逐列卷积计算单元,属于基本电子电路的技术领域,包括:(1)门控单元、(2)预计算单元、(3)查找单元和(4)自累加单元。门控单元判断特征值向量是否为全零,若为全零则将预计算单元和自累加单元中的寄存器时钟门控,预计算单元通过小型加法树电路进行预计算,得到特征值列向量与四种不同权重列向量的点积,查找单元通过选择器电路选择与实际权重列向量相对应的点积送至自累加单元,自累加单元根据特征值列向量的索引和权重列向量的索引选择对应的累加寄存器数据与其进行累加。相比于传统基于加法树或自累加器型的卷积计算单元电路,该种卷积计算单元电路能够显著降低计算量,提升计算效率,节省功耗。
Description
技术领域
本发明涉及一种面向权重二值型神经网络的预计算逐列卷积计算单元,利用数字逻辑实现权重二值型神经网络的卷积计算,属于基本电子电路的技术领域。
背景技术
近年,深度学习在图片识别、语言识别、自然语言处理、人工智能等领域展现出了独特优势,专用神经网络芯片的研究成为时下一个研究热点。图1所示为卷积计算示意图,其中H、W、C分别表示输入特征图的高、宽和通道数,R、S分别表示卷积核的高和宽,E、F、M分别表示输出特征图高、宽和通道数。每个卷积核与输入特征图进行卷积得到一张输出特征图,M个卷积核分别与输入特征图进行卷积就得到具有M个通道的输出特征图。卷积计算的具体过程可以归纳成式(1):
其中O、I、W分别表示输出特征图张量、输入特征图张量和卷积核张量,U表示卷积步长,N表示batch大小。从式(1)可以看到,卷积计算的主要操作为大量的乘累加运算,它们是神经网络加速芯片的主要功耗来源之一,如何降低卷积计算过程中乘累加操作的计算功耗以及中间数据存取的访存功耗是将神经网络算法部署到物联网等嵌入式设备上必须解决的两大问题。
近年来的研究主要从以下几个方面进行硬件优化,降低神经网络加速芯片的功耗。首先是低精度网络的运用,权重二值型网络将权重限定为“+1”和“-1”,使得卷积计算避免了功耗开销较大的乘法操作,只涉及加法操作。更极端的一种网络将中间数据也限定为“+1”和“-1”,进一步将卷积计算简化为同或和位计数操作,这样的网络被称为二值化网络。其次是充分利用卷积计算过程中的数据复用机会,减少访存功耗。对于大多数嵌入式和移动终端应用,受延迟和帧率要求,每次只对一个样本进行推理计算,在这样的条件下,卷积计算过程主要涉及两种数据复用机会:卷积复用和特征图复用。图2所示为卷积复用,在计算相邻输出特征值时(如第1个输出特征值和第2个输出特征值),存在输入特征图重叠的区域(图上用阴影表示),此为输入特征值复用,另外,由于是同一个卷积核在输入特征图上滑动,卷积核自然也是复用的,所以卷积复用包含了输入特征值复用和卷积核复用。图3所示为特征图复用,不同的卷积核与同一特征图进行卷积得到输出特征图的不同通道。其他硬件优化方法包括稀疏存储和计算、结合神经网络容错特性的近似计算、存算一体化技术等等。对于权重二值型网络,由于权重为单比特数据,而计算过程中的特征值数据为多比特数据,因此要优先利用卷积复用中的特征值复用和多卷积核并行计算提供的特征图复用机会,它们比卷积核复用的收益更大。
另外,因为权重二值型网络中的权重只有“+1”和“-1”这两种取值,这导致其卷积计算存在相当大的冗余性。如图4所示,特征值向量[D3,D13,D23]与权重向量[+1,+1,-1]的卷积(或称为“点乘”)会重复很多次,这些重复计算的根本来源是:长度为3的权重向量的组合情况最多只有8种([-1,-1,-1],[-1,-1,+1],[-1,+1,-1],[-1,+1,+1],[+1,-1,-1],[+1,-1,+1],[+1,+1,-1],[+1,+1,+1]),而卷积核中权重向量构成的样本空间要远远大于8。这就导致:不同卷积核中会存在相同的列向量(如图4示例中的卷积核1、卷积核2和卷积核64均具有相同的向量[+1,+1,-1]),同一卷积核中也会存在不同列的向量相同的情况(如卷积核64的第1列和第2列具有相同的向量[+1,+1,-1])。
针对权重二值型网络,当前的技术主要考虑利用各种数据复用机会减少访存,利用各种并行架构加速计算推理,主要的硬件实现方式为加法树结合自累加器,主要的数据流有权重固定型(Weight Stationary,WS)、输出固定型(Output Stationary,OS)和行固定型(Row Stationary,RS)。以上技术欠缺对于权重二值型网络卷积计算冗余性的考虑,虽然现有的一些技术利用卷积核分解等方法可以在卷积核中生成很多的“0”位,从而可以结合门控电路改善加速器动态功耗,但难以对“0”位进行跳过节省计算周期,提升计算效率。
发明内容
技术问题:本发明的发明目的是针对上述背景技术的不足,提供一种面向权重二值型神经网络的预计算逐列卷积计算单元,它能充分利用特征值复用和特征图复用降低访存功耗,通过预计算和查找算法降低权重二值型卷积中大量的冗余计算,并且结合时钟门控技术捕捉特征图中大量为零的像素,从而减少计算功耗和周期,提升性能。因为最近神经网络算法的技术趋势是朝着小卷积核的方向发展,比如Alexnet具有11×11的卷积核,而后来的VGG、MobileNet等的最大卷积核都为3×3,因此本发明只针对卷积核大小为3×3的权重二值型神经网络。
技术方案:本发明的一种面向权重二值型神经网络的预计算逐列卷积计算单元包括:
门控单元,门控单元从特征图缓存中读入的一列特征值,判断特征值向量是否为全零,若为全零则将预计算单元和自累加单元中的寄存器时钟门控,
预计算单元,预先计算从特征图缓存中读入的一列特征值与4种不同权重向量([+1,-1,-1],[+1,-1,+1],[+1,+1,-1],[+1,+1,+1])的点积,并存入预计算单元内部的寄存器作为表值供查找单元选择,
查找单元:根据从卷积核缓存中读入的实际权重向量,从预计算单元中选择对应的点积供自累加单元累加,
自累加单元:根据权重列向量索引和特征值列向量索引,从累加寄存器组中选择对应的数据与查找单元的输出数据进行累加。
所述门控单元包含对特征值向量是否为全零元素的检测逻辑,检测结果通过反相器连接至集成时钟的门控单元的使能端clk_en,其输入为系统时钟clk_i,其输出clk_o连接至预计算单元中各个寄存器的时钟引脚,与clk_o的产生过程相似,特征值向量是否全零的检测结果通过反相器,再经过一个寄存器延迟一个时钟周期后,连接至另一集成时钟的门控单元的使能端,其输入为系统时钟clk_i,其输出clk_o2连接至累加寄存器组中各个寄存器的时钟引脚,相比于clk_o,clk_o2在相位上延迟一个时钟周期。
所述预计算单元包含3个减法器、3个加法器和4个多比特寄存器组;第二特征值a1和第三特征值a2分别连接至第一减法器和第一加法器的输入端,得到temp0=a1-a2,temp1=a1+a2,第一特征值a0和第一减法器的输出temp0连接至第二减法器的输入,第二减法器的输出为P1=a0-a1+a2,第一减法器的输出temp0和第一特征值a0连接至第二加法器的输入,第二加法器的输出为P2=a0+a1-a2,第一特征值a0和第一加法器的输出temp1连接至第三减法器的输入,第三减法器的输出为P0=a0-a1-a2,第一加法器的输出temp1和第一特征值a0连接至第三加法器的输入,第三加法器的输出为P3=a0+a1+a2。P0-P3分别连接至4个累加寄存器组,每组寄存器分别存储一个列卷积计算结果;此外,第一减法器和第一加法器的输出temp0和temp1可被计算输出特征图第二行的逐列卷积计算单元电路中的预计算单元共享,从而减少运算次数。
所述查找单元包含:
第一数据选择器,其输入端接预计算单元中的4个寄存器组P0、P1、P2、P3输出,其控制端与第三选择器和第四选择器的输出相连接,
第二数据选择器,其输入端接第一选择器的输出和数据异号器的输出,其控制端与卷积核缓存的第一个权重输出相连接,
第三数据选择器,其输入端接卷积核缓存的第二个权重输出和第一反相器的输出,其控制端与卷积核缓存的第一个权重输出相连接,
第四数据选择器,其输入端接卷积核缓存的第三个权重输出和第二反相器的输出,其控制端与卷积核缓存的第一个权重输出相连接,
第一反相器,其输入端接卷积核缓存的第二个权重输出,其输出与第三数据选择器的输入端相连接,
第二反相器,其输入端接卷积核缓存的第三个权重输出,其输出与第四数据选择器的输入端相连接,
数据异号器,其输入端接第一选择器的输出端,其输出与第二选择器的输入相连接。
所述自累加单元包含:
一个多比特加法器,其输入端接查找单元的输出端和路由器的输出端,其输出与路由器的输入端相连接,
一个路由器,其输入为加法器的输出端和累加寄存器组的输出端,其输出端与加法器和累加寄存器组的输入端相连接,
一个累加寄存器组,其输入端为路由器的输出端,其输出端与路由器的输入端相连接。
所述路由器根据当前周期权重向量的列索引和特征值向量的列索引从累加寄存器组中选择对应的数据进行累加。
所述卷积计算单元的计算顺序及累加寄存器组的更新顺序为:
其中i表示卷积核向量的列索引(0-2),j表示特征值向量的列索引(0-9),k表示由上面表查找表得到的累加器更新索引(0-7),计算过程如下面的伪代码所示:
for(j=0;j<=9;j++)
for(i=0;i<=2;i++)
accumulator[k]+=a[j]*w[i];
其中a表示特征值向量,w表示权重向量,*表示点乘操作;计算8个输出特征值的二维卷积总计历时24个时钟周期。
有益效果:本发明采用上述技术方案,具有以下有益效果:
(1)本发明通过预计算和查找算法可以极大地减少权重二值型网络卷积过程中的冗余计算,降低计算功耗,提升计算效率。
(2)本发明通过时钟门控单元控制预计算单元和累加单元中寄存器的时钟,可以减少电路翻转,降低动态功耗。
(3)本发明采用多个卷积计算单元并行执行和逐列卷积的方法,能够充分利用特征图复用和特征值复用,减少访存次数,减低访存功耗。
(4)本发明通过在自累加单元中引入本地化的累加寄存器组,可以减少卷积计算产生的中间数据与外部缓存的交互,减少数据频繁搬运的功耗。
附图说明
图1为卷积计算的示意图。
图2为卷积复用的示意图。
图3为特征图复用的示意图。
图4为权重二值型网络卷积过程中冗余计算的示意图。
图5为卷积层实施例的示意图。
图6为特征图分割的示意图。
图7为实施例硬件单元配置及卷积映射图。
图8为列向量卷积结果查找表。
图9为预计算逐列卷积计算单元原理图。
图10为传统计算电路与本发明的计算量总结表。
具体实施方式
面向权重二值型神经网络的预计算逐列卷积计算单元,包括时钟门控单元、预计算单元、查找单元和自累加单元。时钟门控单元判断特征值向量是否为全零,若为全零则将预计算单元和自累加单元中的寄存器时钟门控。预计算单元通过小型加法树电路进行预先计算,得到特征值列向量和四种不同权重列向量的点积,查找单元通过选择器电路选择与实际权重列向量相对应的点积送至自累加单元,自累加单元根据特征值列向量的索引和卷积列向量的索引选择对应的累加寄存器数据与其进行累加。
时钟门控单元每次从特征图缓存中读取1列特征值数据(例如a0,a1,a2),然后判断向量中的3个元素是否为全零,若为全零则通过时钟门控单元将输入时钟(clk_i)进行门控,其输出时钟clk_o连接至预计算单元中寄存器的时钟引脚,输出时钟clk_o2连接至自累加单元中寄存器的时钟引脚。相比于clk_o,clk_o2的相位延迟一个时钟周期,clk_o2的产生与clk_o相似,只需要将特征值向量全零的判断信号通过寄存器延迟一个时钟周期再经过时钟门控单元即可得到。
预计算单元每次从特征图缓存中读取1列特征值数据(例如a0,a1,a2),然后由加法树电路得到4种权重向量([+1,-1,-1]、[+1,-1,+1]、[+1,+1,-1]、[+1,+1,+1])对应的点积结果(其余4种权重向量对应的点积结果只需在此基础上取反):P0=a0-a1-a2,P1=a0-a1+a2,P2=a0+a1-a2,P3=a0+a1+a2,并将计算结果存入预计算单元中的寄存器,通过总线供不同的卷积计算单元共享。具体地,特征值a1和a2分别连接至第一减法器和第一加法器的输入端,得到temp0=a1-a2,temp1=a1+a2,特征值a0和第一减法器的输出temp0连接至第二减法器的输入,第二减法器的输出为P1=a0-a1+a2,第一减法器的输出temp0和特征值a0连接至第二加法器的输入,第二加法器的输出为P2=a0+a1-a2,特征值a0和第一加法器的输出temp1连接至第三减法器的输入,第三减法器的输出为P0=a0-a1-a2,第一加法器的输出temp1和特征值a0连接至第三加法器的输入,第三加法器的输出为P3=a0+a1+a2。第一减法器和第一加法器的输出temp0和temp1同时可被计算第二行输出特征值的预计算单元共享,从而节省了加法器数目和计算量。
查找单元每次从卷积核缓存中读取1列权重数据(例如w0,w3,w6),根据实际的权重数据从预计算单元中选出对应的点积送至自累加单元进行累加。查找单元主要由一个四输入多比特数据选择器(mux1)、一个二输入多比特数据选择器(mux2)、两个二输入单比特(mux3和mux4)数据选择器、两个反相器(I1和I2)、一个多比特数据异号器(I3)构成。第一数据选择器的数据输入端为预计算单元中存储的四个部分和,其控制端为第三选择器和第四选择器的输出。第二数据选择器的数据输入端为第一选择器的输出和数据异号器的输出,其控制端为权重列的第一个数据,其输出端连接到自累加单元的加法器。第三数据选择器的数据输入端为权重列的第二个数据及其反相信号(在硬件电路里,+1用1表示,-1用0表示),其控制端为权重列的第一个数据。第四数据选择器的数据输入端为权重列的第三个数据及其反相信号,其控制端为权重列的第一个数据。第一反相器和第二反相器的输入分别为权重列的第二个数据和第三个数据,它们的输出端分别连接至第三选择器和第四选择器的输入。数据异号器的输入为第一选择器的输出,其输出端连接至第二选择器。第一数据选择器的作用是从预计算单元中取出对应的部分和,第二数据选择器的作用是确定部分和正确的符号。
自累加单元根据特征值向量的列索引和权重向量的列索引选择对应的累加寄存器数据与从查找单元输出的点积进行累加。自累加单元主要由一个多比特加法器、一个数据路由器和一个多比特累加寄存器组构成。加法器的输入为查找单元的输出和路由器的输出,其输出连接至路由器。路由器的输入为加法器的输出和累加寄存器组的输出,其输出连接至加法器和累加寄存器组。累加寄存器组的输入为路由器的输出,其输出连接至路由器。累加寄存器组由8个多比特寄存器构成,用来存储一行的特征值输出。路由器的作用是根据特征值列向量的索引和权重向量的索引选择对应的累加寄存器数据进行累加。
下面结合附图对发明的技术方案进行详细说明,但是本发明的保护范围不局限于所述实施例。
本实施以一个图5所示的卷积层为设计对象,输入为34×34×32的特征图(原始特征图为32×32×32,四周加了一圈padding后为34×34×32),该卷积层有64个大小为3×3的卷积核,输出为32×32×64的特征图。首先对32×32的特征图进行分割,分成10×10的块,相邻的两块特征图之间存在2个像素点的重叠(阴影部分),如图6所示。每轮完成一块特征图与卷积核的卷积计算,经过16轮即可完成该层的卷积计算。下面主要说明特征图块与卷积核的卷积计算。
该实施例的硬件配置及卷积层映射如图7所示。计算单元(PE)阵列包含8个预计算单元(Pre-PEi,i=1-8),32x8个卷积计算单元。水平方向上利用卷积窗并行性(即同时计算输出特征图的不同行),因此能够复用权重数据;垂直方向利用输出并行(即同时计算输出特征图的不同通道),因此能够复用输入特征值数据,这种二维复用结构可以大大降低访存,从而节省功耗。
如背景技术中所述,权重二值型网络的卷积计算过程涉及相当大的冗余性,减少这种计算冗余性对于降低计算量、提高计算效率和降低计算功耗具有重要意义。本发明利用卷积计算的特征值复用减少同一个卷积核中存在的计算冗余性,利用特征图复用减少不同卷积核之间存在的计算冗余性。基本的技术原理阐述如下:
如图8所示,权重向量三个元素可以构成8种组合,同一特征值向量与它们点乘总共能得到8种点积,其中4种点积与另外4种大小相同,符号相反,因此在硬件电路里只需要计算出其中四种点积P0-P3。基于预计算和查找算法的卷积计算电路如图9所示,预计算单元每次读取一列特征值,通过加法树计算出点积P0-P3,然后将其存储在单元内部的寄存器中作为表值供查找单元选取。查找单元每次读取一列编码后的实际权重向量,用其查找出对应的点积送至自累加单元。权重向量的第一位(w0)用来判断符号位:当其为1时,使用权重向量的第二位和第三位(w3和w6)从四个部分和中选择对应的一个进行累加;当其为0时,使用权重向量的第二位和第三位的反相信号(-w3和-w6)从四个部分和中选择对应的一个,并且取与所选点积异号的数据进行累加。自累加单元接收来自查找单元的列卷积计算结果,根据当前周期权重向量和特征值向量的列索引(i,j)选择对应的累加寄存器数据进行累加。累加寄存器更新的顺序如图9所示,完成如图所示的二维卷积共需要24个周期,三维卷积的实现只需要依次往计算单元传入所有通道的输入特征图数据和卷积核数据即可,输出特征图的不同行的计算可通过例化8组这样的计算单元并行实现。
查找单元和自累加单元构成一个卷积计算单元,负责完成一个输出特征图通道的计算,此实施例一共有32个卷积计算单元,为了完成该层64个输出特征图的计算一共需要2轮计算。预计算单元被这32个卷积计算单元共享,其计算出的列卷积结果数据可以被它们共享,因此极大地降低了计算量。
传统计算电路与本发明的计算量总结如图10所示。使用传统的卷积计算电路,如加法树结合自累加器型的电路,不能减少这些冗余计算,完成该层卷积需要执行18874368次加法操作,采用本发明只需要6294016次加法操作,仅为原来的33.3%。其中涉及的设计参数为:特征图分割因数(Pn)指的是特征图在水平方向和垂直方向分的块数,Pn等于4;每2个预计算单元加法数目(Ln)指的是相邻2个预计算单元中的加法数目,如前所述,因为预计算单元第一减法器的输出(temp0)和第一加法器的输出(temp1)可被相邻预计算单元共享,因此Ln=6+6-2=10;输出特征图行计算并行度(N1)指的是硬件并行计算的输出特征值行数,此实施例N1=8,因此对应有8个预计算单元;输出通道计算并行度指的是硬件并行计算的输出图通道数,此实施例N2=32,因此对应有N1×N2=256个卷积计算单元。本发明计算量的计算公式包括两项,前一项是预计算单元中的计算量,后一项是自累加单元中的计算量。而且,本发明提出的面向权重二值型神经网络的预计算逐列卷积计算单元,可以很好地适配图7所示的二维计算阵列,在提高加速能力的同时,能充分利用卷积的数据复用特性,可以将对权重数据的访存降低至1/8,将对特征值数据的访存降低至1/32,从而极大地降低访存功耗。
Claims (4)
1.一种面向权重二值型神经网络的预计算逐列卷积计算单元,其特征在于,单元电路包括:
门控单元(1),门控单元从特征图缓存中读入的一列特征值,判断特征值向量是否为全零,若为全零则将预计算单元(2)和自累加单元(4)中的寄存器时钟门控单元进行门控,
预计算单元(2),预先计算从特征图缓存中读入的一列特征值与4种不同权重向量[+1,-1,-1], [+1,-1,+1], [+1,+1,-1], [+1,+1,+1]的点积,并存入预计算单元内部的寄存器作为表值供查找单元(3)选择,
查找单元(3):根据从卷积核缓存中读入的实际权重向量,从预计算单元中选择对应的点积供自累加单元累加,
自累加单元(4):根据权重列向量索引和特征值列向量索引,从累加寄存器组中选择对应的数据与查找单元(3)的输出数据进行累加;
所述门控单元(1)包含对特征值向量是否为全零元素的检测逻辑,检测结果通过反相器连接至集成时钟的门控单元的使能端clk_en,其输入为系统时钟clk_i,其输出clk_o连接至预计算单元(2)中各个寄存器的时钟引脚,与clk_o的产生过程相似,特征值向量是否全零的检测结果通过反相器,再经过一个寄存器延迟一个时钟周期后,连接至另一集成时钟的门控单元的使能端,其输入为系统时钟clk_i,其输出clk_o2连接至累加寄存器组中各个寄存器的时钟引脚,相比于clk_o,clk_o2在相位上延迟一个时钟周期;
所述预计算单元(2)包含3个减法器、3个加法器和4个多比特寄存器组;第二特征值a1和第三特征值a2分别连接至第一减法器和第一加法器的输入端,得到temp0=a1-a2,temp1=a1+a2,第一特征值a0和第一减法器的输出temp0连接至第二减法器的输入,第二减法器的输出为P1=a0-a1+a2,第一减法器的输出temp0和第一特征值a0连接至第二加法器的输入,第二加法器的输出为P2=a0+a1-a2,第一特征值a0和第一加法器的输出temp1连接至第三减法器的输入,第三减法器的输出为P0=a0-a1-a2,第一加法器的输出temp1和第一特征值a0连接至第三加法器的输入,第三加法器的输出为P3=a0+a1+a2;P0-P3分别连接至4个累加寄存器组,每组寄存器分别存储一个列卷积计算结果;此外,第一减法器和第一加法器的输出temp0和temp1可被计算输出特征图第二行的逐列卷积计算单元电路中的预计算单元共享,从而减少运算次数。
2.根据权利要求1所述面向权重二值型神经网络的预计算逐列卷积计算单元,其特征在于,所述查找单元(3)包含:
第一数据选择器MUX1,其输入端接预计算单元中的4个寄存器组P0、P1、P2、P3输出,其控制端与第三选择器MUX3和第四选择器MUX4的输出相连接,
第二数据选择器MUX2,其输入端接第一选择器MUX1的输出和数据异号器I3的输出,其控制端与卷积核缓存W_BUF的第一个权重输出相连接,
第三数据选择器MUX3,其输入端接卷积核缓存W_BUF的第二个权重输出和第一反相器I1的输出,其控制端与卷积核缓存W_BUF的第一个权重输出相连接,
第四数据选择器MUX4,其输入端接卷积核缓存W_BUF的第三个权重输出和第二反相器I2的输出,其控制端与卷积核缓存W_BUF的第一个权重输出相连接,
第一反相器I1,其输入端接卷积核缓存W_BUF的第二个权重输出,其输出与第三数据选择器MUX3的输入端相连接,
第二反相器I2,其输入端接卷积核缓存W_BUF的第三个权重输出,其输出与第四数据选择器MUX4的输入端相连接,
数据异号器I3,其输入端接第一选择器MUX1的输出端,其输出与第二选择器MUX2的输入相连接。
3.根据权利要求1所述面向权重二值型神经网络的预计算逐列卷积计算单元,其特征在于,所述自累加单元(4)包含:
一个多比特加法器ADDER,其输入端接查找单元(3)的输出端和路由器ROUTER的输出端,其输出与路由器ROUTER的输入端相连接,
一个路由器ROUTER,其输入为加法器ADDER的输出端和累加寄存器组ACC_REG的输出端,其输出端与加法器ADDER和累加寄存器组ACC_REG的输入端相连接,
一个累加寄存器组ACC_REG,其输入端为路由器ROUTER的输出端,其输出端与路由器ROUTER的输入端相连接。
4.根据权利要求3所述面向权重二值型神经网络的预计算逐列卷积计算单元,其特征在于,所述路由器根据当前周期权重向量的列索引和特征值向量的列索引从累加寄存器组中选择对应的数据进行累加。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011450728.6A CN112508174B (zh) | 2020-12-09 | 2020-12-09 | 面向权重二值型神经网络的预计算逐列卷积计算单元 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011450728.6A CN112508174B (zh) | 2020-12-09 | 2020-12-09 | 面向权重二值型神经网络的预计算逐列卷积计算单元 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112508174A CN112508174A (zh) | 2021-03-16 |
CN112508174B true CN112508174B (zh) | 2024-03-22 |
Family
ID=74971963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011450728.6A Active CN112508174B (zh) | 2020-12-09 | 2020-12-09 | 面向权重二值型神经网络的预计算逐列卷积计算单元 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112508174B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115658013B (zh) * | 2022-09-30 | 2023-11-07 | 杭州智芯科微电子科技有限公司 | 向量乘加器的rom存内计算装置和电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110070178A (zh) * | 2019-04-25 | 2019-07-30 | 北京交通大学 | 一种卷积神经网络计算装置及方法 |
CN111275167A (zh) * | 2020-01-16 | 2020-06-12 | 北京中科研究院 | 一种用于二值卷积神经网络的高能效脉动阵列架构 |
CN111461313A (zh) * | 2020-03-27 | 2020-07-28 | 合肥工业大学 | 基于轻量型网络的卷积神经网络硬件加速器及其计算方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10929746B2 (en) * | 2017-11-27 | 2021-02-23 | Samsung Electronics Co., Ltd. | Low-power hardware acceleration method and system for convolution neural network computation |
-
2020
- 2020-12-09 CN CN202011450728.6A patent/CN112508174B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110070178A (zh) * | 2019-04-25 | 2019-07-30 | 北京交通大学 | 一种卷积神经网络计算装置及方法 |
CN111275167A (zh) * | 2020-01-16 | 2020-06-12 | 北京中科研究院 | 一种用于二值卷积神经网络的高能效脉动阵列架构 |
CN111461313A (zh) * | 2020-03-27 | 2020-07-28 | 合肥工业大学 | 基于轻量型网络的卷积神经网络硬件加速器及其计算方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112508174A (zh) | 2021-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Nguyen et al. | A high-throughput and power-efficient FPGA implementation of YOLO CNN for object detection | |
CN108133270B (zh) | 卷积神经网络加速方法及装置 | |
CN110458279B (zh) | 一种基于fpga的二值神经网络加速方法及系统 | |
CN108647773B (zh) | 一种可重构卷积神经网络的硬件互连系统 | |
CN108108809B (zh) | 一种针对卷积神经元网络进行推理加速的硬件架构及其工作方法 | |
Lu et al. | A resource-efficient pipelined architecture for real-time semi-global stereo matching | |
CN110070178A (zh) | 一种卷积神经网络计算装置及方法 | |
Sim et al. | Scalable stochastic-computing accelerator for convolutional neural networks | |
CN107633297B (zh) | 一种基于并行快速fir滤波器算法的卷积神经网络硬件加速器 | |
CN107256424B (zh) | 三值权重卷积网络处理系统及方法 | |
CN111768458A (zh) | 一种基于卷积神经网络的稀疏图像处理方法 | |
Li et al. | A multistage dataflow implementation of a deep convolutional neural network based on FPGA for high-speed object recognition | |
CN111582465B (zh) | 基于fpga的卷积神经网络加速处理系统、方法以及终端 | |
CN111931925A (zh) | 基于fpga的二值化神经网络的加速系统 | |
CN113313252B (zh) | 一种基于脉动阵列的深度可分离卷积实现方法 | |
CN111507465A (zh) | 一种可配置的卷积神经网络处理器电路 | |
CN112508174B (zh) | 面向权重二值型神经网络的预计算逐列卷积计算单元 | |
Yang et al. | GQNA: Generic quantized DNN accelerator with weight-repetition-aware activation aggregating | |
CN111275167A (zh) | 一种用于二值卷积神经网络的高能效脉动阵列架构 | |
Wang et al. | Low-resource hardware architecture for semi-global stereo matching | |
CN114219699A (zh) | 匹配代价处理方法及电路和代价聚合处理方法 | |
CN118034643B (zh) | 一种基于sram的无进位乘法存算阵列 | |
CN111445018B (zh) | 基于加速卷积神经网络算法的紫外成像实时信息处理方法 | |
Liu et al. | Tcp-net: Minimizing operation counts of binarized neural network inference | |
Chung et al. | Using quantization-aware training technique with post-training fine-tuning quantization to implement a mobilenet hardware accelerator |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |