CN108205702B - 一种多输入多输出矩阵卷积的并行处理方法 - Google Patents
一种多输入多输出矩阵卷积的并行处理方法 Download PDFInfo
- Publication number
- CN108205702B CN108205702B CN201711473269.1A CN201711473269A CN108205702B CN 108205702 B CN108205702 B CN 108205702B CN 201711473269 A CN201711473269 A CN 201711473269A CN 108205702 B CN108205702 B CN 108205702B
- Authority
- CN
- China
- Prior art keywords
- convolution
- input
- output
- calculation
- matrix
- 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
-
- 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/08—Learning methods
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)
- Complex Calculations (AREA)
Abstract
一种多输入多输出矩阵卷积的并行处理方法,其步骤为:S1:依据向量处理器的向量处理单元VPE的数量N等参数确定输出特征图的最优计算方案;S2:将M张输入特征图依次存入外部存储DDR中,将N个输入卷积核按照第3维,按行的方式进行拼接;S3:加载输入特征图1的第一个元素,广播至向量寄存器,同时加载AM中卷积核的第一行元素至向量寄存器中;S4:进行k×k次累加,完成输入特征图1的计算;同时加载第2幅输入特征图;S5:重复直至完成N个输出特征图第一个元素的计算;S6:根据移动步长完成N个输出特征图所有元素的计算;S7:以上步骤循环最终完成。本发明具有实现简单、操作方便、可提高向量处理器并行性、能提高处理器运算效率等优点。
Description
技术领域
本发明主要涉及到人工智能、机器学习、卷积神经网络领域,特指一种多输入多输出矩阵卷积的并行处理方法。
背景技术
随着深度学习技术的兴起,基于卷积神经网络的目标识别技术取得了突破性的进展,其在图像识别、语音识别、自然语言处理等领域取得了广泛的使用。矩阵卷积是一种计算密集型和访存密集型计算,而卷积神经网络模型中的矩阵卷积运算往往占据一个卷积神经网络模型计算量的85%以上,因此如何加速矩阵卷积运算是当前研究的一个重点和难点。
针对计算和访存密集型的矩阵卷积运算,当下学术界核工业界提出了不同的加速该运算的方法,有基于FPGA的从硬件上设计支持卷积计算的专用神经网络加速器,有基于GPU的采用基于FFT的方法或者将卷积核矩阵扩充成大矩阵进而通过矩阵与矩阵的乘法来加速矩阵卷积的计算,不管是哪种方法,基本上都是针对某种体系结构进行的优化,可以通过硬件上的支持以及算法上的改进来进行加速运算。
如图1所示,向量处理器就是其中的一种新型的体系结构,其包括向量处理器单元(VPU)和标量处理单元(SPU),向量处理部件中通常包含多个并行的向量处理单元(VPE),VPE之间可以通过规约和混洗进行数据交互,所有的VPE基于SIMD执行同样的操作。
矩阵卷积是卷积神经网络模型中常用的核心模块之一,其不仅是计算密集和访存密集,由于矩阵卷积计算中卷积核的规模一般比较小,因此,若不能采取合理的计算方法,即使使用高性能的计算设备也难以发挥出应有的计算优势。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种实现简单、操作方便、可提高向量处理器并行性、能提高处理器运算效率的多输入多输出矩阵卷积的并行处理方法。
为解决上述技术问题,本发明采用以下技术方案:
一种多输入多输出矩阵卷积的并行处理方法,其步骤为:
S1:依据向量处理器的向量处理单元VPE的数量N、输入特征图的数量M,卷积核的数量P,卷积核的尺寸k,移动步长s,确定输出特征图的最优计算方案;
S2:将M张输入特征图依次存入外部存储DDR中,将N个输入卷积核按照第3维,按行的方式进行拼接,并将完成拼接后的卷积核矩阵传入向量处理器的向量存储体中;其中,N≤P;
S3:加载输入特征图1的第一个元素,广播至向量寄存器,同时加载AM中卷积核的第一行元素至向量寄存器中,进行乘加并累加至累加寄存器中;
S4:进行k×k次累加,完成输入特征图1的计算;同时加载第2幅输入特征图,并加载第2个卷积核矩阵的第一行元素;
S5:重复S3-S4直至完成N个输出特征图第一个元素的计算;
S6:根据水平或垂直方向的移动步长,移动s个元素的距离,重复步骤S3-S5直至完成N个输出特征图所有元素的计算;
S7:以上步骤共循环P/N次,最终完成P个输出特征图所有元素的计算。
作为本发明的进一步改进:所述步骤S1中,VPE的数量N为每次计算得出的输出特征图的数量,取P为N的整数倍。
作为本发明的进一步改进:若P不为N的整数倍,则多余的输出特征图单独进行处理。
作为本发明的进一步改进:所述步骤S1中,卷积核的尺寸为方阵,取卷积核的规模为长等于高,即卷积核为方阵。
作为本发明的进一步改进:所述步骤S1中,卷积核的移动步长是1、或2、或3。
作为本发明的进一步改进:所述步骤S2中,N个卷积核的每一个卷积核中,有M个k×k规模的卷积核,该M个k×k的卷积核与M个输入特征图进行对应的卷积操作,并累加求和得出输出特征图中的一个元素。
与现有技术相比,本发明的优点在于:本发明的多输入多输出矩阵卷积的并行处理方法,依据向量处理器的体系结构特点和卷积核的数量和规模,确定最优的多输入多输出特征图的实现方式,有效地提高了向量处理器的计算效率;通过合理的卷积核排列方式,将不规整的卷积计算变成了只有乘法和加速的累加操作,且增加了最内核循环的次数,而最内核循环次数的多少是影响程序软件流水和循环展开的重要因素,因此,该实现方法可以大大提高算法的执行效率。这些优点使得本发明的方法实现简单,操作方便,能够充分挖掘向量处理器的指令、数据、任务等各个层次的并行性,从而充分发挥多MAC运算部件向量处理器所具有的高性能计算能力的优点。
附图说明
图1是向量处理器的一般结构示意图。
图2是3输入特征图加载顺序示意图。
图3是2个卷积核向量化加载示意图。
图4是本发明中的多输入特征图结构示意图。
图5是多输入卷积核结构示意图。
图6是多输出特征图结构示意图。
图7是本发明方法的总流程示意图。
具体实施方式
以下将结合说明书附图和具体实施例对本发明做进一步详细说明。
如图7所示,本发明的一种多输入多输出矩阵卷积的并行处理方法,其步骤为:
S1:依据向量处理器的向量处理单元VPE的数量N、输入特征图的数量M,卷积核的数量P,卷积核的尺寸k,移动步长s,确定输出特征图的最优计算方案;
S2:将M张输入特征图依次存入外部存储DDR中,将N个输入卷积核按照第3维,按行的方式进行拼接,并将完成拼接后的卷积核矩阵传入向量处理器的向量存储体中;其中,N≤P;
S3:加载输入特征图1的第一个元素,广播至向量寄存器,同时加载AM中卷积核的第一行元素至向量寄存器中,进行乘加并累加至累加寄存器中;
S4:进行k×k次累加,完成输入特征图1的计算;同时加载第2幅输入特征图,并加载第2个卷积核矩阵的第一行元素;
S5:重复S3-S4直至完成N个输出特征图第一个元素的计算;
S6:根据水平或垂直方向的移动步长,移动s个元素的距离,重复步骤S3-S5直至完成N个输出特征图所有元素的计算;
S7:以上步骤共循环P/N次,最终可以完成P个输出特征图所有元素的计算。
在本实施例中,上述步骤S1中,一般VPE的数量N为每次计算得出的输出特征图的数量,且为了叙述方便,一般取P为N的整数倍,在实际的计算过程中,若P不为NP的整数倍,则多余的输出特征图单独进行处理。
在本实施例中,上述步骤S1中,由于当前卷积神经网络模型中,卷积核的尺寸一般为方阵,因此本发明中取卷积核的规模为长等于高,即卷积核为方阵。
在本实施例中,上述步骤S1中,由于当前卷积神经网络模型中,卷积核的移动步长一般可以是1、2、3,在实际的实现过程中根据移动步长来偏移相应的距离;
在本实施例中,上述步骤S2中,N个卷积核的每一个卷积核中,有M个k×k规模的卷积核,该M个k×k的卷积核需要与M个输入特征图进行对应的卷积操作,并累加求和得出输出特征图中的一个元素。
在具体实施例中,卷积核的数量决定输出特征图的数量,即有几个卷积核就会输出几张特征图,且卷积核一般是三维的。每个卷积核从第3维进行拼接。
参见图2-图6所示,本发明的一个具体应用实例,在该实例中,本发明的详细流程为:
S1:首先根据向量处理器中向量处理单元VPE的数量N,输入特征图的数量M,卷积核的数量P,卷积核的规模k×k,移动步长s,确定向量处理器每次可以同时计算出的输出特征图的数量N,在本示例程序中取N为2,即每次可以同时计算两个输出特征图的元素,M取3,即有3个特征图作为输入,P取2,即整个卷积计算可以得出2个输出特征图,k取3,即3×3的卷积窗口,s取1,即水平或垂直方向的移动步长为1;
S2:将2个卷积核按照图3所示的方向,排列成一个卷积核矩阵,并将该卷积核矩阵置入向量存储体AM中,将3幅输入特征图置入DDR中;
S3:广播第1个输入特征图对应卷积窗口的第1个元素至向量寄存器中,同时加载卷积核矩阵的第1行元素,对应元素相乘并累加至累加寄存器中;
S4:按行方向顺移至下一行,同时加载卷积核矩阵的第2行元素,对应元素相乘并累加至步骤S3中的累加寄存器中;
S5:重复步骤S3-S4 9次,完成第1幅输入特征图的累加计算;
S6:顺移至第2幅输入特征图,重复步骤S3—S5完成第2个输入特征图的累加计算;
S7:顺移至第3幅输入特征图,重复步骤S3—S5完成第3个输入特征图的累加计算;
S8:通过步骤S1-S7,最终同时得出2幅输出特征图第一个元素的计算;
S9:输入特征图顺移至下一个卷积窗口,重复步骤S1-S8直至完成2幅输出特征图元素所有元素的计算。
综上所述,通过本发明所实现的基于向量处理器的体系结构特点和卷积核的数量和规模,确定最优的多输出特征图的实现方式,有效地提高了向量处理器的计算访存比;将复用次数较多的若干个卷积核按照某种方式顺序排列,使得向量处理器中每个PE只针对一幅输出特征图的计算,各PE之间完全相互独立,该方法使得多输入多输出的卷积计算得以高效进行。这些优点使得本发明的方法实现简单,操作方便,能够充分挖掘向量处理器的指令、数据、任务等各个层次的并行性,从而充分发挥多PE运算部件向量处理器所具有的高性能计算能力的优点。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
Claims (6)
1.一种多输入多输出矩阵卷积的并行处理方法,其特征在于,步骤为:
S1:依据向量处理器的向量处理单元VPE的数量N、输入特征图的数量M,卷积核的数量P,卷积核的尺寸k,移动步长s,确定输出特征图的最优计算方案;
S2:将M张输入特征图依次存入外部存储DDR中,将N个输入卷积核按照第3维,按行的方式进行拼接,并将完成拼接后的卷积核矩阵传入向量处理器的向量存储体中;其中,N≤P;
S3:加载输入特征图1的第一个元素,广播至向量寄存器,同时加载AM中卷积核的第一行元素至向量寄存器中,进行乘加并累加至累加寄存器中;
S4:进行k×k次累加,完成输入特征图1的计算;同时加载第2幅输入特征图,并加载第2个卷积核矩阵的第一行元素;
S5:重复S3-S4直至完成N个输出特征图第一个元素的计算;
S6:根据水平或垂直方向的移动步长,移动s个元素的距离,重复步骤S3-S5直至完成N个输出特征图所有元素的计算;
S7:以上步骤共循环P/N次,最终完成P个输出特征图所有元素的计算。
2.根据权利要求1所述的多输入多输出矩阵卷积的并行处理方法,其特征在于,所述步骤S1中,VPE的数量N为每次计算得出的输出特征图的数量,取P为N的整数倍。
3.根据权利要求2所述的多输入多输出矩阵卷积的并行处理方法,其特征在于,若P不为N的整数倍,则多余的输出特征图单独进行处理。
4.根据权利要求1-3中任意一项所述的多输入多输出矩阵卷积的并行处理方法,其特征在于,所述步骤S1中,卷积核的尺寸为方阵,取卷积核的规模为长等于高,即卷积核为方阵。
5.根据权利要求1-3中任意一项所述的多输入多输出矩阵卷积的并行处理方法,其特征在于,所述步骤S1中,卷积核的移动步长是1、或2、或3。
6.根据权利要求1-3中任意一项所述的多输入多输出矩阵卷积的并行处理方法,其特征在于,所述步骤S2中,N个卷积核的每一个卷积核中,有M个k×k规模的卷积核,该M个k×k的卷积核与M个输入特征图进行对应的卷积操作,并累加求和得出输出特征图中的一个元素。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711473269.1A CN108205702B (zh) | 2017-12-29 | 2017-12-29 | 一种多输入多输出矩阵卷积的并行处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711473269.1A CN108205702B (zh) | 2017-12-29 | 2017-12-29 | 一种多输入多输出矩阵卷积的并行处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108205702A CN108205702A (zh) | 2018-06-26 |
CN108205702B true CN108205702B (zh) | 2020-12-01 |
Family
ID=62604976
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711473269.1A Active CN108205702B (zh) | 2017-12-29 | 2017-12-29 | 一种多输入多输出矩阵卷积的并行处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108205702B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108985450B (zh) * | 2018-06-28 | 2019-10-29 | 中国人民解放军国防科技大学 | 面向向量处理器的卷积神经网络运算向量化方法 |
CN108920413B (zh) * | 2018-06-28 | 2019-08-09 | 中国人民解放军国防科技大学 | 面向gpdsp的卷积神经网络多核并行计算方法 |
CN109032666B (zh) * | 2018-07-03 | 2021-03-23 | 中国人民解放军国防科技大学 | 一种用于向量处理的确定断言活跃元素个数的方法和装置 |
CN109086244A (zh) * | 2018-07-11 | 2018-12-25 | 中国人民解放军国防科技大学 | 一种基于向量处理器的矩阵卷积向量化实现方法 |
CN108960414B (zh) * | 2018-07-20 | 2022-06-07 | 中国人民解放军国防科技大学 | 一种基于深度学习加速器实现单广播多运算的方法 |
CN110796229B (zh) * | 2018-08-01 | 2024-04-12 | 华为技术有限公司 | 一种实现卷积运算的装置及方法 |
CN110770763A (zh) * | 2018-10-08 | 2020-02-07 | 深圳市大疆创新科技有限公司 | 数据存储的装置、方法、处理器和可移动设备 |
WO2020073211A1 (zh) * | 2018-10-09 | 2020-04-16 | 华为技术有限公司 | 运算加速器、处理方法及相关设备 |
CN110399591B (zh) * | 2019-06-28 | 2021-08-31 | 苏州浪潮智能科技有限公司 | 基于卷积神经网络的数据处理方法和装置 |
CN110399971A (zh) * | 2019-07-03 | 2019-11-01 | Oppo广东移动通信有限公司 | 一种卷积神经网络加速方法及装置、存储介质 |
CN110807170B (zh) * | 2019-10-21 | 2023-06-27 | 中国人民解放军国防科技大学 | 多样本多通道卷积神经网络Same卷积向量化实现方法 |
CN111597029B (zh) * | 2020-05-20 | 2024-03-22 | 上海商汤智能科技有限公司 | 数据处理方法及装置、电子设备和存储介质 |
CN113724127B (zh) * | 2021-08-02 | 2023-05-05 | 成都统信软件技术有限公司 | 一种图像矩阵卷积的实现方法、计算设备及储存介质 |
CN116861149B (zh) * | 2023-09-05 | 2024-01-09 | 之江实验室 | 卷积运算的优化方法、装置及处理器 |
CN117313803B (zh) * | 2023-11-28 | 2024-02-02 | 进迭时空(杭州)科技有限公司 | 基于risc-v向量处理器架构的滑动窗口2d卷积计算方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017031630A1 (zh) * | 2015-08-21 | 2017-03-02 | 中国科学院自动化研究所 | 基于参数量化的深度卷积神经网络的加速与压缩方法 |
CN106991473A (zh) * | 2017-03-30 | 2017-07-28 | 中国人民解放军国防科学技术大学 | 面向向量处理器的基于simd的平均值值池化并行处理方法 |
CN107239824A (zh) * | 2016-12-05 | 2017-10-10 | 北京深鉴智能科技有限公司 | 用于实现稀疏卷积神经网络加速器的装置和方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106846235B (zh) * | 2016-12-26 | 2020-11-13 | 中国科学院计算技术研究所 | 一种利用NVIDIA Kepler GPU汇编指令加速的卷积优化方法及系统 |
CN106959937B (zh) * | 2017-03-30 | 2019-03-29 | 中国人民解放军国防科学技术大学 | 一种面向gpdsp的反卷积矩阵的向量化实现方法 |
CN106970896B (zh) * | 2017-03-30 | 2020-05-12 | 中国人民解放军国防科学技术大学 | 面向向量处理器的二维矩阵卷积的向量化实现方法 |
-
2017
- 2017-12-29 CN CN201711473269.1A patent/CN108205702B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017031630A1 (zh) * | 2015-08-21 | 2017-03-02 | 中国科学院自动化研究所 | 基于参数量化的深度卷积神经网络的加速与压缩方法 |
CN107239824A (zh) * | 2016-12-05 | 2017-10-10 | 北京深鉴智能科技有限公司 | 用于实现稀疏卷积神经网络加速器的装置和方法 |
CN106991473A (zh) * | 2017-03-30 | 2017-07-28 | 中国人民解放军国防科学技术大学 | 面向向量处理器的基于simd的平均值值池化并行处理方法 |
Non-Patent Citations (2)
Title |
---|
Optimizing FPGA-based Accelerator Design for Deep Convolutional Neural Networks;Chen Zhang等;《FPGA "15: Proceedings of the 2015 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays》;20150228;第161-170页 * |
基于FPGA的卷积神经网络加速器;余子健;《万方数据库》;20160831;第1-45页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108205702A (zh) | 2018-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108205702B (zh) | 一种多输入多输出矩阵卷积的并行处理方法 | |
US10394929B2 (en) | Adaptive execution engine for convolution computing systems | |
CN108241890B (zh) | 一种可重构神经网络加速方法及架构 | |
US11334648B2 (en) | Matrix multiplier | |
CN106970896B (zh) | 面向向量处理器的二维矩阵卷积的向量化实现方法 | |
AU2017338783B2 (en) | Efficient data layouts for convolutional neural networks | |
CN111242289B (zh) | 一种规模可扩展的卷积神经网络加速系统与方法 | |
CN107301456B (zh) | 基于向量处理器的深度神经网络多核加速实现方法 | |
CN108985450B (zh) | 面向向量处理器的卷积神经网络运算向量化方法 | |
CN109086244A (zh) | 一种基于向量处理器的矩阵卷积向量化实现方法 | |
CN108205703B (zh) | 多输入多输出矩阵平均值池化向量化实现方法 | |
CN112200300B (zh) | 卷积神经网络运算方法及装置 | |
WO2017116924A1 (en) | Neural network training performance optimization framework | |
CN106846235B (zh) | 一种利用NVIDIA Kepler GPU汇编指令加速的卷积优化方法及系统 | |
CN108197075B (zh) | 一种Inception结构的多核实现方法 | |
EP3674982A1 (en) | Hardware accelerator architecture for convolutional neural network | |
US20230068450A1 (en) | Method and apparatus for processing sparse data | |
CN108985449B (zh) | 一种对卷积神经网络处理器的控制方法及装置 | |
CN109165734B (zh) | 一种矩阵局部响应归一化的向量化实现方法 | |
CN113469350A (zh) | 一种适于npu的深度卷积神经网络加速方法和系统 | |
CN108470211B (zh) | 一种卷积计算的实现方法、设备和计算机存储介质 | |
CN112395092A (zh) | 数据处理方法及人工智能处理器 | |
CN109447239B (zh) | 一种基于arm的嵌入式卷积神经网络加速方法 | |
CN113313252B (zh) | 一种基于脉动阵列的深度可分离卷积实现方法 | |
CN111860819B (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 |