[go: up one dir, main page]

CN112306951B - 一种基于fpga的cnn-svm资源高效型加速架构 - Google Patents

一种基于fpga的cnn-svm资源高效型加速架构 Download PDF

Info

Publication number
CN112306951B
CN112306951B CN202011252879.0A CN202011252879A CN112306951B CN 112306951 B CN112306951 B CN 112306951B CN 202011252879 A CN202011252879 A CN 202011252879A CN 112306951 B CN112306951 B CN 112306951B
Authority
CN
China
Prior art keywords
svm
cnn
bram
architecture
input
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
Application number
CN202011252879.0A
Other languages
English (en)
Other versions
CN112306951A (zh
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.)
Harbin Institute of Technology Shenzhen
Original Assignee
Harbin Institute of Technology Shenzhen
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 Harbin Institute of Technology Shenzhen filed Critical Harbin Institute of Technology Shenzhen
Priority to CN202011252879.0A priority Critical patent/CN112306951B/zh
Publication of CN112306951A publication Critical patent/CN112306951A/zh
Application granted granted Critical
Publication of CN112306951B publication Critical patent/CN112306951B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/36Creation of semantic tools, e.g. ontology or thesauri
    • G06F16/367Ontology
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/2411Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Animal Behavior & Ethology (AREA)
  • Databases & Information Systems (AREA)
  • Advance Control (AREA)

Abstract

本发明是一种基于FPGA的CNN‑SVM资源高效型加速架构。本发明涉及嵌入式目标分类、检测技术领域,本发明所述架构包括处理器系统和可编程逻辑系统;所述CNN‑SVM流式架构加速器基于通用的加速算子结构,所述加速算子结构为多个乘累加MAC节点组成的二维阵列,该加速架构可以充分利用数据重用特性,并适用于CNN‑SVM混合算法中包括CNN,FC全连接层和SVM在内的不同类型的层。此外,加速架构中设计的通用算子的流水线间隔可以保持在单个时钟周期从而可以提高加速器的计算效率。

Description

一种基于FPGA的CNN-SVM资源高效型加速架构
技术领域
本发明涉及嵌入式目标分类、检测技术领域,是一种基于FPGA的CNN-SVM资源高效型加速架构。
背景技术
卷积神经网络(CNN)当前广泛用于分类、检测和识别等应用,而由CNN和传统的机器学习算法(如支持向量机SVM)组成的混合网络结构由于其鲁棒性、高分类精度以及适合于小样本训练而在实际应用中受到广泛关注。随着对低功耗,高性能和轻量化的要求,基于嵌入式平台的混合网络(CNN-SVM)加速已经成为当前研究热点。
在有关CNN加速的早期研究中,已经提出了Roofline模型用来平衡资源和性能,它为如何解决吞吐量和带宽匹配问题提供了理论指导。为了克服带宽限制,权重参数通常在片上存储器中进行缓冲。随着网络深度的增加,它将面临有限内存资源的短缺。一种有效的方法是探索卷积过程中数据重用的特性。基于这种思想,使用分层存储结果和乒乓缓冲区来抑制外部存储器带宽的限制,例如探索峰值带宽占用率和数据重排以缓存参数,这有效地提高了突破带宽限制时的吞吐量。这些加速策略可总结如下:(1)循环平铺以减少内存冲突;(2)片上缓冲实现数据重用;(3)片上存储所有参数而不占用带宽。所有这些都是基于对带宽和数据重用的探索。但是吞吐量的提高依赖于大量的DSP单元消耗,使得DSP的有效利用率不足。
快速卷积算法是提高吞吐量的另一项有效研究。它通过替换原始卷积结构来降低资源利用率。Winograd大大降低了卷积过程中的算术复杂度并提高了效率,新的快速卷积算法包括通过重叠和相加的频域卷积,快速有限脉冲响应算法来实现有限的资源支持更多的卷积数。尽管快速卷积算法可以挖掘加速潜力,但大多数算法都针对特殊的卷积结构,不适用于混合网络。此外,某些卷积加速方法可能会更改原始流水线结构,从而增加了对时序的要求。
发明内容
本发明为了解决现有技术的问题,本发明充分利用知识图谱的知识信息,本发明提供了以下技术方案:
一种基于FPGA的CNN-SVM资源高效型加速架构,所述架构包括处理器系统和可编程逻辑系统;
所述处理器系统包括DDR存储控制器、SD/SDIO控制器、串口控制器、主开关和应用处理器;所述应用处理器进行数据调度和程序控制,所述SD/SDIO控制器和DDR存储控制器存储外部输入数据集和网络参数文件,所述串口控制器监测架构的输出结果和计算时间;
所述可编程逻辑系统包括:CNN-SVM流式架构加速器、AXI互联、AXI外设、DMA0和DMA1;所述主开关连接AXI外设,所述CNN-SVM流式架构加速器中的卷积计算单元进行卷积运算,所述CNN-SVM流式架构加速器中的池化计算单元将池化层和激活函数合并进行计算,CNN计算完成后,将CNN提取出来的特征向量进行展平,输入到分类器SVM中进行分类,最终输出分类结果;卷积计算单元的卷积核和分类器的权重参数由应用处理器进行配置;
DMA0将输入图像从外部存储器读取到所述加速器,DMA1负责初始化每层计算单元的卷积内核或权重参数,所述加速器内部的数据传输基于AXI-Stream接口;
所述CNN-SVM流式架构加速器基于通用的加速算子结构,所述加速算子结构为多个乘累加MAC节点组成的二维阵列,其中,垂直方向是输出通道的并行度Tn,水平方向是输出特征图的并行度Tc,在数据复用的情况下,输入特征图和权重的复用次数分别为Tn和Tc;所述二维阵列扩展为三维阵列,提高数据重用性;单个节点包括一个乘加MA树和一个特殊累加器ACC,MA树的输入实现了输入通道的并行度Tm,MA树的深度为Tm,特殊累加器ACC根据卷积核大小K或层类型自动调整累加项并生成累加结果,所述加速算子结构进行TcxTnxTm次乘累加操作。
优选地,当MA树为完整的二叉树结构,则DSP的利用率最大,针对于SVM分类器,仅需要在ACC之后添加额外的投票决策模块,剩余结构保持不变。
优选地,通过下式确定算子完成单层推理所需的时钟周期T:
Figure BDA0002772178060000021
其中,M为输入通道数,K为内核大小,Rout和Cout分别对应于输出特征图的行和列,Tr和Tc为输出特征图的行和列并行度。
优选地,基于FPGA的CNN-SVM资源高效型加速架构通过算子资源评估的模型确定资源消耗,所述模型的单个节点的参数包含输入数据的维度和类型,当输入数据的维数为Dim,则具有不同类型的单个节点消耗的DSP资源DType,通过下式表示不同类型的单个节点消耗的DSP资源DType:
Figure BDA0002772178060000022
通过下式生成算子结构的DSP估计值
Figure BDA0002772178060000023
Figure BDA0002772178060000031
其中,Dim为输入数据的维数,DType为单个节点消耗的DSP资源,type为数据精度,float32为单精度浮点数,int32为32位定点数,int16为16位定点数,int8为8位定点数;
Figure BDA0002772178060000032
为算子结构的DSP估计值;
DSP估计值取决于节点参数和复用次数,影响峰值吞吐量,通常硬件资源中DSP单元的数量是有限的,并且能够达到的峰值吞吐量为固定值。
优选地,基于FPGA的CNN-SVM资源高效型加速架构在加速时,BRAM用于临时缓冲和并行扩展,以最小的BRAM结构BRAM_18K作为评估模型的基本单位,直接内存访问DMA将输入功能图传输到WriteBRAM模块,然后以多位并行模式将其写入BRAM_18K;写入功能图后,WriteBRAM模块将一个半标志发送到ReadBRAM模块,ReadBRAM模块从BRAM_18K读取功能图,并发送到算子结构。
优选地,基于对BRAM的分析,建立了用于特征图重用和权重重用的BRAM估计模型,其中Rin和Cin分别是输入特征图的行和列,对于32位独立读写模式下的BRAM_18K,Depth的典型值为512,当数据尺寸非常小或并行参数非常大时,单个并行存储单元所占用的BRAM_18K数量忽略,而BRAM资源仅与位宽和并行度有关,通过下式表示特征图重用的BRAM估计值和权重重用的BRAM估计值:
Figure BDA0002772178060000033
Figure BDA0002772178060000034
其中,
Figure BDA0002772178060000035
为用于特征图重用的BRAM估计值,
Figure BDA0002772178060000036
为用于权重重用的BRAM估计值,Rin和Cin分别是输入特征图的行和列,Tr和Tc为输出特征图的行和列并行度,Depth为BRAM的深度,Width为数据的位宽。
本发明具有以下有益效果:
本发明提出了一种资源高效型加速架构,该加速架构可以充分利用数据重用特性,并适用于CNN-SVM混合算法中包括CNN,FC全连接层和SVM在内的不同类型的层。此外,,加速架构中设计的通用算子的流水线间隔可以保持在单个时钟周期从而可以提高加速器的计算效率。
附图说明
图1是通用算子结构图;
图2是通用算子的数据传输示意图;
图3是利用通用算子设计的适用于CNN-SVM混合算法的资源高效型加速器架构图。
具体实施方式
以下结合具体实施例,对本发明进行了详细说明。
具体实施例一:
根据图1至图3所示,本发明提供一种基于FPGA的CNN-SVM资源高效型加速架构,一种基于FPGA的CNN-SVM资源高效型加速架构,所述架构包括处理器系统和可编程逻辑系统;
所述处理器系统包括DDR存储控制器、SD/SDIO控制器、串口控制器、主开关和应用处理器;所述应用处理器进行数据调度和程序控制,所述SD/SDIO控制器和DDR存储控制器存储外部输入数据集和网络参数文件,所述串口控制器监测架构的输出结果和计算时间;
所述可编程逻辑系统包括:CNN-SVM流式架构加速器、AXI互联、AXI外设、DMA0和DMA1;所述主开关连接AXI外设,所述CNN-SVM流式架构加速器中的卷积计算单元进行卷积运算,所述CNN-SVM流式架构加速器中的池化计算单元将池化层和激活函数合并进行计算,CNN计算完成后,将CNN提取出来的特征向量进行展平,输入到分类器SVM中进行分类,最终输出分类结果;卷积计算单元的卷积核和分类器的权重参数由应用处理器进行配置;
本发明的关键点在于提出了一种通用的二维乘加阵列算子,并基于该算子构建了适用于CNN-SVM算法的资源高效型加速架构。该算子基于高度的数据重用特性,可以应用于不同类型的层,同时确保高效率的完整流程流水线。此外,本发明根据该算子构造了资源评估模型,可以准确地获得块随机存取存储器(BRAM)和数字信号处理(DSP)的资源消耗以及所需时间的估计,在该模型的指导下,极大提高了资源利用率和计算效率,完成了CNN-SVM算法的硬件加速。
DMA0将输入图像从外部存储器读取到所述加速器,DMA1负责初始化每层计算单元的卷积内核或权重参数,所述加速器内部的数据传输基于AXI-Stream接口;
所述CNN-SVM流式架构加速器基于通用的加速算子结构,所述加速算子结构为多个乘累加MAC节点组成的二维阵列,其中,垂直方向是输出通道的并行度Tn,水平方向是输出特征图的并行度Tc,在数据复用的情况下,输入特征图和权重的复用次数分别为Tn和Tc;所述二维阵列扩展为三维阵列,提高数据重用性;单个节点包括一个乘加MA树和一个特殊累加器ACC,MA树的输入实现了输入通道的并行度Tm,MA树的深度为Tm,特殊累加器ACC根据卷积核大小K或层类型自动调整累加项并生成累加结果,所述加速算子结构进行TcxTnxTm次乘累加操作。
当MA树为完整的二叉树结构,则DSP的利用率最大,针对于SVM分类器,仅需要在ACC之后添加额外的投票决策模块,剩余结构保持不变。
因此,本发明提出的通用算子结构可以应用于不同类型的网络层,并且可以充分复用输入数据。由于算子结构仅与输出特征图的维度有关,因此它也适用于其他大小的卷积核,而不受输入特征图大小或卷积核步长影响。对于某些特殊的卷积形式,只需要更改或调整MA树和ACC的顺序即可。通过下式确定算子完成单层推理所需的时钟周期T:
Figure BDA0002772178060000051
其中,M为输入通道数,K为内核大小,Rout和Cout分别对应于输出特征图的行和列,Tr和Tc为输出特征图的行和列并行度,。
为了充分利用有限的硬件资源,基于FPGA的CNN-SVM资源高效型加速架构通过算子资源评估的模型确定资源消耗,所述模型的单个节点的参数包含输入数据的维度和类型,当输入数据的维数为Dim,则具有不同类型的单个节点消耗的DSP资源DType,通过下式表示不同类型的单个节点消耗的DSP资源DType:
Figure BDA0002772178060000052
通过下式生成算子结构的DSP估计值
Figure BDA0002772178060000053
Figure BDA0002772178060000054
其中,Dim为输入数据的维数,DType为单个节点消耗的DSP资源,type为数据精度,float32为单精度浮点数,int32为32位定点数,int16为16位定点数,int8为8位定点数;
Figure BDA0002772178060000055
为算子结构的DSP估计值;
可以看出,DSP估计值取决于节点参数和复用次数,且直接影响峰值吞吐量。通常硬件资源中DSP单元的数量是有限的,并且能够达到的峰值吞吐量为固定值。而使用不同的网络部署时,核心的区别之处在于BRAM的利用率。
在加速器设计的部署阶段,BRAM通常用于临时缓冲和并行扩展。挖掘BRAM的潜在并行性是节省内存资源的有效方法。BRAM资源估计模型是部署中需要分析的。本发明以最小的BRAM结构(BRAM_18K)作为评估模型的基本单位。图2是基于特征图重用的算子结构的数据传输示意图。首先,直接内存访问(DMA)将输入功能图传输到WriteBRAM模块,然后以多位并行模式将其写入BRAM_18K。写入功能图后,WriteBRAM模块将一个半标志发送到ReadBRAM模块。ReadBRAM模块从BRAM_18K读取功能图,并将其发送到算子结构。在图2中,读写模块以循环交替的方式独立工作,从而最大程度地利用了BRAM位宽度和算子结构的效率。
基于FPGA的CNN-SVM资源高效型加速架构在加速时,BRAM用于临时缓冲和并行扩展,以最小的BRAM结构BRAM_18K作为评估模型的基本单位,直接内存访问DMA将输入功能图传输到WriteBRAM模块,然后以多位并行模式将其写入BRAM_18K;写入功能图后,WriteBRAM模块将一个半标志发送到ReadBRAM模块,ReadBRAM模块从BRAM_18K读取功能图,并发送到算子结构。
基于对BRAM的分析,建立了用于特征图重用和权重重用的BRAM估计模型,其中Rin和Cin分别是输入特征图的行和列,对于32位独立读写模式下的BRAM_18K,Depth的典型值为512,当数据尺寸非常小或并行参数非常大时,单个并行存储单元所占用的BRAM_18K数量忽略,而BRAM资源仅与位宽和并行度有关,通过下式表示特征图重用的BRAM估计值和权重重用的BRAM估计值:
Figure BDA0002772178060000061
Figure BDA0002772178060000062
其中,
Figure BDA0002772178060000063
为用于特征图重用的BRAM估计值,
Figure BDA0002772178060000064
为用于权重重用的BRAM估计值,Rin和Cin分别是输入特征图的行和列,Tr和Tc为输出特征图的行和列并行度,Depth为BRAM的深度,Width为数据的位宽。
本发明中CNN-SVM算法资源高效型加速架构的设计包括处理器系统(PS)和可编程逻辑(PL)两部分。如图3所示,处理器系统部分实现了控制逻辑和外部接口,包括应用处理器单元(APU):负责数据调度和程序控制,SD输入输出控制器(SDIO)和双倍数据速率存储器(DDR4):存储外部输入数据集和网络参数文件,通用异步接收器/发送器(UART):负责监测算法的输出结果和计算时间,还通过高性能可扩展接口(AXI)HPM0控制PL的状态。可编程逻辑部分实现了CNN-SVM硬件加速器,该加速器是系统架构的核心部分,其使用了本发明提出的通用算子进行构建,加速器通过AXI HP端口访问外部存储器,以执行与外部存储器的数据传输。
图3中的可编程逻辑部分实现了CNN-SVM硬件加速器,该加速器负责CNN-SVM算法的前向推理计算,是系统架构的核心部分。加速器设计为全网络固化策略的流型架构,这种流型架构中算法的不同网络层(如卷积层、池化层、SVM)各自被映射在相互独立的计算单元,计算单元采用本发明提出的通用算子构建,其负责进行各个网络层的推理计算,各个计算单元内部可以实现多个并行性包括功能图级别,输入通道级别和输出通道级别,不同计算单元之间通过流水线优化来提高层间计算并行度。
此外,加速器与处理器之间设计有控制接口,处理器系统可以控制加速器的启动(Start)、查看状态(Status)、查看计算的迭代次数(Iteration)、查看写回数据地址的偏移(Offset)等。DMA0和DMA1为加速器的数据传输模块,加速器在计算过程中,启用DMA0将输入图像从外部存储器读取到加速器,DMA1则负责初始化每层计算单元的卷积内核或权重参数,加速器内部的数据传输基于AXI-Stream接口,AXI-Stream是AXI通用总线的一种协议,其可以实现高速连续的数据传输。在加速器最后一层中,加速器可以根据需要选择全连接(FC)层或SVM作为分类器。加速器计算完成后,将算法输出的分类结果写到外部存储器中。
具体实施例二:
本实施例中使用本发明提出的资源高效型加速架构对CNN-SVM算法计算进行了加速。如图3所示,CNN-SVM算法的输入图片和参数配置文件存储在片外SD卡中,输入图片使用的是MNIST数据集,其包含10000张测试图片。处理器系统控制DMA0为可编程逻辑部分的加速器提供输入图片,控制DMA1为加速器的各个计算单元进行参数的配置。
可编程逻辑部分的CNN-SVM流式架构加速器的输入为28x28x1的图片,加速器中的卷积计算单元(卷积1、卷积2、卷积3)用来计算算法中的卷积运算,池化计算单元(池化1、池化2、池化3)对算法中的池化层和激活函数合并到一起进行计算,各个计算单元之间的计算结果传输为图2所示,其传输数据的具体维度如图3中所示。在算法的CNN部分计算完成后,将CNN提取出来的特征向量进行展平,输入到分类器(SVM)中进行分类,最终输出分类结果,卷积计算单元的卷积核和分类器的权重等参数都由处理器系统进行配置。
加速器各个层的计算单元是由本发明提出的通用算子进行实施,算子实施过程中,根据各个层的不同并行度进行具体的构建。如表1,其中R、C为特征图的高度和宽度,M、N为输出特征图和输入特征图的通道数,各个计算单元所使用算子的结构由并行度(Tc,Tm,Tn)确定,因此每个计算单元所使用的通用算子结构是不同的,这也说明了本发明提出的算子具有通用性和可扩展性,从而可以利用本发明提出的通用算子,根据算法不同层的具体参数进行计算单元的构建。此外,本实施例中根据本发明根据设计的通用算子提出的资源评估模型对BRAM和DSP的使用进行了评估,结果如表1所示,BRAM和DSP使用数量为13.5和316,CNN-SVM算法计算消耗的时钟周期为297,时钟频率设置为100MHz。
表1 CNN-SVM不同层的并行度参数表
Figure BDA0002772178060000081
表2中显示了本实施例中板级验证时相应的资源消耗,因为本实施例是在XAZU3EG平台下实施,因此表中的Available为该平台的资源约束条件。因为影响加速架构吞吐量的关键是DSP利用率,因此本实施例重点关注DSP利用率。从实施结果来看,DSP利用率大于80%。理想情况下,DSP利用率可以达到100%,但是随着网络并行度参数的不断扩展,DSP资源将大大增加,以便将并行性扩展到已部署的整个网络。换句话说,最大的DSP利用率取决于有限资源的数量和网络结构,这会导致无法在部署中使用所有DSP的现象。另一方面,由于架构中的算子使用了图2所示的数据传输方式来充分利用BRAM的位宽,因此在实施结果中BRAM利用率较低。此外,本实施例中CNN-SVM算法加速对10000张测试图片的计算时间为30.1ms,功耗仅为3.42W。由实验测试结果可知,本实施例在消耗极少量的BRAM资源下,充分利用了片上的DSP资源,完成了对CNN-SVM算法的资源高效型加速。
表2 CNN-SVM的资源使用
Figure BDA0002772178060000082
以上所述仅是一种基于FPGA的CNN-SVM资源高效型加速架构的优选实施方式,一种基于FPGA的CNN-SVM资源高效型加速架构的保护范围并不仅局限于上述实施例,凡属于该思路下的技术方案均属于本发明的保护范围。应当指出,对于本领域的技术人员来说,在不脱离本发明原理前提下的若干改进和变化,这些改进和变化也应视为本发明的保护范围。

Claims (6)

1.一种基于FPGA的CNN-SVM资源高效型加速架构,其特征是:所述架构包括处理器系统和可编程逻辑系统;
所述处理器系统包括DDR存储控制器、SD/SDIO控制器、串口控制器、主开关和应用处理器;所述应用处理器进行数据调度和程序控制,所述SD/SDIO控制器和DDR存储控制器存储外部输入数据集和网络参数文件,所述串口控制器监测架构的输出结果和计算时间;
所述可编程逻辑系统包括:CNN-SVM流式架构加速器、AXI互联、AXI外设、DMA0和DMA1;所述主开关连接AXI外设,所述CNN-SVM流式架构加速器中的卷积计算单元进行卷积运算,所述CNN-SVM流式架构加速器中的池化计算单元将池化层和激活函数合并进行计算,CNN计算完成后,将CNN提取出来的特征向量进行展平,输入到分类器SVM中进行分类,最终输出分类结果;卷积计算单元的卷积核和分类器的权重参数由应用处理器进行配置;
DMA0将输入图像从外部存储器读取到所述加速器,DMA1负责初始化每层计算单元的卷积内核或权重参数,所述加速器内部的数据传输基于AXI-Stream接口;
所述CNN-SVM流式架构加速器基于通用的加速算子结构,所述加速算子结构为多个乘累加MAC节点组成的二维阵列,其中,垂直方向是输出通道的并行度Tn,水平方向是输出特征图的并行度Tc,在数据复用的情况下,输入特征图和权重的复用次数分别为Tn和Tc;所述二维阵列扩展为三维阵列,提高数据重用性;单个节点包括一个乘加MA树和一个特殊累加器ACC,MA树的输入实现了输入通道的并行度Tm,MA树的深度为Tm,特殊累加器ACC根据卷积核大小K或层类型自动调整累加项并生成累加结果,所述加速算子结构进行TcxTnxTm次乘累加操作。
2.根据权利要求1所述的一种基于FPGA的CNN-SVM资源高效型加速架构,其特征是:当MA树为完整的二叉树结构,则DSP的利用率最大,针对于SVM分类器,仅需要在ACC之后添加额外的投票决策模块,剩余结构保持不变。
3.根据权利要求2所述的一种基于FPGA的CNN-SVM资源高效型加速架构,其特征是:通过下式确定算子完成单层推理所需的时钟周期T:
Figure FDA0002772178050000011
其中,M为输入通道数,K为内核大小,Rout和Cout分别对应于输出特征图的行和列,Tr和Tc为输出特征图的行和列并行度,。
4.根据权利要求1所述的一种基于FPGA的CNN-SVM资源高效型加速架构,其特征是:基于FPGA的CNN-SVM资源高效型加速架构通过算子资源评估的模型确定资源消耗,所述模型的单个节点的参数包含输入数据的维度和类型,当输入数据的维数为Dim,则具有不同类型的单个节点消耗的DSP资源DType,通过下式表示不同类型的单个节点消耗的DSP资源DType
Figure FDA0002772178050000021
通过下式生成算子结构的DSP估计值
Figure FDA0002772178050000022
Figure FDA0002772178050000023
其中,Dim为输入数据的维数,DType为单个节点消耗的DSP资源,type为数据精度,float32为单精度浮点数,int32为32位定点数,int16为16位定点数,int8为8位定点数;
Figure FDA0002772178050000024
为算子结构的DSP估计值;
DSP估计值取决于节点参数和复用次数,影响峰值吞吐量,通常硬件资源中DSP单元的数量是有限的,并且能够达到的峰值吞吐量为固定值。
5.根据权利要求1所述的一种基于FPGA的CNN-SVM资源高效型加速架构,其特征是:基于FPGA的CNN-SVM资源高效型加速架构在加速时,BRAM用于临时缓冲和并行扩展,以最小的BRAM结构BRAM_18K作为评估模型的基本单位,直接内存访问DMA将输入功能图传输到WriteBRAM模块,然后以多位并行模式将其写入BRAM_18K;写入功能图后,WriteBRAM模块将一个半标志发送到ReadBRAM模块,ReadBRAM模块从BRAM_18K读取功能图,并发送到算子结构。
6.根据权利要求1所述的一种基于FPGA的CNN-SVM资源高效型加速架构,其特征是:基于对BRAM的分析,建立了用于特征图重用和权重重用的BRAM估计模型,其中Rin和Cin分别是输入特征图的行和列,对于32位独立读写模式下的BRAM_18K,Depth的典型值为512,当数据尺寸非常小或并行参数非常大时,单个并行存储单元所占用的BRAM_18K数量忽略,而BRAM资源仅与位宽和并行度有关,通过下式表示特征图重用的BRAM估计值和权重重用的BRAM估计值:
Figure FDA0002772178050000025
Figure FDA0002772178050000026
其中,
Figure FDA0002772178050000027
为用于特征图重用的BRAM估计值,
Figure FDA0002772178050000028
为用于权重重用的BRAM估计值,Rin和Cin分别是输入特征图的行和列,Tr和Tc为输出特征图的行和列并行度,Depth为BRAM的深度,Width为数据的位宽。
CN202011252879.0A 2020-11-11 2020-11-11 一种基于fpga的cnn-svm资源高效型加速架构 Active CN112306951B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011252879.0A CN112306951B (zh) 2020-11-11 2020-11-11 一种基于fpga的cnn-svm资源高效型加速架构

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011252879.0A CN112306951B (zh) 2020-11-11 2020-11-11 一种基于fpga的cnn-svm资源高效型加速架构

Publications (2)

Publication Number Publication Date
CN112306951A CN112306951A (zh) 2021-02-02
CN112306951B true CN112306951B (zh) 2022-03-22

Family

ID=74325704

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011252879.0A Active CN112306951B (zh) 2020-11-11 2020-11-11 一种基于fpga的cnn-svm资源高效型加速架构

Country Status (1)

Country Link
CN (1) CN112306951B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112801285B (zh) * 2021-02-04 2024-01-26 南京微毫科技有限公司 一种基于fpga的高资源利用率cnn加速器及其加速方法
CN112989731B (zh) * 2021-03-22 2023-10-13 湖南大学 一种基于抽象语法树的集成电路建模获取方法及系统
CN116776979A (zh) * 2023-05-23 2023-09-19 阿里巴巴(中国)有限公司 一种推理加速方法、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109934335A (zh) * 2019-03-05 2019-06-25 清华大学 基于混合深度学习的高铁道岔故障诊断方法
CN111832276A (zh) * 2019-04-23 2020-10-27 国际商业机器公司 用于对话解交织的丰富消息嵌入

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8131659B2 (en) * 2008-09-25 2012-03-06 Microsoft Corporation Field-programmable gate array based accelerator system
US9971953B2 (en) * 2015-12-10 2018-05-15 Intel Corporation Visual recognition using deep learning attributes
US10970080B2 (en) * 2018-02-08 2021-04-06 Marvell Asia Pte, Ltd. Systems and methods for programmable hardware architecture for machine learning

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109934335A (zh) * 2019-03-05 2019-06-25 清华大学 基于混合深度学习的高铁道岔故障诊断方法
CN111832276A (zh) * 2019-04-23 2020-10-27 国际商业机器公司 用于对话解交织的丰富消息嵌入

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
An Accelerator Architecture of Changeable-Dimension Matrix Computing Method for SVM;Ruidong Wu;《MDPI》;20190130;第1-12页 *
Optimizing CNN-based Hyperspectral Image Classification on FPGAs;Shuanglong Liu;《Cornell University》;20190627;第1-8页 *
基于FPGA的CNN算法移植概述;清霜一梦;《博客园》;20180315;第1-2页 *
基于改进的CNN和SVM手势识别算法研究;吴晴;《中国优秀硕士学位论文全文数据库》;20190228;I138-1369 *
面向FPGA部署的CNN-SVM算法研究与实现;周彦臻;《电子测量与仪器学报》;20210415;第90-98页 *

Also Published As

Publication number Publication date
CN112306951A (zh) 2021-02-02

Similar Documents

Publication Publication Date Title
CN111459877B (zh) 基于FPGA加速的Winograd YOLOv2目标检测模型方法
Zhang et al. An fpga-based reconfigurable cnn accelerator for yolo
CN107657581B (zh) 一种卷积神经网络cnn硬件加速器及加速方法
CN112306951B (zh) 一种基于fpga的cnn-svm资源高效型加速架构
CN104899182B (zh) 一种支持可变分块的矩阵乘加速方法
CN108537331A (zh) 一种基于异步逻辑的可重构卷积神经网络加速电路
CN106779060A (zh) 一种适于硬件设计实现的深度卷积神经网络的计算方法
Kim et al. FPGA-based CNN inference accelerator synthesized from multi-threaded C software
CN108171317A (zh) 一种基于soc的数据复用卷积神经网络加速器
CN111488983A (zh) 一种基于fpga的轻量级cnn模型计算加速器
CN111105023B (zh) 数据流重构方法及可重构数据流处理器
CN104915322A (zh) 一种卷积神经网络硬件加速方法及其axi总线ip核
CN111752879B (zh) 一种基于卷积神经网络的加速系统、方法及存储介质
CN113240101B (zh) 卷积神经网络软硬件协同加速的异构SoC实现方法
US11842169B1 (en) Systolic multiply delayed accumulate processor architecture
CN114897133A (zh) 一种通用可配置的Transformer硬件加速器及其实现方法
CN108710505A (zh) 一种基于fpga的可扩展稀疏矩阵向量乘处理器
Min et al. NeuralHMC: An efficient HMC-based accelerator for deep neural networks
CN115688892A (zh) 一种稀疏权重Fused-Layer卷积加速器结构的FPGA实现方法
CN117973455A (zh) 基于fpga的卷积神经网络加速器实现方法
WO2022047802A1 (en) Processing-in-memory device and data processing method thereof
CN118485111A (zh) 脉冲神经网络的卷积资源调度装置、方法和设备
CN106407137A (zh) 基于邻域模型的协同过滤推荐算法的硬件加速器和方法
CN105608046A (zh) 基于MapReduce编程模型的多核处理器架构
Claus et al. High performance FPGA based optical flow calculation using the census transformation

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