CN112559197A - 基于异构众核处理器的卷积计算数据重用方法 - Google Patents
基于异构众核处理器的卷积计算数据重用方法 Download PDFInfo
- Publication number
- CN112559197A CN112559197A CN201910852525.0A CN201910852525A CN112559197A CN 112559197 A CN112559197 A CN 112559197A CN 201910852525 A CN201910852525 A CN 201910852525A CN 112559197 A CN112559197 A CN 112559197A
- Authority
- CN
- China
- Prior art keywords
- data block
- convolution calculation
- kernel
- core processor
- data
- 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.)
- Granted
Links
Images
Classifications
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- 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
-
- 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)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Neurology (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开一种基于异构众核处理器的卷积计算数据重用方法,CPU通过数据块A和数据块B完成数据块C的卷积计算,包括以下步骤:S1、根据异构众核处理器的内核数,二维映射成N*N个,将数据块A、数据块B、数据块C划分为N*N块,第(i,j)号内核将第(j,i)块数据从内存读取到自己的片上存储器内,数据块C(i,j)的卷积计算需要数据块A(i,k)和数据块B(k,j),其中k=1,2,……,N;S2、进入循环k,循环次数从1到N,共N次,利用得到的数据块A、数据块B完成数据块C的第K次卷积计算。本发明显著降低卷积计算在异构众核处理器上的内存访存需求,充分发挥众核计算能力,从而实现卷积计算高性能,提升其在异构众核处理器上的计算性能。
Description
技术领域
本发明涉及一种基于异构众核处理器的卷积计算数据重用方法,属于深度学习技术领域。
背景技术
卷积是深度学习中最重要的概念之一。整个卷积神经网络的训练和推理过程中,卷积操作占据了绝大部份的计算量。高性能计算平台通常要针对这类核心运算提供专门的解决方案。对于计算密集型的函数,比如深度学习中的卷积,如何及时地给强大的计算内核提供足够多的数据,是需要解决的问题。异构众核处理器具有超强的计算能力和多级存储层次以及高效的片内通信方式,为实现高效的数据重用提供可能。
目前常用的卷积计算优化方法主要包含直接面向卷积计算的优化方法、空间域展开的优化方法和频域映射的优化方法三类。其中,空间域展开和频域映射的优化方式需要对输入数据和参数矩阵做预处理,这需要额外的内存空间,并对内存访问速度有较高的要求。对于一些异构众核处理器,内存的最高访存速度与众核强大的计算能力并不匹配,造成卷积计算只能发挥CPU计算性能的10%~20%。
发明内容
本发明的目的是提供一种基于异构众核处理器的卷积计算数据重用方法,该基于异构众核处理器的卷积计算数据重用方法显著降低卷积计算在异构众核处理器上的内存访存需求,充分发挥众核计算能力,从而实现卷积计算高性能,提升其在异构众核处理器上的计算性能。
为达到上述目的,本发明采用的技术方案是:一种基于异构众核处理器的卷积计算数据重用方法,CPU通过数据块A和数据块B完成数据块C的卷积计算,包括以下步骤:
S1、根据异构众核处理器的内核数NUM,将异构众核处理器的内核二维映射成N*N个内核,其中N的值为不超过NUM的平方根的最大整数,并对N*N个内核进行编号,将数据块A、数据块B、数据块C各自按二维等分划分为N*N块,第(i,j)号内核将数据块A、数据块B以及数据块C的第(j,i)块数据分别从内存读取到自己的片上存储器内,数据块C(i,j)的卷积计算需要数据块A(i,k)和数据块B(k,j),其中k=1,2,……,N;
S2、进入循环k,循环次数从1到N,共N次,利用得到的数据块A、数据块B完成数据块C的第K次卷积计算,具体如下:
S21、第(k,v)号内核通过片上通信将数据块A传递给第(u,v)号内核,其中,u=1,……,k-1,k+1,……,N,v=1,……,N;
S22、第(u,k)号内核通过片上通信将数据块B传递给第(u,v)号内核,其中,v=1,……,k-1,k+1,……,N,u=1,……,N;
S23、第(u,v)号内核利用得到的数据块A、数据块B,完成自己片上存储器的数据块C(v,u)的第k次卷积计算,其中,u=1,……,N,v=1,……,N;
S24、第(u,v)号内核将其片上存储器内完成卷积计算的数据块C(v,u)存入内存中。
由于上述技术方案的运用,本发明与现有技术相比具有下列优点:
本发明基于异构众核处理器的卷积计算数据重用方法,其利用异构众核处理器任务映射灵活、片上通信灵活和数据并行高效等体系结构优势,将数据通过片上通信在内核间传递、提高数据重用率,显著降低卷积计算在异构众核处理器上的内存访存需求,充分发挥众核计算能力,从而实现卷积计算高性能,提升其在异构众核处理器上的计算性能。
附图说明
附图1为本发明基于异构众核处理器的卷积计算数据重用方法流程图。
具体实施方式
实施例:一种基于异构众核处理器的卷积计算数据重用方法,基于大规模异构系统,CPU通过数据块A和数据块B完成数据块C的卷积计算,包括以下步骤:
S1、根据异构众核处理器的内核数NUM,将异构众核处理器的内核二维映射成N*N个内核,其中N的值为不超过NUM的平方根的最大整数,并对N*N个内核进行编号,将数据块A、数据块B、数据块C各自按二维等分划分为N*N块,第(i,j)号内核将数据块A、数据块B以及数据块C的第(j,i)块数据分别从内存读取到自己的片上存储器内,数据块C(i,j)的卷积计算需要数据块A(i,k)和数据块B(k,j),其中k=1,2,……,N;
S2、进入循环k,循环次数从1到N,共N次,利用得到的数据块A、数据块B完成数据块C的第K次卷积计算,具体如下:
S21、第(k,v)号内核通过片上通信将数据块A传递给第(u,v)号内核,其中,u=1,……,k-1,k+1,……,N,v=1,……,N;
S22、第(u,k)号内核通过片上通信将数据块B传递给第(u,v)号内核,其中,v=1,……,k-1,k+1,……,N,u=1,……,N;
S23、第(u,v)号内核利用得到的数据块A、数据块B,完成自己片上存储器的数据块C(v,u)的第k次卷积计算,其中,u=1,……,N,v=1,……,N;
S24、第(u,v)号内核将其片上存储器内完成卷积计算的数据块C(v,u)存入内存中。
实施例进一步解释如下:
CPU通过数据块A、B完成数据块C的计算C=AXB,其中X表示卷积操作。
(1)首先,根据异构众核处理器的内核数二维映射成N*N个,将数据块A、B、C划分为N*N块,第(i,j)号内核将第(j,i)块数据取到自己的片上存储器内。数据块C(i,j)的卷积计算需要数据块A(i,k)和数据块B(k,j)(其中k=1,2,……,N)。
(2)进入循环k,循环次数从1到N,共N次:
1、第(k, v)号内核通过片上通信将数据块A传递给第(u,v)号内核(u=1,……,k-1,k+1,……,N,v=1,……,N)
2、第(u, k)号内核通过片上通信将数据块B传递给第(u,v)号内核(v=1,……,k-1,k+1,……,N,u=1,……,N)
3、第(u,v)号内核利用得到的数据块A、B,完成自己片上存储器的数据块C(v,u)的第k次卷积计算。(u=1,……,N,v=1,……,N)
(3)第(u,v)号将片上存储器的数据C(v,u)存入内存中。
采用上述基于异构众核处理器的卷积计算数据重用方法时,其利用异构众核处理器任务映射灵活、片上通信灵活和数据并行高效等体系结构优势,将数据通过片上通信在内核间传递、提高数据重用率,显著降低卷积计算在异构众核处理器上的内存访存需求,充分发挥众核计算能力,从而实现卷积计算高性能,提升其在异构众核处理器上的计算性能。
为了便于更好的理解本发明,下面将对本文中使用的术语进行简要的解释:
异构:不同架构的中央处理器或特定硬件加速单元依据相关技术标准和规范有机内在融合在一颗芯片上,不同异构内核之间实现协同计算。
卷积神经网络:一类包含卷积或相关计算且具有深度结构的前馈神经网络。
片上存储器:与CPU集成在一个芯片上的存储系统。
片上通信:CPU支持的异构内核间的一种数据交互方式。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。
Claims (1)
1.一种基于异构众核处理器的卷积计算数据重用方法,CPU通过数据块A和数据块B完成数据块C的卷积计算,其特征在于:包括以下步骤:
S1、根据异构众核处理器的内核数NUM,将异构众核处理器的内核二维映射成N*N个内核,其中N的值为不超过NUM的平方根的最大整数,并对N*N个内核进行编号,将数据块A、数据块B、数据块C各自按二维等分划分为N*N块,第(i,j)号内核将数据块A、数据块B以及数据块C的第(j,i)块数据分别从内存读取到自己的片上存储器内,数据块C(i,j)的卷积计算需要数据块A(i,k)和数据块B(k,j),其中k=1,2,……,N;
S2、进入循环k,循环次数从1到N,共N次,利用得到的数据块A、数据块B完成数据块C的第K次卷积计算,具体如下:
S21、第(k,v)号内核通过片上通信将数据块A传递给第(u,v)号内核,其中,u=1,……,k-1,k+1,……,N,v=1,……,N;
S22、第(u,k)号内核通过片上通信将数据块B传递给第(u,v)号内核,其中,v=1,……,k-1,k+1,……,N,u=1,……,N;
S23、第(u,v)号内核利用得到的数据块A、数据块B,完成自己片上存储器的数据块C(v,u)的第k次卷积计算,其中,u=1,……,N,v=1,……,N;
S24、第(u,v)号内核将其片上存储器内完成卷积计算的数据块C(v,u)存入内存中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910852525.0A CN112559197B (zh) | 2019-09-10 | 2019-09-10 | 基于异构众核处理器的卷积计算数据重用方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910852525.0A CN112559197B (zh) | 2019-09-10 | 2019-09-10 | 基于异构众核处理器的卷积计算数据重用方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112559197A true CN112559197A (zh) | 2021-03-26 |
CN112559197B CN112559197B (zh) | 2022-11-15 |
Family
ID=75029581
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910852525.0A Active CN112559197B (zh) | 2019-09-10 | 2019-09-10 | 基于异构众核处理器的卷积计算数据重用方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112559197B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114217686A (zh) * | 2021-04-26 | 2022-03-22 | 无锡江南计算技术研究所 | 一种稠密卷积运算核心的低功耗方法 |
CN116028384A (zh) * | 2021-10-26 | 2023-04-28 | 太初(无锡)电子科技有限公司 | 一种基于多张量核心处理器的卷积计算数据重用方法 |
CN116431561A (zh) * | 2023-06-12 | 2023-07-14 | 太初(无锡)电子科技有限公司 | 基于异构众核加速卡的数据同步方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105242909A (zh) * | 2015-11-24 | 2016-01-13 | 无锡江南计算技术研究所 | 一种基于多版本代码生成的众核循环分块方法 |
CN105528253A (zh) * | 2015-11-24 | 2016-04-27 | 无锡江南计算技术研究所 | 一种异构众核系统上的流水式通信并行方法 |
CN107085743A (zh) * | 2017-05-18 | 2017-08-22 | 郑州云海信息技术有限公司 | 一种基于国产众核处理器的深度学习算法实现方法与平台 |
CN109146065A (zh) * | 2018-09-30 | 2019-01-04 | 中国人民解放军战略支援部队信息工程大学 | 二维数据的卷积运算方法及装置 |
-
2019
- 2019-09-10 CN CN201910852525.0A patent/CN112559197B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105242909A (zh) * | 2015-11-24 | 2016-01-13 | 无锡江南计算技术研究所 | 一种基于多版本代码生成的众核循环分块方法 |
CN105528253A (zh) * | 2015-11-24 | 2016-04-27 | 无锡江南计算技术研究所 | 一种异构众核系统上的流水式通信并行方法 |
CN107085743A (zh) * | 2017-05-18 | 2017-08-22 | 郑州云海信息技术有限公司 | 一种基于国产众核处理器的深度学习算法实现方法与平台 |
CN109146065A (zh) * | 2018-09-30 | 2019-01-04 | 中国人民解放军战略支援部队信息工程大学 | 二维数据的卷积运算方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114217686A (zh) * | 2021-04-26 | 2022-03-22 | 无锡江南计算技术研究所 | 一种稠密卷积运算核心的低功耗方法 |
CN116028384A (zh) * | 2021-10-26 | 2023-04-28 | 太初(无锡)电子科技有限公司 | 一种基于多张量核心处理器的卷积计算数据重用方法 |
CN116431561A (zh) * | 2023-06-12 | 2023-07-14 | 太初(无锡)电子科技有限公司 | 基于异构众核加速卡的数据同步方法、装置、设备及介质 |
CN116431561B (zh) * | 2023-06-12 | 2023-08-18 | 太初(无锡)电子科技有限公司 | 基于异构众核加速卡的数据同步方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112559197B (zh) | 2022-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112559197B (zh) | 基于异构众核处理器的卷积计算数据重用方法 | |
Geng et al. | FPDeep: Acceleration and load balancing of CNN training on FPGA clusters | |
CN110390385B (zh) | 一种基于bnrp的可配置并行通用卷积神经网络加速器 | |
CN109447241B (zh) | 一种面向物联网领域的动态可重构卷积神经网络加速器架构 | |
CN112446471B (zh) | 基于异构众核处理器的卷积加速方法 | |
CN108256636A (zh) | 一种基于异构计算的卷积神经网络算法设计实现方法 | |
CN104850866B (zh) | 基于SoC-FPGA的自重构K-means聚类技术实现方法 | |
CN110991630A (zh) | 一种面向边缘计算的卷积神经网络处理器 | |
CN102902590B (zh) | 面向并行数字地形分析海量dem部署与调度方法 | |
CN111831354B (zh) | 数据精度配置方法、装置、芯片、芯片阵列、设备及介质 | |
CN109472734B (zh) | 一种基于fpga的目标检测网络及其实现方法 | |
CN111860773A (zh) | 处理装置和用于信息处理的方法 | |
CN104850516B (zh) | 一种ddr变频设计方法和装置 | |
CN114356836A (zh) | 基于risc-v的三维互联众核处理器架构及其工作方法 | |
Zong-ling et al. | The design of lightweight and multi parallel CNN accelerator based on FPGA | |
CN106528490A (zh) | 一种fpga异构加速计算装置及系统 | |
CN115952393B (zh) | 基于超级计算机的多头注意力机制的前向计算方法及系统 | |
Lei et al. | Toward matrix multiplication for deep learning inference on the Xilinx Versal | |
Lahdhiri et al. | DNNZip: selective layers compression technique in deep neural network accelerators | |
CN115170381A (zh) | 一种基于深度学习的视觉slam加速系统及方法 | |
Moudgill et al. | Heterogeneous edge CNN hardware accelerator | |
CN111427687A (zh) | 一种人工智能云平台 | |
Wang et al. | The inference operation optimization of an improved LeNet-5 convolutional neural network and its FPGA hardware implementation | |
Wu et al. | SPRCPl: An Efficient Tool for SNN Models Deployment on Multi-Core Neuromorphic Chips via Pilot Running | |
Chi et al. | Hardware Architecture Design of the Deep-learning-based Machine Vision Chip |
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 |