CN114217941A - 一种面向国产异构众核处理器的TensorFlow框架核心计算加速引擎 - Google Patents
一种面向国产异构众核处理器的TensorFlow框架核心计算加速引擎 Download PDFInfo
- Publication number
- CN114217941A CN114217941A CN202110381665.1A CN202110381665A CN114217941A CN 114217941 A CN114217941 A CN 114217941A CN 202110381665 A CN202110381665 A CN 202110381665A CN 114217941 A CN114217941 A CN 114217941A
- Authority
- CN
- China
- Prior art keywords
- operator
- core
- many
- 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.)
- Pending
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开一种面向国产异构众核处理器的TensorFlow框架核心计算加速引擎,独立设置于TensorFlow框架与多个众核计算加速库之间,包括以下功能模块:算子接口模块,用于将运行流程转入核心计算加速引擎;分析调度模块,用于分析算子类型和算子参数特性,将算子参数封装为各个众核计算加速库的参数结构,并根据算子类型调用不同的众核计算加速库,当同种算子类型有多种算子实现时,根据算子参数特点自动选择最优的实现方式并进行调用;调试模块,用于记录各个算子的运行时间,从算子层面分析模型推理或训练过程的性能表现。本发明可充分发挥国产异构众核强大的强大计算能力,提供自动化的深度学习任务核心加速能力。
Description
技术领域
本发明涉及一种面向国产异构众核处理器的TensorFlow框架核心计算加速引擎,属于高性能计算技术领域。
背景技术
国产异构众核处理器具有超高的计算性能,其软件系统有多种深度优化的计算加速库,主要包括SWDNN、SWBlas、众核数学库等等,这些计算加速库能充分利用国产异构众核处理器的高性能。
Tensorflow框架是当前应用非常广泛的一个深度学习库,提供了丰富的编程接口支持深度学习领域的各种计算任务,该框架主要支持的处理器后端包括多核CPU、众核的GPU以及机器学习专用芯片TPU;TensorFlow框架对CPU、GPU、TPU等处理器后端的核心计算加速也是通过调用高性能算子库实现的,但缺乏对国产异构众核处理器的支持,如何高效利用异构众核架构上的多种核心计算加速库以实现对Tensorflow框架的性能提升是一个挑战。
TensorFlow原生代码缺乏对国产异构众核处理器的支持,如果简单移植无法充分利用异构众核架构的计算能力。一般采用直接在TensorFlow的核心代码中调用各种众核加速库来提升深度学习任务的性能的方式,但是这种方式会带来很多麻烦。
首先由于TensorFlow框架的复杂性,直接调用加速库会增加代码修改难度,也会因为影响框架的默认流程而造成许多不可预知的问题,这种方式不能有效剥离平台无关和平台相关代码;其次,由于众核加速库的多态性,在调用加速库时要考虑多种适应性情况,这时候需要有独立的代码逻辑来进行核心计算的特性分析和加速核心的自适应调用。
发明内容
本发明的目的是提供一种面向国产异构众核处理器的TensorFlow框架核心计算加速引擎,其可充分发挥国产异构众核强大的强大计算能力,提供自动化的深度学习任务核心加速能力。
为达到上述目的,本发明采用的技术方案是:提供一种面向国产异构众核处理器的TensorFlow框架核心计算加速引擎,独立设置于TensorFlow框架与多个众核计算加速库之间,包括以下功能模块:
算子接口模块,提供一系列标准化的算子调用接口,用于修改TensorFlow框架中的kernel层代码,供需要加速的算子实现调用,从而将运行流程转入核心计算加速引擎;
分析调度模块,用于分析算子类型和算子参数特性,将算子参数封装为各个众核计算加速库的参数结构,并根据算子类型调用不同的众核计算加速库,当同种算子类型有多种算子实现时,根据算子参数特点自动选择最优的实现方式并进行调用;
调试模块,用于定位算子错误,进一步包括算子控制单元、非数定位单元和算子日志单元;
算子控制单元,通过环境变量的方式打开或关闭各个算子的计算流程,如某算子关闭,则该算子计算通过TensorFlow框架的默认流程进行计算,通过调试模块快速定位各个算子的正确性问题;
非数定位单元,通过算子计算开始和结束后的检查代码监测是否有非数产生,从而定位非数产生的第一现场;
算子日志单元,用于输出模型运行过程中的所有算子列表和参数;
性能分析模块,用于记录各个算子的运行时间,从算子层面分析模型推理或训练过程的性能表现。
上述技术方案中进一步改进的方案如下:
1. 上述方案中,所述调试模块配置了关闭某核心计算的环境变量,使得核心计算加速引擎不再调用该核心计算的众核优化实现,而是转入TensorFlow框架默认的计算流程。
2. 上述方案中,所述调试模块配置了非数定位的环境变量,使得在运行过程中如果检测到算子的输入或输出中出现非数,能够输出出错现场日志。
3. 上述方案中,所述调试模块配置了记录算子日志的环境变量,将运行过程中调用的算子类型和参数以文件的方式记录下来。
4. 上述方案中,所述性能分析模块配置了性能分析环境变量,通过计时的方式记录各个核心计算的运行时间,并生成性能分析日志。
5. 上述方案中,被编译成一个独立的动态库。
由于上述技术方案的运用,本发明与现有技术相比具有下列优点:
本发明将后端平台相关的核心计算加速代码抽象剥离,设计形成了一种面向国产异构众核处理器的TensorFlow框架核心计算加速引擎,剥离TensorFlow核心计算实现的硬件相关和硬件无关代码,只需要对TensorFlow框架原生代码做少量修改,减少潜在错误的发生,在保持框架原编程接口不变的同时,对用户隐藏底层硬件细节,实现自动化的自适应调用多种众核加速核心,充分发挥国产异构众核强大的强大计算能力,提供自动化的深度学习任务核心加速能力,同时支持针对核心计算的调试调优和性能分析功能,从而减少TensorFlow框架面向国产异构众核处理器的移植难度,基于TensorFlow框架提供自动化的深度学习计算任务核心加速能力,提升TensorFlow框架在异构众核架构上的易调试性和好用性。
附图说明
附图1为本发明核心计算加速引擎的整体架构图。
具体实施方式
实施例:本发明提供一种面向国产异构众核处理器的TensorFlow框架核心计算加速引擎,独立设置于TensorFlow框架与多个众核计算加速库之间,包括以下功能模块:
算子接口模块,提供一系列标准化的算子调用接口,用于修改TensorFlow框架中的kernel层代码,供需要加速的算子实现调用,从而将运行流程转入核心计算加速引擎;
分析调度模块,用于分析算子类型和算子参数特性,将算子参数封装为各个众核计算加速库的参数结构,并根据算子类型调用不同的众核计算加速库,当同种算子类型有多种算子实现时,根据算子参数特点自动选择最优的实现方式并进行调用;
调试模块,用于定位算子错误,进一步包括算子控制单元、非数定位单元和算子日志单元;
算子控制单元,通过环境变量的方式打开或关闭各个算子的计算流程,如某算子关闭,则该算子计算通过TensorFlow框架的默认流程进行计算,通过调试模块快速定位各个算子的正确性问题;
非数定位单元,通过算子计算开始和结束后的检查代码监测是否有非数产生,从而定位非数产生的第一现场;
算子日志单元,用于输出模型运行过程中的所有算子列表和参数;
性能分析模块,用于记录各个算子的运行时间,从算子层面分析模型推理或训练过程的性能表现;
核心计算加速引擎是在TensorFlow框架和众核计算加速库之间的独立软件,它通过算子接口模块对接TensoFlow框架,通过分析调度模块对接众核加速库,其中调试模块和性能分析模块是其重要的组成部分,前者用于辅助用户定位算子错误,了解算子详情,后者用于算子性能分析,为用户或算子开发者提供优化参考。
对上述实施例的进一步解释如下:
1、核心计算加速引擎提供规范化的算子接口,修改TensorFlow框架中的kernel层代码,在需要加速的算子实现中调用这些接口,从而将运行流程转入核心计算加速引擎;
2、核心计算加速引擎分析算子类型和算子参数特性,将算子参数封装为各个众核加速库的参数结构,并根据算子类型调用不同的众核计算加速库,当同种算子类型有多种众核实现时,根据算子参数特点自动选择最优的实现方式并进行调用;
3、通过环境变量的方式支持调试功能:如配置了关闭某核心计算的环境变量,则核心计算加速引擎不再调用该计算的众核优化实现,而是转入TensorFlow框架默认的计算流程,通过这种方式来验证各核心计算的正确性;如配置了调试打印的环境变量,则在运行过程中输出调试信息;如配置了记录某核心计算详细流程的环境变量,则会将该核心计算的输入、输出和中间结果以文件的方式记录下来;
4、通过环境变量的方式支持性能分析功能:如配置了某核心计算的性能分析环境变量,则通过计时的方式记录该计算的运行时间,并生成性能分析日志;
5、核心计算加速引擎还负责其他计算无关的工作,如线程库的初始化、内存的申请、管理和注销、核组计算资源的监测等,将异构众核的底层硬件细节完全屏蔽;
6、核心计算加速引擎会被编译成一个独立的动态库,便于更新、维护和调试。
采用上述一种面向国产异构众核处理器的TensorFlow框架核心计算加速引擎时,其剥离TensorFlow核心计算实现的硬件相关和硬件无关代码,只需要对TensorFlow框架原生代码做少量修改,减少潜在错误的发生,在保持框架原编程接口不变的同时,对用户隐藏底层硬件细节,实现自动化的自适应调用多种众核加速核心,充分发挥国产异构众核强大的强大计算能力,提供自动化的深度学习任务核心加速能力,同时支持针对核心计算的调试调优和性能分析功能,从而减少TensorFlow框架面向国产异构众核处理器的移植难度,基于TensorFlow框架提供自动化的深度学习计算任务核心加速能力,提升TensorFlow框架在异构众核架构上的易调试性和好用性。
为了便于更好的理解本发明,下面将对本文中使用的术语进行简要的解释:
国产异构众核处理器:将少量承担管理、通信和运算功能的通用主核核心和大量承担运算功能的精简从核核心集成在一颗完整芯片上的高性能异构中央处理器;通用主核核心运行通用的操作系统,主要承担整个芯片的管理和控制功能,也承担一定的运算功能和芯片与外部的通信功能;精简从核核心起到加速计算的功能。
TensorFlow框架:一个基于数据流编程的符号数学系统,被广泛应用于各类机器学习算法的编程实现,拥有多层级结构,可部署于各类服务器、PC终端和网页,并支持CPU、GPU和TPU平台上的高性能数值计算。
核心计算(OP):TensorFlow框架将神经网络模型或其他计算任务重构为由核心计算(OP)组成的计算图,核心计算的效率对深度学习应用的整体效率有着至关重要的作用。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。
Claims (6)
1.一种面向国产异构众核处理器的TensorFlow框架核心计算加速引擎,其特征在于:独立设置于TensorFlow框架与多个众核计算加速库之间,包括以下功能模块:
算子接口模块,提供一系列标准化的算子调用接口,用于修改TensorFlow框架中的kernel层代码,供需要加速的算子实现调用,从而将运行流程转入核心计算加速引擎;
分析调度模块,用于分析算子类型和算子参数特性,将算子参数封装为各个众核计算加速库的参数结构,并根据算子类型调用不同的众核计算加速库,当同种算子类型有多种算子实现时,根据算子参数特点自动选择最优的实现方式并进行调用;
调试模块,用于定位算子错误,进一步包括算子控制单元、非数定位单元和算子日志单元;
算子控制单元,通过环境变量的方式打开或关闭各个算子的计算流程,如某算子关闭,则该算子计算通过TensorFlow框架的默认流程进行计算,通过调试模块快速定位各个算子的正确性问题;
非数定位单元,通过算子计算开始和结束后的检查代码监测是否有非数产生,从而定位非数产生的第一现场;
算子日志单元,用于输出模型运行过程中的所有算子列表和参数;
性能分析模块,用于记录各个算子的运行时间,从算子层面分析模型推理或训练过程的性能表现。
2.根据权利要求1所述的一种面向国产异构众核处理器的TensorFlow框架核心计算加速引擎,其特征在于:所述调试模块配置了关闭某核心计算的环境变量,使得核心计算加速引擎不再调用该核心计算的众核优化实现,而是转入TensorFlow框架默认的计算流程。
3.根据权利要求1所述的一种面向国产异构众核处理器的TensorFlow框架核心计算加速引擎,其特征在于:所述调试模块配置了非数定位的环境变量,使得在运行过程中如果检测到算子的输入或输出中出现非数,能够输出出错现场日志。
4.根据权利要求1所述的一种面向国产异构众核处理器的TensorFlow框架核心计算加速引擎,其特征在于:所述调试模块配置了记录算子日志的环境变量,将运行过程中调用的算子类型和参数以文件的方式记录下来。
5.根据权利要求1所述的一种面向国产异构众核处理器的TensorFlow框架核心计算加速引擎,其特征在于:所述性能分析模块配置了性能分析环境变量,通过计时的方式记录各个核心计算的运行时间,并生成性能分析日志。
6.根据权利要求1所述的一种面向国产异构众核处理器的TensorFlow框架核心计算加速引擎,其特征在于:被编译成一个独立的动态库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110381665.1A CN114217941A (zh) | 2021-04-09 | 2021-04-09 | 一种面向国产异构众核处理器的TensorFlow框架核心计算加速引擎 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110381665.1A CN114217941A (zh) | 2021-04-09 | 2021-04-09 | 一种面向国产异构众核处理器的TensorFlow框架核心计算加速引擎 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114217941A true CN114217941A (zh) | 2022-03-22 |
Family
ID=80695901
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110381665.1A Pending CN114217941A (zh) | 2021-04-09 | 2021-04-09 | 一种面向国产异构众核处理器的TensorFlow框架核心计算加速引擎 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114217941A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115809092A (zh) * | 2023-02-13 | 2023-03-17 | 湖南大学 | 基于mt3000异构处理器的深度学习计算库实现方法 |
CN116991564A (zh) * | 2023-09-28 | 2023-11-03 | 之江实验室 | 面向异构双核mcu的算子内并行加速方法 |
WO2024027490A1 (zh) * | 2022-08-04 | 2024-02-08 | 华为技术有限公司 | 一种应用加速方法、装置及相关设备 |
-
2021
- 2021-04-09 CN CN202110381665.1A patent/CN114217941A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024027490A1 (zh) * | 2022-08-04 | 2024-02-08 | 华为技术有限公司 | 一种应用加速方法、装置及相关设备 |
CN115809092A (zh) * | 2023-02-13 | 2023-03-17 | 湖南大学 | 基于mt3000异构处理器的深度学习计算库实现方法 |
CN115809092B (zh) * | 2023-02-13 | 2023-04-28 | 湖南大学 | 基于mt3000异构处理器的深度学习计算库实现方法 |
CN116991564A (zh) * | 2023-09-28 | 2023-11-03 | 之江实验室 | 面向异构双核mcu的算子内并行加速方法 |
CN116991564B (zh) * | 2023-09-28 | 2024-01-09 | 之江实验室 | 面向异构双核mcu的算子内并行加速方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114217941A (zh) | 一种面向国产异构众核处理器的TensorFlow框架核心计算加速引擎 | |
CN104462943B (zh) | 业务系统中非侵入式性能监控装置和方法 | |
CN111736954B (zh) | 多智能合约虚拟机实现方法、多智能合约虚拟机及系统 | |
CN110750298B (zh) | 一种ai模型编译方法、设备及存储介质 | |
CN110362363A (zh) | 一种基于运行时模型实现对终端应用控制的方法 | |
CN115185539B (zh) | 一种生成可执行动态链接库文件方法、装置及存储介质 | |
US20090144528A1 (en) | Method for running native code across single or multi-core hybrid processor achitecture | |
CN115600664B (zh) | 算子处理方法、电子设备及存储介质 | |
WO2012051844A1 (zh) | 智能网平台、业务执行方法和分析业务异常的方法 | |
CN111666572A (zh) | 一种自动化渗透测试框架 | |
US7711740B2 (en) | Data access layer design and code generation | |
Chen et al. | AndroidOff: Offloading android application based on cost estimation | |
CN109542444B (zh) | Java应用的监控方法、装置、服务器和存储介质 | |
WO2022166480A1 (zh) | 任务调度方法、装置及系统 | |
CN104423932B (zh) | Javascript中调用二进制组件的方法 | |
CN117667045A (zh) | 集成深度学习和plc语言的边缘控制器及代码生成方法 | |
Wood et al. | Triton: a domain specific language for cyber-physical systems | |
Pufek et al. | Achieving Efficient Structured Concurrency through Lightweight Fibers in Java Virtual Machine | |
CN117369975A (zh) | 一种通用计算引擎的加载方法 | |
CN113626035B (zh) | 基于tvm面向risc-v设备的神经网络编译方法 | |
CN112559336B (zh) | 自适应调试异构计算芯片的方法、装置、系统及主板芯片 | |
CN114816357A (zh) | 一种服务于流程银行的服务编排系统 | |
US11429358B2 (en) | Representing asynchronous state machine in intermediate code | |
Dantas et al. | Towards aspect-oriented programming for context-aware systems: A comparative study | |
CN114253545A (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 |