CN112434801B - 一种按照比特精度进行权重拆分的卷积运算加速方法 - Google Patents
一种按照比特精度进行权重拆分的卷积运算加速方法 Download PDFInfo
- Publication number
- CN112434801B CN112434801B CN202011192684.1A CN202011192684A CN112434801B CN 112434801 B CN112434801 B CN 112434801B CN 202011192684 A CN202011192684 A CN 202011192684A CN 112434801 B CN112434801 B CN 112434801B
- Authority
- CN
- China
- Prior art keywords
- bit
- weight
- convolution operation
- convolution
- data
- 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
- 238000000034 method Methods 0.000 title claims abstract description 49
- 230000001133 acceleration Effects 0.000 title claims abstract description 21
- 238000004364 calculation method Methods 0.000 claims abstract description 68
- 238000009825 accumulation Methods 0.000 claims description 36
- 238000000354 decomposition reaction Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 claims description 5
- 230000001186 cumulative effect Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 abstract description 4
- 230000000295 complement effect Effects 0.000 abstract 1
- 238000013527 convolutional neural network Methods 0.000 description 18
- 230000006872 improvement Effects 0.000 description 8
- 238000013461 design Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000016776 visual perception Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
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/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
-
- 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种按照比特精度进行权重拆分的卷积运算加速方法,包括:1)对于卷积核中每一个权重W,遍历比较其每一个比特位,标记出所有比特数据中的非零元素ck×k’,q,同时将此位置所属的权重Wk×k’对应的输入特征图数据FIk×k’标记,传递给FIk×k’,q’,未被标记处的FIk×k’,q’用“0”补上;2)对于每一个比特位,累加被归类给予当前比特的所有输入数据;3)将每q比特下的累加结果乘以2q;4)对移位计算获得的结果再次进行累加,以获得当前卷积运算的输出特征图数据FO;迭代地重复步骤1)至4),则可生成所有卷积通道的输出特征图数据。本发明使得卷积运算摆脱了对片上DSP资源的依赖,提高了卷积运算可以达到的计算并行度的上限。
Description
技术领域
本发明涉及一种按照比特精度进行权重拆分的卷积运算加速方法。
背景技术
卷积神经网络(Convolutional neural network,CNN)在图像分类和语音识别中得到了广泛的应用。CNN是通过模仿生物的视觉感知机制来构建的,视觉感知主要由处理数据的多层神经元连接而成,映射到CNN网络结构中则具体体现为多层的卷积层连接,据统计,卷积计算占据了CNN总运算量的99%。近年来,包括自动驾驶在内的诸多应用对CNN提出了更高的实时性需求,因此,CNN加速器的设计成为目前业界的主流研究方向。
高灵活性、低成本、短设计周期使得基于FPGA的CNN加速器设计更适合部署在移动设备中。大多数基于FPGA的CNN加速器倾向于使用MAC(multiply-and-accumulate)模块实现卷积运算中的乘累加计算,这使得片上DSP资源决定了卷积计算可达到的并行度上限。然而,当DSP资源被耗尽时,片上的其他资源并未得到充分利用,同时,卷积计算对DSP的过度使用极大地限制了其余功能模块的正常工作。表1显示了几个典型的FPGA平台中片上LUT资源与DSP资源的比例(LUT/DSP),更直观地说明了片上资源使用不平衡的情况,FPGA片上LUT资源是DSP资源的数百倍,而传统卷积计算中所需的LUT资源往往小于所需的DSP资源的10倍。
表1 LUT资源与DSP资源的比值
目前加速卷积计算的主要思想就是使用片上的未充分利用资源提高计算并行度,因此,主流的设计可分为两大类:(1)Winograd、FFT和FFA等算法通过对转换输入输出矩阵的形式以将一部分将乘法运算转化为加法运算,其乘法运算的缩减量为33-69%;(2)ABM-SpConv等通过共享乘法算所需的一些元素,利用数据重用以减少计算量,其乘法运算的缩减量为9-52%。然而,这些方法存在以下问题:
1、Winograd、FFT和FFA等卷积加速方案需要复杂的逻辑单元实现输入输出矩阵的形式转换,ABM-SpConv等方案需要复杂的数据访存结构,这些都增加了硬件电路的复杂度。
2、ABM-SpConv等利用数据重用的卷积加速方案在小尺寸卷积核上的收益有限,然而3×3等小尺寸卷积核是目前CNN网络结构发展的主要应用形式。
3、CNN实现的是分类、识别的功能,在将CNN加速器部署到诸如自动驾驶等应用中时,仍需要外围电路实现自动驾驶的功能,这些电路对片上DSP资源存在一定地需求,而现有的卷积方案对乘法的缩减量是有限的。
为了进一步提高卷积计算的并行度上限,加快CNN网络的计算速度,需要寻找进一步缩减乘法运算量的方法。
发明内容
本发明的目的在于针对上述现有技术的不足,提供了一种按照比特精度进行权重拆分的卷积运算加速方法,使得卷积神经网络加速器的可以均衡地利用片上资源进行加速设计。
本发明采用如下技术方案来实现的:
一种按照比特精度进行权重拆分的卷积运算加速方法,包括以下步骤:
1)对于卷积核中每一个权重W,遍历比较其每一个比特位,即W0[cQ-1 … c1 c0],W1[cQ-1 … c1 c0],…,WK×K-1’[cQ-1 … c1 c0],标记出所有比特数据中的非零元素ck×k’,q,同时将此位置所属的权重Wk×k’对应的输入特征图数据FIk×k’标记,传递给FIk×k’,q’,未被标记处的FIk×k’,q’用“0”补上;
2)对于每一个比特位,累加被归类给予当前比特的所有输入数据,即对于每一个q比特,累加FI0,q’,FI1,q’,…,FIK×K-1’,q’;
3)将每q比特下的累加结果乘以2的q次幂,即,将每q比特下的累加结果左移q位;
4)对移位计算获得的结果再次进行累加,以获得当前卷积运算的输出特征图数据FO;
按照上述步骤完成卷积运算的过程表示如下:
其中,卷积核尺寸为K×K’,Wk,k’表示当前参与计算的权重,假设将权重量化为Q-bit的定点格式,FIk,k’表示当前权重对应的输入特征图谱数据,FO表示当前卷积核的输出特征图谱数据。
本发明进一步的改进在于,步骤1)的具体实现方法如下:
101)以“2”为基底对权重进行分解,即基于比特精度对权重进行分解,假设将权重W量化为Q-bit的定点格式,则W表示为2q乘以不同的系数cq并进行累加:
102)将拆分后得到的比特精度的数据ck×k’,q和“0”进行比较,标记出所有非“0”元素所在的位置,即标记ck×k’,q不为0时的k×k’和q,以将ck×k’,q所属的Wk×k’对应的输入特征图数据FIk×k’赋给FIk×k’,q’,未被标记处将FIk×k’,q’置0。
本发明进一步的改进在于,步骤102)具体实现方法如下:
对于K×K’尺寸的卷积核,需要K×K’个比较器组,用于遍历比较K×K’个权重数据,其中每个比较器组包括Q个1-bit比较器,负责比较卷积核内的一个权重数据的Q个比特,如果被比较的ck×k’,q不为“0”,则将当前参与计算的权重Wk×k’对应的输入特征图数据FIk×k’传入FIk×k’,q’,否则,将“0”传入FIk×k’,q’。
本发明进一步的改进在于,步骤2)的具体实现方法如下:
结合基于比特精度的权重分解方法,共获得(K×K’×Q)个FIk×k’,q’,其中,FIk×k’,q’根据q值的不同而分为Q类,令q等于0,1,2,…,(Q-1),分别进行Q次累加计算,获得Q个累加值:
本发明进一步的改进在于,具体实现方法如下:
由于权重W为Q-bit量化,所以将FIk×k’,q’分为Q组,每组由一个累加器完成累加运算,其中,卷积核尺寸K×K’决定了每个累加器需要累加K×K’个数据;因此,每个累加器包括了(K×K’-1)个加法器,累加器采用并行结构,被加数FIk×k’,q’首先两两相加,其获得的结果再两两相加,直至完成K×K’个数的累加。
本发明进一步的改进在于,步骤3)的具体实现方法如下:
由于累加器按比特分类进行累加的方法,获得了Q个累加结果Accq,其中,Accq需要乘以2q,令q等于0,1,2,…,(Q-1),分别进行Q次乘计算,获得Q个部分积:
本发明进一步的改进在于,具体实现方法如下:
硬件完成乘以2q的计算时,通过移位操作来完成此运算,其中,移位运算更进一步的由硬连线模块替代,即通过硬连线将Accq直接赋值给productq{Accq,0,0,…,0(q个0)};硬连线模块以流线寄存器的形式完成计算,流水线寄存器截断了卷积运算的关键路径,分两步完成了卷积运算,进一步提高了卷积运算的效率。
本发明进一步的改进在于,步骤4)完成Q个product的累加,以获得一个输出特征图数据FO;累加求和时同样采用并行结构,被加数productq首先两两相加,其获得的结果再两两相加,直至完成Q个数的累加。
本发明进一步的改进在于,按照步骤1)至4)实现的加速器整体结构如下:
比较器组模块,由K×K’组1-bit比较器组构成,用于遍历所有权重的所有比特,将其与“0”比较,标记出非0比特元素的位置,同时将此位置对应输入特征图数据进行标记,后传入累加器模块;
累加器模块,由Q个累加器构成,其中每个累加器由多个加法器构成,用于接收来自比较器组模块的数据,对经过标记分类的数据进行累加操作,然后传送至流水线寄存器模块中;
流水线寄存器模块是一个硬连线模块,用于实现数据移位,将每q比特下的累加结果左移q位,将移位结果传入累加求和逻辑模块,同时截断卷积运算的关键路径,使其分为两阶流水完成卷积运算;
累加求和逻辑模块,累加移位结果,获得当前卷积运算的输出特征图数据FO。
本发明至少具有如下有益的技术效果:
1、卷积运算的加速方法对不同权重的相同比特对应的输入特征图谱数据进行累加,使用了硬连线模块实现累加和的移位功能,通过对硬连线模块的计算结果进行累加来得到输出数据,以此完全消除了乘法运算。相比于传统卷积方法,打破了卷积计算对片上DSP资源的依赖,可以实现更高的算法并行度上限。
2、卷积运算的加速方法以“2”为基底进行权重分解,即基于比特精度对权重进行分解。因为计算机以二进制的形式参与计算,基于比特精度的权重分解能最大程度的减小数据访问时间,并降低数据访存带来的硬件开销。
3、该卷积运算的加速方法适应多种不同大小卷积核。
综上所述,本发明面向卷积神经网络加速领域,通过设计免除乘法运算的卷积运算单元阵列,打破了卷积计算对片上DSP资源的依赖,以此提高卷积运算可达到的并行度上限,并且该方法适用于多种尺寸的卷积核。
主要特点:
1、以比特精度分解权重。
2、使用加法和移位运算将卷积计算中的乘法运算转换为了加法,完全消除了乘法的使用。
3、利用多级流水结构,有效地缩短了卷积计算的关键路径。
主要优点:
1、比特精度的数据处理架构使得数据访存规则,硬件实现简单。
2、无乘法的架构缓解了CNN加速器中片上DSP资源的压力,因此可以提高卷积计算的并行度,以此提高CNN加速器的计算速度。
3、采用两级流水线结构有效地提高了单次卷积计算的计算速度,即提高了电路的时钟频率。
附图说明
图1为MF-Covn卷积运算流程。
图2为MF-Conv的体系结构示意图。
图3为累加求和逻辑块的电路结构图。
图4为Line-0累加器的电路结构图。
图5为MF-Conv和ABM-SpConv的性能、资源对比图。
具体实施方式
以下结合附图和实施例对本发明做出进一步的说明。
本发明提供的一种按照比特精度进行权重拆分的卷积运算加速方法,卷积计算需要特征映射的输入像素数据乘以核的相应权重,如公式(1)所示。其中:
考虑到二进制数据的计算形式,以“2”对基对权重进行分解,即将权重分解为比特精度进行操作。假设将权重W量化为Q-bit的定点格式,如公式(2)所示,则W可以表示为2q乘以不同的系数cq并进行累加,其中q=0,1,2,...,(Q-1),cq只有0值或1值,二进制权重W可以表示为[cQ-1 ... c1 c0]:
考虑到与0值相乘为0,与1值相乘为被乘数本身,因此,首先提出因子ck×k’,q与输入特征图数据FIk×k’相乘,令q等于0,1,2,…,(Q-1),可以根据q值的不同,分别进行Q次累加计算,获得Q个累加值:
同样的,们可以根据q值的不同,分别进行Q次乘计算,获得Q个部分积:
总的来说,通过基于比特精度的权重分解,将传统的卷积运算方法改写成了如下形式:
如图1所示,通过以下四个步骤中可以得到MF-Conv的计算结果:
1)对于卷积核中每一个权重W,遍历比较其每一个比特位,即W0[cQ-1 … c1 c0],W1[cQ-1 … c1 c0],…,WK×K-1’[cQ-1 … c1 c0],标记出所有比特数据中的非零元素ck×k’,q,同时将此位置所属的权重Wk×k’对应的输入特征图数据FIk×k’标记,传递给FIk×k’,q’,未被标记处的FIk×k’,q’用“0”补上;
2)对于每一个比特位,累加被归类给予当前比特的所有输入数据,即对于每一个q比特,累加FI0,q’,FI1,q’,…,FIK×K-1’,q’;
3)将每q比特下的累加结果乘以2q,即,将每q比特下的累加结果左移q位;
4)对移位计算获得的结果再次进行累加,以获得当前卷积运算的输出特征图数据FO。
迭代地重复步骤1)~4),则可生成所有卷积通道的FO。
本发明提出的无乘法卷积方案的硬件结构,如图2所示。
MF-Conv包括:
比较器组模块,由K×K’组1-bit比较器组构成,用于遍历所有权重的所有比特,将其与“0”比较,标记出非0比特元素的位置,同时将此位置对应输入特征图数据进行标记,后传入累加器模块。
累加器模块,由Q个累加器构成,其中每个累加器由多个加法器构成,用于接收来自比较器组模块的数据,对经过标记分类的数据进行累加操作,然后传送至流水线寄存器模块中;
流水线寄存器模块是一个硬连线模块,用于实现数据移位,将每q比特下的累加结果左移q位,将移位结果传入累加求和逻辑模块,同时截断卷积运算的关键路径,使其分为两阶流水完成卷积运算。
累加求和逻辑模块,累加移位结果,获得当前卷积运算的输出特征图数据FO。
其中,比较器组负责遍历比较权重W0[cQ-1 … c1 c0],W1[cQ-1 … c1 c0],…,WK×K-1’[cQ-1 … c1 c0]中每一位的数值,其中每个比较器组包括负责比较卷积核内的一个权重数据的Q个比特,如果被比较的ck×k’,q不为“0”,则将当前参与计算的权重Wk×k’对应的输入特征图数据FIk×k’传入FIk×k’,q’,否则,将“0”传入FIk×k’,q’。图3显示了由K×K’-1个加法器组成的累加器的电路结构,累加器执行FIk×k’,q’的加法,将累加结果Acc0,Acc1,...,AccQ-1发送到流水线寄存器。流水线寄存器是一个硬连线模块,这是实现无乘法卷积计算的关键。硬连线模块实现的功能类似于移位功能,但其具有计算速度快、硬件开销低的优点。假设通过流水线寄存器得到的结果分别是product0,product1,...,productQ-1,将{Acc0}分配给product0,将{Acc1,0}分配给product1,将{Acc2,0,0}分配给product2,...,将{AccQ-1,0,0,...,0(Q-1个)}分配给productQ-1。图4中显示了由Q-1个加法器组成的累加求和逻辑块的电路结构,累加求和逻辑块计算Q个productq的和,通过求和计算得到当前卷积计算的输出值FO。
由于1-bit比较器所产生的延时非常短,因此MF-Conv电路的延迟主要由累加器阵列和累加求和逻辑块组成。在两个长延时模块之间设置了一个流水线寄存器,这样两个阶段的卷积计算就可以有效地进行流水计算。例如,当第i个时钟周期到来时,累加器阵列将计算第i次卷积计算获得Accq,当第(i+1)个时钟周期到来时,求和逻辑块将计算第i次卷积的输出值FO,而累加器阵列将计算(i+1)次卷积计算的Accq。通过切割关键路径,很大地提高了MF-Conv的时钟频率。
本发明与现有方法的性能对比:
传统的卷积计算通常以串行的方式进行,即卷积核中的权重Wk×k’依次轮流乘以对应的FIk×k’,计算过程中只同一个乘法单元,并通过K×K’个乘周期与1个累加周期的计算才能获得FO。MF-Conv避免了乘法计算,卷积核内部的计算并行进行,极大地提高了卷积运算的效率。ABM-SpConv也是一种卷积内并行进行计算的一种卷积加速方案,因此,选择它作为本发明提出的MF-Conv的对照组。研究表明,权重使用8-bit量化时,CNN的精度损失小于1%,因此本发明采用8-bit的量化方式进行实验,传统卷积计算方法、ABM-SpConv方案和MF-Conv方案所需用到的加法运算和乘法运算的计算量列于表2。与传统卷积计算方法相比,MF-Conv方案增加了0.5x-1.1x的总计算量;与ABM-SpConv方案相比,MF-Conv方案增加了0.5x-1.4x的总计算量。与两组对照组相比,本发明提出的MF-Conv方案可以完全消除乘法运算,代价是增加了2.1x-3.5x的加法运算量。
表2不同卷积方案所需的运算量
在Xilinx的XC7Z100FPGA平台上对所提出的MF-Conv方案进行实验,并与ABM-SpConv方案进行了比较。由于3×3尺寸的卷积核是目前最常用的卷积核,因此测试了3×3卷积核条件下MF-Conv方案和ABM-SpConv方案的电路性能,具体显示在表3中:
表3测试结果
首先,进行了MF-Conv与ABM-SpConv的电路性能比较,每个卷积核完成一次卷积计算所需的时钟周期(cycle per kernel,CPK)可以公平的描述两者的性能。当第一次执行卷积计算时,MF-Conv需要2个周期完成3×3卷积核的计算,其中累加器阵列占用一个周期,累加求和逻辑块占用一个周期;ABM-SpConv需要12个周期完成3×3卷积核的计算,其中累加器阵列占用9个周期,乘法器阵列占用3个周期。当电路正常工作后,MF-Conv每时钟周期获得一次计算结果,而累加器阵列决定ABM-SpConv至少需要9个时钟周期才能获得一次卷积计算结果。
其次,对两者的硬件资源开销进行了全面的对比,如图5所示。与ABM-SpConv相比,MF-Conv中的LUT、FF、DSP和功耗分别节省了4%、92%、100%和46。MF-Conv主要由加法器组成和1-bit比较器,这使得MF-Conv使用了较少的LUT资源;MF-Conv中FF资源占用小可归因于规则的数据访存;基于比特精度的权值分解方法,MF-Conv完全避免DSP的使用。同时,较小的硬件资源占用也减小了计算所需的功耗。
实施例
以8-bit量化的3×3卷积核为例,则本测试中,MF-Conv的硬件结构可具体表示为:
(A)、9组比较器阵列,其中每组由8个1-bit比较器构成;
(B)、一个累加器阵列,由8个累加器组成,其中每个累加器由8个加法器构成;
(C)、流水线寄存器;
(D)、累加求和逻辑块,由7个加法器构成;
按照本发明的划分方法,电路的关键路径在累加器阵列和累加求和逻辑块之间由流水线寄存器截断,使得电路获得更高的时钟频率,从而提高卷积计算的效率。相比于现有的卷积计算加速方法,本发明完全避免了乘法计算,更进一步的提高了卷积计算并行度的上限。
相比于ABM-SpConv,本发明的电路性能提高了9倍,并具有更小的硬件开销。
Claims (9)
1.一种按照比特精度进行权重拆分的卷积运算加速方法,其特征在于,包括以下步骤:
1)对于卷积核中每一个权重W,遍历比较其每一个比特位,即W0[cQ-1…c1 c0],W1[cQ-1…c1 c0],…,WK×K-1’[cQ-1…c1 c0],标记出所有比特数据中的非零元素ck×k’,q,同时将此位置所属的权重Wk×k’对应的输入特征图数据FIk×k’标记,传递给FIk×k’,q’,未被标记处的FIk×k’,q’用“0”补上;
2)对于每一个比特位,累加被归类给予当前比特的所有输入数据,即对于每一个q比特,累加FI0,q’,FI1,q’,…,FIK×K-1’,q’;
3)将每q比特下的累加结果乘以2的q次幂,即,将每q比特下的累加结果左移q位;
4)对移位计算获得的结果再次进行累加,以获得当前卷积运算的输出特征图数据FO;
按照上述步骤完成卷积运算的过程表示如下:
其中,卷积核尺寸为K×K’,Wk,k’表示当前参与计算的权重,假设将权重量化为Q-bit的定点格式,FIk,k’表示当前权重对应的输入特征图谱数据,FO表示当前卷积核的输出特征图谱数据。
3.根据权利要求2所述的一种按照比特精度进行权重拆分的卷积运算加速方法,其特征在于,步骤102)具体实现方法如下:
对于K×K’尺寸的卷积核,需要K×K’个比较器组,用于遍历比较K×K’个权重数据,其中每个比较器组包括Q个1-bit比较器,负责比较卷积核内的一个权重数据的Q个比特,如果被比较的ck×k’,q不为“0”,则将当前参与计算的权重Wk×k’对应的输入特征图数据FIk×k’传入FIk×k’,q’,否则,将“0”传入FIk×k’,q’。
5.根据权利要求4所述的一种按照比特精度进行权重拆分的卷积运算加速方法,其特征在于,具体实现方法如下:
由于权重W为Q-bit量化,所以将FIk×k’,q’分为Q组,每组由一个累加器完成累加运算,其中,卷积核尺寸K×K’决定了每个累加器需要累加K×K’个数据;因此,每个累加器包括了(K×K’-1)个加法器,累加器采用并行结构,被加数FIk×k’,q’首先两两相加,其获得的结果再两两相加,直至完成K×K’个数的累加。
7.根据权利要求6所述的一种按照比特精度进行权重拆分的卷积运算加速方法,其特征在于,具体实现方法如下:
硬件完成乘以2q的计算时,通过移位操作来完成此运算,其中,移位运算更进一步的由硬连线模块替代,即通过硬连线将Accq直接赋值给productq{Accq,0,0,…,0(q个0)};硬连线模块以流线寄存器的形式完成计算,流水线寄存器截断了卷积运算的关键路径,分两步完成了卷积运算,进一步提高了卷积运算的效率。
8.根据权利要求7所述的一种按照比特精度进行权重拆分的卷积运算加速方法,其特征在于,步骤4)完成Q个product的累加,以获得一个输出特征图数据FO;累加求和时同样采用并行结构,被加数productq首先两两相加,其获得的结果再两两相加,直至完成Q个数的累加。
9.根据权利要求1所述的一种按照比特精度进行权重拆分的卷积运算加速方法,其特征在于,按照步骤1)至4)实现的加速器整体结构如下:
比较器组模块,由K×K’组1-bit比较器组构成,用于遍历所有权重的所有比特,将其与“0”比较,标记出非0比特元素的位置,同时将此位置对应输入特征图数据进行标记,后传入累加器模块;
累加器模块,由Q个累加器构成,其中每个累加器由多个加法器构成,用于接收来自比较器组模块的数据,对经过标记分类的数据进行累加操作,然后传送至流水线寄存器模块中;
流水线寄存器模块是一个硬连线模块,用于实现数据移位,将每q比特下的累加结果左移q位,将移位结果传入累加求和逻辑模块,同时截断卷积运算的关键路径,使其分为两阶流水完成卷积运算;
累加求和逻辑模块,累加移位结果,获得当前卷积运算的输出特征图数据FO。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011192684.1A CN112434801B (zh) | 2020-10-30 | 2020-10-30 | 一种按照比特精度进行权重拆分的卷积运算加速方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011192684.1A CN112434801B (zh) | 2020-10-30 | 2020-10-30 | 一种按照比特精度进行权重拆分的卷积运算加速方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112434801A CN112434801A (zh) | 2021-03-02 |
CN112434801B true CN112434801B (zh) | 2022-12-09 |
Family
ID=74694899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011192684.1A Active CN112434801B (zh) | 2020-10-30 | 2020-10-30 | 一种按照比特精度进行权重拆分的卷积运算加速方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112434801B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113283587B (zh) * | 2021-05-28 | 2023-09-19 | 西安交通大学 | 一种Winograd卷积运算加速方法及加速模块 |
CN113568597B (zh) * | 2021-07-15 | 2024-07-26 | 上海交通大学 | 面向卷积神经网络的dsp紧缩字乘法方法及系统 |
CN114692833B (zh) * | 2022-03-30 | 2023-11-21 | 广东齐芯半导体有限公司 | 一种卷积计算电路、神经网络处理器以及卷积计算方法 |
CN117764129B (zh) * | 2024-01-18 | 2024-05-07 | 天津大学 | 一种无乘法神经网络自动设计的边缘设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111814972A (zh) * | 2020-07-08 | 2020-10-23 | 上海雪湖科技有限公司 | 一种基于fpga的神经网络卷积运算加速方法 |
CN111832719A (zh) * | 2020-07-28 | 2020-10-27 | 电子科技大学 | 一种定点量化的卷积神经网络加速器计算电路 |
-
2020
- 2020-10-30 CN CN202011192684.1A patent/CN112434801B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111814972A (zh) * | 2020-07-08 | 2020-10-23 | 上海雪湖科技有限公司 | 一种基于fpga的神经网络卷积运算加速方法 |
CN111832719A (zh) * | 2020-07-28 | 2020-10-27 | 电子科技大学 | 一种定点量化的卷积神经网络加速器计算电路 |
Non-Patent Citations (1)
Title |
---|
一种高度并行的卷积神经网络加速器设计方法;徐欣等;《哈尔滨工业大学学报》;20200430(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112434801A (zh) | 2021-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112434801B (zh) | 一种按照比特精度进行权重拆分的卷积运算加速方法 | |
CN109543140B (zh) | 一种卷积神经网络加速器 | |
CN110362292B (zh) | 一种基于近似4-2压缩器的近似乘法运算方法和近似乘法器 | |
TWI701612B (zh) | 用於神經網路中激勵函數的電路系統及其處理方法 | |
CN111832719A (zh) | 一种定点量化的卷积神经网络加速器计算电路 | |
CN106909970A (zh) | 一种基于近似计算的二值权重卷积神经网络硬件加速器计算模块 | |
CN109542393B (zh) | 一种近似4-2压缩器及近似乘法器 | |
CN113283587B (zh) | 一种Winograd卷积运算加速方法及加速模块 | |
TW202115560A (zh) | 用於浮點運算的乘法器、方法、積體電路晶片和計算裝置 | |
CN115982528A (zh) | 基于Booth算法的近似预编码卷积运算方法及系统 | |
CN106951211A (zh) | 一种可重构定浮点通用乘法器 | |
CN115018062A (zh) | 一种基于fpga的卷积神经网络加速器 | |
CN107967132B (zh) | 一种用于神经网络处理器的加法器和乘法器 | |
Reddy et al. | Quantization aware approximate multiplier and hardware accelerator for edge computing of deep learning applications | |
CN113010148B (zh) | 一种适用于混合精度神经网络的定点乘加运算单元及方法 | |
CN110825346B (zh) | 一种低逻辑复杂度的无符号近似乘法器 | |
Jo et al. | Bit-serial multiplier based neural processing element with approximate adder tree | |
Kumar et al. | Complex multiplier: implementation using efficient algorithms for signal processing application | |
Jha et al. | Performance analysis of single-precision floating-point MAC for deep learning | |
CN115329951B (zh) | 一种用于卷积神经网络快速卷积运算的fpga架构 | |
CN114239819B (zh) | 一种基于dsp的混合位宽加速器及融合计算方法 | |
Yang et al. | MF-Conv: A Novel Convolutional Approach Using Bit-Resolution-based Weight Decomposition to Eliminate Multiplications for CNN Acceleration | |
CN113568597B (zh) | 面向卷积神经网络的dsp紧缩字乘法方法及系统 | |
Bhongale et al. | Review on Recent Advances in VLSI Multiplier | |
CN111610955B (zh) | 一种数据饱和加打包处理部件、芯片及设备 |
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 |