CN114925780A - 一种基于fpga的轻量级cnn分类器的优化提速方法 - Google Patents

一种基于fpga的轻量级cnn分类器的优化提速方法 Download PDF

Info

Publication number
CN114925780A
CN114925780A CN202210679183.9A CN202210679183A CN114925780A CN 114925780 A CN114925780 A CN 114925780A CN 202210679183 A CN202210679183 A CN 202210679183A CN 114925780 A CN114925780 A CN 114925780A
Authority
CN
China
Prior art keywords
layer
data
fpga
weight
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
CN202210679183.9A
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.)
Fuzhou University
Original Assignee
Fuzhou 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 Fuzhou University filed Critical Fuzhou University
Priority to CN202210679183.9A priority Critical patent/CN114925780A/zh
Publication of CN114925780A publication Critical patent/CN114925780A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2415Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • 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
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computational Linguistics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Evolutionary Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Image Analysis (AREA)

Abstract

本发明涉及一种基于FPGA的轻量级CNN分类器的优化提速方法,包括以下步骤:1)在PC端上利用搭建好的轻量级CNN网络,通过用于图像分类的数据集进行训练,获得多次训练分类效果最好的网络模型;同时在FPGA硬件端对PC端导出的模型架构进行设计;2)对训练好的网络模型进行量化感知训练,将32位浮点数模型参数保存为8位定点整数,同时在FPGA硬件端对轻量级CNN网络完整的架构实现;3)将量化感知训练后的权重,根据设计好的并行度按照硬件需要的读写顺序写成coe文件格式,导入到FPGA的片内存储中,轻量级CNN分类器即可读取输入图片数据实现分类推理。该方法有利于提高分类器的实时性。

Description

一种基于FPGA的轻量级CNN分类器的优化提速方法
技术领域
本发明属于目标分类技术领域,具体涉及一种基于FPGA的轻量级CNN分类器的优化提速方法。
背景技术
卷积神经网络(Convolutional Neural Network,CNN)善于从海量数据中提取目标的特征,由于其出色的分类识别能力,已被广泛的应用于图像分类、语音识别、医疗诊断、国防安全等领域。为了提高卷积网络的识别精度,卷积神经网络的复杂度与计算量也随之不断的在增加。而庞大的参数量则使得卷积神经网络很难部署在资源有限的嵌入式设备上。轻量级网络的诞生,很大程度上降低了网络的参数量,目前主流的轻量级网络,如MobilenetV2,采用深度可分离的卷积结构,由空间卷积(Depthwise Convolution,DW)与逐点卷积(Pointwise Convolution,PW)操作组成。在减少了网络参数量的同时又能保证识别精度,很适合部署在小容量的嵌入式设备上,应用于目标分类的场景。
将CNN部署于传统的处理器CPU上,会带来高延迟。若是使用并行计算,GPU会存在较大的功耗。现场可编程门阵列(FieldProgrammable GateArray,FPGA)具有实时性、低功耗、可重构的优点,特别适用于作为CNN的硬件加速器。目前,将AI领域主流的CNN网络部署在FPGA上主要面临的问题在于FPGA资源受限,CNN网络计算量与参数量相对较大。若通过压缩模型降低参数,则会降低网络最终识别准确率,若将网络参数存放片外则会存在带宽限制,影响实时性。
发明内容
本发明的目的在于提供一种基于FPGA的轻量级CNN分类器的优化提速方法,该方法有利于提高分类器的实时性。
为实现上述目的,本发明采用的技术方案是:一种基于FPGA的轻量级CNN分类器的优化提速方法,包括以下步骤:
1)在PC端上利用搭建好的轻量级CNN网络,通过用于图像分类的数据集进行训练,获得多次训练分类效果最好的网络模型;同时在FPGA硬件端对PC端导出的模型架构进行设计;
2)对训练好的网络模型进行量化感知训练,将32位浮点数模型参数保存为8位定点整数,同时在FPGA硬件端对轻量级CNN网络完整的架构实现;
3)将量化感知训练后的权重,根据设计好的并行度按照硬件需要的读写顺序写成coe文件格式,导入到FPGA的片内存储中,轻量级CNN分类器即可读取输入图片数据实现分类推理。
进一步地,轻量级CNN分类器系统的总体架构主要由上位机、硬件加速模块、片上存储器和显示模块组成,网络的权重经量化后根据DW、PW层的并行度以及数据读取规则进行有序排列,提前写入片上存储器中;上位机只负责通过PCIE总线传输输入图片数据到输入缓冲器中;硬件加速模块在监测到图片数据已经加载完成后,从片上存储器读入权重,即开始前向推理加速。
进一步地,所述轻量级CNN网络采用轻量级网络MobilenetV2,所述硬件加速模块对应MobileNetV2网络结构进行部署,主要由Conv2d层、DW层、PW层、池化层组成;最终分类结果显示在显示模块上。
进一步地,参数量化后,需用新的定点数计算公式替代原来的浮点数卷积运算公式在硬件上实现;假设卷积的权重weight为w,bias为b,输入为x,输出激活值为a,由于卷积本质上为矩阵运算,因此表示为下式所示:
Figure BDA0003697651390000021
用r表示浮点实数,q表示量化后的定点整数,S表示量化的尺度因子,Z表示0经过量化后对应的整数值,则浮点数与定点数的转化公式如下式所示:
r=S(q-Z) (2)
Figure BDA0003697651390000022
将公式(1)中的w、b、x分别用量化后的定点数表示,即得到公式(4):
Figure BDA0003697651390000023
整个公式(4)只有
Figure BDA0003697651390000024
是浮点数,其中Sw为权重的量化尺度,Sx为输入的量化尺度,Sa为输出的量化尺度;假设
Figure BDA0003697651390000025
只要找到合适的n与M0使得M≈2-nM0,公式(4)即可全部转化为定点数运算。
进一步地,量化计算的硬件实现步骤如下:
A)每次的卷积运算,图片与权重乘累加结果用32位寄存器存储,乘数也用32寄存器存储,两者的乘法结果用64位寄存器存储;
B)对图片与权重乘累加结果,在硬件端进行Round操作,Round操作后紧接着移位操作,Round与移位操作合做一个节拍;
C)对移位后的结果,经过relu后,截成8位输出,relu与截位合一拍。
进一步地,在轻量级CNN网络的层内以及相邻PW层之间采取协同并行流水线的方法,以加速前向传播过程,提高分类器的实时性;轻量级CNN网络主要由PW层与DW层组成,在提高DW层的计算并行度上采取单个卷积运算展开与输入通道展开两种方式相结合的策略,具体为:
DW层的卷积窗口N=3,即为3×3的卷积窗口,将3×3的卷积计算平铺开,输入图片位置的3×3数据与相应权重相乘,即一个时钟周期内完成9次乘法计算;在输入通道上采取k通道并行的方式,整个DW层在一个FPGA时钟周期内完成9×k次乘法计算,经后续操作后输出k个通道同一位置的数据;
PW层采取k输入通道与k输出通道相结合的并行方式;在一个CLK同时读取k输入通道同一个位置的数据与k组通道上的权重进行计算,依次按输入通道方向读取输入Map数据,经过n个CLK后输出k个输出通道同一位置的数据;在轻量级CNN分类器相邻的两个PW层之间以流水线的方式运行计算,以进一步加快网络的推理速度,层间流水结构如下:
PW1的权重为(m,n)的二维数组形式,其中m为输出通道数,n为输入通道数;PW层并行度设置为k,则PW1层在一个周期读取前一层输出的k张图片的k个数据后,同时读取k组n输入通道上的k个数,即k×k个权重数据,进入PW1层计算;在下一个周期,PW1层读取下一组k张图片的k个数据后,权重则按输出通道的方向读取下一组k×k个权重数据,依次类推;PW1层的输出图片尺寸为(y,y,m),当m张图片的首位数据全部写入缓存时,PW1层发给PW2一个start信号,PW2开始读入数据进行运算,由于PW2的输出通道数大于PW1,因此PW2等待PW1层写入缓存的m张图片的首位数据后启动,以使PW1的写和PW2的读不发生冲突,两层并行运行;PW2的下一层为DW层,卷积核为3×3,每个周期要进行滑窗读入缓存数据,因此PW2的权重读取按输入通道的方向读取每一组k×k个权重数据;至此实现各个层内、层间协同的并行流水。
与现有技术相比,本发明具有以下有益效果:提供了一种基于FPGA的轻量级CNN分类器的优化提速方法,该方法针对FPGA资源紧缺的问题,压缩轻量级CNN网络参数为INT8型,优化片上资源的使用;并将权重参数布置于片内存储,增大了网络的带宽,降低了访问片外存储器带来的额外功耗;同时,采取量化感知训练(Quantization Aware Training,QAT)对网络进行二次训练,克服了因为量化带来分类器的准确率损失;此外,在轻量级CNN网络的层内以及相邻的PW层之间采取协同配合流水线方法,提高了分类器的实时性,适用于所有具有深度可分离结构的轻量级CNN网络。通过该方法优化提速的分类器具有实时性、低功耗、体积小巧等优点,适用于工业流水线残次品分类、自动驾驶、国防安全等场景。
附图说明
图1是本发明实施例的实现流程图。
图2是本发明实施例中轻量级CNN分类器的系统框架图。
图3是本发明实施例中量化计算硬件实现原理图。
图4是本发明实施例中DW层并行结构图。
图5是本发明实施例中PW层并行结构图。
图6是本发明实施例中卷积层间流水线结构图。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
如图1所示,本实施例提供了一种基于FPGA的轻量级CNN分类器的优化提速方法,其特征在于,包括以下步骤:
1)在PC端上利用Python搭建好的轻量级CNN网络,通过用于图像分类的数据集进行训练,获得多次训练分类效果最好的网络模型;同时在FPGA硬件端对PC端导出的模型架构进行设计。
2)对训练好的网络模型进行量化感知训练,将32位浮点数模型参数保存为8位定点整数(INT8),同时在FPGA硬件端对轻量级CNN网络完整的架构实现。
3)将量化感知训练后的权重,根据设计好的并行度按照硬件需要的读写顺序写成coe文件格式,导入到FPGA的片内存储中,轻量级CNN分类器即可读取输入图片数据实现分类推理。
在本实施例中,轻量级CNN网络采用目前主流的轻量级网络MobilenetV2,轻量级CNN分类器系统的总体架构主要由上位机、硬件加速模块、片上存储器和显示模块组成。其中,上位机即对应上述PC端,硬件加速模块和片上存储器构成FPGA硬件端,显示模块是单独板子上挂载的显示屏。网络的权重经量化后根据DW、PW层的并行度以及数据读取规则进行有序排列,提前写入片上存储器(On-chip Memory)中。上位机只负责通过PCIE总线传输输入图片数据到输入缓冲器(Input-buffer)中。硬件加速模块在监测到图片数据已经加载完成后,从片上存储器读入权重,即开始前向推理加速。所述硬件加速模块对应MobileNetV2网络结构进行部署,主要由Conv2d层、DW层、PW层、池化层(Pooling Layer)组成。最终分类结果显示在显示模块上。轻量级CNN分类器系统框架如图2所示。
PC端训练保存好的网络模型,权重为32浮点型数据,对于轻量级CNN,如MobileNetV2网络的参数量接近3.2M,若是再考虑层间图片的缓存所需的存储空间将更为巨大,而FPGA的片上BRAM是十分有限的,这就需要对轻量级CNN网络的参数进行压缩。静态量化方式虽然能有效的压缩参数模型,但是对于轻量级CNN网络却会造成严重的精度损失。本发明在PyTorch框架下对东北大学发布的热轧带钢表面缺陷数据集进行试验测试,采用MobileNetV2网络,运用静态量化将模型参数压缩至INT8型后缺陷分类正确率下降到了70.1%,而采用量化感知训练方式将模型参数压缩至INT8型的同时进行再次训练,8轮EPOCH后,最高的正确率可以达到93.89%,如表1所示。
表1量化感知训练正确率变化表
EPOCH 第一轮 第二轮 第三轮 第四轮 第五轮 第六轮 第七轮 第八轮
准确度 72.78% 85.00% 88.33% 90.56% 91.11% 92.22% 93.89% 92.78%
相较于浮点数运算,FPGA更加擅长处理定点数运算。参数量化后,需用新的定点数计算公式替代原来的浮点数卷积运算公式在硬件上实现。假设卷积的权重weight为w,bias为b,输入为x,输出激活值为a,由于卷积本质上就是矩阵运算,因此可以表示为下式所示:
Figure BDA0003697651390000061
用r表示浮点实数,q表示量化后的定点整数,S表示量化的尺度因子,Z表示0经过量化后对应的整数值。则浮点数与定点数的转化公式如下式所示:
r=S(q-Z) (2)
Figure BDA0003697651390000062
将公式(1)中的w、b、x分别用量化后的定点数表示,即得到公式(4):
Figure BDA0003697651390000063
整个公式(4)只有
Figure BDA0003697651390000064
是浮点数,其中Sw为权重的量化尺度,Sx为输入的量化尺度,Sa为输出的量化尺度。假设
Figure BDA0003697651390000065
只要找到合适的n与M0使得M≈2-nM0,公式(4)即可全部转化为定点数运算。
量化计算的硬件实现如图3所示,其实现步骤如下:
A)每次的卷积运算,图片与权重乘累加结果用32位寄存器存储,乘数也用32寄存器存储,两者的乘法结果用64位寄存器存储。
B)由于PC端有对最终进行四舍五入,因此对图片与权重乘累加结果,在硬件端也进行Round操作,Round操作后紧接着移位操作,Round与移位操作合做一个节拍。
C)对移位后的结果,经过relu后,截成8位输出,relu与截位合一拍。
在本实施例中,在轻量级CNN网络的层内以及相邻PW层之间采取协同并行流水线的方法,加速前向传播过程,提高分类器的实时性。轻量级CNN网络主要由PW层与DW层组成。在提高DW层的计算并行度上采取单个卷积运算展开与输入通道展开两种方式相结合的策略,具体展开方式如图4所示:
DW层的卷积窗口N=3,即为3×3的卷积窗口,将3×3的卷积计算平铺开,输入图片位置的3×3数据与相应权重相乘,即一个时钟周期内完成9次乘法计算;若在输入通道上采取k通道并行的方式,整个DW层在一个FPGA时钟周期内完成9×k次乘法计算,经后续操作后输出k个通道同一位置的数据。
由于存储器的一个地址存放一个周期出来的k个通道的数据,因此DW输入通道的并行度需要与下一层PW层的输入通道并行度保持一致。因此PW层采取k输入通道与k输出通道相结合的并行方式;在一个CLK同时读取k输入通道同一个位置的数据与k组通道上的权重进行计算,依次按输入通道方向读取输入Map数据,经过n个CLK后输出k个输出通道同一位置的数据。PW层的并行设计如图5所示。
本实施例中,在轻量级CNN分类器相邻的两个PW层之间以流水线的方式运行计算,以进一步加快网络的推理速度。层间流水结构设计如图6所示。
PW1的权重为(m,n)的二维数组形式,其中m为输出通道数,n为输入通道数。如果PW层并行度设置为k,则PW1层在一个周期读取前一层输出的k张图片的k个数据后,同时读取k组n输入通道上的k个数,即k×k个权重数据,进入PW1层计算。在下一个周期,PW1层读取下一组k张图片的k个数据后,权重则按输出通道的方向读取下一组k×k个权重数据,依次类推。PW1层的输出图片尺寸为(y,y,m),当m张图片的首位数据全部写入缓存时,PW1层发给PW2一个start信号,PW2开始读入数据进行运算,由于PW2的输出通道数大于PW1,因此PW2只需等待PW1层写入缓存的m张图片的首位数据后即可启动,PW1的写和PW2的读就不会发生冲突,两层就能并行运行。由于PW2的下一层为DW层,卷积核为3×3,每个周期要进行滑窗读入缓存数据,因此PW2的权重读取按输入通道的方向读取每一组k×k个权重数据。至此实现各个层内,层间协同的并行流水。
本发明提供了一种基于FPGA的轻量级CNN分类器的优化提速方法,该方法采用QAT的量化方式,将32位的浮点数,量化为8位定点整数,降低网络的参数量,将权重参数和层间缓存数据均存放在FPGA的片内资源上,在轻量级CNN网络的层内与PW层间采取并行流水,加速前向传播过程,并将最终分类结果显示在显示屏上。
本发明通过在PC端针对指定数据集训练好的模型,进行QAT的量化方式,在量化的过程中对网络进行二次训练,让网络参数能够适应量化带来的误差,以此来降低量化带来最终的准确率损失。将量化后的权重与待检测的图片数据写入片内BRAM中。根据并行度将权重数据合并,BRAM里的每个地址都能存放相应并行度个数的权重。在提升数据读取速度的同时又能节省片内存储资源。
在FPGA搭建好轻量级CNN硬件网络结构,网络结构主要由Conv2d、PW、DW、量化计算等模块组成,每个模块分别占用硬件资源。输入图片在FPGA上与PC端推理方式、输出数据均需一致,经网络层层推理后输出最终分类结果。
为了加速分类器的推理速度,本发明提出了一种层内、层间协同配合的流水线方法。在层间缓存区,数据一旦进入层内就开始进行卷积运算,综合考虑资源与速度将卷积循环在输入通道、输出通道、卷积核内,合理的展开,输出结果下一拍直接到量化模块运算后输出。相邻的PW层之间,下一层无需等待上一层全部完成,只要下一层计算单元获得足够数据,计算即可展开。层内、层间依次流水线排开,协同配合。
以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例。但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。

Claims (6)

1.一种基于FPGA的轻量级CNN分类器的优化提速方法,其特征在于,包括以下步骤:
1)在PC端上利用搭建好的轻量级CNN网络,通过用于图像分类的数据集进行训练,获得多次训练分类效果最好的网络模型;同时在FPGA硬件端对PC端导出的模型架构进行设计;
2)对训练好的网络模型进行量化感知训练,将32位浮点数模型参数保存为8位定点整数,同时在FPGA硬件端对轻量级CNN网络完整的架构实现;
3)将量化感知训练后的权重,根据设计好的并行度按照硬件需要的读写顺序写成coe文件格式,导入到FPGA的片内存储中,轻量级CNN分类器即可读取输入图片数据实现分类推理。
2.根据权利要求1所述的一种基于FPGA的轻量级CNN分类器的优化提速方法,其特征在于,轻量级CNN分类器系统的总体架构主要由上位机、硬件加速模块、片上存储器和显示模块组成,网络的权重经量化后根据DW、PW层的并行度以及数据读取规则进行有序排列,提前写入片上存储器中;上位机只负责通过PCIE总线传输输入图片数据到输入缓冲器中;硬件加速模块在监测到图片数据已经加载完成后,从片上存储器读入权重,即开始前向推理加速。
3.根据权利要求2所述的一种基于FPGA的轻量级CNN分类器的优化提速方法,其特征在于,所述轻量级CNN网络采用轻量级网络MobilenetV2,所述硬件加速模块对应MobileNetV2网络结构进行部署,主要由Conv2d层、DW层、PW层、池化层组成;最终分类结果显示在显示模块上。
4.根据权利要求1所述的一种基于FPGA的轻量级CNN分类器的优化提速方法,其特征在于,参数量化后,需用新的定点数计算公式替代原来的浮点数卷积运算公式在硬件上实现;假设卷积的权重weight为w,bias为b,输入为x,输出激活值为a,由于卷积本质上为矩阵运算,因此表示为下式所示:
Figure FDA0003697651380000011
用r表示浮点实数,q表示量化后的定点整数,S表示量化的尺度因子,Z表示0经过量化后对应的整数值,则浮点数与定点数的转化公式如下式所示:
r=S(q-Z) (2)
Figure FDA0003697651380000021
将公式(1)中的w、b、x分别用量化后的定点数表示,即得到公式(4):
Figure FDA0003697651380000022
整个公式(4)只有
Figure FDA0003697651380000023
是浮点数,其中Sw为权重的量化尺度,Sx为输入的量化尺度,Sa为输出的量化尺度;假设
Figure FDA0003697651380000024
只要找到合适的n与M0使得M≈2-nM0,公式(4)即可全部转化为定点数运算。
5.根据权利要求4所述的一种基于FPGA的轻量级CNN分类器的优化提速方法,其特征在于,量化计算的硬件实现步骤如下:
A)每次的卷积运算,图片与权重乘累加结果用32位寄存器存储,乘数也用32寄存器存储,两者的乘法结果用64位寄存器存储;
B)对图片与权重乘累加结果,在硬件端进行Round操作,Round操作后紧接着移位操作,Round与移位操作合做一个节拍;
C)对移位后的结果,经过relu后,截成8位输出,relu与截位合一拍。
6.根据权利要求1所述的一种基于FPGA的轻量级CNN分类器的优化提速方法,其特征在于,在轻量级CNN网络的层内以及相邻PW层之间采取协同并行流水线的方法,以加速前向传播过程,提高分类器的实时性;轻量级CNN网络主要由PW层与DW层组成,在提高DW层的计算并行度上采取单个卷积运算展开与输入通道展开两种方式相结合的策略,具体为:
DW层的卷积窗口N=3,即为3×3的卷积窗口,将3×3的卷积计算平铺开,输入图片位置的3×3数据与相应权重相乘,即一个时钟周期内完成9次乘法计算;在输入通道上采取k通道并行的方式,整个DW层在一个FPGA时钟周期内完成9×k次乘法计算,经后续操作后输出k个通道同一位置的数据;
PW层采取k输入通道与k输出通道相结合的并行方式;在一个CLK同时读取k输入通道同一个位置的数据与k组通道上的权重进行计算,依次按输入通道方向读取输入Map数据,经过n个CLK后输出k个输出通道同一位置的数据;在轻量级CNN分类器相邻的两个PW层之间以流水线的方式运行计算,以进一步加快网络的推理速度,层间流水结构如下:
PW1的权重为(m,n)的二维数组形式,其中m为输出通道数,n为输入通道数;PW层并行度设置为k,则PW1层在一个周期读取前一层输出的k张图片的k个数据后,同时读取k组n输入通道上的k个数,即k×k个权重数据,进入PW1层计算;在下一个周期,PW1层读取下一组k张图片的k个数据后,权重则按输出通道的方向读取下一组k×k个权重数据,依次类推;PW1层的输出图片尺寸为(y,y,m),当m张图片的首位数据全部写入缓存时,PW1层发给PW2一个start信号,PW2开始读入数据进行运算,由于PW2的输出通道数大于PW1,因此PW2等待PW1层写入缓存的m张图片的首位数据后启动,以使PW1的写和PW2的读不发生冲突,两层并行运行;PW2的下一层为DW层,卷积核为3×3,每个周期要进行滑窗读入缓存数据,因此PW2的权重读取按输入通道的方向读取每一组k×k个权重数据;至此实现各个层内、层间协同的并行流水。
CN202210679183.9A 2022-06-16 2022-06-16 一种基于fpga的轻量级cnn分类器的优化提速方法 Pending CN114925780A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210679183.9A CN114925780A (zh) 2022-06-16 2022-06-16 一种基于fpga的轻量级cnn分类器的优化提速方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210679183.9A CN114925780A (zh) 2022-06-16 2022-06-16 一种基于fpga的轻量级cnn分类器的优化提速方法

Publications (1)

Publication Number Publication Date
CN114925780A true CN114925780A (zh) 2022-08-19

Family

ID=82813966

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210679183.9A Pending CN114925780A (zh) 2022-06-16 2022-06-16 一种基于fpga的轻量级cnn分类器的优化提速方法

Country Status (1)

Country Link
CN (1) CN114925780A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116187420A (zh) * 2023-05-04 2023-05-30 上海齐感电子信息科技有限公司 轻量化的深度神经网络的训练方法、系统、设备和介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116187420A (zh) * 2023-05-04 2023-05-30 上海齐感电子信息科技有限公司 轻量化的深度神经网络的训练方法、系统、设备和介质

Similar Documents

Publication Publication Date Title
US20220012593A1 (en) Neural network accelerator and neural network acceleration method based on structured pruning and low-bit quantization
CN109886400B (zh) 基于卷积核拆分的卷积神经网络硬件加速器系统及其计算方法
CN111459877B (zh) 基于FPGA加速的Winograd YOLOv2目标检测模型方法
CN111967468B (zh) 一种基于fpga的轻量级目标检测神经网络的实现方法
CN111178518A (zh) 一种基于fpga的软硬件协同的加速方法
CN110348574B (zh) 一种基于zynq的通用卷积神经网络加速结构及设计方法
WO2020073211A1 (zh) 运算加速器、处理方法及相关设备
KR20180034853A (ko) 합성곱 신경망의 연산 장치 및 방법
CN106846235B (zh) 一种利用NVIDIA Kepler GPU汇编指令加速的卷积优化方法及系统
CN113051216B (zh) 一种基于FPGA加速的MobileNet-SSD目标检测装置及方法
CN111626403B (zh) 一种基于cpu-fpga内存共享的卷积神经网络加速器
CN113792621B (zh) 一种基于fpga的目标检测加速器设计方法
Shahshahani et al. Memory optimization techniques for fpga based cnn implementations
CN113762493A (zh) 神经网络模型的压缩方法、装置、加速单元和计算系统
CN114925780A (zh) 一种基于fpga的轻量级cnn分类器的优化提速方法
CN113392973A (zh) 一种基于fpga的ai芯片神经网络加速方法
CN113033794A (zh) 基于深度可分离卷积的轻量级神经网络硬件加速器
CN110377874B (zh) 卷积运算方法及系统
CN110569970B (zh) 一种应用于卷积神经网络中硬件加速器的数据传输方法
CN110414672B (zh) 卷积运算方法、装置及系统
Xiao et al. FPGA-based scalable and highly concurrent convolutional neural network acceleration
CN113222129A (zh) 一种基于多级缓存循环利用的卷积运算处理单元及系统
CN117036980A (zh) 基于高分辨率特征自注意的卫星遥感图像小目标检测方法
CN116011534A (zh) 一种基于fpga的通用卷积神经网络加速器实现方法
CN113393376A (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