CN112070210A - 一种基于fpga的多并行策略卷积网络加速器 - Google Patents

一种基于fpga的多并行策略卷积网络加速器 Download PDF

Info

Publication number
CN112070210A
CN112070210A CN202010841322.4A CN202010841322A CN112070210A CN 112070210 A CN112070210 A CN 112070210A CN 202010841322 A CN202010841322 A CN 202010841322A CN 112070210 A CN112070210 A CN 112070210A
Authority
CN
China
Prior art keywords
layer
convolution
parallel
pooling
parallelism
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
CN202010841322.4A
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.)
Chengdu Star Innovation Technology Co ltd
Original Assignee
Chengdu Star Innovation Technology Co ltd
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 Chengdu Star Innovation Technology Co ltd filed Critical Chengdu Star Innovation Technology Co ltd
Priority to CN202010841322.4A priority Critical patent/CN112070210A/zh
Publication of CN112070210A publication Critical patent/CN112070210A/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/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/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

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

Abstract

本发明公开了一种基于FPGA的多并行策略卷积网络加速器,涉及网络计算领域。本发明包括单层网络计算结构,所述单层网络计算结构包括BN层、卷积层、激活层和池化层,这四层网络形成流水线结构,BN层,对输入的数据进行合并;卷积层,进行大量的乘法以及加法运算;所述卷积层包括第一层卷积、中间层卷积和最后一层卷积,并且使用输入并行、像素并行以及输出并行中一种或者多种进行卷积运算;激活层以及池化层,将卷积层的输出结果进行流水计算;经过池化、激活后的最终结果存到随机存储器RAM中。本发明组合了三种并行结构,能分别任意配置不同的并行度,具备高度的灵活性,自由组合,实现较高的并行处理效率。

Description

一种基于FPGA的多并行策略卷积网络加速器
技术领域
本发明涉及网络计算领域,具体涉及一种基于FPGA的多并行策略卷积网络加速器。
背景技术
近年来,深度学习大大加速了机器学习和人工智能的发展且在各个研究领域和商业应用都取得了显著的成效。
现场可编程门列阵(Field Programmable Gate Array,FPGA)是深度学习算法嵌入式实现的首选平台之一。FPGA功耗低,有一定的并行度,并且FPGA专注于解决算法的实时性问题。
FPGA加速器可以分为定点型加速器和浮点型加速器。定点型加速器主要针对于卷积计算过程设计并行加速单元,实现高效的卷积计算。浮点型加速器同样也针对于卷积计算过程设计并行加速单元进行计算加速,或通过傅里叶变化,将卷积计算转换为更适合硬件并行实现的过程。浮点型加速器计算效率低于定点型加速器,而定点型加速器常忽略定点网络的精度问题。为了解决精度问题,现有的量化方法更多偏向于软件实现,不考虑FGPA的计算特点,计算复杂度较高,实现效率较低。
针对上述问题,现有办法为提出Google(IAO),采用全整型(Integer ArithmeticOnly,IAO)方法计算表达网络的前向推理过程,既满足FPGA平台的计算特点,也保证网络量化后的精度,但存在计算冗余问题。所以,为了满足网络的推理计算速度,提出一种基于FPGA的多并行策略卷积网络加速器
发明内容
本发明的目的在于:提供了一种基于FPGA的多并行策略卷积网络加速器,组合了三种并行结构:输入并行、像素并行以及输出并行,这三种并行结构能分别任意配置不同的并行度,具备高度的灵活性,可针对不同的目标设备自由组合,实现较高的并行处理效率。
本发明采用的技术方案如下:
本发明是一种基于FPGA的多并行策略卷积网络加速器,包括单层网络计算结构,所述单层网络计算结构包括BN层、卷积层、激活层和池化层,这四层网络形成流水线结构,
BN层,对输入的数据进行合并;
卷积层,进行大量的乘法以及加法运算;所述卷积层包括第一层卷积、中间层卷积和最后一层卷积,并且使用输入并行、像素并行以及输出并行中一种或者多种进行卷积运算;
激活层以及池化层,将卷积层的输出结果进行流水计算;
经过池化、激活后的最终结果存到随机存储器RAM中。
进一步的,所述输入并行为利用特征模板并行处理N幅输入的特征图,输入特征图按照逐行逐列的顺序进入行缓存中,在每个行缓存的出口处获得特征模板大小的数据;
所述像素并行为同时完成多个连续像素的卷积过程,采用8bit像素策略;
所述输出并行能并行处理N幅输入特征图,相同的输入特征图与N组输出通道的权重计算卷积,得到不同的输出特征。
进一步的,所述特征模板大小设定为3×3。
进一步的,所述第一层卷积处理过程的特征模板大小为3×3,处理RGB图像,使用输入并行实现整个卷积过程;
所述中间层卷积处理过程的特征模板大小为3×3,兼容处理不同的激活、池化过程,使用输入并行、像素并行和输出并行这三种并行组合模式实现卷积过程;
所述最后一层卷积处理过程的特征模板大小为1×1,无需激活、池化过程。
进一步的,所述激活层采用线性整流函数对卷积层输出的结果进行激活处理,所述池化层采用2×2的滑动窗进行池化处理。
进一步的,所述池化处理的步长为1,其每行每列均对应输出像素。
进一步的,所述池化处理的步长为2,其隔行隔列输出一个像素。
综上所述,由于采用了本技术方案,本发明的有益效果是:
1.本发明是一种基于FPGA的多并行策略卷积网络加速器,像素并行结构中采用8bit像素策略,降低计算资源的使用,解决计算冗余的问题,提高计算速度。
2.本发明是一种基于FPGA的多并行策略卷积网络加速器,包括BN层、卷积层、激活层和池化层,并且卷积层中组合了输入并行、像素并行以及输出并行三种并行结构;这三种并行结构能分别任意配置不同的并行度,具备高度的灵活性,可针对不同的目标设备自由组合,实现较高的并行处理效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图,本说明书附图中的各个部件的比例关系不代表实际选材设计时的比例关系,其仅仅为结构或者位置的示意图,其中:
图1是本发明的结构流程图;
图2是输入并行的处理过程图;
图3是像素并行的处理过程图;
图4是输出并行的处理过程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明,即所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
下面结合附图对本发明作详细说明。
如图1所示,本发明是一种基于FPGA的多并行策略卷积网络加速器,包括单层网络计算结构,所述单层网络计算结构包括BN层、卷积层、激活层和池化层,这四层网络形成流水线结构,
BN层,对输入的数据进行合并;
卷积层,进行大量的乘法以及加法运算;所述卷积层包括第一层卷积、中间层卷积和最后一层卷积,并且使用输入并行、像素并行以及输出并行中一种或者多种进行卷积运算;
激活层以及池化层,将卷积层的输出结果进行流水计算;
经过池化、激活后的最终结果存到随机存储器RAM中。
实施例一
如图2所示,所述输入并行为利用特征模板并行处理N幅输入的特征图,输入特征图按照逐行逐列的顺序进入行缓存中,每存满一个行缓存时,就把上一行的数据灌入下一个行缓存,随着像素的流动,在每个行缓存的出口处获得特征模板大小的数据;
如图3所示,所述像素并行为同时完成多个连续像素的卷积过程,采用8bit像素策略;顶层接口为32bit输入,利用大小为3×3的特征模板能存储同时进行4个像素卷积过程所需要的输入特征图。
如图4所示,所述输出并行能并行处理N幅输入特征图,相同的输入特征图与N组输出通道的权重计算卷积,得到不同的输出特征。在获取输入特征图的前提下,通过载入不同输入特征图对应的权重完成不同输出特征的计算过程。
具体的,所述特征模板大小设定为3×3。
进一步的,所述第一层卷积处理过程的特征模板大小为3×3,处理RGB图像,使用输入并行实现整个卷积过程;每个周期能同时输入RGB图像的数据。
所述中间层卷积处理过程的特征模板大小为3×3,兼容处理不同的激活、池化过程,使用输入并行、像素并行和输出并行这三种并行组合模式实现卷积过程;
所述最后一层卷积处理过程的特征模板大小为1×1,无需激活、池化过程。
实施例二
本实施例是对本发明的进一步说明。
所述激活层采用线性整流函数对卷积层输出的结果进行激活处理,所述池化层采用2×2的滑动窗进行池化处理。这里的滑动窗也等同于特征模板。
线性整流函数为:
Figure BDA0002641553340000041
进一步的,所述池化处理的步长为1,其每行每列均对应输出像素。
进一步的,所述池化处理的步长为2,其隔行隔列输出一个像素。
本发明的加速器包括BN(Batch Normalization,BN)层、卷积层、激活层和池化层,并且卷积层中组合了输入并行、像素并行以及输出并行三种并行结构;这三种并行结构能分别任意配置不同的并行度,具备高度的灵活性,可针对不同的目标设备自由组合,实现较高的并行处理效率,并且像素并行结构中采用8bit像素策略,降低计算资源的使用,解决计算冗余的问题,提高计算速度。
以上所述,仅为本发明的优选实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域的技术人员在本发明所揭露的技术范围内,可不经过创造性劳动想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书所限定的保护范围为准。

Claims (7)

1.一种基于FPGA的多并行策略卷积网络加速器,其特征在于:包括单层网络计算结构,所述单层网络计算结构包括BN层、卷积层、激活层和池化层,这四层网络形成流水线结构,
BN层,对输入的数据进行合并;
卷积层,进行大量的乘法以及加法运算;所述卷积层包括第一层卷积、中间层卷积和最后一层卷积,并且使用输入并行、像素并行以及输出并行中一种或者多种进行卷积运算;
激活层以及池化层,将卷积层的输出结果进行流水计算;
经过池化、激活后的最终结果存到随机存储器RAM中。
2.根据权利要求1所述的一种基于FPGA的多并行策略卷积网络加速器,其特征在于:
所述输入并行为利用特征模板并行处理N幅输入的特征图,输入特征图按照逐行逐列的顺序进入行缓存中,在每个行缓存的出口处获得特征模板大小的数据;
所述像素并行为同时完成多个连续像素的卷积过程,采用8bit像素策略;
所述输出并行能并行处理N幅输入特征图,相同的输入特征图与N组输出通道的权重计算卷积,得到不同的输出特征。
3.根据权利要求2所述的一种基于FPGA的多并行策略卷积网络加速器,其特征在于:所述特征模板大小设定为3×3。
4.根据权利要求2所述的一种基于FPGA的多并行策略卷积网络加速器,其特征在于:
所述第一层卷积处理过程的特征模板大小为3×3,处理RGB图像,使用输入并行实现整个卷积过程;
所述中间层卷积处理过程的特征模板大小为3×3,兼容处理不同的激活、池化过程,使用输入并行、像素并行和输出并行这三种并行组合模式实现卷积过程;
所述最后一层卷积处理过程的特征模板大小为1×1,无需激活、池化过程。
5.根据权利要求1所述的一种基于FPGA的多并行策略卷积网络加速器,其特征在于:所述激活层采用线性整流函数对卷积层输出的结果进行激活处理,所述池化层采用2×2的滑动窗进行池化处理。
6.根据权利要求5所述的一种基于FPGA的多并行策略卷积网络加速器,其特征在于:所述池化处理的步长为1,其每行每列均对应输出像素。
7.根据权利要求5所述的一种基于FPGA的多并行策略卷积网络加速器,其特征在于:所述池化处理的步长为2,其隔行隔列输出一个像素。
CN202010841322.4A 2020-08-20 2020-08-20 一种基于fpga的多并行策略卷积网络加速器 Pending CN112070210A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010841322.4A CN112070210A (zh) 2020-08-20 2020-08-20 一种基于fpga的多并行策略卷积网络加速器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010841322.4A CN112070210A (zh) 2020-08-20 2020-08-20 一种基于fpga的多并行策略卷积网络加速器

Publications (1)

Publication Number Publication Date
CN112070210A true CN112070210A (zh) 2020-12-11

Family

ID=73662303

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010841322.4A Pending CN112070210A (zh) 2020-08-20 2020-08-20 一种基于fpga的多并行策略卷积网络加速器

Country Status (1)

Country Link
CN (1) CN112070210A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112732436A (zh) * 2020-12-15 2021-04-30 电子科技大学 一种多核处理器-单图形处理器的深度强化学习加速方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107633297A (zh) * 2017-03-10 2018-01-26 南京大学 一种基于并行快速fir滤波器算法的卷积神经网络硬件加速器
US20190102640A1 (en) * 2017-09-29 2019-04-04 Infineon Technologies Ag Accelerating convolutional neural network computation throughput
CN111416743A (zh) * 2020-03-19 2020-07-14 华中科技大学 一种卷积网络加速器、配置方法及计算机可读存储介质
CN111488983A (zh) * 2020-03-24 2020-08-04 哈尔滨工业大学 一种基于fpga的轻量级cnn模型计算加速器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107633297A (zh) * 2017-03-10 2018-01-26 南京大学 一种基于并行快速fir滤波器算法的卷积神经网络硬件加速器
US20190102640A1 (en) * 2017-09-29 2019-04-04 Infineon Technologies Ag Accelerating convolutional neural network computation throughput
CN111416743A (zh) * 2020-03-19 2020-07-14 华中科技大学 一种卷积网络加速器、配置方法及计算机可读存储介质
CN111488983A (zh) * 2020-03-24 2020-08-04 哈尔滨工业大学 一种基于fpga的轻量级cnn模型计算加速器

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
余子健: "基于FPGA的卷积神经网络加速器", 《中国优秀硕士学位论文全文数据库(信息科技辑)》 *
李炳剑;秦国轩;朱少杰;裴智慧;: "面向卷积神经网络的FPGA加速器架构设计", 计算机科学与探索 *
王昆;周骅;: "深度学习中的卷积神经网络系统设计及硬件实现", 电子技术应用 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112732436A (zh) * 2020-12-15 2021-04-30 电子科技大学 一种多核处理器-单图形处理器的深度强化学习加速方法

Similar Documents

Publication Publication Date Title
CN107862374B (zh) 基于流水线的神经网络处理系统和处理方法
CN110458279B (zh) 一种基于fpga的二值神经网络加速方法及系统
CN107844826B (zh) 神经网络处理单元及包含该处理单元的处理系统
US10459876B2 (en) Performing concurrent operations in a processing element
CN109543830B (zh) 一种用于卷积神经网络加速器的拆分累加器
US10445638B1 (en) Restructuring a multi-dimensional array
CN107818367B (zh) 用于神经网络的处理系统和处理方法
CN108229671B (zh) 一种降低加速器外部数据存储带宽需求的系统和方法
CN110263925B (zh) 一种基于fpga的卷积神经网络前向预测的硬件加速实现装置
CN111898733B (zh) 一种深度可分离卷积神经网络加速器架构
CN112465110B (zh) 一种卷积神经网络计算优化的硬件加速装置
CN112668708B (zh) 一种提高数据利用率的卷积运算装置
Li et al. A multistage dataflow implementation of a deep convolutional neural network based on FPGA for high-speed object recognition
CN110543939A (zh) 一种基于fpga的卷积神经网络后向训练的硬件加速实现架构
CN109993293B (zh) 一种适用于堆叠式沙漏网络的深度学习加速器
Chen et al. A 68-mw 2.2 tops/w low bit width and multiplierless DCNN object detection processor for visually impaired people
CN108197075B (zh) 一种Inception结构的多核实现方法
CN111091183B (zh) 一种神经网络加速系统和方法
EP4200722A1 (en) Tabular convolution and acceleration
CN112070210A (zh) 一种基于fpga的多并行策略卷积网络加速器
CN111582465A (zh) 基于fpga的卷积神经网络加速处理系统、方法以及终端
CN113313252B (zh) 一种基于脉动阵列的深度可分离卷积实现方法
CN113052299B (zh) 基于通信下界的神经网络存内计算装置及加速方法
CN113158132A (zh) 一种基于非结构化稀疏的卷积神经网络加速系统
CN117725963A (zh) 一种用于Transformer模型推理计算的方法、系统及装置

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