CN114757347A - 低比特量化神经网络加速器实现方法和系统 - Google Patents
低比特量化神经网络加速器实现方法和系统 Download PDFInfo
- Publication number
- CN114757347A CN114757347A CN202210427782.1A CN202210427782A CN114757347A CN 114757347 A CN114757347 A CN 114757347A CN 202210427782 A CN202210427782 A CN 202210427782A CN 114757347 A CN114757347 A CN 114757347A
- Authority
- CN
- China
- Prior art keywords
- module
- accelerator
- neural network
- quantization
- bit
- 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
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 66
- 238000013139 quantization Methods 0.000 title claims abstract description 61
- 238000000034 method Methods 0.000 title claims abstract description 22
- 238000001514 detection method Methods 0.000 claims abstract description 46
- 238000012360 testing method Methods 0.000 claims abstract description 30
- 238000012549 training Methods 0.000 claims abstract description 30
- 238000013527 convolutional neural network Methods 0.000 claims abstract description 15
- 230000002194 synthesizing effect Effects 0.000 claims abstract description 13
- 238000010606 normalization Methods 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 14
- 238000010586 diagram Methods 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000004422 calculation algorithm Methods 0.000 abstract description 13
- 238000013461 design Methods 0.000 description 5
- 238000013135 deep learning Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000013468 resource allocation Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012567 pattern recognition method Methods 0.000 description 1
- 238000013138 pruning 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- 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/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
Abstract
本发明提供了一种低比特量化神经网络加速器实现方法和系统,包括:对目标检测网络进行训练,通过反向传播对权重进行更新,得到全精度权重模型;初始化量化区间,采用低比特进行训练;将神经网络的BN层与CNN层进行融合,得到低比特的权重参数以及量化因子;采用双缓冲、窗口缓存的方式提高系统带宽,采用循环展开的方式对计算单元进行并行;将加速器结构综合成IP核,并在Vivado中与其他相关模块互联,生成能够部署的比特流文件;将测试图像输入到神经网络加速器中,得到测试输出并与真值进行比对,得到包括检测准确率和加速器峰值吞吐的指标。本发明可以高效的将神经网络算法部署到FPGA上,获得更高的吞吐。
Description
技术领域
本发明涉及计算机视觉和FPGA神经网络加速器技术领域,具体地,涉及一种低比特量化神经网络加速器实现方法和系统。
背景技术
红外目标识别系统在军事和民用领域有着非常广泛的应用,如遥感探测、航空航天、目标监视等。在军事上,智能化红外目标识别跟踪系统已成为现阶段和未来武器系统的重要组成部分,是制导武器变得更加具有精确性和智能化的一个重要指标,也是成像制导和高分辨率武器设备中的一种关键技术。在民用领域,得益于信息时代下日益兴起的,基于大数据的机器学习的技术支持,红外目标识别跟踪也有着广泛的应用前景,已经是自主机器人、防碰撞车辆等智能化系统中起着重要作用的一项功能。因此,对智能化红外目标识别进行理论和应用研究,具有重大的理论和实际意义。
专利文献CN112561049A(申请号:CN202011539621.9)公开了一种基于忆阻器的DNN加速器的资源分配方法及装置,资源分配方法包括以下步骤:初始化待映射深度神经网络DNN中各层的量化位宽;增加DNN中各层的量化位宽,使各层均不满足局部资源空闲条件;计算当且仅当向第i层增加1bit的量化位宽时,量化后的DNN模型对测试数据进行推理的准确度;通过准确度进行量化位宽的分配;通过全局资源限制条件终止迭代,输出DNN中各层的量化位宽,并映射到DNN加速器,完成DNN加速器的资源分配。
当前国内外传统的红外目标识别算法采用了时效性较强的,基于特征融合匹配的统计模式识别方法。但该类算法在红外目标运动特性变化较快和红外目标过小等情形下,无法有效实现目标的检测与识别。图像目标检测和识别的深度学习算法及其架构设计是近年来计算机视觉领域研究的热点。使用深度学习的图像目标识别技术来研究红外视频中的移动目标检测越来越受到重视。得益于GPU强大的算力支持,学者们提出了数种基于卷积神经网络的目标检测算法,例如SSD、Faster R-CNN和YOLO算法。YOLO算法使用单个网络,一次前向运算后即可同时预测出物体的位置和种类,所以YOLO在准确率和执行速度之间达到了更好的平衡。
在实际生产和应用中大规模部署卷积神经网络的一大挑战是,神经网络具有庞大的计算需求和存储要求。以VGG-19模型为例,该神经网络需要1.4亿个浮点参数和超过150亿个浮点乘加运算来对一张图片进行分类,在硬件资源和计算能力有限的应用场景下,需要对网络进行压缩和修剪,才能落地部署。并且,现代卷积神经网络的训练和推理几乎只能在CPU和GPU集群上进行,神经网络框架如Caffe、TensorFlow、Pytorch等均基于CPU和GPU平台进行搭建,允许使用者充分使用最新的模型进行特定数据集的训练与测试,并进行性能调优。现有的CPU和GPU集群虽然是现在流行的深度学习和其他机器学习的应用平台,但仍面临着能效低、耗能高的问题。这些因素对在低功耗应用场景如无人机或者嵌入式平台上部署神经网络是至关重要的,而基于FPGA的硬件解决方案可以有效解决上述的两个问题。在FPGA上部署神经网络受到了学术界的关注,研究者提出了基于FPGA的卷积神经网络加速器,同时还提出了从神经网络框架模型提取到FPGA加速器硬件部署的全流程自动化设计工具。然而,与GPU相比,FPGA在计算性能和开发难度两方面依然存在着巨大的差距。尤其是深度学习飞速发展的今天,网络模型越来越来深、组成模块越来越复杂,一些基于FPGA的神经网络加速器难以支持当前最新最优的模型,这为此类加速器设计带来了巨大的挑战。本发明在红外目标检测算法的基础上,研究神经网络的量化方法以及FPGA加速器设计,力求在保证算法精度的情况下以更小的模型,更高的吞吐部署到FPGA上。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种低比特量化神经网络加速器实现方法和系统。
根据本发明提供的低比特量化神经网络加速器实现方法,包括:
步骤1:获取红外数据集并对目标检测网络进行训练,通过反向传播对权重进行更新,最终得到全精度权重模型;
步骤2:初始化量化区间,采用低比特进行训练,直到达到最大迭代次数或者网络收敛为止;
步骤3:将神经网络的BN层与CNN层进行融合,得到低比特的权重参数以及量化因子;
步骤4:进行加速器架构,采用双缓冲、窗口缓存的方式提高系统带宽,采用循环展开的方式对计算单元进行并行;
步骤5:将加速器结构综合成IP核,并在Vivado中与其他相关模块互联,生成能够部署的比特流文件;
步骤6:将测试图像输入到神经网络加速器中,得到测试输出并与真值进行比对,得到包括检测准确率和加速器峰值吞吐的指标。
优选的,所述步骤1包括:
步骤1.1:对红外图像进行采集,并按照7:3的比例分为训练集和测试集;
步骤1.2:将训练图片输入神经网络中,所述神经网络包括13层卷积、3×3的卷积核和1×1的卷积核;
所述步骤2包括:
步骤2.1:对权重W和偏置β进行通道级量化,得到Wq和βq,表达式为:
xq=α·21-k·q
其中,q为在整数运算单元中参与计算的整数;α为缩放因子;k是量化位宽;
步骤2.3:根据梯度的反向传播更新缩放因子α,表达式为:
步骤2.4:根据梯度下降方向更新权值,直到模型收敛。
优选的,所述步骤3包括:
将固定的批归一化层看作卷积核尺寸为1×1的卷积层,得到融合后的权重W和融合后的偏置b,表达式为:
W=WBN×Wconv
b=WBN×bconv+bBN
其中,WBN为批归一化层的权重,Wconv为卷积层的权重,bBN为批归一化层的偏置,bconv为卷积层的偏置。
优选的,所述步骤4包括:
步骤4.1:设计多维度并行卷积单元,对卷积运算的输出层维度进行展开,并进行流水线处理;
步骤4.2:优化设计低比特乘加运算单元,将每个PE的结构设计为包含九个乘法器和一个由九个加法器组成的加法树,每个乘法器分别接受一个8比特输入和2比特的权重;
步骤4.3:设计多维度并行卷积单元和行缓冲,并通过行缓冲存储输入特征值中的一个滑动窗口所处的行内数据;
步骤4.4:将所有计算单元进行组合,采用双缓冲架构并行执行,同时进行读入DDR和写入DDR。
优选的,所述步骤5包括:
步骤5.1:通过Vivado_hls将加速器综合成IP,并定义输入输出接口;
步骤5.2:通过Vivado将加速器IP与处理器模块、时钟模块、复位模块互联,定义信号地址,最终综合生成比特流文件;
所述步骤6包括:
步骤6.1:通过写驱动将输入图片从CPU端加载到FPGA上,并调用FPGA神经网络加速器,统计检测结果和检测时间;
步骤6.2:将检测结果与全精度检测结果对比,统计误差损失,同时计算加速器的吞吐量和功耗,评估加速器的性能。
根据本发明提供的低比特量化神经网络加速器实现系统,包括:
模块M1:获取红外数据集并对目标检测网络进行训练,通过反向传播对权重进行更新,最终得到全精度权重模型;
模块M2:初始化量化区间,采用低比特进行训练,直到达到最大迭代次数或者网络收敛为止;
模块M3:将神经网络的BN层与CNN层进行融合,得到低比特的权重参数以及量化因子;
模块M4:进行加速器架构,采用双缓冲、窗口缓存的方式提高系统带宽,采用循环展开的方式对计算单元进行并行;
模块M5:将加速器结构综合成IP核,并在Vivado中与其他相关模块互联,生成能够部署的比特流文件;
模块M6:将测试图像输入到神经网络加速器中,得到测试输出并与真值进行比对,得到包括检测准确率和加速器峰值吞吐的指标。
优选的,所述模块M1包括:
模块M1.1:对红外图像进行采集,并按照7:3的比例分为训练集和测试集;
模块M1.2:将训练图片输入神经网络中,所述神经网络包括13层卷积、3×3的卷积核和1×1的卷积核;
所述模块M2包括:
模块M2.1:对权重W和偏置β进行通道级量化,得到Wq和βq,表达式为:
xq=α·21-k·q
其中,q为在整数运算单元中参与计算的整数;α为缩放因子;k是量化位宽;
模块M2.3:根据梯度的反向传播更新缩放因子α,表达式为:
模块M2.4:根据梯度下降方向更新权值,直到模型收敛。
优选的,所述模块M3包括:
将固定的批归一化层看作卷积核尺寸为1×1的卷积层,得到融合后的权重W和融合后的偏置b,表达式为:
W=WBN×Wconv
b=WBN×bconv+bBN
其中,WBN为批归一化层的权重,Wconv为卷积层的权重,bBN为批归一化层的偏置,bconv为卷积层的偏置。
优选的,所述模块M4包括:
模块M4.1:设计多维度并行卷积单元,对卷积运算的输出层维度进行展开,并进行流水线处理;
模块M4.2:优化设计低比特乘加运算单元,将每个PE的结构设计为包含九个乘法器和一个由九个加法器组成的加法树,每个乘法器分别接受一个8比特输入和2比特的权重;
模块M4.3:设计多维度并行卷积单元和行缓冲,并通过行缓冲存储输入特征值中的一个滑动窗口所处的行内数据;
模块M4.4:将所有计算单元进行组合,采用双缓冲架构并行执行,同时进行读入DDR和写入DDR。
优选的,所述模块M5包括:
模块M5.1:通过Vivado_hls将加速器综合成IP,并定义输入输出接口;
模块M5.2:通过Vivado将加速器IP与处理器模块、时钟模块、复位模块互联,定义信号地址,最终综合生成比特流文件;
所述模块M6包括:
模块M6.1:通过写驱动将输入图片从CPU端加载到FPGA上,并调用FPGA神经网络加速器,统计检测结果和检测时间;
模块M6.2:将检测结果与全精度检测结果对比,统计误差损失,同时计算加速器的吞吐量和功耗,评估加速器的性能。
与现有技术相比,本发明具有如下的有益效果:
1)本发明采用低比特量化方法,在基本不损失精度的情况下可以对权重压缩到2比特,对输入特征图压缩到8比特,大大缩小了模型的大小;
2)本发明根据目标检测算法YOLOv3-Tiny的结构设计了定制化的FPGA神经网络加速器,可以高效的将神经网络算法部署到FPGA上,获得更高的吞吐;
3)本发明可有效降低网络权重的存储空间;
4)本发明所提出的神经网络加速器可对红外目标进行检测;
5)本发明所基于的卷积神经网络加速器有较强的可迁移性,无论是将其部署到其他型号的FPGA上还是部署其他算法,都有较好的适配性。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为低比特量化神经网络训练流程图
图2为加速器整体架构图;
图3为加速器具体模块架构图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
实施例:
本发明提出了一种基于硬件友好型低比特量化的FPGA神经网络加速器,并对目标检测算法进行加速,该量化方法能够将权重量化到2比特,将特征图和激活函数量化到8比特,设计的FPGA神经网络加速器能够对Yolov3-Tiny进行加速,在150MHz的时钟频率下达到了90.6GOP/s的峰值吞吐率,起到了很好的加速效果,具体包括以下步骤:
步骤1,利用红外数据集对目标检测网络YOLOv3-Tiny进行训练,通过反向传播对权重进行更新,最终得到全精度权重模型;
步骤2,初始化量化区间,采用低比特进行训练,直到达到最大迭代次数或者网络收敛为止;
步骤3,将BN层与CNN层进行融合,减少整个模型的计算量与参数量,此时能够得到低比特的权重参数以及量化因子;
步骤4,针对该网络结构,合理设计加速器的架构,并采用双缓冲,窗口缓存等方式提高系统的带宽,采用循环展开等方式对计算单元进行并行,优化算力;
步骤5,将该加速器结构综合成IP,并在Vivado中与其他相关模块互联,最终生成能够部署的比特流文件;
步骤6,将测试图像输入到设计好的FPGA神经网络加速器中,得到测试输出并与真值比对,得到检测准确率、加速器峰值吞吐等指标。
所述的步骤1中,卷积神经网络的模型设置如下:
步骤1-1:需要对红外图像进行采集,并按照7:3的比例分为训练集和测试集;
步骤1-2:将训练图片输入网络中,整体网络主要由13层卷积组成,由3×3的卷积核和1×1的卷积核组成,具体的参数如表1。
表1 YOLOv3-Tiny网络结构
所述的步骤2中,低比特量化的训练流程图如图1所示,整体量化过程如下:
步骤2-1:根据式1-1对权重W和偏置β进行通道级量化,得到Wq,βq。
xq=α·21-k·q (1-1)
q为在整数运算单元中参与计算的整数,α为缩放因子,k是量化位宽。
步骤2-3:根据梯度的反向传播更新缩放因子α,反向传播的更新公式如1-2所示:
其中:
步骤2-4:根据梯度下降方向更新权值,直到模型收敛。
所述的步骤3中,可将固定的批归一化层看作卷积核尺寸为1×1的卷积层,根据式1-4,1-5得到融合后的权重W和融合后的偏置b。
W=WBN×Wconv (1-4)
b=WBN×bconv+bBN (1-5)
其中,WBN为批归一化层的权重,Wconv为卷积层的权重,bBN为批归一化层的偏置,bconv为卷积层的偏置。
所述的步骤4中,FPGA神经网络加速器的整体架构如图2所示,整体的设计流程如下:
步骤4-1,设计多维度并行卷积单元,对卷积运算的输出层维度进行展开,并进行流水线处理;
步骤4-2,优化设计低比特乘加运算单元,为了满足卷积运算单元的每个时钟周期的计算任务,将每个PE的结构设计为包含九个乘法器和一个由九个加法器组成的加法树,每个乘法器分别接受一个8比特输入和2比特的权重;
步骤4-3,设计多维度并行卷积单元,设计行缓冲解决单周期BRAM的读写冲突,通过行缓冲存储输入特征值中的一个滑动窗口所处的行内数据;
步骤4-4,将所有计算单元进行组合,整体加速器设计为双缓冲架构并行执行,保证读入DDR和写入DDR能够同时进行。
上述架构组合而成的加速器如图3所示。
所述的步骤5中,加速器的系统部署流程如下:
步骤5-1,通过Vivado_hls将加速器综合成IP,定义好输入输出接口;
步骤5-2,通过Vivado将加速器IP与处理器模块,时钟模块,复位模块等互联,定义信号地址,最终综合生成比特流文件。
所述的步骤6中,测试流程如下:
步骤6-1,通过写驱动将输入图片从CPU端加载到FPGA上,并调用FPGA神经网络加速器,统计检测结果和检测时间;
步骤6-2,将检测结果与全精度检测结果对比,统计误差损失。同时计算加速器的吞吐量和功耗,评估加速器的性能。
根据本发明提供的低比特量化神经网络加速器实现系统,包括:模块M1:获取红外数据集并对目标检测网络进行训练,通过反向传播对权重进行更新,最终得到全精度权重模型;模块M2:初始化量化区间,采用低比特进行训练,直到达到最大迭代次数或者网络收敛为止;模块M3:将神经网络的BN层与CNN层进行融合,得到低比特的权重参数以及量化因子;模块M4:进行加速器架构,采用双缓冲、窗口缓存的方式提高系统带宽,采用循环展开的方式对计算单元进行并行;模块M5:将加速器结构综合成IP核,并在Vivado中与其他相关模块互联,生成能够部署的比特流文件;模块M6:将测试图像输入到神经网络加速器中,得到测试输出并与真值进行比对,得到包括检测准确率和加速器峰值吞吐的指标。
所述模块M1包括:模块M1.1:对红外图像进行采集,并按照7:3的比例分为训练集和测试集;模块M1.2:将训练图片输入神经网络中,所述神经网络包括13层卷积、3×3的卷积核和1×1的卷积核;所述模块M2包括:模块M2.1:对权重W和偏置β进行通道级量化,得到Wq和βq,表达式为:
xq=α·21-k·q,
模块M2.4:根据梯度下降方向更新权值,直到模型收敛。
所述模块M3包括:将固定的批归一化层看作卷积核尺寸为1×1的卷积层,得到融合后的权重W和融合后的偏置b,表达式为:
W=WBN×Wconv ,
b=WBN×bconv+bBN ,
其中,WBN为批归一化层的权重,Wconv为卷积层的权重,bBN为批归一化层的偏置,bconv为卷积层的偏置。
所述模块M4包括:模块M4.1:设计多维度并行卷积单元,对卷积运算的输出层维度进行展开,并进行流水线处理;模块M4.2:优化设计低比特乘加运算单元,将每个PE的结构设计为包含九个乘法器和一个由九个加法器组成的加法树,每个乘法器分别接受一个8比特输入和2比特的权重;模块M4.3:设计多维度并行卷积单元和行缓冲,并通过行缓冲存储输入特征值中的一个滑动窗口所处的行内数据;模块M4.4:将所有计算单元进行组合,采用双缓冲架构并行执行,同时进行读入DDR和写入DDR。
所述模块M5包括:模块M5.1:通过Vivado_hls将加速器综合成IP,并定义输入输出接口;模块M5.2:通过Vivado将加速器IP与处理器模块、时钟模块、复位模块互联,定义信号地址,最终综合生成比特流文件;所述模块M6包括:模块M6.1:通过写驱动将输入图片从CPU端加载到FPGA上,并调用FPGA神经网络加速器,统计检测结果和检测时间;模块M6.2:将检测结果与全精度检测结果对比,统计误差损失,同时计算加速器的吞吐量和功耗,评估加速器的性能。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (10)
1.一种低比特量化神经网络加速器实现方法,其特征在于,包括:
步骤1:获取红外数据集并对目标检测网络进行训练,通过反向传播对权重进行更新,最终得到全精度权重模型;
步骤2:初始化量化区间,采用低比特进行训练,直到达到最大迭代次数或者网络收敛为止;
步骤3:将神经网络的BN层与CNN层进行融合,得到低比特的权重参数以及量化因子;
步骤4:进行加速器架构,采用双缓冲、窗口缓存的方式提高系统带宽,采用循环展开的方式对计算单元进行并行;
步骤5:将加速器结构综合成IP核,并在Vivado中与其他相关模块互联,生成能够部署的比特流文件;
步骤6:将测试图像输入到神经网络加速器中,得到测试输出并与真值进行比对,得到包括检测准确率和加速器峰值吞吐的指标。
2.根据权利要求1所述的低比特量化神经网络加速器实现方法,其特征在于,所述步骤1包括:
步骤1.1:对红外图像进行采集,并按照7:3的比例分为训练集和测试集;
步骤1.2:将训练图片输入神经网络中,所述神经网络包括13层卷积、3×3的卷积核和1×1的卷积核;
所述步骤2包括:
步骤2.1:对权重W和偏置β进行通道级量化,得到Wq和βq,表达式为:
xq=α·21-k·q
其中,q为在整数运算单元中参与计算的整数;α为缩放因子;k是量化位宽;
步骤2.3:根据梯度的反向传播更新缩放因子α,表达式为:
步骤2.4:根据梯度下降方向更新权值,直到模型收敛。
3.根据权利要求1所述的低比特量化神经网络加速器实现方法,其特征在于,所述步骤3包括:
将固定的批归一化层看作卷积核尺寸为1×1的卷积层,得到融合后的权重W和融合后的偏置b,表达式为:
W=WBN×Wconv
b=WBN×bconv+bBN
其中,WBN为批归一化层的权重,Wconv为卷积层的权重,bBN为批归一化层的偏置,bconv为卷积层的偏置。
4.根据权利要求1所述的低比特量化神经网络加速器实现方法,其特征在于,所述步骤4包括:
步骤4.1:设计多维度并行卷积单元,对卷积运算的输出层维度进行展开,并进行流水线处理;
步骤4.2:优化设计低比特乘加运算单元,将每个PE的结构设计为包含九个乘法器和一个由九个加法器组成的加法树,每个乘法器分别接受一个8比特输入和2比特的权重;
步骤4.3:设计多维度并行卷积单元和行缓冲,并通过行缓冲存储输入特征值中的一个滑动窗口所处的行内数据;
步骤4.4:将所有计算单元进行组合,采用双缓冲架构并行执行,同时进行读入DDR和写入DDR。
5.根据权利要求1所述的低比特量化神经网络加速器实现方法,其特征在于,所述步骤5包括:
步骤5.1:通过Vivado_hls将加速器综合成IP,并定义输入输出接口;
步骤5.2:通过Vivado将加速器IP与处理器模块、时钟模块、复位模块互联,定义信号地址,最终综合生成比特流文件;
所述步骤6包括:
步骤6.1:通过写驱动将输入图片从CPU端加载到FPGA上,并调用FPGA神经网络加速器,统计检测结果和检测时间;
步骤6.2:将检测结果与全精度检测结果对比,统计误差损失,同时计算加速器的吞吐量和功耗,评估加速器的性能。
6.一种低比特量化神经网络加速器实现系统,其特征在于,包括:
模块M1:获取红外数据集并对目标检测网络进行训练,通过反向传播对权重进行更新,最终得到全精度权重模型;
模块M2:初始化量化区间,采用低比特进行训练,直到达到最大迭代次数或者网络收敛为止;
模块M3:将神经网络的BN层与CNN层进行融合,得到低比特的权重参数以及量化因子;
模块M4:进行加速器架构,采用双缓冲、窗口缓存的方式提高系统带宽,采用循环展开的方式对计算单元进行并行;
模块M5:将加速器结构综合成IP核,并在Vivado中与其他相关模块互联,生成能够部署的比特流文件;
模块M6:将测试图像输入到神经网络加速器中,得到测试输出并与真值进行比对,得到包括检测准确率和加速器峰值吞吐的指标。
7.根据权利要求6所述的低比特量化神经网络加速器实现系统,其特征在于,所述模块M1包括:
模块M1.1:对红外图像进行采集,并按照7:3的比例分为训练集和测试集;
模块M1.2:将训练图片输入神经网络中,所述神经网络包括13层卷积、3×3的卷积核和1×1的卷积核;
所述模块M2包括:
模块M2.1:对权重W和偏置β进行通道级量化,得到Wq和βq,表达式为:
xq=α·21-k·q
其中,q为在整数运算单元中参与计算的整数;α为缩放因子;k是量化位宽;
模块M2.3:根据梯度的反向传播更新缩放因子α,表达式为:
模块M2.4:根据梯度下降方向更新权值,直到模型收敛。
8.根据权利要求6所述的低比特量化神经网络加速器实现系统,其特征在于,所述模块M3包括:
将固定的批归一化层看作卷积核尺寸为1×1的卷积层,得到融合后的权重W和融合后的偏置b,表达式为:
W=WBN×Wconv
b=WBN×bconv+bBN
其中,WBN为批归一化层的权重,Wconv为卷积层的权重,bBN为批归一化层的偏置,bconv为卷积层的偏置。
9.根据权利要求6所述的低比特量化神经网络加速器实现系统,其特征在于,所述模块M4包括:
模块M4.1:设计多维度并行卷积单元,对卷积运算的输出层维度进行展开,并进行流水线处理;
模块M4.2:优化设计低比特乘加运算单元,将每个PE的结构设计为包含九个乘法器和一个由九个加法器组成的加法树,每个乘法器分别接受一个8比特输入和2比特的权重;
模块M4.3:设计多维度并行卷积单元和行缓冲,并通过行缓冲存储输入特征值中的一个滑动窗口所处的行内数据;
模块M4.4:将所有计算单元进行组合,采用双缓冲架构并行执行,同时进行读入DDR和写入DDR。
10.根据权利要求6所述的低比特量化神经网络加速器实现系统,其特征在于,所述模块M5包括:
模块M5.1:通过Vivado_hls将加速器综合成IP,并定义输入输出接口;
模块M5.2:通过Vivado将加速器IP与处理器模块、时钟模块、复位模块互联,定义信号地址,最终综合生成比特流文件;
所述模块M6包括:
模块M6.1:通过写驱动将输入图片从CPU端加载到FPGA上,并调用FPGA神经网络加速器,统计检测结果和检测时间;
模块M6.2:将检测结果与全精度检测结果对比,统计误差损失,同时计算加速器的吞吐量和功耗,评估加速器的性能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210427782.1A CN114757347A (zh) | 2022-04-22 | 2022-04-22 | 低比特量化神经网络加速器实现方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210427782.1A CN114757347A (zh) | 2022-04-22 | 2022-04-22 | 低比特量化神经网络加速器实现方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114757347A true CN114757347A (zh) | 2022-07-15 |
Family
ID=82330844
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210427782.1A Pending CN114757347A (zh) | 2022-04-22 | 2022-04-22 | 低比特量化神经网络加速器实现方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114757347A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116028532A (zh) * | 2023-03-24 | 2023-04-28 | 山东浪潮科学研究院有限公司 | 一种数据库数据过滤方法、装置、设备及存储介质 |
CN117011183A (zh) * | 2023-08-15 | 2023-11-07 | 上海为旌科技有限公司 | 一种暗场景图像降噪方法及系统 |
CN118014818A (zh) * | 2024-02-27 | 2024-05-10 | 国科大杭州高等研究院 | 一种用于红外感存算一体系统的激活函数硬件电路 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110659734A (zh) * | 2019-09-27 | 2020-01-07 | 中国科学院半导体研究所 | 深度可分离卷积结构的低比特量化方法 |
US20200097818A1 (en) * | 2018-09-26 | 2020-03-26 | Xinlin LI | Method and system for training binary quantized weight and activation function for deep neural networks |
CN112488070A (zh) * | 2020-12-21 | 2021-03-12 | 上海交通大学 | 一种面向遥感图像目标检测的神经网络压缩方法 |
CN113159276A (zh) * | 2021-03-09 | 2021-07-23 | 北京大学 | 模型优化部署方法、系统、设备及存储介质 |
-
2022
- 2022-04-22 CN CN202210427782.1A patent/CN114757347A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200097818A1 (en) * | 2018-09-26 | 2020-03-26 | Xinlin LI | Method and system for training binary quantized weight and activation function for deep neural networks |
CN110659734A (zh) * | 2019-09-27 | 2020-01-07 | 中国科学院半导体研究所 | 深度可分离卷积结构的低比特量化方法 |
CN112488070A (zh) * | 2020-12-21 | 2021-03-12 | 上海交通大学 | 一种面向遥感图像目标检测的神经网络压缩方法 |
CN113159276A (zh) * | 2021-03-09 | 2021-07-23 | 北京大学 | 模型优化部署方法、系统、设备及存储介质 |
Non-Patent Citations (4)
Title |
---|
JIAMING HUANG 等: "A LOW-BIT QUANTIZED AND HLS-BASED NEURAL NETWORK FPGA ACCELERATOR FOR OBJECT DETECTION", 《IEEE EXPLORE》, 29 June 2021 (2021-06-29), pages 1 - 3 * |
武宏程 等: "基于低比特量化神经网络的红外目标 识别方法及其FPGA 实现", 《上海航天(中英文)》, vol. 40, no. 1, 25 February 2023 (2023-02-25), pages 35 - 43 * |
黄家明 等: "基于FPGA的红外目标识别神经网络加速器设计", 《飞控与探测》, vol. 3, no. 6, 30 November 2020 (2020-11-30), pages 71 - 75 * |
齐乐;张小刚;姚航;: "基于HLS的实时图像去雾实现", 计算机工程, no. 05, 31 May 2016 (2016-05-31), pages 230 - 235 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116028532A (zh) * | 2023-03-24 | 2023-04-28 | 山东浪潮科学研究院有限公司 | 一种数据库数据过滤方法、装置、设备及存储介质 |
CN117011183A (zh) * | 2023-08-15 | 2023-11-07 | 上海为旌科技有限公司 | 一种暗场景图像降噪方法及系统 |
CN118014818A (zh) * | 2024-02-27 | 2024-05-10 | 国科大杭州高等研究院 | 一种用于红外感存算一体系统的激活函数硬件电路 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhang et al. | An fpga-based reconfigurable cnn accelerator for yolo | |
KR102434728B1 (ko) | 처리방법 및 장치 | |
Li et al. | A high performance FPGA-based accelerator for large-scale convolutional neural networks | |
CN111274811B (zh) | 地址文本相似度确定方法以及地址搜索方法 | |
CN114757347A (zh) | 低比特量化神经网络加速器实现方法和系统 | |
Pestana et al. | A full featured configurable accelerator for object detection with YOLO | |
Zhou et al. | Energon: Toward efficient acceleration of transformers using dynamic sparse attention | |
Chang et al. | A mixed-pruning based framework for embedded convolutional neural network acceleration | |
CN112288082A (zh) | 一种基于hls的可重构通用标准卷积加速器设计方法 | |
CN111382860A (zh) | 一种lstm网络的压缩加速方法及fpga加速器 | |
CN112633477A (zh) | 一种基于现场可编程阵列的量化神经网络加速方法 | |
Shahshahani et al. | Memory optimization techniques for fpga based cnn implementations | |
Wang et al. | Briefly Analysis about CNN Accelerator based on FPGA | |
CN114898108B (zh) | 一种基于fpga的cnn模型轻量化方法、目标检测方法及系统 | |
Choi et al. | Hardware-friendly logarithmic quantization with mixed-precision for mobilenetv2 | |
Zhang et al. | Apply yolov4-tiny on an fpga-based accelerator of convolutional neural network for object detection | |
Zhan et al. | Field programmable gate array‐based all‐layer accelerator with quantization neural networks for sustainable cyber‐physical systems | |
Shi et al. | NASA: Neural architecture search and acceleration for hardware inspired hybrid networks | |
Jang et al. | Characterizing memory access patterns of various convolutional neural networks for utilizing processing-in-memory | |
Zheng et al. | An FPGA based parallel implementation for point cloud neural network | |
Zhao et al. | A hardware accelerator based on neural network for object detection | |
Wang et al. | Acceleration and implementation of convolutional neural network based on FPGA | |
Huang et al. | Hardware-friendly compression and hardware acceleration for transformer: A survey | |
Ren et al. | Hardware implementation of KLMS algorithm using FPGA | |
Huang et al. | A low-bit quantized and hls-based neural network fpga accelerator for object detection |
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 |