CN115238863A - 一种卷积神经网络卷积层的硬件加速方法、系统及应用 - Google Patents

一种卷积神经网络卷积层的硬件加速方法、系统及应用 Download PDF

Info

Publication number
CN115238863A
CN115238863A CN202210847824.7A CN202210847824A CN115238863A CN 115238863 A CN115238863 A CN 115238863A CN 202210847824 A CN202210847824 A CN 202210847824A CN 115238863 A CN115238863 A CN 115238863A
Authority
CN
China
Prior art keywords
convolution
layer
convolutional
data
neural network
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.)
Pending
Application number
CN202210847824.7A
Other languages
English (en)
Inventor
张国和
陈盼盼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian Jiaotong University
Original Assignee
Xian Jiaotong University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xian Jiaotong University filed Critical Xian Jiaotong University
Priority to CN202210847824.7A priority Critical patent/CN115238863A/zh
Publication of CN115238863A publication Critical patent/CN115238863A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

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)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Complex Calculations (AREA)

Abstract

一种卷积神经网络卷积层的硬件加速方法、系统及应用,方法包括以下步骤:将浮点数转化成定点数并输入到FPGA中进行计算;采用基于移位寄存器的小尺寸卷积方法以及深度可分离卷积结构降低计算复杂度;数据流采用行固定流阵列结构,将卷积层前后的其他层进行隐藏处理;将批量归一化层、激活函数层以及填充层均嵌入卷积层中隐藏,完成硬件加速。本发明还提出一种卷积神经网络卷积层的硬件加速系统以及所述卷积神经网络卷积层的硬件加速方法在MobileNet模型、YOLOv2模型FPGA卷积硬件加速器中的应用。本发明卷积神经网络卷积层的硬件加速方法在资源占用、功耗、单位帧率以及能耗比方面均具有优势。

Description

一种卷积神经网络卷积层的硬件加速方法、系统及应用
技术领域
本发明涉及卷积神经网络技术领域,具体涉及一种卷积神经网络卷积层的硬件加速方法、系统及应用。
背景技术
深度学习针对的数据通常是非结构化数据,即图像、音频、视频和文本等特征分离困难的数据源。计算机对此类数据的处理非常困难,深度学习在目标检测和识别等研究领域中带来了较大的突破。深度学习通常由输入层、若干中间层、输出层构成,输入层和输出层也被称为可见层,中间层的数据难以被外部观察到,因此也被称为隐藏层。隐藏层通过输入层获得数据,然后对数据进行特征提取,包括图片的颜色、轮廓方面的浅层特征和形状、类别方面的抽象特征。深度学习通过一层层的隐藏层,将一个复杂的映射任务拆解成一次次简单的特征提取过程,隐藏层层数越多,深度神经网络越深,提取到的特征越抽象。
卷积神经网络是深度神经网络中的典型有监督学习算法,是具有若干中间隐藏层的前馈网络。基本网络结构与神经网络相似,由输入层、卷积层、池化层、全连接层及输出层构成。与其他神经网络模型相比,卷积神经网络具有局部感知、参数共享等特征。在众多卷积神经网络的经典网络中,轻量化网络MobileNet因为其提出的深度可分离卷积方式,在不影响性能的同时大大减少了网络模型,适合用于移动端的图像处理任务;YOLO系列网络提出了one stage算法,实现一步完成目标的定位和识别,处理图像的速度超越了其他算法,令人惊艳,v2在v1的基础上针对精度进行了提升,在目标实时监测领域中发挥着重要的作用。
目前,对卷积神经网络进行加速的方式有以下几种:GPU,ASIC,FPGA。GPU是应用最为广泛的硬件加速器,具有数据吞吐量大的特点。然而其功耗巨大,主要为企业或个人提供云服务,无法在能源受限的设备中使用。ASIC和FPGA的存储资源、输入输出带宽受限,但可以在功耗很低的情况下性能不下降。ASIC设计的专用性较强,但FPGA的开发成本更低以及灵活性更高。FPGA具有开发灵活、功耗低、计算速度快的优点,同时存储资源丰富。为获得更高的精确度,卷积神经网络正在向更加复杂、更加深入的方向发展,参数存储、数据搬移以及卷积计算也逐渐为FPGA带来了巨大的挑战。因此充分研究卷积神经网络中卷积运算的特点,探索卷积神经网络在移动端的高速低功耗应用显得尤为重要。
发明内容
本发明的目的在于针对上述现有技术中的问题,提供一种卷积神经网络卷积层的硬件加速方法、系统及应用,在资源占用、功耗、单位帧率以及能耗比方面均得到提升。
为了实现上述目的,本发明有如下的技术方案:
第一方面,提出一种卷积神经网络卷积层的硬件加速方法,包括以下步骤:
将浮点数转化成定点数并输入到FPGA中进行计算;
采用基于移位寄存器的小尺寸卷积方法以及深度可分离卷积结构降低计算复杂度;
数据流采用行固定流阵列结构,将卷积层前后的其他层进行隐藏处理;
将批量归一化层、激活函数层以及填充层均嵌入卷积层中隐藏,完成硬件加速。
作为本发明加速方法的一种优选方案,所述将浮点数转化成定点数的步骤,浮点数转化成的定点数为八位定点小数,包含一位符号位,m位整数位以及7-m位小数位,将浮点数转化成定点数产生的损失满足:
Figure BDA0003753636020000021
作为本发明加速方法的一种优选方案,所述基于移位寄存器的小尺寸卷积方法包括:对于输入图像的尺寸为F×F,卷积核的尺寸为C×C,将串行输入的特征数据填充到移位寄存器中,移位寄存器的总个数为F×(C-1)+F个;
在加载特征数据的同时将C×C个权重值加载完成;
当所有移位寄存器都填充进了输入的特征图数据,则C×C个移位寄存器中的数据为第一个卷积计算的特征数据,此时与权重值对应进行乘法计算,计算结果送到加法树中累加。
更进一步的,作为本发明加速方法的一种优选方案,卷积核在特征图像上滑动时,针对相邻两次计算使用的数据有重叠的部分,在计算刚开始和前一通道的卷积操作结束后,向两个移位寄存器中分别加载F×(C-1)+C个输入特征数据以及当前通道对应的卷积核权重数据,数据加载完成之后,除去卷积窗口滑动换行的无效周期,每个时钟完成一次卷积的乘法运算,每个通道的特征数据输入一次,完成一个通道的卷积操作。
作为本发明加速方法的一种优选方案,所述的深度可分离卷积结构,一个深度卷积层中的计算由一个多通道卷积核参与完成,卷积核和输入特征图在深度方向保持一致,通过N个卷积核,通过多次二维卷积的方式,将M个通道的特征图转换为N个通道的特征图,深度卷积的输出结果是通道数与输入保持一致的特征图。
作为本发明加速方法的一种优选方案,所述的行固定流阵列结构中行固定的数据流对特征图数据、卷积核权重以及部分和进行复用,每行卷积核数据在水平方向传递给多个PE单元重复参与计算,每行特征图数据在对角线方向传递给多个PE单元重复参与计算,垂直方向累积输出行数据的部分和。
作为本发明加速方法的一种优选方案,所述将批量归一化层、激活函数层以及填充层均嵌入卷积层中隐藏的步骤中:所述批量归一化层将层间传递的数据限制在阈值范围内;所述激活函数层使卷积层累加输出的结果直接进行非线性激活;所述填充层在每层的卷积计算开始之前,对当前的输入特征图进行填充操作,将特征图尺寸通过四周补零之后,当前层的卷积结果才成为下一层卷积的输入特征尺寸。
第二方面,提出一种卷积神经网络卷积层的硬件加速系统,包括:
数据转化模块,用于将浮点数转化成定点数并输入到FPGA中进行计算;
计算复杂度简化模块,用于采用基于移位寄存器的小尺寸卷积方法以及深度可分离卷积结构降低计算复杂度;
数据流处理模块,用于数据流采用行固定流阵列结构,将卷积层前后的其他层进行隐藏处理;
卷积层嵌入隐藏模块,用于将批量归一化层、激活函数层以及填充层均嵌入卷积层中隐藏,完成硬件加速。
第三方面,提出一种所述卷积神经网络卷积层的硬件加速方法在MobileNet模型、YOLOv2模型FPGA卷积硬件加速器中的应用。
相较于现有技术,本发明至少具有如下的有益效果:
卷积神经网络训练得到的权重值大多是浮点数,由于FPGA存储资源受限,不适合浮点运算,为减少计算资源,利于FPGA的加速处理,将浮点数转化成定点数后,再输入到FPGA中进行计算。采用基于移位寄存器的小尺寸卷积方法以及深度可分离卷积结构降低计算复杂度,能够减少卷积层所需的硬件资源。数据流采用行固定流阵列结构,将卷积层前后的其他层进行隐藏处理,将批量归一化层、激活函数层和填充层均嵌入卷积层中,减少了层与层之间的数据搬移,提升了电路计算速率并节省了缓存资源。本发明卷积神经网络卷积层的硬件加速方法在资源占用、功耗、单位帧率以及能耗比方面均具有优势。
附图说明
图1为标准的卷积层结构示意图;
图2为本发明实施例基于移位寄存器的卷积计算流程图;
图3为本发明实施例深度可分离卷积计算过程示意图;
图4为MobileNet标准卷积运算并行结构示意图;
图5为标准卷积模块整体结构示意图;
图6为深度卷积运算模块结构示意图;
图7为深度卷积模块整体结构示意图;
图8为点卷积模块整体结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例提出的一种卷积神经网络卷积层的硬件加速方法,包括以下步骤:
S1、将浮点数转化成定点数并输入到FPGA中进行计算;
S2、采用基于移位寄存器的小尺寸卷积方法以及深度可分离卷积结构降低计算复杂度;
S3、数据流采用行固定流阵列结构,将卷积层前后的其他层进行隐藏处理;
S4、将批量归一化层、激活函数层以及填充层均嵌入卷积层中隐藏,完成硬件加速。
在步骤S1当中,由于FPGA中集成了大量的DSP以及存储器资源,适合用来实现卷积神经网络中的大型卷积运算以及中间计算结果存储。因此,将FPGA作为卷积神经网络的硬件加速器理论上可行。卷积神经网络训练得到的权重值大多是浮点数,由于FPGA存储资源受限,不适合浮点运算,为了减少计算资源,利于FPGA的加速处理,将浮点数转化成定点数后,再输入到FPGA中进行计算。考虑到卷积层各项参数主要参与乘加运算,且在FPGA中主要调用DSP资源来实现乘法操作,浮点数参数定点化的位数需要小于乘法器位宽18。因此,可以将参数定点化为8位或者16位的小数。更进一步的,本实施例综合考虑到FPGA存储资源问题以及精度损失问题,将数据定为八位定点小数,包含一位符号位,m位整数位以及7-m位小数位,将浮点数转化成定点数产生的损失满足:loss≤1/2^(8-m)。
一个完整的标准卷积层结构如图1,包括padding、卷积、批量归一化以及ReLU激活四种操作,特征图数据输入到卷积层后,先进行零操作来扩大特征图尺寸,之后和多个卷积核进行卷积操作,对得到的结果进行批量归一化,最后送到激活函数中。
卷积层各项参数主要参与乘加运算,且在FPGA中主要调用DSP资源来实现乘法操作,浮点数参数定点化的位数需要小于乘法器位宽18。因此可以将参数定点化为8位的小数。但参数定点化处理后,必定会产生一定的精度损耗。将参数转化为八位定点小数,包含一位符号位,m位整数位以及7-m位小数位。参数定点化产生的损失是:
Figure BDA0003753636020000061
按照上述参数定点化产生的损失表达式,若设置整数位为1位,参数定点化带来的损失仅约为0.0078,对神经网络模型的精度没有造成太大影响。
针对卷积核尺寸比较小的卷积处理单元,通过移位寄存器来实现加速,如图2所示,图中输入图像的尺寸为F×F,卷积核的尺寸为C×C。串行输入的特征数据逐步填充到移位寄存器中。移位寄存器的总个数为F×(C-1)+F个,在加载特征数据的同时将C×C个权重值加载完成。当所有的移位寄存器都填充进了输入的特征图数据,虚线框内的C×C个移位寄存器中的数据为第一个卷积计算的特征数据,此时和权重值对应进行乘法计算,计算结果送到加法树中累加。以3×3大小的卷积核为例,第一个时钟周期,选中前三行的前三列数据,第二个时钟周期,选中前三行的第二到四列数据,以此类推。
卷积核在特征图像上滑动时,相邻两次计算使用的数据有重叠的部分,大部分的输入特征数据会反复与卷积核数据进行乘法运算。本发明使用了移位寄存器,这种结构可以充分地实现数据的复用。在计算刚开始和前一通道的卷积操作结束后,向两个移位寄存器中分别加载F×(C-1)+C个输入特征数据和与当前通道对应的卷积核权重数据,数据加载完成之后,除去卷积窗口滑动换行的无效周期,每个时钟可以完成一次卷积的乘法运算,每个通道的特征数据只需输入一次,就可以完成一个通道的卷积操作。
深度可分离卷积可以被看作两个阶段:3×3深度卷积和1×1点卷积。深度卷积可以看作是滤波操作,一个深度卷积层中的计算只需要一个多通道卷积核参与,卷积核和输入特征图在深度方向保持一致。即一个通道的特征图对应一个通道的卷积核,通过多次二维卷积的方式,对各个通道的特征分别进行提取,所有通道卷积结束后不用进行通道方向的累加,不涉及通道方向的融合,深度卷积的输出结果是通道数与输入保持一致的特征图。由于卷积核数量只有1个,运算量明显降低。点卷积可以看作是组合操作,采用1×1的卷积核对输入特征图进行深度方向的扩大和压缩,保持特征图尺寸不变,改变特征图通道数量。通过N个卷积核,将M个通道的特征图转换为N个通道的特征图。
权重固定数据流将卷积核数据存储固定在PE单元的寄存器中,最大化卷积核的复用。输出固定数据流将卷积运算过程中出现的部分和存储在PE单元的寄存器中,最小化读取和写入部分和的能耗。非本地复用数据流不在PE阵列中固定任何数据,每次计算需要的数据都要从全集缓存区中进行读取,增加了访存时间且效率较低,优点是节省了阵列的面积。行固定的数据流对特征图数据、卷积核权重以及部分和进行复用,减少了各种数据的流动与搬移。采用行固定数据流的高维度的卷积运算,会将其拆分转变为多组一维卷积,即一行卷积核数据作用在一行特征图数据上进行相乘并累加的计算。二维卷积基于多组一维卷积,卷积核数据在PE阵列中按行水平移动传输,特征图数据在PE阵列中按行经排列后沿对角方向移动,每一列垂直累积所有PE单元的部分和并缓存。从上述分析可知,每行卷积核数据在水平方向传递给多个PE单元重复参与计算,每行特征图数据在对角线方向传递给多个PE单元重复参与计算,垂直方向累积输出行数据的部分和,完成了数据复用率的最大化,减少了PE阵列访问全局缓冲区的次数,进而节省了时间并降低了能耗。行固定流结构的卷积神经网络比其它结构性能要高1.4-2.5倍,因此本发明选择该种数据流结构进行卷积神经网络加速器的设计。
在反向传播导数时,数据经过激活函数或权重很容易会偏移到有效值区间的两端,进而产生梯度爆炸或是梯度消失,造成训练速度下降。批量归一化将层间传递的数据限制在一定范围内,使数据在过程中更加稳定,从而避免了梯度爆炸消失。经过权重的预处理,将批量归一化操作融合进卷积层,实现了归一化操作的隐藏处理,从而节省存储资源和运算时间。
为了减少数据在层间的搬移、节省缓存资源,可以采用激活函数的隐藏处理,将激活函数电路嵌入在卷积计算的流水线中,即使卷积层累加输出的结果直接进行非线性激活。
在每层的卷积计算开始之前还需要对当前的输入特征图进行填充操作,将特征图尺寸通过四周补零后,当前层的卷积结果才是下一层卷积需要的输入特征尺寸。如果将填充层和卷积层单独设计,即前一层卷积层的输出结果存储起来,填充层再进行读取补零然后再次存储起来作为本层输入,那么模块和模块间就需要进行数据搬移。为了节省存储资源,对填充操作和卷积层进行融合隐藏处理,利用换行时出现的无效输出周期,对卷积结果进行零的填充。
利用这些换行时出现的无效输出周期,对卷积结果进行零的填充。特征图的第一行最右边、第二行最左边进行填充操作。
本发明另一实施例提出一种卷积神经网络卷积层的硬件加速系统,包括:
数据转化模块,用于将浮点数转化成定点数并输入到FPGA中进行计算;
计算复杂度简化模块,用于采用基于移位寄存器的小尺寸卷积方法以及深度可分离卷积结构降低计算复杂度;
数据流处理模块,用于数据流采用行固定流阵列结构,将卷积层前后的其他层进行隐藏处理;
卷积层嵌入隐藏模块,用于将批量归一化层、激活函数层以及填充层均嵌入卷积层中隐藏,完成硬件加速。
本发明另一实施例还提出一种所述卷积神经网络卷积层的硬件加速方法在MobileNet模型、YOLOv2模型FPGA卷积硬件加速器中的应用。
采用小尺寸卷积单元、深度可分离卷积方法以及操作隐藏处理方法,完成了面向MobileNet模型的卷积层加速器设计。MobileNet模型卷积加速器主要包括小尺寸卷积单元与轻量化卷积模块的标准卷积模块、深度卷积模块与点卷积模块的输入控制模块、计算模块与输出控制模块。MobileNet网络模型中标准卷积模块与深度卷积模块采用的卷积方法相似,都是基于3×3的小尺寸卷积单元,通过对数据输入控制模块、卷积运算模块、数据输出控制模块以及点卷积模块进行仿真之后,验证了小尺寸卷积方法、深度可分离卷积模块以及操作隐藏处理方法的可行性。
标准卷积层是MobileNet网络的第一个卷积层,本层的输入为三个通道的图像。该层对图像进行标准卷积操作,得到的结果作为后面层的输入值。标准卷积模块首先通过数据输入控制模块来控制图像数据、卷积核数据和归一化权重的读入,然后通过标准卷积运算模块来进行特征数据,最后通过数据输出控制模块来剔除无效数据,并控制由于卷积步长而产生的尺寸缩减。MobileNet第一层使用大小为3×3的小尺寸卷积核进行标准卷积运算,因此RGB图像需要进行一圈的补零操作。在硬件实现中,在模块使能信号拉高后,第一步,图像数据读取信号保持F+2个时钟周期的低电平,完成上边一行的补零操作;第二步,信号再保持一个时钟周期的低电平后拉高,保持F个时钟周期后再次拉低,并保持1个时钟周期,重复此步骤F次,完成F行的左右两次补零操作;最后,重复第一步,完成最下边一行的补零操作。这样就完成了在输入一帧图像数据的同时进行补零。经过补零操作后,RGB图像尺寸变为226×226。本层需要226×2+3个移位寄存器。当所有的移位寄存器中都获取到同一通道的图像数据后,开始输出有效图像数据。
MobileNet中有13层深度卷积层,因此为了节省FPGA的资源,将深度卷积模块设计为参数可配置的电路,使一个电路模块可以同时满足13个卷积层的计算需要,增加了电路的复用性。深度卷积模块和标准卷积模块的硬件流程非常相似,都包括了数据输入控制模块、卷积运算单元以及数据输出控制模块。区别在于,深度卷积模块的数据输入控制模块需要增加一个输入通路选择器,第一层深度卷积和二到十三层深度卷积的输入数据分别来自标准卷积模块输出缓存和点卷积模块输出缓存;另一个区别在于所有的深度卷积模块都只需要一个单独的3×3大小的卷积核,卷积核与输入在深度方向相同,因此深度卷积模块只有一个3×3规格的卷积计算单元,且不需要对深度方向上坐标位置相同的所有卷积结果进行相加。
点卷积与深度卷积成对出现,对深度卷积的输出特征图进行通道方向的特征融合。与深度卷积一致,点卷积有13层,因此也需要进行可配置设计,模块结构与标准卷积和深度卷积相似,都由数据数据输入控制模块、点卷积运算模块、数据输出控制模块构成。区别在于:(1)点卷积的权重参数量远大于标准卷积和深度卷积的参数量,因此点卷积的权重参数保存在DDR中,需要通过总线读取;(2)点卷积不需要进行padding零填充操作。
YOLOv2模型卷积加速器的结构借鉴Eyeriss架构提出的行固定数据流思想,设计了基于PE单元实现的尺寸可配置阵列。通过控制数据的输入格式,将三维卷积拆分成一维卷积,实现了多特征图、多卷积核、多通道并行的卷积计算电路。
YOLOv2模型的卷积层加速器,基于PE阵列结构,采用行固定数据流设计。对于PE阵列进行仿真验证,验证了采用行固定流思想的PE阵列卷积结构的可行性。
二维卷积是多个一维卷积运算组成的,每一列PE阵列的求和结果都是输出特征图中对应列的数据。在上述的计算过程中,卷积核权重的行数据循环输入,在PE之间水平地重复使用,特征图的行数据在经过重新排列后,在PE对角线之间重复使用。来自不同行的卷积核权重数据和特征图数据通过时间交错的方式发送到PE单元中,所有重复使用相同值的PE单元会在同一时刻接收到数据。而且每列PE单元后会有一个累加器,来完成所有累加运算。也就是说所有的PE单元都只承担计算过程中的乘法部分,得到相乘结果后立即送到累加器中。
基于Virtex Ultrascale+系列的xcvu9p-flga2104-2L-e型号的开发板来对两种模型的卷积层主体部分电路进行加速,硬件综合采用Vivado开发环境进行实现与分析。可以得到加速器的能效比分别为0.145fps/W、0.309fps/W,即单位帧率与功耗之比。表1为本发明与现有其他加速器的性能对比表,参见表1,本发明中的MobileNet、YOLOv2 FPGA卷积硬件加速器要优于其他加速平台的加速器,同时也优于基于其他FPGA的MobileNet和YOLOv2加速器。本发明方法设计的加速器,在资源占用、功耗、单位帧率以及能耗比方面均具有优势。
表1
Figure BDA0003753636020000111
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (9)

1.一种卷积神经网络卷积层的硬件加速方法,其特征在于,包括以下步骤:
将浮点数转化成定点数并输入到FPGA中进行计算;
采用基于移位寄存器的小尺寸卷积方法以及深度可分离卷积结构降低计算复杂度;
数据流采用行固定流阵列结构,将卷积层前后的其他层进行隐藏处理;
将批量归一化层、激活函数层以及填充层均嵌入卷积层中隐藏,完成硬件加速。
2.根据权利要求1所述卷积神经网络卷积层的硬件加速方法,其特征在于,所述将浮点数转化成定点数的步骤,浮点数转化成的定点数为八位定点小数,包含一位符号位,m位整数位以及7-m位小数位,将浮点数转化成定点数产生的损失满足:
Figure FDA0003753636010000011
3.根据权利要求1所述卷积神经网络卷积层的硬件加速方法,其特征在于,所述基于移位寄存器的小尺寸卷积方法包括:对于输入图像的尺寸为F×F,卷积核的尺寸为C×C,将串行输入的特征数据填充到移位寄存器中,移位寄存器的总个数为F×(C-1)+F个;
在加载特征数据的同时将C×C个权重值加载完成;
当所有移位寄存器都填充进了输入的特征图数据,则C×C个移位寄存器中的数据为第一个卷积计算的特征数据,此时与权重值对应进行乘法计算,计算结果送到加法树中累加。
4.根据权利要求3所述卷积神经网络卷积层的硬件加速方法,其特征在于,卷积核在特征图像上滑动时,针对相邻两次计算使用的数据有重叠的部分,在计算刚开始和前一通道的卷积操作结束后,向两个移位寄存器中分别加载F×(C-1)+C个输入特征数据以及当前通道对应的卷积核权重数据,数据加载完成之后,除去卷积窗口滑动换行的无效周期,每个时钟完成一次卷积的乘法运算,每个通道的特征数据输入一次,完成一个通道的卷积操作。
5.根据权利要求1所述卷积神经网络卷积层的硬件加速方法,其特征在于,所述的深度可分离卷积结构,一个深度卷积层中的计算由一个多通道卷积核参与完成,卷积核和输入特征图在深度方向保持一致,通过N个卷积核,通过多次二维卷积的方式,将M个通道的特征图转换为N个通道的特征图,深度卷积的输出结果是通道数与输入保持一致的特征图。
6.根据权利要求1所述卷积神经网络卷积层的硬件加速方法,其特征在于,所述的行固定流阵列结构中行固定的数据流对特征图数据、卷积核权重以及部分和进行复用,每行卷积核数据在水平方向传递给多个PE单元重复参与计算,每行特征图数据在对角线方向传递给多个PE单元重复参与计算,垂直方向累积输出行数据的部分和。
7.根据权利要求1所述卷积神经网络卷积层的硬件加速方法,其特征在于,所述将批量归一化层、激活函数层以及填充层均嵌入卷积层中隐藏的步骤中:所述批量归一化层将层间传递的数据限制在阈值范围内;所述激活函数层使卷积层累加输出的结果直接进行非线性激活;所述填充层在每层的卷积计算开始之前,对当前的输入特征图进行填充操作,将特征图尺寸通过四周补零之后,当前层的卷积结果才成为下一层卷积的输入特征尺寸。
8.一种卷积神经网络卷积层的硬件加速系统,其特征在于,包括:
数据转化模块,用于将浮点数转化成定点数并输入到FPGA中进行计算;
计算复杂度简化模块,用于采用基于移位寄存器的小尺寸卷积方法以及深度可分离卷积结构降低计算复杂度;
数据流处理模块,用于数据流采用行固定流阵列结构,将卷积层前后的其他层进行隐藏处理;
卷积层嵌入隐藏模块,用于将批量归一化层、激活函数层以及填充层均嵌入卷积层中隐藏,完成硬件加速。
9.一种如权利要求1-7中任意一项所述卷积神经网络卷积层的硬件加速方法在MobileNet模型、YOLOv2模型FPGA卷积硬件加速器中的应用。
CN202210847824.7A 2022-07-19 2022-07-19 一种卷积神经网络卷积层的硬件加速方法、系统及应用 Pending CN115238863A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210847824.7A CN115238863A (zh) 2022-07-19 2022-07-19 一种卷积神经网络卷积层的硬件加速方法、系统及应用

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210847824.7A CN115238863A (zh) 2022-07-19 2022-07-19 一种卷积神经网络卷积层的硬件加速方法、系统及应用

Publications (1)

Publication Number Publication Date
CN115238863A true CN115238863A (zh) 2022-10-25

Family

ID=83672489

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210847824.7A Pending CN115238863A (zh) 2022-07-19 2022-07-19 一种卷积神经网络卷积层的硬件加速方法、系统及应用

Country Status (1)

Country Link
CN (1) CN115238863A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115994561A (zh) * 2023-03-22 2023-04-21 山东云海国创云计算装备产业创新中心有限公司 卷积神经网络加速方法、系统、存储介质、装置及设备
CN116861973A (zh) * 2023-09-05 2023-10-10 深圳比特微电子科技有限公司 用于卷积运算的改进的电路、芯片、设备及方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115994561A (zh) * 2023-03-22 2023-04-21 山东云海国创云计算装备产业创新中心有限公司 卷积神经网络加速方法、系统、存储介质、装置及设备
CN115994561B (zh) * 2023-03-22 2023-06-16 山东云海国创云计算装备产业创新中心有限公司 卷积神经网络加速方法、系统、存储介质、装置及设备
CN116861973A (zh) * 2023-09-05 2023-10-10 深圳比特微电子科技有限公司 用于卷积运算的改进的电路、芯片、设备及方法
CN116861973B (zh) * 2023-09-05 2023-12-15 深圳比特微电子科技有限公司 用于卷积运算的改进的电路、芯片、设备及方法

Similar Documents

Publication Publication Date Title
CN110050267B (zh) 用于数据管理的系统和方法
Lian et al. High-performance FPGA-based CNN accelerator with block-floating-point arithmetic
JP7325158B2 (ja) ニューラル・ネットワーク・コアにおける動的精度のためのデータ表現
CN109409511B (zh) 一种用于动态可重构阵列的卷积运算数据流调度方法
CN107340993B (zh) 运算装置和方法
CN115238863A (zh) 一种卷积神经网络卷积层的硬件加速方法、系统及应用
CN108154229B (zh) 基于fpga加速卷积神经网络框架的图片处理方法
CN107797962A (zh) 基于神经网络的计算阵列
CN110543939A (zh) 一种基于fpga的卷积神经网络后向训练的硬件加速实现架构
Fan et al. Reconfigurable acceleration of 3D-CNNs for human action recognition with block floating-point representation
CN110674927A (zh) 一种用于脉动阵列结构的数据重组方法
CN110580519B (zh) 一种卷积运算装置及其方法
CN114781629B (zh) 基于并行复用的卷积神经网络的硬件加速器及并行复用方法
CN114219699B (zh) 匹配代价处理方法及电路和代价聚合处理方法
CN113344179A (zh) 基于fpga的二值化卷积神经网络算法的ip核
CN113313252B (zh) 一种基于脉动阵列的深度可分离卷积实现方法
CN114519425A (zh) 一种规模可扩展的卷积神经网络加速系统
CN114003201A (zh) 矩阵变换方法、装置及卷积神经网络加速器
CN114003198B (zh) 内积处理部件、任意精度计算设备、方法及可读存储介质
Jadhav et al. A novel high speed FPGA architecture for FIR filter design
CN111178492A (zh) 计算装置及相关产品、执行人工神经网络模型的计算方法
CN112836793B (zh) 浮点可分离卷积计算加速装置、系统以及图像处理方法
CN117063182A (zh) 一种数据处理方法和装置
Yin et al. A reconfigurable accelerator for generative adversarial network training based on FPGA
CN111047024A (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