CN114253545A - 一种基于编译的神经网络异构众核多层次资源映射方法 - Google Patents
一种基于编译的神经网络异构众核多层次资源映射方法 Download PDFInfo
- Publication number
- CN114253545A CN114253545A CN202110381428.5A CN202110381428A CN114253545A CN 114253545 A CN114253545 A CN 114253545A CN 202110381428 A CN202110381428 A CN 202110381428A CN 114253545 A CN114253545 A CN 114253545A
- Authority
- CN
- China
- Prior art keywords
- layer
- core
- cycle
- neural network
- equal
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- 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/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
- 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)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (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)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开一种基于编译的神经网络异构众核多层次资源映射方法,包括以下步骤:S1、进行众核核组资源映射;S2、进行从核线程资源映射;S3、进行向量部件资源映射。本发明可充分挖掘神经网络算子并行潜力,发挥片上多级并行优势,从而提升深度学习负载在异构众核平台上的性能。
Description
技术领域
本发明涉及一种基于编译的神经网络异构众核多层次资源映射方法,属于编译优化技术领域。
背景技术
深度学习编译器的作用是将深度学习工作负载部署在特定硬件平台以高效完成训练和推理任务,能够充分挖掘人工智能领域算法特点和模式化特征,将多种典型深度学习框架的模型转化为统一的计算图,再通过一系列领域算法指导的编译优化技术和体系结构相关的底层优化技术,生成面向不同硬件平台的高效代码,用以加速深度学习中的推理过程。
TVM(Tensor Virtual Machine)是当前主流的深度学习编译器,它针对不同的深度学习框架和硬件平台,实现了统一的软件栈,以尽可能高效的方式,将不同框架下的深度学习模型部署到硬件平台,其支持的硬件平台主要包括X86、ARM等CPU架构以及NVIDIA、AMD等GPU架构。对于多核CPU架构,深度学习编译器采用多OpenMP多线程并行方式将计算任务映射到多个核心执行;对于GPU架构,则采用CUDA或OpenCL等编程模型进行计算任务的资源映射。
国产异构众核处理器采用与现有的CPU和GPU完全不同的新型片上异构融合体系结构,将片上计算资源划分为多个核组,核组内采用共享内存的主从异构众核架构,并且在基本指令系统的基础上,增加了向量扩展指令系统,非常适合加速深度学习任务。但是,当前深度学习编译器支持的硬件平台主要包括X86、ARM等CPU架构以及NVIDIA、AMD等GPU架构,针对这种拥有多层次硬件资源的国产异构众核架构,目前的深度学习编译器TVM无法进行有效的资源映射,使得深度学习负载无法充分发挥异构众核平台的性能。
发明内容
本发明的目的是提供一种基于编译的神经网络异构众核多层次资源映射方法,以解决针对国产异构众核处理器,目前的深度学习编译器TVM无法进行有效的资源映射,导致深度学习负载无法充分发挥异构众核平台性能的问题。
为达到上述目的,本发明采用的技术方案是:提供一种基于编译的神经网络异构众核多层次资源映射方法,包括以下步骤:
S1、进行众核核组资源映射,具体如下:
S11、对神经网络算子的最外层循环x进行循环分裂,获得外层循环xo和内层循环xi,设置分裂后的外层循环xo的循环次数等于众核核组个数N;
S12、对于S11获得的外层循环xo,将其计算过程绑定到众核核组资源;
S2、进行从核线程资源映射,具体如下:
S21、若步骤S11分裂前的神经网络算子的循环层数大于等于2,执行S23,否则,执行S22;
S22、对步骤S11获得的内层循环xi进行循环分裂,获得外层循环yo和内层循环yi,设置分裂后的外层循环yo的循环次数等于核组内的从核线程个数T;
S23、对最外层循环x的内层循环y进行循环分裂,获得外层循环yo和内层循环yi,设置分裂后的外层循环yo的循环次数等于核组内的从核线程个数T;
S24、对S22或S23获得的外层循环yo,将其计算过程绑定到从核线程资源;
S3、进行向量部件资源映射,具体如下:
S31、若步骤S11分裂前的神经网络算子的循环层数大于等于3,执行步骤S33,否则,执行步骤S32;
S32、对步骤S2获得的内层循环yi进行循环分裂,获得外层循环zo和内层循环zi,设置分裂后的内层循环zi的循环次数等于运算核心向量宽度K;
S33、对内层循环y的内层循环z进行循环分裂,获得外层循环zo和内层循环zi,设置分裂后的内层循环zi的循环次数等于运算核心向量宽度K;
S34、对S32或S33获得的内层循环zi,将其计算过程绑定到运算核心向量计算部件。
由于上述技术方案的运用,本发明与现有技术相比具有下列优点:
本发明提供了一种基于编译的神经网络异构众核多层次资源映射方法,在深度学习编译器的基础上,针对国产异构众核多层次硬件资源架构特点,通过DSL接口实现计算任务在多核组、多从核以及向量计算部件上的灵活资源映射,充分挖掘神经网络算子并行潜力,发挥片上多级并行优势,从而提升深度学习负载在异构众核平台上的性能。
附图说明
附图1为本发明基于编译的神经网络异构众核多层次资源映射方法流程图。
具体实施方式
实施例:本发明提供一种基于编译的神经网络异构众核多层次资源映射方法,具体包括以下步骤:
S1、进行众核核组资源映射,具体如下:
S11、对神经网络算子的最外层循环x进行循环分裂,获得外层循环xo和内层循环xi,设置分裂后的外层循环xo的循环次数等于众核核组个数N;
S12、对于S11获得的外层循环xo,将其计算过程绑定到众核核组资源;
S2、进行从核线程资源映射,具体如下:
S21、若步骤S11分裂前的神经网络算子的循环层数大于等于2,执行S23,否则,执行S22;
S22、对步骤S11获得的内层循环xi进行循环分裂,获得外层循环yo和内层循环yi,设置分裂后的外层循环yo的循环次数等于核组内的从核线程个数T;
S23、对最外层循环x的内层循环y进行循环分裂,获得外层循环yo和内层循环yi,设置分裂后的外层循环yo的循环次数等于核组内的从核线程个数T;
S24、对S22或S23获得的外层循环yo,将其计算过程绑定到从核线程资源;
S3、进行向量部件资源映射,具体如下:
S31、若步骤S11分裂前的神经网络算子的循环层数大于等于3,执行步骤S33,否则,执行步骤S32;
S32、对步骤S2获得的内层循环yi进行循环分裂,获得外层循环zo和内层循环zi,设置分裂后的内层循环zi的循环次数等于运算核心向量宽度K;
S33、对内层循环y的内层循环z进行循环分裂,获得外层循环zo和内层循环zi,设置分裂后的内层循环zi的循环次数等于运算核心向量宽度K;
S34、对S32或S33获得的内层循环zi,将其计算过程绑定到运算核心向量计算部件。
对上述实施例的进一步解释如下:
本发明提出一种基于编译的神经网络异构众核多层次资源映射方法,并在基于国产处理器的TVM深度学习编译器中实现了上述资源映射方法,具体流程如图1所示,主要包括众核核组资源映射、从核线程资源映射以及向量部件资源映射三个步骤:
S1、首先,进行众核核组资源映射,具体如下:
S11、对神经网络算子的最外层循环x进行循环分裂,设置分裂后的外层循环xo的循环次数等于众核核组个数N,相应的DSL如下:xo, xi = s[A].split(x, nparts=N);
S12、对于S11获得的外层循环xo,将其计算过程绑定到众核核组资源,相应的DSL如下:s[A].bind(xo, tvm.thread_axis(“_CGN”));
S2、其次,进行从核线程资源映射,具体如下:
S21、若步骤S1分裂前的神经网络算子循环层数大于等于2,执行步骤S23,否则,执行步骤S22;
S22、对循环xi进行循环分裂,设置分裂后的外层循环yo的循环次数等于核组内的从核线程个数T,相应的DSL如下:yo, yi = s[A].split(xi, nparts=T);
S23、对循环x的内层循环y进行循环分裂,设置分裂后的外层循环yo的循环次数等于核组内的从核线程个数T,相应的DSL如下:yo, yi = s[A].split(y, nparts=T);
S24、对S22或S23获得的外层循环yo,将其计算过程绑定到从核线程资源,相应的DSL如下:s[A].bind(yo, tvm.thread_axis(“_PEN”));
S3、最后,进行向量部件资源映射,具体如下:
S31、若步骤S1分裂前的神经网络算子循环层数大于等于3,执行步骤S33,否则,执行步骤S32;
S32、对循环yi进行循环分裂,设置分裂后的内层循环zi的循环次数等于运算核心向量宽度K,相应的DSL如下:zo, zi = s[A].split(yi, factor=K);
S33、对循环y的内层循环z进行循环分裂,设置分裂后的内层循环zi的循环次数等于运算核心向量宽度K,相应的DSL如下:zo, zi = s[A].split(z, factor=K);
S34、对S32或S33获得的内层循环zi,将其计算过程绑定到运算核心向量计算部件,相应的DSL如下:s[A].vectorize(zi)。
采用上述一种基于编译的神经网络异构众核多层次资源映射方法时,其。
为了便于更好的理解本发明,下面将对本文中使用的术语进行简要的解释:
编译:将源程序(高级语言)翻译成目标程序(低级语言或机器语言)的过程。
异构众核:采用新型的片上异构融合体系结构。
神经网络:有很多隐藏层的神经网络,又称为深度前馈网络或多层感知机。
TVM:Tensor Virtual Machine,亚马逊公司推出的一款深度学习编译器,能够将深度学习工作负载部署在特定硬件平台以高效完成推理任务。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。
Claims (1)
1.一种基于编译的神经网络异构众核多层次资源映射方法,其特征在于,包括以下步骤:
S1、进行众核核组资源映射,具体如下:
S11、对神经网络算子的最外层循环x进行循环分裂,获得外层循环xo和内层循环xi,设置分裂后的外层循环xo的循环次数等于众核核组个数N;
S12、对于S11获得的外层循环xo,将其计算过程绑定到众核核组资源;
S2、进行从核线程资源映射,具体如下:
S21、若步骤S11分裂前的神经网络算子的循环层数大于等于2,执行S23,否则,执行S22;
S22、对步骤S11获得的内层循环xi进行循环分裂,获得外层循环yo和内层循环yi,设置分裂后的外层循环yo的循环次数等于核组内的从核线程个数T;
S23、对最外层循环x的内层循环y进行循环分裂,获得外层循环yo和内层循环yi,设置分裂后的外层循环yo的循环次数等于核组内的从核线程个数T;
S24、对S22或S23获得的外层循环yo,将其计算过程绑定到从核线程资源;
S3、进行向量部件资源映射,具体如下:
S31、若步骤S11分裂前的神经网络算子的循环层数大于等于3,执行步骤S33,否则,执行步骤S32;
S32、对步骤S2获得的内层循环yi进行循环分裂,获得外层循环zo和内层循环zi,设置分裂后的内层循环zi的循环次数等于运算核心向量宽度K;
S33、对内层循环y的内层循环z进行循环分裂,获得外层循环zo和内层循环zi,设置分裂后的内层循环zi的循环次数等于运算核心向量宽度K;
S34、对S32或S33获得的内层循环zi,将其计算过程绑定到运算核心向量计算部件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110381428.5A CN114253545A (zh) | 2021-04-09 | 2021-04-09 | 一种基于编译的神经网络异构众核多层次资源映射方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110381428.5A CN114253545A (zh) | 2021-04-09 | 2021-04-09 | 一种基于编译的神经网络异构众核多层次资源映射方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114253545A true CN114253545A (zh) | 2022-03-29 |
Family
ID=80791045
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110381428.5A Pending CN114253545A (zh) | 2021-04-09 | 2021-04-09 | 一种基于编译的神经网络异构众核多层次资源映射方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114253545A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116991564A (zh) * | 2023-09-28 | 2023-11-03 | 之江实验室 | 面向异构双核mcu的算子内并行加速方法 |
-
2021
- 2021-04-09 CN CN202110381428.5A patent/CN114253545A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116991564A (zh) * | 2023-09-28 | 2023-11-03 | 之江实验室 | 面向异构双核mcu的算子内并行加速方法 |
CN116991564B (zh) * | 2023-09-28 | 2024-01-09 | 之江实验室 | 面向异构双核mcu的算子内并行加速方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109947567B (zh) | 一种多智能体强化学习调度方法、系统及电子设备 | |
De Rainville et al. | Deap: A python framework for evolutionary algorithms | |
Hammond et al. | The paraphrase project: Parallel patterns for adaptive heterogeneous multicore systems | |
CN105956021A (zh) | 一种适用于分布式机器学习的自动化任务并行的方法及其系统 | |
CN102520925B (zh) | Aadl2tasm模型转换方法 | |
CN113934410A (zh) | 支持自定义算子的多硬件目标深度模型优化部署架构 | |
CN114841345A (zh) | 一种基于深度学习算法的分布式计算平台及其应用 | |
CN114217941A (zh) | 一种面向国产异构众核处理器的TensorFlow框架核心计算加速引擎 | |
CN114282641B (zh) | 一种通用异构加速框架的构建方法 | |
CN114253545A (zh) | 一种基于编译的神经网络异构众核多层次资源映射方法 | |
CN103455339A (zh) | 一种通用仿真组件的执行方法 | |
Li et al. | Development and application of intelligent system modeling and simulation platform | |
Pilla et al. | Asymptotically optimal load balancing for hierarchical multi-core systems | |
CN114217807B (zh) | 一种基于异构众核架构的直接内存访问编译优化方法 | |
CN104516735B (zh) | 实现云计算环境自动化运维的二维分层方法 | |
Albert et al. | Symbolic execution of concurrent objects in CLP | |
CN112559032B (zh) | 基于循环段的众核程序重构方法 | |
CN112180788B (zh) | 动态关联脉络的控制平台架构设计方法、存储介质及设备 | |
Stratikopoulos et al. | Transparent acceleration of Java-based deep learning engines | |
Stratikopoulos et al. | Towards High Performance Java-based Deep Learning Frameworks | |
Robertson et al. | The grava self-adaptive architecture: history; design; applications; and challenges | |
CN111177979A (zh) | 一种基于OpenMP对流体动力学软件GASFLOW的优化方法 | |
CN109375991A (zh) | 一种将单进程改造为多进程的方法及系统 | |
CN112148361B (zh) | 一种用于处理器加密算法移植的方法及系统 | |
Khandan | Introducing A-Cell for Scalable and Portable SIMD Programming |
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 |