CN112446471B - 基于异构众核处理器的卷积加速方法 - Google Patents
基于异构众核处理器的卷积加速方法 Download PDFInfo
- Publication number
- CN112446471B CN112446471B CN201910799257.0A CN201910799257A CN112446471B CN 112446471 B CN112446471 B CN 112446471B CN 201910799257 A CN201910799257 A CN 201910799257A CN 112446471 B CN112446471 B CN 112446471B
- Authority
- CN
- China
- Prior art keywords
- core
- convolution
- instruction
- calculation
- acceleration
- 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
- 238000000034 method Methods 0.000 title claims abstract description 46
- 230000001133 acceleration Effects 0.000 title claims abstract description 44
- 238000004364 calculation method Methods 0.000 claims abstract description 57
- 230000008569 process Effects 0.000 claims abstract description 16
- 239000011159 matrix material Substances 0.000 claims description 10
- 238000005457 optimization Methods 0.000 claims description 8
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 claims description 4
- 230000009467 reduction Effects 0.000 claims description 4
- 238000003860 storage Methods 0.000 abstract description 8
- 238000012549 training Methods 0.000 abstract description 7
- 238000013528 artificial neural network Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 abstract description 3
- 238000013527 convolutional neural network Methods 0.000 description 6
- 238000013507 mapping Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000006317 isomerization reaction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开一种基于异构众核处理器的卷积加速方法,包括以下步骤:S1、根据异构众核处理器的核数,确定输入特征图和卷积核的多核划分方法,实现众核并行加速,S2、各计算核心将划分后的数据通过DMA的方式传输至片上存储器,实现片上存储加速,S3、将卷积操作核心计算过程中的标量计算操作优化为向量计算操作,实现SIMD指令加速,S4、结合异构众核处理器流水线特性,对卷积操作核心计算过程的指令流进行优化,以提高执行效率,实现指令并行加速。本发明对卷积操作进行加速,显著提升了卷积神经网络在异构众核处理器上的训练和推理性能。
Description
技术领域
本发明涉及一种基于异构众核处理器的卷积加速方法,属于计算机技术领域。
背景技术
卷积是深度学习中最重要的概念之一。整个卷积神经网络的训练和推理过程中,卷积操作占据了绝大部份的计算量。异构高性能计算平台通常需要为卷积神经网络的训练和推理任务提供计算支持。当前,有一系列面向深度神经网络的核心函数库为不同的处理器架构提供了深度优化的卷积接口,如MKL-DNN之于X86 CPU,CUDNN之于Nvidia GPU,这些接口对于卷积神经网络计算有显著的加速效果。
目前,常用的卷积计算优化方法主要包含直接面向卷积计算的优化方法、空间域展开的优化方法和频域映射的优化方法三类。其中,空间域展开和频域映射的优化方式需要对输入数据和参数矩阵做预处理,这需要额外的内存空间,并对内存访问速度有较高的要求。对于一些异构众核处理器,其内存容量和最高访存速度并不十分突出,需要利用其他的体系结构特征进行卷积神经网络的性能加速。
发明内容
本发明的目的是提供一种基于异构众核处理器的卷积加速方法,该基于异构众核处理器的卷积加速方法对卷积操作进行加速,显著提升了卷积神经网络在异构众核处理器上的训练和推理性能。
为达到上述目的,本发明采用的技术方案是:一种基于异构众核处理器的卷积加速方法,包括以下步骤:
S1、根据异构众核处理器的核数,确定输入特征图和卷积核的多核划分方法,实现众核并行加速,具体步骤如下:
S11、根据众核处理器核数M,确定单个计算核心分配的数据量P;
S12、对输入特征图和卷积核进行降维,将输入特征图Cc*kc*kc按照kc、kc、Cc的顺序转换为一维向量,将卷积核Nr*Cr*kr*kr按kr、kr、Cr、Nr的顺序转换为一维向量;
S13、将降维后的输入特征图和卷积核分给M个计算核,每个计算核分配的数据量大小为P;
S2、各计算核心将S13中分配的数据通过DMA的方式传输至片上存储器,实现片上存储加速,具体步骤如下:
S21、针对每个计算核心分配的数据量P,分配一个2P空间大小的片上局部存储器区域,其中一半空间用于主存的读写,另一半的空间参与计算,以保证计算核访存的相互独立,实现计算访存重叠;
S22、对输入特征图和卷积核进行数据重排,即将输入特征图中与矩阵计算相关的kc维度作为最低维,并将卷积核Nr*Cr*kr*kr的Nr、 Cr两维做180度旋转,以实现更高效的DMA操作;
S23、对输入特征图进行分块处理,每块大小Cc*kc*kr,计算核每次读入一块,而非一个元素对应的输入特征矩阵;
S3、将卷积操作核心计算过程中的标量计算指令优化为向量计算指令,实现SIMD指令加速,具体步骤如下:
S31、分析卷积操作核心计算过程的数据依赖关系,根据异构众核处理器SIMD指令所能处理的向量宽度,对卷积操作核心计算进行循环展开;
S32、使用向量计算指令替换标量计算指令,并进行相应的标量与向量数据的类型转换操作;
S4、结合异构众核处理器流水线特性,对卷积操作核心计算过程的指令流进行优化,以提高执行效率,实现指令并行加速,具体步骤如下:
S41、在S31的基础上,将卷积操作核心计算再展开两次,为指令调度提供优化空间;
S42、根据指令流水线特征对数据装载指令、向量计算指令不同的指令进行调度。
由于上述技术方案的运用,本发明与现有技术相比具有下列优点:
本发明基于异构众核处理器的卷积加速方法,其利用异构众核处理器强大的众核并行能力,高速的片上存储能力、丰富的向量SIMD指令,以及流水线的优势,使用异构并行加速、片上存储加速、SIMD指令加速和指令并行加速的方法,对卷积操作进行加速,显著提升了卷积神经网络在异构众核处理器上的训练和推理性能。
附图说明
附图1为本发明基于异构众核处理器的卷积加速方法流程图。
具体实施方式
实施例:一种基于异构众核处理器的卷积加速方法,包括以下步骤:
S1、根据异构众核处理器的核数,确定输入特征图和卷积核的多核划分方法,实现众核并行加速,具体步骤如下:
S11、根据众核处理器核数M,确定单个计算核心分配的数据量P;
S12、对输入特征图和卷积核进行降维,将输入特征图Cc*kc*kc按照kc、kc、Cc的顺序转换为一维向量,将卷积核Nr*Cr*kr*kr按kr、kr、Cr、Nr的顺序转换为一维向量;
S13、将降维后的输入特征图和卷积核分给M个计算核,每个计算核分配的数据量大小为P;
S2、各计算核心将S13中分配的数据通过DMA的方式传输至片上存储器,实现片上存储加速,具体步骤如下:
S21、针对每个计算核心分配的数据量P,分配一个2P空间大小的片上局部存储器区域,其中一半空间用于主存的读写,另一半的空间参与计算,以保证计算核访存的相互独立,实现计算访存重叠;
S22、对输入特征图和卷积核进行数据重排,即将输入特征图中与矩阵计算相关的kc维度作为最低维,并将卷积核Nr*Cr*kr*kr的Nr、Cr两维做180度旋转,以实现更高效的DMA操作;
S23、对输入特征图进行分块处理,每块大小Cc*kc*kr,计算核每次读入一块,而非一个元素对应的输入特征矩阵;
S3、将卷积操作核心计算过程中的标量计算指令优化为向量计算指令,实现SIMD指令加速,具体步骤如下:
S31、分析卷积操作核心计算过程的数据依赖关系,根据异构众核处理器SIMD指令所能处理的向量宽度,对卷积操作核心计算进行循环展开;
S32、使用向量计算指令替换标量计算指令,并进行相应的标量与向量数据的类型转换操作;
S4、结合异构众核处理器流水线特性,对卷积操作核心计算过程的指令流进行优化,以提高执行效率,实现指令并行加速,具体步骤如下:
S41、在S31的基础上,将卷积操作核心计算再展开两次,为指令调度提供优化空间;
S42、根据指令流水线特征对数据装载指令、向量计算指令不同的指令进行调度。
实施例进一步解释如下:
本发明方案具体流程如图1所示,包括众核并行加速、片上存储加速、SIMD指令加速和指令并行加速四部分的工作,充分利用其多级存储层次和向量指令集等特性,以及异构众核处理器片上存储快速、任务映射灵活和数据并行高效等体系结构优势,提升了卷积神经网络在异构众核处理器上的训练和推理性能。
首先,根据异构众核处理器的核数,确定输入特征图和卷积核的多核划分方法,实现众核并行加速,具体如下:
根据众核处理器核数M,确定单个计算核心分配的数据量P;
对输入的特征图和卷积核进行降维,将输入特征图Cc*kc*kc按照kc、kc、Cc的顺序转换为一维向量,将卷积核Nr*Cr*kr*kr按kr、kr、Cr、Nr的顺序转换为一维向量;
将降维后的输入特征图和卷积核分给若干计算核。
接着,各计算核心将划分后的数据通过DMA(直接存储器访问)的方式传输至片上存储器,实现片上存储加速,具体如下:
针对卷积计算每一部分数据,分配一个双倍于所需要空间大小的片上局部存储器区域,其中一半空间用于主存的读写,同时另一半的空间参与计算,保证计算核访存的相互独立,实现计算访存重叠;
对输入和输出特征图进行数据重排,将与矩阵计算相关的维度作为最低维,并且将卷积核Nr*Cr*kr*kr的Nr、 Cr两维做180度旋转,从而实现更加高效的DMA操作;
对输入特征图进行分块处理,每次读入一块,而非一个元素对应的输入特征矩阵,这些数据可以共享相同的卷积参数矩阵,来完成多次内层的矩阵乘计算。
再次,将卷积操作核心计算过程中的标量计算操作优化为向量计算操作,具体如下:
分析卷积操作核心计算过程的数据依赖关系,根据异构众核处理器SIMD指令所能处理的向量宽度,对卷积操作核心计算进行循环展开;
使用向量计算指令替换标量计算指令,并增加相应的标量与向量数据的类型转换操作。
最后,为了提高执行效率,结合异构众核处理器流水线特性,对卷积操作核心计算过程的指令流进行优化,具体如下:
对卷积操作核心计算循环展开;
根据指令流水线特征对数据装载指令、向量计算指令等不同的指令进行调度。
采用上述基于异构众核处理器的卷积加速方法时,其利用异构众核处理器强大的众核并行能力,高速的片上存储能力、丰富的向量SIMD指令,以及流水线的优势,使用异构并行加速、片上存储加速、SIMD指令加速和指令并行加速的方法,对卷积操作进行加速,显著提升了卷积神经网络在异构众核处理器上的训练和推理性能。
为了便于更好的理解本发明,下面将对本文中使用的术语进行简要的解释:
异构:不同架构的中央处理器或特定硬件加速单元依据相关技术标准和规范有机内在融合在一颗芯片上,不同异构内核之间实现协同计算。
卷积神经网络:一类包含卷积或相关计算且具有深度结构的前馈神经网络。
片上存储器:与CPU集成在一个芯片上的存储系统。
SIMD指令:单指令流多数据流指令。
处理器流水线:是一种将指令分解为多步,并让不同指令的各步操作重叠,从而实现几条指令并行处理,以加速程序运行过程的技术。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。
Claims (1)
1.一种基于异构众核处理器的卷积加速方法,其特征在于:包括以下步骤:
S1、根据异构众核处理器的核数,确定输入特征图和卷积核的多核划分方法,实现众核并行加速,具体步骤如下:
S11、根据众核处理器核数M,确定单个计算核心分配的数据量P;
S12、对输入特征图和卷积核进行降维,将输入特征图Cc*kc*kc按照kc、kc、Cc的顺序转换为一维向量,将卷积核Nr*Cr*kr*kr按kr、kr、Cr、Nr的顺序转换为一维向量;
S13、将降维后的输入特征图和卷积核分给M个计算核,每个计算核分配的数据量大小为P;
S2、各计算核心将S13中分配的数据通过DMA的方式传输至片上存储器,实现片上存储加速,具体步骤如下:
S21、针对每个计算核心分配的数据量P,分配一个2P空间大小的片上局部存储器区域,其中一半空间用于主存的读写,另一半的空间参与计算,以保证计算核访存的相互独立,实现计算访存重叠;
S22、对输入特征图和卷积核进行数据重排,即将输入特征图中与矩阵计算相关的kc维度作为最低维,并将卷积核Nr*Cr*kr*kr的Nr、 Cr两维做180度旋转,以实现更高效的DMA操作;
S23、对输入特征图进行分块处理,每块大小Cc*kc*kr,计算核每次读入一块,而非一个元素对应的输入特征矩阵;
S3、将卷积操作核心计算过程中的标量计算指令优化为向量计算指令,实现SIMD指令加速,具体步骤如下:
S31、分析卷积操作核心计算过程的数据依赖关系,根据异构众核处理器SIMD指令所能处理的向量宽度,对卷积操作核心计算进行循环展开;
S32、使用向量计算指令替换标量计算指令,并进行相应的标量与向量数据的类型转换操作;
S4、结合异构众核处理器流水线特性,对卷积操作核心计算过程的指令流进行优化,以提高执行效率,实现指令并行加速,具体步骤如下:
S41、在S31的基础上,将卷积操作核心计算再展开两次,为指令调度提供优化空间;
S42、根据指令流水线特征对数据装载指令、向量计算指令不同的指令进行调度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910799257.0A CN112446471B (zh) | 2019-08-28 | 2019-08-28 | 基于异构众核处理器的卷积加速方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910799257.0A CN112446471B (zh) | 2019-08-28 | 2019-08-28 | 基于异构众核处理器的卷积加速方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112446471A CN112446471A (zh) | 2021-03-05 |
CN112446471B true CN112446471B (zh) | 2022-09-13 |
Family
ID=74742031
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910799257.0A Active CN112446471B (zh) | 2019-08-28 | 2019-08-28 | 基于异构众核处理器的卷积加速方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112446471B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113191491B (zh) * | 2021-03-16 | 2022-08-09 | 杭州慧芯达科技有限公司 | 多维度并行的人工智能处理器架构 |
CN113391970B (zh) * | 2021-07-08 | 2024-03-22 | 无锡江南计算技术研究所 | 一种面向异构众核处理器的芯片测试方法及装置 |
CN114943635B (zh) * | 2021-09-30 | 2023-08-22 | 太初(无锡)电子科技有限公司 | 一种基于异构协同计算核心的融合算子设计与实现方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104915322A (zh) * | 2015-06-09 | 2015-09-16 | 中国人民解放军国防科学技术大学 | 一种卷积神经网络硬件加速方法及其axi总线ip核 |
CN107885700A (zh) * | 2017-12-29 | 2018-04-06 | 中国人民解放军国防科技大学 | 一种大规模矩阵卷积的多核实现方法 |
CN108985450A (zh) * | 2018-06-28 | 2018-12-11 | 中国人民解放军国防科技大学 | 面向向量处理器的卷积神经网络运算向量化方法 |
-
2019
- 2019-08-28 CN CN201910799257.0A patent/CN112446471B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104915322A (zh) * | 2015-06-09 | 2015-09-16 | 中国人民解放军国防科学技术大学 | 一种卷积神经网络硬件加速方法及其axi总线ip核 |
CN107885700A (zh) * | 2017-12-29 | 2018-04-06 | 中国人民解放军国防科技大学 | 一种大规模矩阵卷积的多核实现方法 |
CN108985450A (zh) * | 2018-06-28 | 2018-12-11 | 中国人民解放军国防科技大学 | 面向向量处理器的卷积神经网络运算向量化方法 |
Non-Patent Citations (1)
Title |
---|
Fast Convolution Operations on Many-Core Architectures;Shigang Li等;《17th International Conference on High Performance Computing and Communications 》;20151231;第316-323页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112446471A (zh) | 2021-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102443546B1 (ko) | 행렬 곱셈기 | |
US20200225996A1 (en) | Systems, apparatus, methods, and architectures for a neural network workflow to generate a hardware acceletator | |
CN108805266B (zh) | 一种可重构cnn高并发卷积加速器 | |
CN106940815B (zh) | 一种可编程卷积神经网络协处理器ip核 | |
CN107168683B (zh) | 申威26010众核cpu上gemm稠密矩阵乘高性能实现方法 | |
CN112446471B (zh) | 基于异构众核处理器的卷积加速方法 | |
Tanomoto et al. | A CGRA-based approach for accelerating convolutional neural networks | |
CN109002659B (zh) | 一种基于超级计算机的流体机械仿真程序优化方法 | |
EP3526665B1 (en) | Sorting for data-parallel computing devices | |
Bosilca et al. | Performance portability of a GPU enabled factorization with the DAGuE framework | |
CN114416045A (zh) | 自动生成算子的方法和装置 | |
CN102629191B (zh) | 数字信号处理器寻址方法 | |
Cui et al. | Research on parallel association rules mining on GPU | |
WO2016024508A1 (ja) | マルチプロセッサ装置 | |
Song et al. | Gpnpu: Enabling efficient hardware-based direct convolution with multi-precision support in gpu tensor cores | |
CN112559197B (zh) | 基于异构众核处理器的卷积计算数据重用方法 | |
Zhong et al. | swmr: A framework for accelerating mapreduce applications on sunway taihulight | |
CN103235717A (zh) | 具有多态指令集体系结构的处理器 | |
US20230289398A1 (en) | Efficient Matrix Multiply and Add with a Group of Warps | |
CN114595813A (zh) | 异构加速处理器及数据计算方法 | |
CN105224506B (zh) | 一种用于gpu异构集群的高性能fft方法 | |
Moudgill et al. | Heterogeneous edge CNN hardware accelerator | |
US20160162290A1 (en) | Processor with Polymorphic Instruction Set Architecture | |
Wang | Research on matrix multiplication based on the combination of openacc and cuda | |
Lin et al. | A software technique to enhance register utilization of convolutional neural networks on GPGPUs |
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 |