CN112446471B - 基于异构众核处理器的卷积加速方法 - Google Patents

基于异构众核处理器的卷积加速方法 Download PDF

Info

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
Application number
CN201910799257.0A
Other languages
English (en)
Other versions
CN112446471A (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.)
Wuxi Jiangnan Computing Technology Institute
Original Assignee
Wuxi Jiangnan Computing Technology Institute
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 Wuxi Jiangnan Computing Technology Institute filed Critical Wuxi Jiangnan Computing Technology Institute
Priority to CN201910799257.0A priority Critical patent/CN112446471B/zh
Publication of CN112446471A publication Critical patent/CN112446471A/zh
Application granted granted Critical
Publication of CN112446471B publication Critical patent/CN112446471B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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、根据指令流水线特征对数据装载指令、向量计算指令不同的指令进行调度。
CN201910799257.0A 2019-08-28 2019-08-28 基于异构众核处理器的卷积加速方法 Active CN112446471B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 中国人民解放军国防科技大学 面向向量处理器的卷积神经网络运算向量化方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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