CN110222819B - 一种用于卷积神经网络加速的多层数据分区域联合计算方法 - Google Patents
一种用于卷积神经网络加速的多层数据分区域联合计算方法 Download PDFInfo
- Publication number
- CN110222819B CN110222819B CN201910395256.XA CN201910395256A CN110222819B CN 110222819 B CN110222819 B CN 110222819B CN 201910395256 A CN201910395256 A CN 201910395256A CN 110222819 B CN110222819 B CN 110222819B
- Authority
- CN
- China
- Prior art keywords
- layer
- full
- input image
- area
- connection layer
- 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
Links
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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
本发明提供一种用于卷积神经网络加速的多层数据分区域联合计算方法,包括如下步骤:步骤1,将第一全连接层图像划分为若干个第一全连接层区域,反向推导各第一全连接层区域的图像数据所分别对应的输入图像数据,按照反向推导结果将输入图像划分为若干个与第一全连接层区域一一对应的输入图像区域;步骤2,对各输入图像区域依次进行卷积运算直到各自对应的第一全连接层区域,在对后一个输入图像区域进行卷积运算的过程中,对前一个输入图像区域对应的第一全连接层区域的权值数据进行读取和运算。降低了运算时硬件系统所需的带宽及存储量,平衡了卷积神经网络卷积层与全连接层对硬件资源的需求关系。
Description
技术领域
本发明涉及卷积神经网络运算的数据流调度技术,具体涉及一种用于卷积神经网络加速的多层数据分区域联合计算方法。
背景技术
深度学习是近几年机器学习的一个研究热点,在许多方向都取得了优异的成果。现在,深度学习在许多学科领域都具备越来越重要的作用。然而受限于硬件设备,深度学习的运算速度要慢于传统的人工神经运算网络以及一些其他的机器学习方法。因此在一些需要高性能的计算和电脑运算领域,深度学习的加速显得格外重要。对于深度学习算法的硬件加速,目前通常有三类实现方式,包括多核CPU、GPU和FPGA,它们的共同特点是可以实现高并行度的计算。然而,因为这些方法需求大量的运算硬件并消耗很多能耗,并不适合于移动设备。
深度学习神经网络有非常多的分类,比较著名的有卷积神经网络(CNN)以及循环神经网络(RNN)。CNN是一种生物自然视觉认知机制启发而来的神经网络,对于视觉图像的处理有着独特的优势,近几年来,CNN网络已经由最初的LeNet-5逐渐演变出了AlexNet、VGG、GoogLeNet等新的结构。如何灵活、高效地完成各类网络成为当前研究热点。目前常见的加速策略是根据算法架构,设计相应的网络数据流调度,提高数据复用和计算并行度。
专用集成电路(ASIC)是针对一种确定算法而设计的电路,速度快,效率高,然而ASIC的面积和资源有限,所以需要通过设计相应的网络数据流调度机制来对资源进行合理的分配利用。
Google在设计实现TPU架构过程中,利用脉动阵列对数据流进行调度;美国MIT提出Row Saturation(RS)数据流对卷积运算数据流进行调度;清华大学提出的paralleloutput oriented mapping(POOM)数据流,根据不同卷积层的特点采用权值复用或者图像数据复用的数据流调度。但是,目前的这些网络数据流调度机制均是按照逐层计算模式进行的。
通常卷积的计算模式如图1所示,卷积核在输入图像上滑动做卷积计算。该层的卷积核和整个输入图像计算得到输出图像,即下一层的输入图像。以AlexNet为例,图3中所示的是AlexNet的算法架构,从图中可以看出,卷积神经网络算法结构也是按照逐层进行排布的,这样的逐层计算模式更加符合卷积神经网络的算法架构。然而,卷积神经网络的运算量大,会产生大量中间计算数据,逐层计算模式下,对于硬件的存储大小以及存储带宽要求会很高。此外,卷积神经网络在卷积层通过少量的数据进行大量的复用计算,这样卷积层的计算特点是计算密集型,相反,卷积神经网络在全连接层时属于存储密集型。这样的特性在硬件加速时会产生以下问题:计算卷积层时需要大量的计算资源,对数据存取带宽要求不高;计算全连接层时,需要高的数据存取带宽,这样的不平衡会给硬件设计带来困难。
发明内容
针对现有技术中存在的问题,本发明提供一种用于卷积神经网络加速的多层数据分区域联合计算方法,降低了运算时硬件系统所需的带宽及存储量,平衡了卷积神经网络卷积层与全连接层对硬件资源的需求关系。
本发明是通过以下技术方案来实现:
一种用于卷积神经网络加速的多层数据分区域联合计算方法,包括如下步骤:
步骤1,将第一全连接层图像划分为若干个第一全连接层区域,反向推导各第一全连接层区域的图像数据所分别对应的输入图像数据,按照反向推导结果将输入图像划分为若干个与第一全连接层区域一一对应的输入图像区域;
步骤2,对各输入图像区域依次进行卷积运算直到各自对应的第一全连接层区域,在对后一个输入图像区域进行卷积运算的过程中,对前一个输入图像区域对应的第一全连接层区域的权值数据进行读取和运算。
优选的,步骤1中,各第一全连接层区域均为正方形。
进一步的,步骤1中,各第一全连接层区域面积相等。
优选的,步骤1中,将第一全连接层图像按照九宫格的形式划分为9个第一全连接层区域。
优选的,卷积神经网络为AlexNet架构,步骤1中,将第一全连接层图像按照九宫格的形式,均分为9个2×2的第一全连接层区域。
优选的,步骤2具体是:对输入图像区域和第一全连接层区域分别进行编号,相对应的输入图像区域和第一全连接层区域的编号相同;对1号输入图像区域进行卷积运算直到1号第一全连接层区域,然后对2号输入图像区域进行卷积运算直到2号第一全连接层区域,在对2号输入图像区域进行卷积运算的过程中对1号第一全连接层区域的权值数据进行读取和运算,以此类推,直至完成所有输入图像区域的运算。
与现有技术相比,本发明具有以下有益的技术效果:
本发明分区域联合计算方法将输入图像分区域调度计算,在对后一个输入图像区域进行卷积运算的过程中,对前一个输入图像区域对应的第一全连接层区域的权值数据进行读取和运算。这种数据调度机制,一方面,降低每次第一全连接层权值数据读取的数据量,降低了运算时硬件系统所需的带宽,针对卷积神经网络卷积层计算密集和全连接层存储密集的特点,分区域联合计算平衡了卷积层对计算资源的需求和全连接层对存储资源的需求;另一方面,每次运算产生的中间数据量大大减少,降低了存储器容量要求,可以降低硬件资源消耗,使卷积神经网络可以在便携式设备上运行;再一方面,将卷积神经网络中的卷积层计算和全连接层权值数据读取的时间进行了重叠处理,提高硬件资源工作时的使用率,提高了整体运算速度。本发明数据流调度采用流水线的方式,可以高效的完成卷积神经网络的前馈计算过程。
附图说明
图1为卷积神经网络的计算模式;
图2为本发明分区域联合计算的计算模式示意图;
图3为AlexNet的架构及其逐层加速模式;
图4为本发明分区域联合计算机制用于AlexNet的示意图;
图5为逐层加速和分区域加速的中间数据存储数量对比。
具体实施方式
下面结合具体的实施例对本发明做进一步的详细说明,所述是对本发明的解释而不是限定。
本发明多层数据分区域联合计算是通过将输入图像数据分成不同的区域,然后对这些区域逐个进行加速计算,从而完成对卷积神经网络的整体加速。主要目的是通过分区域联合计算可以将卷积神经网络全连接层的数据存取时间和卷积层的计算时间进行重叠,平衡了卷积神经网络的卷积层计算密集和全连接层的数据存储密集。计算模式如图2所示,对卷积层的输入图像进行区域划分,形成多个输入图像区域,在卷积层中卷积核和1号输入图像区域做卷积,得到输出图像,直到计算到第一全连接层,即完成1号输入图像区域的卷积神经网络计算;然后再计算2号输入图像区域,此时,可以进行第一全连接层中与1号输入图像区域对应的1号第一全连接层区域运算的权值数据读取,使得2号输入图像区域的卷积层运算与1号第一全连接层区域运算时间重叠。从而实现卷积神经网络的整体加速。
本发明所提出的多层分区域联合加速计算的数据流调度具体步骤如下,以AlexNet为例,如图4所示,包括如下步骤:
第一步:首先基于所需要运算的CNN网络,确定该CNN网络第一全连接层图像尺寸,第一全连接层图像的尺寸为6×6(不考虑三维的通道数,只做平面的区域划分)。
第二步:将第一全连接层图像按照九宫格的形式,均分为2×2大小的9个不同第一全连接层区域,第一全连接层区域编号为1~9。根据AlexNet的卷积架构,反向推导得到1~9号第一全连接层区域的图像数据所分别对应的输入图像数据,即为所划分的输入图像区域,共9个不同的输入图像区域,编号为1~9,相对应的输入图像区域和第一全连接层区域的编号相同;
第三步:在卷积神经网络推理过程中,对1号输入图像区域进行卷积运算直到1号第一全连接层区域,然后对2号输入图像区域进行卷积运算直到2号第一全连接层区域,在对2号输入图像区域进行卷积运算的过程中,对1号第一全连接层区域对应的权值数据进行读取和运算,即在进行下一个输入图像区域的卷积层运算过程中对前一个输入图像区域对应的第一全连接层区域的权值数据进行读取和运算,直到完成所有的输入图像区域的计算。
具体的实施措施如下:
如图3所示,将第一全连接层的图像分为9个第一全连接层区域,每个第一全连接层区域的大小为2×2。以1号第一全连接层区域为例,通过反向传播的方式,得出1号第一全连接层区域图像数据所需要的上一层的图像数据,一直反向推导,得到1号第一全连接层区域对应的输入图像区域,以此类推,得到所有第一全连接层区域分别对应的输入图像区域,从而将输入图像分成9个输入图像区域。在进行卷积神经网络推理过程时,逐个计算不同输入图像区域内的图像数据卷积。以AlexNet为例,所得到的1号第一全连接层区域及反向推导的各神经网络层对应区域的坐标如表格1所示,表中的坐标分别代表区域的左上和右下角的坐标,区域为正方形。
表格1分区域联合计算区域划分
神经网络层 | 区域坐标 |
FC1 | (1,1)(2,2) |
CONV5 | (1,1)(5,5) |
CONV4 | (1,1)(6,6) |
CONV3 | (1,1)(7,7) |
CONV2 | (1,1)(17,17) |
CONV1 | (1,1)(39,39) |
输入图像 | (1,1)(163,163) |
与逐层加速对比:
第一全连接层图像尺寸为6×6×256,根据逐层加速方法,该层的权重数据的数量为6×6×256×4096=37.7M。使用本发明中提出的逐个区域计算,输入图像被分成多个区域。获得的区域图像尺寸是2×2×256,并且相应的权重数据的数量是2×2×256×4096=4.2M。在读取这部分权重的数据时,可以执行下一个输入图像区域的卷积计算。以这种方式,仅需要大约1/9的逐层加速带宽来实现基本相同的性能。此外,逐层计算的中间数据存储也高于本发明所提出的分区域联合计算方法。具体对比如图5和表2所示,CONV1层的中间数据存储量,分区域计算为逐层计算的50.3%;CONV2层的中间数据存储量,分区域计算为逐层计算的39.6%;CONV3层的中间数据存储量,分区域计算为逐层计算的29.0%;CONV4层的中间数据存储量,分区域计算为逐层计算的21.3%;CONV5层的中间数据存储量,分区域计算为逐层计算的14.8%;第一全连接层的中间数据存储量,分区域计算为逐层计算的11.2%;即本发明的方法要求的存储器的容量有明显的降低。
表2 AlexNet网络逐层加速的中间数据和本发明加速策略的中间数据所需存储量对比
Claims (6)
1.一种用于卷积神经网络加速的多层数据分区域联合计算方法,其特征在于,包括如下步骤:
步骤1,将第一全连接层图像划分为若干个第一全连接层区域,反向推导各第一全连接层区域的图像数据所分别对应的输入图像数据,按照反向推导结果将输入图像划分为若干个与第一全连接层区域一一对应的输入图像区域;
步骤2,对各输入图像区域依次进行卷积运算直到各自对应的第一全连接层区域,在对后一个输入图像区域进行卷积运算的过程中,对前一个输入图像区域对应的第一全连接层区域的权值数据进行读取和运算。
2.根据权利要求1所述的用于卷积神经网络加速的多层数据分区域联合计算方法,其特征在于,步骤1中,各第一全连接层区域均为正方形。
3.根据权利要求2所述的用于卷积神经网络加速的多层数据分区域联合计算方法,其特征在于,步骤1中,各第一全连接层区域面积相等。
4.根据权利要求1所述的用于卷积神经网络加速的多层数据分区域联合计算方法,其特征在于,步骤1中,将第一全连接层图像按照九宫格的形式划分为9个第一全连接层区域。
5.根据权利要求1所述的用于卷积神经网络加速的多层数据分区域联合计算方法,其特征在于,卷积神经网络为AlexNet架构,步骤1中,第一全连接层图像的尺寸为6×6,将第一全连接层图像按照九宫格的形式,均分为9个2×2的第一全连接层区域。
6.根据权利要求1所述的用于卷积神经网络加速的多层数据分区域联合计算方法,其特征在于,步骤2具体是:对输入图像区域和第一全连接层区域分别进行编号,相对应的输入图像区域和第一全连接层区域的编号相同;对1号输入图像区域进行卷积运算直到1号第一全连接层区域,然后对2号输入图像区域进行卷积运算直到2号第一全连接层区域,在对2号输入图像区域进行卷积运算的过程中对1号第一全连接层区域的权值数据进行读取和运算,以此类推,直至完成所有输入图像区域的运算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910395256.XA CN110222819B (zh) | 2019-05-13 | 2019-05-13 | 一种用于卷积神经网络加速的多层数据分区域联合计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910395256.XA CN110222819B (zh) | 2019-05-13 | 2019-05-13 | 一种用于卷积神经网络加速的多层数据分区域联合计算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110222819A CN110222819A (zh) | 2019-09-10 |
CN110222819B true CN110222819B (zh) | 2021-04-20 |
Family
ID=67820957
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910395256.XA Active CN110222819B (zh) | 2019-05-13 | 2019-05-13 | 一种用于卷积神经网络加速的多层数据分区域联合计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110222819B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110619387B (zh) * | 2019-09-12 | 2023-06-20 | 复旦大学 | 一种基于卷积神经网络的通道扩展方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11074492B2 (en) * | 2015-10-07 | 2021-07-27 | Altera Corporation | Method and apparatus for performing different types of convolution operations with the same processing elements |
CN107239824A (zh) * | 2016-12-05 | 2017-10-10 | 北京深鉴智能科技有限公司 | 用于实现稀疏卷积神经网络加速器的装置和方法 |
CN107066239A (zh) * | 2017-03-01 | 2017-08-18 | 智擎信息系统(上海)有限公司 | 一种实现卷积神经网络前向计算的硬件结构 |
CN108171317B (zh) * | 2017-11-27 | 2020-08-04 | 北京时代民芯科技有限公司 | 一种基于soc的数据复用卷积神经网络加速器 |
CN108416434B (zh) * | 2018-02-07 | 2021-06-04 | 复旦大学 | 针对神经网络的卷积层与全连接层进行加速的电路结构 |
CN109032781A (zh) * | 2018-07-13 | 2018-12-18 | 重庆邮电大学 | 一种卷积神经网络算法的fpga并行系统 |
-
2019
- 2019-05-13 CN CN201910395256.XA patent/CN110222819B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110222819A (zh) | 2019-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110458279B (zh) | 一种基于fpga的二值神经网络加速方法及系统 | |
CN108805266B (zh) | 一种可重构cnn高并发卷积加速器 | |
CN108170640B (zh) | 神经网络运算装置及应用其进行运算的方法 | |
CN109409511B (zh) | 一种用于动态可重构阵列的卷积运算数据流调度方法 | |
CN110751280A (zh) | 一种应用于卷积神经网络的可配置卷积加速器 | |
CN111898733B (zh) | 一种深度可分离卷积神经网络加速器架构 | |
CN110222818B (zh) | 一种用于卷积神经网络数据存储的多bank行列交织读写方法 | |
JP2021510219A (ja) | マルチキャストネットワークオンチップに基づいた畳み込みニューラルネットワークハードウェアアクセラレータおよびその動作方式 | |
US20230026006A1 (en) | Convolution computation engine, artificial intelligence chip, and data processing method | |
CN107085562B (zh) | 一种基于高效复用数据流的神经网络处理器及设计方法 | |
CN117933314A (zh) | 处理装置、处理方法、芯片及电子装置 | |
CN111199275B (zh) | 用于神经网络的片上系统 | |
CN110383300A (zh) | 一种计算装置及方法 | |
CN110717583B (zh) | 卷积电路、处理器、芯片、板卡和电子设备 | |
CN113033794B (zh) | 基于深度可分离卷积的轻量级神经网络硬件加速器 | |
Kala et al. | UniWiG: Unified winograd-GEMM architecture for accelerating CNN on FPGAs | |
CN110059797B (zh) | 一种计算装置及相关产品 | |
WO2023065983A1 (zh) | 计算装置、神经网络处理设备、芯片及处理数据的方法 | |
CN111340198A (zh) | 基于fpga的数据高度复用的神经网络加速器 | |
KR20220071723A (ko) | 딥러닝 연산 수행 방법 및 장치 | |
CN112686379A (zh) | 集成电路装置、电子设备、板卡和计算方法 | |
CN110222819B (zh) | 一种用于卷积神经网络加速的多层数据分区域联合计算方法 | |
CN110059809B (zh) | 一种计算装置及相关产品 | |
CN112114942A (zh) | 一种基于众核处理器的流式数据处理方法及计算设备 | |
CN113837922A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |