CN108197075B - 一种Inception结构的多核实现方法 - Google Patents
一种Inception结构的多核实现方法 Download PDFInfo
- Publication number
- CN108197075B CN108197075B CN201711478841.3A CN201711478841A CN108197075B CN 108197075 B CN108197075 B CN 108197075B CN 201711478841 A CN201711478841 A CN 201711478841A CN 108197075 B CN108197075 B CN 108197075B
- Authority
- CN
- China
- Prior art keywords
- core
- cores
- kernels
- calculation
- ddr
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
-
- 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
Abstract
一种Inception结构的多核实现方法,其步骤为:S1:根据多核向量处理器的核数M等参数以及Inception结构中单层所有卷积核的数量N,来平均分配M个核每个核可以同时完成的计算量;S2:将N/M个卷积核依次由DDR传入M个核的核内向量存储体AM中,将上一级的输出结果置入DDR中;S3:M个核同时完成N个卷积核的计算,同时得出N个输出特征图;S4:输出结果由M个核通过DMA传输至DDR中,M个核同时加载下一级的卷积核数据;S5:从DDR中广播数据至M个核,完成该级所有输出特征图的计算;S6:重复步骤,直至完成Inception结构中所有级的计算。本发明具有实现简单、操作方便、可提高多核处理器的并行性、加速GoogleNet网络模型的计算速度、提高多核处理器计算效率等优点。
Description
技术领域
本发明主要涉及到人工智能、机器学习、卷积神经网络领域,特指一种Inception结构的多核实现方法,为应用于加速GoogLeNet网络的多核实现方法。
背景技术
AlexNet模型是卷积神经网络领域内的一个重要的网络模型,在2012年取得了ILSVRC竞赛第一名。由于AlexNet模型回归加入了全连接层,参数量达60M,如果增加网络中的隐含层,利用加深神经网络的层数进一步提高网络的识别成功率,不仅会加大网络中参数的总量,增加计算量也极容易出现过拟合。
GoogLeNet网络模型是一个22层的深度网络,是2014年ILSVRC的冠军模型,Top-5的错误率只有6.66%,但参数量只有7M,远小于AlexNet模型,该模型表明了更多的卷积更深的网络层数可以得到更好的预测结果。为了既保持网络结构的稀疏性又能充分利用密集矩阵的高性能,Google团队提出利用Inception结构来将稀疏矩阵聚类为较为密集的子矩阵以此来提高计算性能。
Inception结构的主要思想是找出最优的局部稀疏结构并将其覆盖为近似的稠密组件,Inception模型中,卷积核大小不同,感受野的大小也不同,最后的拼接意味着不同尺度的融合,卷积核的大小一般选择1、3、5,最后拼接的时候为了尺度一致,一般会进行相应的pad边界处理。GoogLeNet网络越到最后,特征越来越抽象,每个特征所涉及的感受野也更大,随着层数的增加,3×3、5×5卷积的比例也相应增加,使用5×5的卷积核会带来巨大的计算量,因此一般会采用1×1的卷积核进行降维。
GoogLeNet网络模型主要是由很多个Inception结构层层堆叠而成,Inception内部包含不同的卷积运算,以及不同的pad操作和移动步长,是当前深层神经网络模型中最复杂的一种神经网络模型。鉴于该Inception结构计算类型复杂,涉及到的计算多种多样,因此,如何加速该模型的计算是当前的一个研究难点,尤其是针对多核的加速,涉及到多核任务的划分以及多核的核间同步操作。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种实现简单、操作方便、可提高多核处理器的并行性、加速GoogleNet网络模型的计算速度、提高多核处理器计算效率的Inception结构的多核实现方法。
为解决上述技术问题,本发明采用以下技术方案:
一种Inception结构的多核实现方法,其步骤为:
S1:根据多核向量处理器的核数M,单核向量处理器VPE的数量P,单核向量处理器的核内存储空间AM的存储容量V,Inception结构中单层所有卷积核的数量N,来平均分配M个核每个核可以同时完成的计算量;
S2:将N/M个卷积核依次由DDR传入M个核的核内向量存储体AM中,将上一级的输出结果置入DDR中,并由标量LOAD指令从DDR中取数,并将数据广播至M个核的核内AM中;
S3:M个核同时完成N个卷积核的计算,同时得出N个输出特征图,M个核进行同步操作,完成该级所有输出特征图的计算;
S4:步骤S3的输出结果由M个核通过DMA传输至DDR中,M个核同时加载下一级的卷积核数据;
S5:从DDR中广播数据至M个核,M个核同时完成该级所有输出特征图的计算,并通过同步操作完成该级所有输出特征图的计算;
S6:重复步骤S2-S5直至完成Inception结构中所有级的计算。
作为本发明的进一步改进:所述步骤S1中,根据核数M和卷积核数N平均分配任务量,若不能进行平均,多余的卷积核指定由若干个计算核进行处理。
作为本发明的进一步改进:所述步骤S2中,卷积核数据放入核内AM中,输入数据放入DDR中。
与现有技术相比,本发明的优点在于:本发明的Inception结构的多核实现方法,可以根据多核向量处理器的体系结构、核数、核内存储空间、卷积核的数量确定最优的多核实现方案,该方法使得算法的计算速度随着处理器核数的增加而增加,核与核之间的计算完全独立,完全避免了核间的数据交互,因此,该实现方法可以大大提高算法的执行效率。这些优点使得本发明的方法实现简单,操作方便,能够充分挖掘多核向量处理器的指令、数据、任务等各个层次的并行性,从而充分发挥多MAC运算部件向量处理器所具有的高性能计算能力的优点。
附图说明
图1是Inception结构示意图。
图2是包含不同计算模式的Inception结构示意图。
图3是Inception结构第一级的多核划分方法。
图4是Inception结构第二级的多核划分方法。
图5是本发明方法的流程示意图。
具体实施方式
以下将结合说明书附图和具体实施例对本发明做进一步详细说明。
如图5所示,本发明的一种Inception结构的多核实现方法,其步骤为:
S1:根据多核向量处理器的核数M,单核向量处理器VPE的数量P,单核向量处理器的核内存储空间AM的存储容量V,Inception结构中单层所有卷积核的数量N,来平均分配M个核每个核可以同时完成的计算量。
S2:将N/M个卷积核依次由DDR传入M个核的核内向量存储体AM中,将上一级的输出结果置入DDR中,并由标量LOAD指令从DDR中取数,并将数据广播至M个核的核内AM中。
S3:M个核同时完成N个卷积核的计算,同时得出N个输出特征图,M个核进行同步操作,完成该级所有输出特征图的计算。
S4:步骤(3)的输出结果由M个核通过DMA传输至DDR中,同时M个核同时加载下一级的卷积核数据。
S5:从DDR中广播数据至M个核,M个核同时完成该级所有输出特征图的计算,并通过同步操作完成该级所有输出特征图的计算。
S6:重复步骤S2-S5直至完成Inception结构中所有级的计算。
在具体应用实例中,所述步骤S1中,可根据核数M和卷积核数N平均分配任务量,若不能进行平均,多余的卷积核指定由若干个计算核进行处理。
在具体应用实例中,所述步骤S2中,卷积核数据一般放入核内AM中,输入数据放入DDR中。
参见图1-图4,在本发明一个具体应用实例中,本发明的具体流程为:
S1:根据多核向量处理器的核数M,单核向量处理器VPE的数量P,单核向量处理器的核内存储空间AM的存储容量V,Inception结构中单层所有卷积核的数量N,来平均分配M个核可以同时完成的计算量,这里取M为12,VPE为16,V为768KB,N的数量为192个,根据N的数量,来平均分配12个核每个核的计算量为192/12为16个,即每个核计算16个输出特征图。
S2:将16×12个卷积核依次由DDR传入12个核的核内AM中,并将上一级的计算结果置入DDR中,从DDR中广播一个数据至12个核的核内AM中,与AM中向量加载16个卷积核进行运算。
S3:12个处理器核同时完成16×12个卷积核的计算,同时得出192个输出特征图,之后,12个核进行同步操作,完成该级所有输出特征图的计算。
S4:将步骤S3的输出结果由12个核通过各自的DMA传输至DDR中,同时12个核开始加载下一级的卷积核数据。
S5:从DDR中广播数据至12个核,12个处理器核同时完成该级所有输出特征图的计算,并通过同步操作完成该级所有输出特征图的计算。
S6:重复步骤S2-S5至完成Inception结构中所有级的计算。
综上所述,通过本发明所实现的基于多核向量处理器的体系结构特点和Inception结构特性,确定最优的多核实现方案,该方法将不同计算规模、不同计算方式的矩阵卷积计算通过多核实现的方式进行并行计算,使得不同的计算方式可以并行执行,所有核之间完全相互独立,避免了不同核之间的核间交互。这些优点使得本发明的方法实现简单,操作方便,能够充分挖掘多核处理器的并行性,提高算法的执行效率。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
Claims (3)
1.一种Inception结构的多核实现方法,其特征在于,步骤为:
S1:根据多核向量处理器的核数M,单核向量处理器VPE的数量P,单核向量处理器的核内存储空间AM的存储容量V,Inception结构中单层所有卷积核的数量N,来平均分配M个核每个核可以同时完成的计算量;
S2:将N/M个卷积核依次由DDR传入M个核的核内存储空间AM中,将上一级的输出结果置入DDR中,并由标量LOAD指令从DDR中取数,并将数据广播至M个核的核内存储空间AM中;
S3:M个核同时完成N个卷积核的计算,同时得出N个输出特征图,M个核进行同步操作,完成该级所有输出特征图的计算;
S4:步骤S3的输出结果由M个核通过DMA传输至DDR中,M个核同时加载下一级的卷积核数据;
S5:从DDR中广播数据至M个核,M个核同时完成该级所有输出特征图的计算,并通过同步操作完成该级所有输出特征图的计算;
S6:重复步骤S2-S5直至完成Inception结构中所有级的计算。
2.根据权利要求1所述的Inception结构的多核实现方法,其特征在于,所述步骤S1中,根据核数M和卷积核数N平均分配任务量,若不能进行平均,多余的卷积核指定由若干个计算核进行处理。
3.根据权利要求1或2所述的Inception结构的多核实现方法,其特征在于,所述步骤S2中,卷积核数据放入核内存储空间AM中,输入数据放入DDR中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711478841.3A CN108197075B (zh) | 2017-12-29 | 2017-12-29 | 一种Inception结构的多核实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711478841.3A CN108197075B (zh) | 2017-12-29 | 2017-12-29 | 一种Inception结构的多核实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108197075A CN108197075A (zh) | 2018-06-22 |
CN108197075B true CN108197075B (zh) | 2021-05-14 |
Family
ID=62586606
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711478841.3A Active CN108197075B (zh) | 2017-12-29 | 2017-12-29 | 一种Inception结构的多核实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108197075B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11579921B2 (en) * | 2018-08-29 | 2023-02-14 | Alibaba Group Holding Limited | Method and system for performing parallel computations to generate multiple output feature maps |
CN109344779A (zh) * | 2018-10-11 | 2019-02-15 | 高新兴科技集团股份有限公司 | 一种基于卷积神经网络的匝道场景下的人脸检测方法 |
CN109976903B (zh) | 2019-02-22 | 2021-06-29 | 华中科技大学 | 一种基于层宽内存分配的深度学习异构计算方法和系统 |
CN113469350B (zh) * | 2021-07-07 | 2023-03-24 | 武汉魅瞳科技有限公司 | 一种适于npu的深度卷积神经网络加速方法和系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107301456A (zh) * | 2017-05-26 | 2017-10-27 | 中国人民解放军国防科学技术大学 | 基于向量处理器的深度神经网络多核加速实现方法 |
-
2017
- 2017-12-29 CN CN201711478841.3A patent/CN108197075B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107301456A (zh) * | 2017-05-26 | 2017-10-27 | 中国人民解放军国防科学技术大学 | 基于向量处理器的深度神经网络多核加速实现方法 |
Non-Patent Citations (2)
Title |
---|
"CNN based high performance computing for real time image processing on GPU";Sasanka Potluri等;《Proceedings of the Joint INDS"11 & ISTET"11》;IEEE;20111231;全文 * |
"ZNN - A Fast and Scalable Algorithm for Training 3D Convolutional Networks on Multi-core and Many-Core Shared Memory Machines";Aleksandar Zlateski等;《2016 IEEE International Parallel and Distributed Processing Symposium (IPDPS)》;IEEE;20161231;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108197075A (zh) | 2018-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108197075B (zh) | 一种Inception结构的多核实现方法 | |
CN108205702B (zh) | 一种多输入多输出矩阵卷积的并行处理方法 | |
KR102443546B1 (ko) | 행렬 곱셈기 | |
CN109543830B (zh) | 一种用于卷积神经网络加速器的拆分累加器 | |
CN108241890B (zh) | 一种可重构神经网络加速方法及架构 | |
CN107301456B (zh) | 基于向量处理器的深度神经网络多核加速实现方法 | |
CN111898733B (zh) | 一种深度可分离卷积神经网络加速器架构 | |
CN112465110B (zh) | 一种卷积神经网络计算优化的硬件加速装置 | |
CN104317768B (zh) | 面向cpu+dsp异构系统的矩阵乘加速方法 | |
US20230026006A1 (en) | Convolution computation engine, artificial intelligence chip, and data processing method | |
CN112200300B (zh) | 卷积神经网络运算方法及装置 | |
CN113469350B (zh) | 一种适于npu的深度卷积神经网络加速方法和系统 | |
Motamedi et al. | Fast and energy-efficient CNN inference on IoT devices | |
CN109657794B (zh) | 一种基于指令队列的分布式深度神经网络性能建模方法 | |
CN112446471B (zh) | 基于异构众核处理器的卷积加速方法 | |
CN114970294A (zh) | 基于神威架构的三维应变仿真pcg并行优化方法及系统 | |
CN109753682B (zh) | 一种基于gpu端的有限元刚度矩阵模拟方法 | |
CN112114942A (zh) | 一种基于众核处理器的流式数据处理方法及计算设备 | |
Zong-ling et al. | The design of lightweight and multi parallel CNN accelerator based on FPGA | |
US20230128421A1 (en) | Neural network accelerator | |
CN107256203A (zh) | 一种矩阵向量乘法的实现方法和装置 | |
CN111160535A (zh) | 基于Hadoop的DGCNN模型加速方法 | |
Marrakchi et al. | Fine-grained parallel solution for solving sparse triangular systems on multicore platform using OpenMP interface | |
CN115293978A (zh) | 卷积运算电路和方法、图像处理设备 | |
CN110222819B (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 |