CN114881217A - 一种基于fpga的通用型卷积神经网络加速器及其系统 - Google Patents
一种基于fpga的通用型卷积神经网络加速器及其系统 Download PDFInfo
- Publication number
- CN114881217A CN114881217A CN202210135910.5A CN202210135910A CN114881217A CN 114881217 A CN114881217 A CN 114881217A CN 202210135910 A CN202210135910 A CN 202210135910A CN 114881217 A CN114881217 A CN 114881217A
- Authority
- CN
- China
- Prior art keywords
- data
- convolution
- memory
- neural network
- convolutional neural
- 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
- 238000013527 convolutional neural network Methods 0.000 title claims abstract description 56
- 230000015654 memory Effects 0.000 claims abstract description 80
- 238000011176 pooling Methods 0.000 claims abstract description 44
- 238000004364 calculation method Methods 0.000 claims abstract description 38
- 230000004913 activation Effects 0.000 claims abstract description 21
- 230000001133 acceleration Effects 0.000 claims abstract description 17
- 238000013528 artificial neural network Methods 0.000 claims abstract description 7
- 238000012545 processing Methods 0.000 claims description 22
- 238000009825 accumulation Methods 0.000 claims description 16
- 238000006243 chemical reaction Methods 0.000 claims description 9
- 230000006870 function Effects 0.000 claims description 8
- 238000000034 method Methods 0.000 claims description 8
- 239000000872 buffer Substances 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 6
- 238000013139 quantization Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 claims 4
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims 2
- 238000013461 design Methods 0.000 abstract description 7
- 230000005540 biological transmission Effects 0.000 abstract description 6
- 238000013480 data collection Methods 0.000 abstract description 3
- 238000013500 data storage Methods 0.000 abstract description 2
- 230000003139 buffering effect Effects 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000011773 genetically engineered mouse model Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000012549 training 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种基于FPGA的通用型卷积神经网络加速器及其系统,涉及神经网络与边缘端加速系统设计领域,提出了一种基于Arria10SoCFPGA的卷积神经网络加速器,该加速器同时考虑了加速器性能,以及对标准卷积与DW(DepthWise)卷积的适配性,并且可以在Intel系列的SoCFPGA上移植,具有较为广阔的应用前景。本发明所述的系统包括:ARM处理器,DDR3存储器,AXI总线互联,卷积神经网络加速器系统控制模块,数据分发模块,卷积运算引擎模块,偏置激活模块,池化模块,输入/输出数据存储器及其控制模块,数据收集模块。为了提高系统的并行性,在数据分发模块采用1024bit数据对齐,实现数据的并行传输与计算,提升系统的计算效率与传输带宽。
Description
技术领域
本发明涉及一种基于FPGA的通用型卷积神经网络加速器系统,主要涉及神经网络与边缘端加速系统设计领域。
背景技术
随着人工智能技术的高速发展和广泛应用,研究者提出了各种各样的神经网络模型,如卷积神经网络、递归神经网络等;主要应用在图像识别、目标检测、语音分析、语义分割等领域。在计算机视觉领域,卷积神经网络(ConvolutionalNeuralNetworks,CNN)发挥着越来越重要的作用,是图像分类识别的重要算法。
但随着检测任务越来越复杂,CNN的深度也越来越大,计算复杂度也呈指数级增长,通用CPU已经无法满足CNN的计算需求。而GPU天然有着强大的并行计算能力,所以,对于CNN的训练过程一般都是采用GPU执行,但在移动场景下部署神经网络推理模型时,GPU的高成本和高功耗就无法满足场景需求了。
边缘计算是近年来兴起的一种在靠近数据源头的网络边缘提供智能存储、计算、分析等服务的计算模式;在移动场景下使用边缘计算平台来完成神经网络的推理过程,将会有一系列的好处。直接在数据采集端完成推理过程而不用回传到数据中心的服务器,大大减少了数据传输延时、控制信令开销;通过将推理任务卸载到边缘平台能够实现数据的实时处理,在实际应用中具有重要意义。
FPGA是一种具有高并行计算、配置灵活、功耗低、小巧便携等特点的可编程逻辑器件。其与CNN的高并行计算特点吻合;与CPU相比,由于其具有并行计算特点,其计算速度可以更快;与GPU相比,由于其运行低功耗更低。因此,在FPGA平台部署神经网络模型,充分利用FPGA的流水线计算和低功耗特点,是实现卷积神经网络硬件加速与模型部署的一种有效手段。
本发明的有益效果如下:该系统考虑了加速器的性能以及对于不同网络模型的适配性,具有广阔的应用场景。该系统根据卷积神经网络的并行性以及计算密集性,通过资源复用,并行处理和流水线设计,大大提高计算速度与资源利用率,从而提升推理速度。其支持8bit量化数据输入与32bit数据输出,且支持标准卷积与深度可分离卷积,具有一定的通用性。并且在IntelArria10系列SoCFPGA平台上进行了验证,对SSD-MobileNet-v1推理模型进行了加速,帧率可以达到6.7FPS。
发明内容
针对以上现有技术的不足,本发明提出一种基于FPGA的通用型卷积神经网络加速器系统,该系统根据卷积神经网络的并行性以及计算密集性,通过资源复用,并行处理和流水线设计,大大提高计算速度与资源利用率,从而提升推理速度。其支持8bit量化数据输入与32bit数据输出,且支持标准卷积与深度可分离卷积,具有一定的通用性。
为达到上述目的,本发明的技术方案是:
一种基于FPGA的通用型卷积神经网络加速器及其系统,其特征在于,包括:系统控制单元,数据转发单元,输入数据缓存单元,卷积处理单元,偏置激活单元,池化单元,输出数据缓存单元。
优选地,所述系统控制单元用于整个加速器系统的控制,包括数据加载、计算执行、数据输出;
所述数据转发单元用于数据位宽转换,包含Data_Scather与Data_Gather;
(1)Data_Scather模块接收PS端通过数据总线发送的数据,进行位宽转换后分发到共享存储器、私有存储器或权重存储器中;
(2)Data_Gather模块读取4个输出特征图存储器中的数据进行位宽转换后,通过数据总线发送到PS端的片外DDR3存储器缓存。
优选地,所述输入数据缓存单元主要用于对特征图数据和权重数据进行缓存,分别为共享特征图存储器、私有特征图存储器与权重存储器;当4个卷积核共享相同的特征图数据时,则加载特征图数据到Share_IFM,否则分别加载特征图数据到4个Private_IFM。
优选地,所述卷积处理单元用于对卷积神经网络中的卷积层或全连接层进行计算,每个卷积核通过各自的总线接口,读取存储器中的数据执行计算,由系统控制单元控制卷积类型、所需要处理的数据量。
优选地,卷积计算单元包含4个卷积核,4个卷积核可以独立并行工作,具有较高的并行度;每个卷积核由64个DSP乘法器和63个加法器构成一个乘加树结构,该乘加树具有5级流水,共有6级输出,能够对乘加树的每一级进行独立输出,分别输出1、2、4、16、64个结果。
优选地,所述偏置激活单元用于对卷积神经网络中的偏置层或者激活层进行计算,支持ReLu激活;当执行偏置操作时,从偏置控制寄存器读取偏置值进行偏置计算之后,输出到下一级处理单元。
优选地,所述池化单元用于对卷积神经网络中的池化层进行计算,支持最大值池化与平均值池化两种模式、池化尺寸为2×2、池化步长为2,每个池化计算模块包含两个比较单元用于实现最大值池化,一个4输入的累加单元用于实现平均池化;
所述的输出数据缓存单元主要用于对卷积处理单元的输出结果进行缓存,而且带有累加功能,选择是否对多个通道的输出结果进行累加后缓存,对于标准卷积,需要将多个卷积核卷积结果累加后得到一个有效输出特征图,若是深度可分离卷积则不需要累加;
将累加功能放在输出特征图存储器侧,由系统控制单元控制存储器侧是否对当前层卷积结果进行累加后缓存,直至当前层的部分计算全部完成后,从4个Private_OFM存储器中读取数据缓存到片外DDR3存储器中。
一种基于FPGA的通用型卷积神经网络加速系统,其特征在于:
1)将预先训练好的卷积神经网络推理模型与参数转换成加速系统能够识别的命令参数以及权重数据;
2)在系统初始化阶段预先对float32格式的权重数据量化为8bit整型数据,将得到的量化权重缓存到片外DDR3存储器中;对推理模型进行解析,得到推理模型每一层的模型参数并保存到ARM处理器内存中;
3)在对图像进行推理时,ARM处理器对图像数据进行8bit量化,根据模型参数对图像数据进行分片与排序;
4)在开始执行推理流程时,PS端通过数据总线在向加速器加载数据,若是执行标准卷积则向Share_IFM片上存储器加载相同的图像数据,向Weight片上存储器加载4组卷积核参数,以实现4个卷积核对图像数据复用;若是执行DW卷积则向4个Private_IFM私有存储器加载4组图像数据,向Weight片上存储器加载4组卷积核参数,以实现4个卷积核独立工作。
5)数据加载完成后,PS端通过控制总线发送命令,启动4个卷积核开始执行卷积运算,由4个卷积核分别从Share_IFM存储器或者Private_IFM私有存储器加载图像数据,从Weight存储器加载权重数据,并将计算结果缓存到OFM输出特征图存储器进行缓存;
6)在将数据缓存到OFM输出特征图存储器时,会根据当前卷积层的类型,选择是否对卷积核输出结果进行累加后缓存;
7)在执行完卷积操作后,PS端通过控制总线发送命令通知加速器是否需要执行偏置、激活、池化,依次调用相应模块处理后,通过数据总线读取PL端的部分推理结果,缓存到片外DDR3存储器;
8)反复执行步骤4)至步骤7),直至整幅图片推理完成;最后由ARM处理器对推理结果进行输出。
本发明的技术原理及有益效果如下:
本发明设计的通用型卷积神经网络加速系统,在InelArria10系列FPGA芯片上实现了对卷积神经网络的高速计算,理论上可以对各种卷积神经网络进行加速,能够适配各种常见的卷积神经网络模型,但是需要相应的底层驱动与应用软件的配合才能充分发挥系统的加速性能。本加速器相比于CPU与GPU等具有更高的能效比与便携性,具有较高的实际参考价值,在实际使用中,可以根据本发明的架构,结合网络模型结构合理地设计应用软件与量化策略,能够有效地发挥加速系统的加速性能。
该系统考虑了加速器的性能以及对于不同网络模型的适配性,具有广阔的应用场景。该系统根据卷积神经网络的并行性以及计算密集性,通过资源复用,并行处理和流水线设计,大大提高计算速度与资源利用率,从而提升推理速度。其支持8bit量化数据输入与32bit数据输出,且支持标准卷积与深度可分离卷积,具有一定的通用性。并且在IntelArria10系列SoCFPGA平台上进行了验证,对SSD-MobileNet-v1推理模型进行了加速,帧率可以达到6.7FPS。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的其中4幅,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明加速器整体架构;
图2为本发明卷积计算单元结构;
图3为本发明乘加树结构;
图4为本发明输出特征图存储器结构。
具体实施方式
下面将结合附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的较佳实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例
如图1所示,本发明实施例本发明提出的卷积神经网络加速器,实现了4个卷积核并行计算的加速系统,并且每个卷积核都可以独立运行,可以支持多种类型的卷积神经网络模型,在通用性方面具有不错的表现。单个卷积核内部采用流水线结构与GEMM方式实现卷积计算,能够支持不同KernelSize大小的卷积计算;四个卷积核在每个时钟周期最大可以执行512次乘累加操作。并且设计了片上存储器结构,减少片外数据加载与缓存,实现了数据复用,从而提高了系统运算效率。
该系统考虑了加速器的性能以及对于不同网络模型的适配性,具有广阔的应用场景。该系统根据卷积神经网络的并行性以及计算密集性,通过资源复用,并行处理和流水线设计,大大提高计算速度与资源利用率,从而提升推理速度。其支持8bit量化数据输入与32bit数据输出,且支持标准卷积与深度可分离卷积,具有一定的通用性。并且在IntelArria10系列SoCFPGA平台上进行了验证,对SSD-MobileNet-v1推理模型进行了加速,帧率可以达到6.7FPS。
本发明设计的基于FPGA的卷积神经网络加速器,主要包含以下部分:系统控制单元,数据转发单元,输入数据缓存单元,卷积处理单元,偏置激活单元,池化单元,输出数据缓存单元。
其中,所述的系统控制单元用于整个加速器系统的控制,包括数据加载、计算执行、数据输出;
所述的数据转发单元用于数据位宽转换,包括两个功能:1)、将PS端通过数据总线发送的数据,进行位宽转换后分发至共享存储器(Share_IFM)、私有存储器(Private_IFM)或权重(Weight)存储器;2)、读取4个输出特征图(Private_OFM)存储器中的数据进行位宽转换后,通过数据总线发送到PS端的片外DDR3存储器缓存;
所述输入数据缓存单元主要用于对特征图数据和权重数据进行缓存,以供后续计算模块读取数据进行处理;
所述的卷积处理单元用于对卷积神经网络中的卷积层或全连接层进行计算,每个卷积核通过各自的总线接口,读取存储器中的数据执行计算,由系统控制单元控制卷积类型、所需要处理的数据量;
所述的偏置激活单元用于对卷积神经网络中的偏置层或者激活层进行计算,支持ReLu激活;
所述的池化单元用于对卷积神经网络中的池化层进行计算,支持最大值池化与平均值池化两种模式、池化尺寸为2×2、池化步长为2,由系统控制单元控制池化模式;
所述的输出数据缓存单元主要用于对卷积处理单元的输出结果进行缓存,而且带有累加功能,可以选择是否对多个通道的输出结果进行累加后缓存。
该系统包括了SoCFPGA芯片、片外存储器DDR3芯片;通过软件与硬件的协调,实现卷积神经网络的加速计算;
所述SoCFPGA芯片用于加速系统的实现以及算法加速过程控制;片外存储器DDR3芯片用于存储卷积神经网络的中间特征图数据、权重参数与偏置参数;
SoCFPGA芯片包含了ARM-Coretex-A9双核处理器,FPGA,DDR3控制器,AXI总线互联;
其中,所述ARM-Coretex-A9双核处理器用于运行用户软件,执行卷积神经网络算法调度,控制FPGA推理卷积神经网络模型的过程;
所述FPGA包含大量可编程逻辑资源,DSP乘法器单元,片上SRAM存储器,用于实现卷积计算,偏置计算与激活计算加速单元电路配置;
所述DDR3控制器用于通过AXI总线将中间特征图数据写入到片外存储器DDR3中,以及从所述片外DDR3存储器读取权重数据与偏置数据;
所述AXI总线互联则是用于提供统一的总线接口,以供ARM-Coretex-A9双核处理器通过该总线接口访问FPGA与片外DDR3存储器。
其中,所述的系统控制单元主要包含5个状态控制寄存器,用于接收PS端推理模型的各种控制命令,控制加速系统执行相应的计算以及数据加载、输出。主要包括:1)、数据加载控制寄存器:用于控制加速器接收缓存数据、指示接收的数据类型,以及需要接收的数据批次;2)、加速器数据输出控制寄存器:用于控制加速器输出特征图数据,以及需要输出的数据量;3)、卷积处理单元控制寄存器:用于控制卷积处理单元开始执行卷积计算、卷积核尺寸、当前卷积是否需要累加,以及需要处理的卷积计算批次;4)、偏置激活单元控制寄存器:用于控制偏置单元的偏置使能、存储偏置值,激活使能;5)、池化单元控制寄存器:用于控制池化使能以及池化类型,仅支持2×2大小的池化操作。通过控制这几个寄存器,可以实现对整个加速器系统的控制。
所述的数据转发单元包含两个模块:Data_Scather与Data_Gather;⑴、Data_Scather模块接收PS端通过数据总线发送的数据,进行位宽转换后分发到共享存储器(Share_IFM)、私有存储器(Private_IFM)或权重(Weight)存储器中。⑵、Data_Gather模块读取4个输出特征图(Private_OFM)存储器中的数据进行位宽转换后,通过数据总线发送到PS端的片外DDR3存储器缓存。
所述输入数据缓存单元主要用于对特征图数据和权重数据进行缓存,分别为共享特征图存储器(Share_IFM)、私有特征图存储器(Private_IFM)与权重存储器(Weight);当4个卷积核共享相同的特征图数据时,则加载特征图数据到Share_IFM,否则分别加载特征图数据到4个Private_IFM;由于一般每个卷积层的卷积核权重数据量比较少,因此,可以将所有的卷积核权重数据加载至Weight存储器。
所述的卷积处理单元用于对卷积神经网络中的卷积层或全连接层进行计算;卷积计算单元包含4个卷积核,4个卷积核可以独立并行工作,具有较高的并行度;每个卷积核由64个DSP乘法器和63个加法器构成一个乘加树结构,该乘加树具有5级流水,共有6级输出,能够对乘加树的每一级进行独立输出,分别输出1、2、4、16、64个结果,对不同Kernel-Size具有较高的卷积效率。而且,通过对DSP块的复用,使得每个DSP可以同时计算两路8bit乘法运算。通过流水线设计与DSP复用,每个卷积核最大可以同时计算128个乘法计算和127个加法计算,具有较高的DSP利用率。在开始卷积时,由卷积核通过各自的总线接口通过相应的存储器读取数据进行计算。
所述的偏置激活单元用于对卷积神经网络中的偏置层或者激活层进行计算,可以采用层融合的方式对卷积层的输出特征图直接进行偏置或ReLu激活,也可以单独对输入特征图进行偏置或ReLu激活。当执行偏置操作时,从偏置控制寄存器读取偏置值进行偏置计算之后,输出到下一级处理单元。
所述的池化单元用于对卷积神经网络中的池化层进行计算,支持最大值池化和平均池化,池化尺寸为2×2,步长为2。每个池化计算模块包含两个比较单元用于实现最大值池化,一个4输入的累加单元用于实现平均池化。
所述的输出数据缓存单元主要用于对4个卷积核的输出结果进行缓存,而且带有累加功能,可以选择是否对多个通道的输出结果进行累加。对于标准卷积,
需要将多个卷积核卷积结果累加后得到一个有效输出特征图,若是深度可分离卷积则不需要累加。因此,将累加功能放在输出特征图存储器侧,由系统控制单元控制存储器侧是否对当前层卷积结果进行累加后缓存。直至当前层的部分计算全部完成后,从4个Private_OFM存储器中读取数据缓存到片外DDR3存储器中,以提高数据传输效率。
本发明的有益效果:本发明设计的通用型卷积神经网络加速系统,在InelArria10系列FPGA芯片上实现了对卷积神经网络的高速计算,理论上可以对各种卷积神经网络进行加速,能够适配各种常见的卷积神经网络模型,但是需要相应的底层驱动与应用软件的配合才能充分发挥系统的加速性能。本加速器相比于CPU与GPU等具有更高的能效比与便携性,具有较高的实际参考价值,在实际使用中,可以根据本发明的架构,结合网络模型结构合理地设计应用软件与量化策略,能够有效地发挥加速系统的加速性能。
该加速器同时考虑了加速器性能,以及对标准卷积与DW(DepthWise)卷积的适配性,并且可以在Intel系列的SoCFPGA上移植,具有较为广阔的应用前景。本发明所述的系统包括:ARM处理器,DDR3存储器,AXI总线互联,卷积神经网络加速器系统控制模块,数据分发模块,卷积运算引擎模块,偏置激活模块,池化模块,输入/输出数据存储器及其控制模块,数据收集模块。为了提高系统的并行性,在数据分发模块采用1024bit数据对齐,实现数据的并行传输与计算,提升系统的计算效率与传输带宽。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于FPGA的通用型卷积神经网络加速器,其特征在于,包括:系统控制单元,数据转发单元,输入数据缓存单元,卷积处理单元,偏置激活单元,池化单元和输出数据缓存单元。
2.根据权利要求1所述的一种基于FPGA的通用型卷积神经网络加速器系统,其特征在于:
所述系统控制单元用于整个加速器系统的控制,包括数据加载、计算执行、数据输出;
所述数据转发单元用于数据位宽转换,包含Data_Scather与Data_Gather;
(1)Data_Scather模块接收PS端通过数据总线发送的数据,进行位宽转换后分发到共享存储器、私有存储器或权重存储器中;
(2)Data_Gather模块读取4个输出特征图存储器中的数据进行位宽转换后,通过数据总线发送到PS端的片外DDR3存储器缓存。
3.根据权利要求1所述的一种基于FPGA的通用型卷积神经网络加速器系统,其特征在于:
所述输入数据缓存单元主要用于对特征图数据和权重数据进行缓存,分别为共享特征图存储器、私有特征图存储器与权重存储器;当4个卷积核共享相同的特征图数据时,则加载特征图数据到Share_IFM,否则分别加载特征图数据到4个Private_IFM。
4.根据权利要求1所述的一种基于FPGA的通用型卷积神经网络加速器系统,其特征在于:所述卷积处理单元用于对卷积神经网络中的卷积层或全连接层进行计算,每个卷积核通过各自的总线接口,读取存储器中的数据执行计算,由系统控制单元控制卷积类型、所需要处理的数据量。
5.根据权利要求4所述的一种基于FPGA的通用型卷积神经网络加速器系统,其特征在于:卷积计算单元包含4个卷积核,4个卷积核可以独立并行工作,具有较高的并行度;每个卷积核由64个DSP乘法器和63个加法器构成一个乘加树结构,该乘加树具有5级流水,共有6级输出,能够对乘加树的每一级进行独立输出,分别输出1、2、4、16、64个结果。
6.根据权利要求1所述的一种基于FPGA的通用型卷积神经网络加速器系统,其特征在于:所述偏置激活单元用于对卷积神经网络中的偏置层或者激活层进行计算,支持ReLu激活;当执行偏置操作时,从偏置控制寄存器读取偏置值进行偏置计算之后,输出到下一级处理单元。
7.根据权利要求1所述的一种基于FPGA的通用型卷积神经网络加速器系统,其特征在于:所述池化单元用于对卷积神经网络中的池化层进行计算,支持最大值池化与平均值池化两种模式、池化尺寸为2×2、池化步长为2,每个池化计算模块包含两个比较单元用于实现最大值池化,一个包含两级流水的累加单元实现四输入的平均池化;
所述的输出数据缓存单元主要用于对卷积处理单元的输出结果进行缓存,而且带有累加功能,选择是否对多个通道的输出结果进行累加后缓存,对于标准卷积,需要将多个卷积核卷积结果累加后得到一个有效输出特征图,若是深度可分离卷积则不需要累加;
将累加功能放在输出特征图存储器侧,由系统控制单元控制存储器侧是否对当前层卷积结果进行累加后缓存,直至当前层的部分计算全部完成后,从4个Private_OFM存储器中读取数据缓存到片外DDR3存储器中。
8.一种基于FPGA的通用型卷积神经网络加速系统,其特征在于:
1)将预先训练好的卷积神经网络推理模型与参数转换成加速系统能够识别的命令参数以及权重数据;
2)在系统初始化阶段预先对float32格式的权重数据量化为8bit整型数据,将得到的量化权重缓存到片外DDR3存储器中;对推理模型进行解析,得到推理模型每一层的模型参数并保存到ARM处理器内存中;
3)在对图像进行推理时,ARM处理器对图像数据进行8bit量化,根据模型参数对图像数据进行分片与排序;
4)在开始执行推理流程时,PS端通过数据总线在向加速器加载数据,若是执行标准卷积则向Share_IFM片上存储器加载相同的图像数据,向Weight片上存储器加载4组卷积核参数,以实现4个卷积核对图像数据复用;若是执行DW卷积则向4个Private_IFM私有存储器加载4组图像数据,向Weight片上存储器加载4组卷积核参数,以实现4个卷积核独立工作;
5)数据加载完成后,PS端通过控制总线发送命令,启动4个卷积核开始执行卷积运算,由4个卷积核分别从Share_IFM存储器或者Private_IFM私有存储器加载图像数据,从Weight存储器加载权重数据,并将计算结果缓存到OFM输出特征图存储器进行缓存;
6)在将数据缓存到OFM输出特征图存储器时,会根据当前卷积层的类型,选择是否对卷积核输出结果进行累加后缓存;
7)在执行完卷积操作后,PS端通过控制总线发送命令通知加速器是否需要执行偏置、激活、池化,依次调用相应模块处理后,通过数据总线读取PL端的部分推理结果,缓存到片外DDR3存储器;
8)反复执行步骤4)至步骤7),直至整幅图片推理完成;最后由ARM处理器对推理结果进行输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210135910.5A CN114881217A (zh) | 2022-02-15 | 2022-02-15 | 一种基于fpga的通用型卷积神经网络加速器及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210135910.5A CN114881217A (zh) | 2022-02-15 | 2022-02-15 | 一种基于fpga的通用型卷积神经网络加速器及其系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114881217A true CN114881217A (zh) | 2022-08-09 |
Family
ID=82667548
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210135910.5A Pending CN114881217A (zh) | 2022-02-15 | 2022-02-15 | 一种基于fpga的通用型卷积神经网络加速器及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114881217A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118070855A (zh) * | 2024-04-18 | 2024-05-24 | 南京邮电大学 | 一种基于risc-v架构的卷积神经网络加速器 |
CN118350429A (zh) * | 2024-06-12 | 2024-07-16 | 山东浪潮科学研究院有限公司 | 基于risc-v的多模式卷积神经网络加速器及加速方法 |
CN118350982A (zh) * | 2024-06-18 | 2024-07-16 | 北京理工大学 | 一种高光谱感知处理系统 |
-
2022
- 2022-02-15 CN CN202210135910.5A patent/CN114881217A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118070855A (zh) * | 2024-04-18 | 2024-05-24 | 南京邮电大学 | 一种基于risc-v架构的卷积神经网络加速器 |
CN118350429A (zh) * | 2024-06-12 | 2024-07-16 | 山东浪潮科学研究院有限公司 | 基于risc-v的多模式卷积神经网络加速器及加速方法 |
CN118350982A (zh) * | 2024-06-18 | 2024-07-16 | 北京理工大学 | 一种高光谱感知处理系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111459877B (zh) | 基于FPGA加速的Winograd YOLOv2目标检测模型方法 | |
CN111967468B (zh) | 一种基于fpga的轻量级目标检测神经网络的实现方法 | |
CN109284817B (zh) | 深度可分离卷积神经网络处理架构/方法/系统及介质 | |
CN114881217A (zh) | 一种基于fpga的通用型卷积神经网络加速器及其系统 | |
CN112116084A (zh) | 可重构平台上固化全网络层的卷积神经网络硬件加速器 | |
CN110348574B (zh) | 一种基于zynq的通用卷积神经网络加速结构及设计方法 | |
CN108764466B (zh) | 基于现场可编程门阵列的卷积神经网络硬件及其加速方法 | |
CN109447241B (zh) | 一种面向物联网领域的动态可重构卷积神经网络加速器架构 | |
CN113033794B (zh) | 基于深度可分离卷积的轻量级神经网络硬件加速器 | |
CN111582465B (zh) | 基于fpga的卷积神经网络加速处理系统、方法以及终端 | |
CN113240101B (zh) | 卷积神经网络软硬件协同加速的异构SoC实现方法 | |
Sun et al. | A high-performance accelerator for large-scale convolutional neural networks | |
Shahshahani et al. | Memory optimization techniques for fpga based cnn implementations | |
CN114897133A (zh) | 一种通用可配置的Transformer硬件加速器及其实现方法 | |
CN113792621B (zh) | 一种基于fpga的目标检测加速器设计方法 | |
CN115423081A (zh) | 一种基于fpga的cnn_lstm算法的神经网络加速器 | |
CN110598844A (zh) | 一种基于fpga的并行卷积神经网络加速器及加速方法 | |
CN109472734B (zh) | 一种基于fpga的目标检测网络及其实现方法 | |
CN118014022A (zh) | 面向深度学习的fpga通用异构加速方法及设备 | |
CN111738432B (zh) | 一种支持自适应并行计算的神经网络处理电路 | |
CN118246491A (zh) | 一种基于Winograd算法的神经网络加速器系统 | |
Bai et al. | An OpenCL-based FPGA accelerator with the Winograd’s minimal filtering algorithm for convolution neuron networks | |
CN114595813B (zh) | 异构加速处理器及数据计算方法 | |
CN117632844A (zh) | 一种可重构ai算法硬件加速器 | |
CN115309364A (zh) | 一种基于cnn的可配置目标检测硬件加速优化方法 |
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 |