CN107885700B - 一种大规模矩阵卷积的多核实现方法 - Google Patents

一种大规模矩阵卷积的多核实现方法 Download PDF

Info

Publication number
CN107885700B
CN107885700B CN201711475199.3A CN201711475199A CN107885700B CN 107885700 B CN107885700 B CN 107885700B CN 201711475199 A CN201711475199 A CN 201711475199A CN 107885700 B CN107885700 B CN 107885700B
Authority
CN
China
Prior art keywords
convolution
multiplied
input feature
kernels
core
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
CN201711475199.3A
Other languages
English (en)
Other versions
CN107885700A (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.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
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 National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201711475199.3A priority Critical patent/CN107885700B/zh
Publication of CN107885700A publication Critical patent/CN107885700A/zh
Application granted granted Critical
Publication of CN107885700B publication Critical patent/CN107885700B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Image Processing (AREA)
  • Complex Calculations (AREA)

Abstract

一种大规模矩阵卷积的多核实现方法,其步骤为:S1:根据多核处理器的核数M,单核VPE的数量为P,输入特征图的尺寸W×H×C,卷积核的尺寸k×k,通道数为C,卷积核的数量N,水平或垂直移动步长s,确定输入特征图的多核划分方法;S2:将输入特征图按行进行划分,将卷积核k×k×C×N按N方向进行划分,单核分到的卷积核数量为P;S3:将按行划分后的输入特征图分给若干计算核,将划分后的卷积核分给相应的核;S4:所有核同时进行同样的操作,直至完成整个输入特征图的卷积操作。本发明具有实现简单、操作方便、可提高大规模矩阵卷积并行性、可以充分利用多核处理器加速等优点。

Description

一种大规模矩阵卷积的多核实现方法
技术领域
本发明主要涉及到卷积神经网络、人工智能领域,特指一种大规模矩阵卷积的多核实现方法。
背景技术
卷积是信号处理、图像处理领域的一种常用计算,一般包括一维的线性卷积和二维的矩阵卷积,是一种典型的计算密集型和访存密集型计算,二维矩阵卷积是当前卷积神经网络模型中最常用的计算,也是耗时、耗资源最多的一种计算,一般要占据一个卷积神经网络模型计算量的85%以上。因此,研究矩阵卷积的加速方法一直是当前的一个研究热点。
大规模矩阵卷积,一般是指输入特征图比较大,而卷积核往往比较小,由于卷积核需要在输入特征图上滑动进行点积和累加运算,计算之间往往存在相关性,因此,难以并行起来,尤其是多核的并行更是比较困难。
多核处理器是加速大规模矩阵计算的一种重要方式,若能采取合理的矩阵划分方式往往能够大大加速矩阵卷积的计算过程,一般来说N个处理核理论上可以获得N倍的加速比,因此,一方面需要有计算速度更快的处理器,另一方面也需要有合适的多核矩阵划分方法,只有算法和硬件的合理配合才能发挥最大的计算效率。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种实现简单、操作方便、可提高大规模矩阵卷积并行性、可以充分利用多核处理器加速的大规模矩阵卷积的多核实现方法。
为解决上述技术问题,本发明采用以下技术方案:
一种大规模矩阵卷积的多核实现方法,其步骤为:
S1:根据多核处理器的核数M,单核VPE的数量为P,输入特征图的尺寸W×H×C,卷积核的尺寸k×k,通道数为C,卷积核的数量N,水平或垂直移动步长s,确定输入特征图的多核划分方法;
S2:将输入特征图按行进行划分,将卷积核k×k×C×N按N方向进行划分,单核分到的卷积核数量为P;
S3:将按行划分后的输入特征图分给若干计算核,将划分后的卷积核分给相应的核;
S4:所有核同时进行同样的操作,直至完成整个输入特征图的卷积操作。
作为本发明的进一步改进:所述步骤S1中的输入特征图,W表示长,H表示宽,C表示通道。
作为本发明的进一步改进:所述输入特征图中彩色图像用3通道表示,黑白图用1通道表示。
作为本发明的进一步改进:所述输入特征图中k表示卷积核的尺寸,为方阵。
作为本发明的进一步改进:所述输入特征图中s表示卷积核在输入特征图上面的水平或垂直滑动步长,且一般水平滑动步长和垂直滑动步长相同。
作为本发明的进一步改进:所述步骤S1中,输入特征图的通道数和卷积核的通道数相同,且一般取N为P的整数倍。
作为本发明的进一步改进:所述步骤S3中计算任务的划分原则是所有核的计算任务相等。
与现有技术相比,本发明的优点在于:本发明的大规模矩阵卷积的多核实现方法,是依据多核处理器的体系结构特点和大规模矩阵卷积的计算方式,提出的一种有效的大规模矩阵卷积计算的多核划分方法,该方法将输入特征图和卷积核同时进行多核划分,使得原本有计算相关性的矩阵卷积计算变成了完全无关的矩阵卷积计算,使得大规模矩阵卷积的计算效率随着计算核心的增加而增加。这些优点使得本发明的方法实现简单,操作方便,能够充分挖掘多核处理器的各个层级的并行性。
附图说明
图1是本发明在具体应用实例中12核处理器结构示意图。
图2是本发明在具体应用实例中3通道输入特征图按行划分方案。
图3是本发明在具体应用实例中第1组输入特征图4核共享示意图。
图4是本发明在具体应用实例中第2组输入特征图4核共享示意图。
图5是本发明在具体应用实例中第3组输入特征图4核共享示意图。
图6是本发明在具体应用实例中第1组输入特征图4组卷积核划分示意图。
图7是本发明在具体应用实例中第2组输入特征图4组卷积核划分示意图。
图8是本发明在具体应用实例中第3组输入特征图4组卷积核划分示意图。
图9是本发明方法的流程示意图。
具体实施方式
以下将结合说明书附图和具体实施例对本发明做进一步详细说明。
如图9所示,本发明的一种大规模矩阵卷积的多核实现方法,其步骤为:
S1:根据多核处理器的核数M,单核VPE的数量为P,输入特征图的尺寸W×H×C,卷积核的尺寸k×k,通道数为C,卷积核的数量N,水平或垂直移动步长s,确定输入特征图的多核划分方法;
S2:将输入特征图按行进行划分,将卷积核k×k×C×N按N方向进行划分,单核分到的卷积核数量为P;
S3:将按行划分后的输入特征图分给若干计算核,将划分后的卷积核分给相应的核;
S4:所有核同时进行同样的操作,直至完成整个输入特征图的卷积操作。
在具体应用实例中,上述步骤S1中,一般输入特征图的尺寸很大,W表示长,H表示宽,C表示通道,例如彩色图像用3通道表示,黑白图用1通道表示,k表示卷积核的尺寸,一般为方阵,s表示卷积核在输入特征图上面的水平或垂直滑动步长,且一般水平滑动步长和垂直滑动步长相同;
在具体应用实例中,上述步骤S1中,输入特征图的通道数和卷积核的通道数相同,且一般取N为P的整数倍;
在具体应用实例中,上述步骤S3中,由于多核的计算时间是由最长的某个核的计算时间所决定,因此,计算任务的划分原则是所有核的计算任务尽量相等。
参见图1-图8所示,本发明在一个具体应用实例中,所采用12核处理器的结构示意图。在该实施例中,本发明的具体流程为:
S1:根据多核处理器的核数M,单核VPE的数量为P,输入特征图的尺寸W×H×C,卷积核的尺寸k×k,通道数为C,卷积核的数量N,水平或垂直移动步长s,确定输入特征图的多核划分方法,这里取M为12,VPE为16,输入特征图为243×243×3,卷积核为7×7×3×64,水平或垂直移动步长为2;
S2:将输入特征图按行进行划分,即1到83行为第一组,77到163行为第二组,157到243行为第三组;
S3:将卷积核矩阵在第4维进行划分,即将7×7×3×64划分成7×7×3×16×4,共4组7×7×3×16;
S4:核0、1、2、3共享输入特征图的0到83行,核4、5、6、7共享输入特征图的77到163行,核8、9、10、11共享输入特征图的157到243行;
S5:核0、1、2、3共享4组卷积核,核4、5、6、7共享4组卷积核,核8、9、10、11共享4组卷积核;
S6:核0、1、2、3与输入特征图的0到83进行计算,可以同时得出输出64个输出特征图的第一部分,核4、5、6、7与输入特征图的77到163进行计算,可以同时得出输出特征图的第二部分,核8、9、10、11与输入特征图的157到243行进行计算,可以同时得出输出特征图的第三部分,
S7:所有12个计算核同时计算完成可以同时得出64个输出特征图。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

Claims (6)

1.一种大规模矩阵卷积的多核实现方法,其特征在于,步骤为:
S1:根据多核处理器的核数M,单核VPE的数量为P,输入特征图的尺寸W×H×C,W表示长,H表示宽,C表示通道,卷积核的尺寸k×k,卷积核的数量N,水平或垂直移动步长s,确定输入特征图的多核划分方法;
S2:将输入特征图按行进行划分,将卷积核k×k×C×N按N方向进行划分,单核分到的卷积核数量为P;
S3:将按行划分后的输入特征图分给若干计算核,将划分后的卷积核分给相应的核;
S4:所有核同时进行同样的操作,直至完成整个输入特征图的卷积操作。
2.根据权利要求1所述的大规模矩阵卷积的多核实现方法,其特征在于,所述输入特征图中彩色图像用3通道表示,黑白图用1通道表示。
3.根据权利要求1所述的大规模矩阵卷积的多核实现方法,其特征在于,所述输入特征图中k表示卷积核的尺寸,为方阵。
4.根据权利要求1所述的大规模矩阵卷积的多核实现方法,其特征在于,所述输入特征图中s表示卷积核在输入特征图上面的水平或垂直滑动步长,且水平滑动步长和垂直滑动步长相同。
5.根据权利要求1-4中任意一项所述的大规模矩阵卷积的多核实现方法,其特征在于,所述步骤S1中,输入特征图的通道数和卷积核的通道数相同,且取N为P的整数倍。
6.根据权利要求1-4中任意一项所述的大规模矩阵卷积的多核实现方法,其特征在于,所述步骤S3中,计算任务的划分原则是所有核的计算任务相等。
CN201711475199.3A 2017-12-29 2017-12-29 一种大规模矩阵卷积的多核实现方法 Active CN107885700B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711475199.3A CN107885700B (zh) 2017-12-29 2017-12-29 一种大规模矩阵卷积的多核实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711475199.3A CN107885700B (zh) 2017-12-29 2017-12-29 一种大规模矩阵卷积的多核实现方法

Publications (2)

Publication Number Publication Date
CN107885700A CN107885700A (zh) 2018-04-06
CN107885700B true CN107885700B (zh) 2021-05-14

Family

ID=61770412

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711475199.3A Active CN107885700B (zh) 2017-12-29 2017-12-29 一种大规模矩阵卷积的多核实现方法

Country Status (1)

Country Link
CN (1) CN107885700B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108470211B (zh) * 2018-04-09 2022-07-12 郑州云海信息技术有限公司 一种卷积计算的实现方法、设备和计算机存储介质
CN108920413B (zh) * 2018-06-28 2019-08-09 中国人民解放军国防科技大学 面向gpdsp的卷积神经网络多核并行计算方法
CN109002715B (zh) * 2018-07-05 2020-09-15 东北大学秦皇岛分校 一种基于卷积神经网络的恶意软件识别方法及系统
CN109557533B (zh) * 2018-11-28 2019-09-27 中国人民解放军国防科技大学 一种基于模型的联合跟踪与识别方法
CN110135556A (zh) * 2019-04-04 2019-08-16 平安科技(深圳)有限公司 基于脉动阵列的神经网络加速方法、装置、计算机设备及存储介质
CN110399971A (zh) * 2019-07-03 2019-11-01 Oppo广东移动通信有限公司 一种卷积神经网络加速方法及装置、存储介质
CN112446471B (zh) * 2019-08-28 2022-09-13 无锡江南计算技术研究所 基于异构众核处理器的卷积加速方法
CN113222136A (zh) * 2020-01-21 2021-08-06 北京希姆计算科技有限公司 卷积运算方法及芯片
CN113469350B (zh) * 2021-07-07 2023-03-24 武汉魅瞳科技有限公司 一种适于npu的深度卷积神经网络加速方法和系统
CN113378862B (zh) * 2021-07-09 2023-12-19 上海商汤科技开发有限公司 一种图像处理方法及装置、电子设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104077233A (zh) * 2014-06-18 2014-10-01 百度在线网络技术(北京)有限公司 单通道卷积层及多通道卷积层处理方法和装置
CN104899182A (zh) * 2015-06-09 2015-09-09 中国人民解放军国防科学技术大学 一种支持可变分块的矩阵乘加速方法
CN106970896A (zh) * 2017-03-30 2017-07-21 中国人民解放军国防科学技术大学 面向向量处理器的二维矩阵卷积的向量化实现方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9760966B2 (en) * 2013-01-08 2017-09-12 Nvidia Corporation Parallel processor with integrated correlation and convolution engine
US10255547B2 (en) * 2014-12-04 2019-04-09 Nvidia Corporation Indirectly accessing sample data to perform multi-convolution operations in a parallel processing system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104077233A (zh) * 2014-06-18 2014-10-01 百度在线网络技术(北京)有限公司 单通道卷积层及多通道卷积层处理方法和装置
CN104899182A (zh) * 2015-06-09 2015-09-09 中国人民解放军国防科学技术大学 一种支持可变分块的矩阵乘加速方法
CN106970896A (zh) * 2017-03-30 2017-07-21 中国人民解放军国防科学技术大学 面向向量处理器的二维矩阵卷积的向量化实现方法

Also Published As

Publication number Publication date
CN107885700A (zh) 2018-04-06

Similar Documents

Publication Publication Date Title
CN107885700B (zh) 一种大规模矩阵卷积的多核实现方法
CN110458279B (zh) 一种基于fpga的二值神经网络加速方法及系统
CN106970896B (zh) 面向向量处理器的二维矩阵卷积的向量化实现方法
CN111898733B (zh) 一种深度可分离卷积神经网络加速器架构
US10482380B2 (en) Conditional parallel processing in fully-connected neural networks
Attia et al. Cygraph: A reconfigurable architecture for parallel breadth-first search
CN112465110B (zh) 一种卷积神经网络计算优化的硬件加速装置
CN103049241B (zh) 一种提高cpu+gpu异构装置计算性能的方法
WO2014105865A1 (en) System and method for parallelizing convolutional neural networks
US20210019594A1 (en) Convolutional neural network accelerating device and method
Deng et al. An efficient online direction-preserving compression approach for trajectory streaming data
CN109840154A (zh) 一种移动云环境下基于任务依赖的计算迁移方法
CN103218261A (zh) 一种基于性能预测的虚拟机动态迁移方法
CN110796236B (zh) 多样本多通道卷积神经网络池化的向量化实现方法
CN111738276A (zh) 基于多核卷积神经网络的图像处理方法、装置及设备
CN108197075B (zh) 一种Inception结构的多核实现方法
CN109447239B (zh) 一种基于arm的嵌入式卷积神经网络加速方法
CN111882053A (zh) 一种基于拼接卷积的神经网络模型压缩方法
CN115859011B (zh) 矩阵运算方法、装置及单元、电子设备
Yonehara et al. A line-based connected component labeling algorithm using GPUs
JP7160441B2 (ja) 情報処理装置及び制御方法
Lai et al. Accelerating geospatial applications on hybrid architectures
CN105160622A (zh) 基于fpga的图像超分辨率的实现方法
Stone et al. Towards scalable video analytics at the edge
CN115346099A (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