CN116185532B - 一种任务执行系统、方法、存储介质及电子设备 - Google Patents

一种任务执行系统、方法、存储介质及电子设备 Download PDF

Info

Publication number
CN116185532B
CN116185532B CN202310439553.6A CN202310439553A CN116185532B CN 116185532 B CN116185532 B CN 116185532B CN 202310439553 A CN202310439553 A CN 202310439553A CN 116185532 B CN116185532 B CN 116185532B
Authority
CN
China
Prior art keywords
target
format
engine
interface
executable code
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
CN202310439553.6A
Other languages
English (en)
Other versions
CN116185532A (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.)
Zhejiang Lab
Original Assignee
Zhejiang Lab
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 Zhejiang Lab filed Critical Zhejiang Lab
Priority to CN202310439553.6A priority Critical patent/CN116185532B/zh
Publication of CN116185532A publication Critical patent/CN116185532A/zh
Application granted granted Critical
Publication of CN116185532B publication Critical patent/CN116185532B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本说明书公开了一种任务执行系统、方法、存储介质及电子设备。所述任务执行系统包括:编译模块、调用模块、目标编译器接口、目标启动接口以及至少两种计算引擎,编译模块用于获取模型数据并进行编译,得到第一可执行代码,调用模块用于调用至少一种计算引擎作为目标引擎,目标引擎用于通过目标编译器接口,将第一可执行代码的格式转换为目标代码格式,并通过目标引擎对第一可执行代码进行编译,得到第二可执行代码,以及获取目标模型对应算子的核函数以及各算子间的依赖信息,通过目标启动接口,将依赖信息的格式转换为目标信息格式,将核函数的格式转换为目标核函数格式,基于核函数、依赖信息以及第二可执行代码执行计算任务。

Description

一种任务执行系统、方法、存储介质及电子设备
技术领域
本说明书涉及计算机技术领域,尤其涉及一种任务执行系统、方法、存储介质及电子设备。
背景技术
计算引擎作为专门对数据进行处理的程序,在模型的训练以及运算过程中发挥着不可替代的作用。而由于不同计算引擎的架构以及采用的技术有所不同,导致各计算引擎的性能以及应用场景也有很大差异。
然而,目前每种计算机系统通常只能兼容一种计算引擎,使其只能执行该计算引擎对应场景下的计算任务,并且,由于计算引擎通常由计算设备提供,导致支持该计算机系统的硬件平台也较为单一,无法进行跨平台使用。
因此,如何扩大计算机系统的应用场景,提高其在多个硬件平台下的通用性,是一个亟待解决的问题。
发明内容
本说明书提供一种任务执行系统、方法、存储介质及电子设备,以部分的解决现有技术存在的上述问题。
本说明书采用下述技术方案:
本说明书提供了一种任务执行系统,包括:编译模块、调用模块、目标编译器接口、目标启动接口以及至少两种计算引擎;
所述编译模块用于,获取目标模型的模型数据,对所述模型数据进行编译,得到第一可执行代码;
所述调用模块用于,在各计算引擎中调用至少一种计算引擎作为目标引擎;
所述目标引擎用于,通过所述目标编译器接口,将所述第一可执行代码的格式转换为所述目标引擎所适配的目标代码格式,并通过所述目标引擎对所述目标代码格式的第一可执行代码进行编译,得到第二可执行代码,其中,所述编译器接口适配于每种计算引擎,以及
获取所述目标模型对应算子的核函数以及各算子间的依赖信息,通过所述目标启动接口,将所述依赖信息的格式转换为所述目标引擎所适配的目标信息格式,将所述核函数的格式转换为所述目标引擎所适配的目标核函数格式,基于所述目标核函数格式的核函数、所述目标信息格式的依赖信息以及所述第二可执行代码执行所述计算任务,其中,所述目标启动接口适配于每种计算引擎。
可选地,所述任务执行系统还包括:基础支持模块;
所述基础支持模块用于,提供执行所述计算任务时所需的基础数据结构、基础参数以及基础方法,以基于所述基础数据结构、所述基础参数以及所述基础方法,根据所述目标核函数格式的核函数、所述目标信息格式的依赖信息以及所述第二可执行代码执行所述计算任务。
可选地,所述编译模块具体用于:
对所述模型数据进行编译,得到模型框架的可执行代码;
将所述模型框架的可执行代码转换为所述第一可执行代码。
可选地,所述编译模块还用于:
获取执行所述计算任务所需的基础参数,通过所述目标启动接口,将所述基础参数的格式转换为所述目标引擎所适配的目标参数格式;
基于所述目标核函数格式的核函数、所述目标信息格式的依赖信息、所述目标参数格式的基础参数以及所述第二可执行代码执行所述计算任务。
可选地,所述任务执行系统还包括:优化模块;
所述优化模块用于,对所述目标模型的模型结构、模型参数以及所述计算任务的计算精度中的至少一种进行调整。
可选地,所述编译模块包括:图转换模块以及图遍历模块;
所述图转换模块用于将所述第一可执行代码对应计算图的格式转换为各计算引擎对应的计算图格式;
所述图遍历模块用于,基于所述目标核函数格式的核函数、所述目标信息格式的依赖信息,遍历所述第二可执行代码对应的计算图,以执行所述计算任务。
可选地,所述任务执行系统还包括:用户接口、设置接口、外部接口以及内部接口中的至少一种;
所述用户接口用于,将所述任务执行系统对应的应用程序接口导出到用户端;
所述设置接口用于,响应于用户的设置操作,在各计算引擎中确定出所述目标引擎;
所述外部接口用于,接入新增的计算引擎;
所述内部接口用于,对所述任务执行系统中的至少部分参数进行转换。
可选地,所述任务执行系统包括:人工智能AI操作系统。
本说明书提供了一种任务执行方法,所述任务执行方法应用于任务执行系统,所述任务执行系统包括:目标编译器接口、目标启动接口以及至少两种计算引擎,所述方法包括:
获取目标模型的模型数据,并在各计算引擎中调用至少一种计算引擎作为目标引擎;
对所述模型数据进行编译,得到第一可执行代码;
通过所述目标编译器接口,将所述第一可执行代码的格式转换为所述目标引擎所适配的目标代码格式,并通过所述目标引擎对所述目标代码格式的第一可执行代码进行编译,得到第二可执行代码,其中,所述编译器接口适配于每种计算引擎;
获取所述目标模型对应算子的核函数以及各算子间的依赖信息,通过所述目标启动接口,将所述依赖信息的格式转换为所述目标引擎所适配的目标信息格式,将所述核函数的格式转换为所述目标引擎所适配的目标核函数格式,基于所述目标核函数格式的核函数、所述目标信息格式的依赖信息以及所述第二可执行代码执行所述计算任务,其中,所述目标启动接口适配于每种计算引擎。
可选地,所述方法还包括:
获取执行所述计算任务时所需的基础数据结构、基础参数以及基础方法;
基于所述基础数据结构、所述基础参数以及所述基础方法,根据所述目标核函数格式的核函数、所述目标信息格式的依赖信息以及所述第二可执行代码执行所述计算任务。
可选地,对所述模型数据进行编译,得到第一可执行代码,具体包括:
对所述模型数据进行编译,得到模型框架的可执行代码;
将所述模型框架的可执行代码转换为所述第一可执行代码。
可选地,所述方法还包括:
获取执行所述计算任务所需的基础参数,通过所述目标启动接口,将所述基础参数的格式转换为所述目标引擎所适配的目标参数格式;
基于所述目标核函数格式的核函数、所述目标信息格式的依赖信息以及所述第二可执行代码执行所述计算任务,具体包括:
基于所述目标核函数格式的核函数、所述目标信息格式的依赖信息、所述目标参数格式的基础参数以及所述第二可执行代码执行所述计算任务。
可选地,所述方法还包括:
对所述目标模型的模型结构、模型参数以及所述计算任务的计算精度中的至少一种进行调整。
可选地,将所述第一可执行代码的格式转换为所述目标引擎所适配的目标代码格式,具体包括:
将所述第一可执行代码对应计算图的格式转换为各计算引擎对应的计算图格式;
基于所述目标核函数格式的核函数、所述目标信息格式的依赖信息以及所述第二可执行代码执行所述计算任务,具体包括:
基于所述目标核函数格式的核函数、所述目标信息格式的依赖信息,遍历所述第二可执行代码对应的计算图执行所述计算任务。
可选地,所述任务执行系统还包括:用户接口、设置接口、外部接口以及内部接口中的至少一种,所述用户接口用于将所述任务执行系统对应的应用程序接口导出到用户端,所述设置接口用于响应于用户的设置操作,在各计算引擎中确定出所述目标引擎,所述外部接口用于,接入新增的计算引擎,所述内部接口用于,对所述任务执行系统中的至少部分参数进行转换。
可选地,所述任务执行系统包括:人工智能AI操作系统。
本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任务执行方法。
本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任务执行方法。
本说明书采用的上述至少一个技术方案能够达到以下有益效果:
在本说明书提供的模型部署的方法中,编译模块用于获取模型数据并进行编译,得到第一可执行代码,所述调用模块用于调用至少一种计算引擎作为目标引擎,目标引擎用于通过目标编译器接口,将第一可执行代码的格式转换为目标代码格式,并通过目标引擎对第一可执行代码进行编译,得到第二可执行代码,以及获取目标模型对应算子的核函数以及各算子间的依赖信息,通过目标启动接口,将依赖信息的格式转换为目标信息格式,将核函数的格式转换为目标核函数格式,基于核函数、依赖信息以及第二可执行代码执行计算任务,其中,目标编译器接口以及目标启动接口均适配于所有计算引擎。
从上述方法可以看出,本说明书中的任务执行系统可以兼容多种计算引擎,并通过目标编译器接口以及目标启动接口使各计算引擎与任务执行系统相适配,这样一来,用户就可以在多种计算引擎中选择出目标引擎来执行计算任务,即便将该任务执行系统应用在不同的硬件平台上,由于系统能够与不同的计算引擎相适配,因此也能够适用于不同的硬件平台,实现了该任务执行系统的跨硬件平台使用。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书中提供的一种任务执行系统示意图;
图2为本说明书中提供的一种任务执行方法的流程示意图;
图3为本说明书中提供的一种计算任务的执行过程示意图;
图4为本说明书中提供的一种对应于图2的电子设备示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
当前有多种流行的高性能计算引擎,而不同的计算引擎有不同的关切点,这导致了不同的技术路线,比如对算法通用性、跨平台有高度关切的张量虚拟机编译器和加速线性代数编译器,这两种计算引擎均采用了底层虚拟机传统编译器的路线,而对于过分看重性能但硬件平台单一的 TensorRT则采用手工优化和微调相结合的策略。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1为本说明书中提供的一种任务执行系统示意图,该任务执行系统包括:基础支持模块、编译模块、优化模块、调用模块、目标编译器接口、目标启动接口以及至少一种计算引擎。
在本说明书中,上述任务执行系统可以为人工智能(Artificial Intelligence,AI)操作系统,该操作系统部署在相应的终端设备中。另外,该AI操作系统设置有模型框架(如深度学习框架),通过调用一个或一个以上的计算引擎执行针对目标模型的计算任务。在实际应用中,该计算任务可以包括目标模型的训练过程、推理过程以及实际应用过程中的预测过程中所涉及的计算任务,当然,也可以为其他计算任务,本说明书对此不做具体限定。
基础支持模块用于提供执行计算任务时所需的基础参数、基础方法以及基础数据结构,如注册工厂的管理查询、深度学习框架对应的设备编号与任务操作系统的设备类型及其之间的对应关系等。使得目标引擎能够在上述基础支持模块提供的基础参数、基础方法以及基础数据结构的支持下执行计算任务。
基础支持模块中可以包含有多个子模块,包括设备表示子模块、设备管理子模块、内置类型子模块、环境变量管理子模块以及操作张量变量子模块。
其中,设备表示子模块是用于抽象及代表硬件设备,设备管理子模块用于管理终端设备,提供增、删、改、查等服务。内置类型子模块提供任务执行系统的内置格式,表示设备、运行时等信息。环境变量管理子模块用于提供环境变量的设置、读取以及格式转换等的方法。操作张量变量子模块提供基础张量操作方法,如维度变换(tranpose、view 等)、合并分割(split、chunk等)以及索引切片等。
另外,本说明书中可以预先对编译器基础类,执行体基础类,参数基础类,算子依赖信息基础类以及核函数基础类进行设置,编译器基础类用于将各计算引擎的编译器接口统一为任务执行系统的目标编译器接口,该目标编译器接口适配于每种计算引擎,以使目标引擎能够通过该目标编译器接口接收并识别经过编译模块进行编译的第一可执行代码(Executable Code),执行体基础类用于将各计算引擎启动目标模型的算子核函数的启动接口统一为任务执行系统的目标启动接口,该目标启动接口适配于所有计算引擎,以通过该目标启动接口启动目标模型算子的核函数并执行针对目标模型的计算任务。
通常情况下,不同计算引擎所适配的各种参数以及信息的格式或表达方式也有所不同,因此,为了与多种计算引擎相适配,参数基础类定义了计算任务所需基础参数的模板格式,作为该任务执行系统对应的参数格式,这些基础参数包括执行计算任务时所需的设备信息、执行环境信息以及各种张量信息等。
算子依赖信息基础类定义了计算任务所需的目标模型各算子间的依赖信息的模板格式,作为任务执行系统对应的信息格式。
算子核函数的基础类定义了目标模型各算子的核函数的模板格式,作为该任务执行系统对应的核函数格式。
编译模块用于获取用户输入的目标模型的模型数据,并将该模型数据编译为模型框架(如深度学习框架)的可执行代码,进而将该模型框架对应的可执行代码转换为该任务执行系统对应的第一可执行代码。
需要说明的是,上述可执行代码可以为计算图,因此,编译模块可以作为图构建模块,先将模型数据编译为模型框架对应可执行代码的计算图,进而将其转换为任务执行系统的计算图(第一可执行代码对应的计算图)。
当编译模块作为图构建模块时,其中还可以包含有图表示模块、图转换模块以及图遍历模块,图表示模块是用于表示第一可执行代码以及第二可执行代码对应计算图的数据结构,如节点和边。具体指抽象和表示计算图及其子图。
图转换模块可以将图转换到相关的后端图改写层,如子图切分、图融合等,具体的,图转换模块可以将第一可执行代码对应的计算图的格式转换为各计算引擎对应的计算图格式。
图遍历模块定义了计算图拓扑遍历方法,通过遍历目标引擎编译后的第二可执行代码对应的计算图,在目标核函数格式的核函数、目标信息格式的依赖信息以及目标参数格式的基础参数的支持下执行针对目标模型的计算任务。
本说明书的任务执行系统中可以部署有多个计算引擎,用户可以通过任务执行系统的设置接口,在各计算引擎中选取执行当前计算任务的计算引擎作为目标引擎。需要说明的是,用户可以只选取一个计算引擎执行计算任务,当然,也可以同时选取多个计算引擎执行当前计算任务,从而提高计算效率。
其中,上述计算引擎可以包括:加速线性代数编译器、TensorRT以及张量虚拟机编译器等。当然,还可以包含有其他计算引擎,本说明书对此不做具体限定。
调用模块用于在各计算引擎中调用至少一种计算引擎作为目标引擎。其中,该目标引擎可以是任务执行系统的设置接口响应于用户的设置操作后确定出的。关于设置接口将在下文进行详细描述,在此处不做过多赘述。
目标引擎可以通过目标编译器接口接收第一可执行代码,并将可执行代码的代码格式(如exe 、sys、com 、dll BAT等)转换为目标引擎所适配的目标代码格式,并通过目标引擎进一步对目标代码格式的第一可执行代码进行编译,得到第二可执行代码。
目标引擎可以获取目标模型对应算子的核函数以及各算子间的依赖信息(上下文信息),通过目标启动接口,将依赖信息的格式转换为目标引擎所适配的目标信息格式,将核函数的格式转换为所述目标引擎所适配的目标核函数格式,基于算子的核函数、算子间的依赖信息以及第二可执行代码执行计算任务。
此外,在执行计算任务时往往会涉及到一些基础参数,因此,在执行计算任务的过程中,目标启动接口可以将任务执行系统的基础参数对应的参数格式转换为目标引擎对应的目标参数格式,以基于目标参数格式的基础参数执行上述计算任务(如模型训练、模型推理、模型预测等)。
需要说明的是,上述基础参数可以是由基础支持模块所提供的模板格式的基础参数。
优化模块用于对目标模型的模型结构、模型参数以及计算任务的计算精度中的至少一种进行调整,从而实现对目标模型的优化,提高计算任务的执行效率。
具体的,该优化模块中设置有量化资源管理模块、自动混合精度模块以及量化模块,量化资源管理模块用于统一接口的量化资源管理,包括增删改查操作。自动混合精度模块主要用于自动混合精度管理。量化模块用于量化推理部署服务。
进一步的,本说明书提供的任务执行系统还可以设置有其他接口,包括用户接口、设置接口、外部接口以及内部接口中的至少一种。
用户接口用于将任务执行系统对应的内部应用程序的编程接口导出到用户端,使得用户能够对任务执行系统的内部应用程序进行编辑以及设置。
具体的,该用户接口可以将各计算引擎的接口导出到用户端、将计算图构图接口导出到用户端、将量化的接口导出到用户层以及将系统配置的接口导出到用户端。
设置接口用于响应于用户的设置操作,在各计算引擎中确定出目标引擎,用户在使用任务执行系统时,可以指定使用的一个或多个计算引擎作为目标引擎。这些目标引擎的优先级与用户设置的指定顺序一致。如果要加入新的后端引擎支持,则需要依照目标编译器接口、目标启动接口,为新的引擎实现相关的编译和执行功能。
外部接口用于,接入新增的计算引擎,该外部接口包括:外部编译接口、外部运行接口、外部算子上下文信息接口、外部算子核函数编译接口。
外部编译接口继承任务执行系统的编译器基础类的实现类(即应用任务执行系统的目标编译器接口),并实现其中的编译方法,返回编译好的可执行代码。
定义外部运行接口继承任务执行系统的执行体基础类的实现类(即应用任务执行系统的目标启动接口),并实现其中的运行方法。
外部算子上下文信息接口继承任务执行系统的依赖信息基础类,并根据需要设置必要的字段,用于存储编译需要的元信息和编译结果。
外部算子核函数编译接口继承任务执行系统的算子核函数基础类,并实现其中的编译方法。
内部接口用于对所述任务执行系统中的至少部分参数进行转换,如将深度学习框架(模型框架)的计算图中的设备类型转为任务执行系统对应的设备类型,将任务执行系统的设备类型转换为深度学习框架的计算图中的设备类型。
内部接口主要包括:根据任务执行系统的设备类型对象获取对应设备的身份识别编号的接口、将张量形状转化为指定维度的接口、将深度学习框架的计算图构建为任务执行系统的计算图的接口、在深度学习框架的计算图转为任务执行系统的计算图并优化后,再重新构建为深度学习框架的计算图的接口、推导任务执行系统的计算图的输出张量形状的接口、编译深度学习框架的计算图接口、以异步方式启动计算的接口以及获取运行第二可执行代码后所得的计算结果的接口。
另外,本说明书还提供了一种应用于上述任务执行系统的任务执行方法,如图2所示。
图2为本说明书中提供的一种任务执行方法的流程示意图,包括以下步骤:
S201:获取目标模型的模型数据,并在各计算引擎中调用至少一种计算引擎作为目标引擎。
S202:对所述模型数据进行编译,得到第一可执行代码。
在本说明书中,用于执行该任务执行方法的执行主体可以是部署任务执行系统的终端设备,当然,也可以是服务器,为了便于描述,本说明书仅以终端设备作为执行主体为例,本说明书仅以终端设备是执行主体为例,对该任务执行方法进行说明。
其中,终端设备可以先获取用户进行定义并输入的模型数据,通过任务执行系统的编译模块,将该模型数据编译为深度学习框架的可执行代码,而后将其进行转为,得到该任务执行系统对应的第一可执行代码。
S203:通过所述目标编译器接口,将所述第一可执行代码的格式转换为所述目标引擎所适配的目标代码格式,并通过所述目标引擎对所述目标代码格式的第一可执行代码进行编译,得到第二可执行代码,其中,所述目标编译器接口适配于每种计算引擎。
用户可以通过设置接口,在各计算引擎中选择出至少一种目标引擎来执行针对目标模型的计算任务,该目标引擎可以通过目标编译器接口,接收第一可执行代码并将其代码格式转换为适用于该目标引擎的目标代码格式,进而通过该目标引擎对目标代码格式的可执行代码进行进一步的编译,得到第二可执行代码。
S204:获取所述目标模型对应算子的核函数以及各算子间的依赖信息,通过所述目标启动接口,将所述依赖信息的格式转换为所述目标引擎所适配的目标信息格式,将所述核函数的格式转换为所述目标引擎所适配的目标核函数格式,基于所述目标核函数格式的核函数、所述目标信息格式的依赖信息以及所述第二可执行代码执行所述计算任务,其中,所述目标启动接口适配于每种计算引擎。
目标引擎可以获取目标模型对应算子的核函数、各算子间的依赖信息以及执行该计算任务所需的基础参数,通过目标启动接口,将算子核函数的格式转换为目标引擎所适配的目标核函数格式,将依赖信息的格式转换为目标引擎所适配的目标信息格式,将基础参数格式转换为目标引擎所适配的目标参数格式,进而基于目标核函数格式的核函数、目标信息格式的依赖信息以及目标参数格式的基础参数,运行第二可执行代码,即遍历该第二可执行代码对应的计算图,从而执行针对目标模型的计算任务。
为了便于理解,本说明书还提供了一种计算任务的执行过程示意图,如图3所示。
图3为本说明书中提供的一种计算任务的执行过程示意图。
其中,当用户定义好目标模型并将其模型数据输入任务执行系统后,先通过编译模块将其编译为深度学习框架计算图,而后将其转换为任务执行系统的计算图(第一可执行代码对应的计算图)。而后通过目标引擎的目标编译器接口,将其格式转换为目标引擎所适配的格式并通过目标引擎对其进行编译,得到目标引擎编译后的计算图(第二可执行代码对应的计算图),进而根据该计算图执行计算任务。
从上述方法可以看出,本说明书中的任务执行系统可以兼容多种计算引擎,并通过目标编译器接口以及目标启动接口使各计算引擎与任务执行系统相适配,这样一来,用户就可以在多种计算引擎中选择出目标引擎来执行计算任务,即便将该任务执行系统应用在不同的硬件平台上,由于系统能够与不同的计算引擎相适配,因此也能够适用于不同的硬件平台,实现了该任务执行系统的跨硬件平台使用。
在实际应用中,本说明书中的任务执行系统能够同时支持多个计算引擎的运行时加速库,使得各种计算引擎的所有不同技术方案得到兼容。如集成加速线性代数编译器、Nvidia TensorRT等多个后端计算引擎。其中加速线性代数编译器全面支持训练和预测,TensorRT 主要支持预测以及部分算子支持训练。对于同一个计算图,本本说明书中的任务执行系统允许多个计算引擎联合使用,以获得更好的加速效果。
本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1提供的一种任务执行方法。
本说明书还提供了图4所示的一种对应于图2的电子设备的示意结构图。如图4所述,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图2所述的任务执行方法。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(ProgrammableLogic Device, PLD)(例如现场可编程门阵列(Field Programmable Gate Array,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(HardwareDescription Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(AdvancedBoolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(JavaHardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby HardwareDescription Language)等,目前最普遍使用的是VHDL(Very-High-Speed IntegratedCircuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20 以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

Claims (18)

1.一种任务执行系统,其特征在于,所述任务执行系统包括:编译模块、调用模块、目标编译器接口、目标启动接口以及至少两种计算引擎;
所述编译模块用于,获取目标模型的模型数据,对所述模型数据进行编译,得到第一可执行代码;
所述调用模块用于,在各计算引擎中调用至少一种计算引擎作为目标引擎;
所述目标引擎用于,通过所述目标编译器接口,将所述第一可执行代码的格式转换为所述目标引擎所适配的目标代码格式,并通过所述目标引擎对所述目标代码格式的第一可执行代码进行编译,得到第二可执行代码,其中,所述目标编译器接口适配于每种计算引擎,以及
获取所述目标模型对应算子的核函数以及各算子间的依赖信息,通过所述目标启动接口,将所述依赖信息的格式转换为所述目标引擎所适配的目标信息格式,将所述核函数的格式转换为所述目标引擎所适配的目标核函数格式,基于所述目标核函数格式的核函数、所述目标信息格式的依赖信息以及所述第二可执行代码执行计算任务,其中,所述目标启动接口适配于每种计算引擎。
2.如权利要求1所述的任务执行系统,其特征在于,所述任务执行系统还包括:基础支持模块;
所述基础支持模块用于,提供执行所述计算任务时所需的基础数据结构、基础参数以及基础方法,以基于所述基础数据结构、所述基础参数以及所述基础方法,根据所述目标核函数格式的核函数、所述目标信息格式的依赖信息以及所述第二可执行代码执行所述计算任务。
3.如权利要求1所述的任务执行系统,其特征在于,所述编译模块具体用于:
对所述模型数据进行编译,得到模型框架的可执行代码;
将所述模型框架的可执行代码转换为所述第一可执行代码。
4.如权利要求1所述的任务执行系统,其特征在于,所述编译模块还用于:
获取执行所述计算任务所需的基础参数,通过所述目标启动接口,将所述基础参数的格式转换为所述目标引擎所适配的目标参数格式;
基于所述目标核函数格式的核函数、所述目标信息格式的依赖信息、所述目标参数格式的基础参数以及所述第二可执行代码执行所述计算任务。
5.如权利要求1所述的任务执行系统,其特征在于,所述任务执行系统还包括:优化模块;
所述优化模块用于,对所述目标模型的模型结构、模型参数以及所述计算任务的计算精度中的至少一种进行调整。
6.如权利要求1所述的任务执行系统,其特征在于,所述编译模块包括:图转换模块以及图遍历模块;
所述图转换模块用于将所述第一可执行代码对应计算图的格式转换为各计算引擎对应的计算图格式;
所述图遍历模块用于,基于所述目标核函数格式的核函数、所述目标信息格式的依赖信息,遍历所述第二可执行代码对应的计算图,以执行所述计算任务。
7.如权利要求1所述的任务执行系统,其特征在于,所述任务执行系统还包括:用户接口、设置接口、外部接口以及内部接口中的至少一种;
所述用户接口用于,将所述任务执行系统对应的应用程序接口导出到用户端;
所述设置接口用于,响应于用户的设置操作,在各计算引擎中确定出所述目标引擎;
所述外部接口用于,接入新增的计算引擎;
所述内部接口用于,对所述任务执行系统中的至少部分参数进行转换。
8.如权利要求1所述的任务执行系统,其特征在于,所述任务执行系统包括:人工智能AI操作系统。
9.一种任务执行方法,其特征在于,所述任务执行方法应用于任务执行系统,所述任务执行系统包括:目标编译器接口、目标启动接口以及至少两种计算引擎,所述方法包括:
获取目标模型的模型数据,并在各计算引擎中调用至少一种计算引擎作为目标引擎;
对所述模型数据进行编译,得到第一可执行代码;
通过所述目标编译器接口,将所述第一可执行代码的格式转换为所述目标引擎所适配的目标代码格式,并通过所述目标引擎对所述目标代码格式的第一可执行代码进行编译,得到第二可执行代码,其中,所述目标编译器接口适配于每种计算引擎;
获取所述目标模型对应算子的核函数以及各算子间的依赖信息,通过所述目标启动接口,将所述依赖信息的格式转换为所述目标引擎所适配的目标信息格式,将所述核函数的格式转换为所述目标引擎所适配的目标核函数格式,基于所述目标核函数格式的核函数、所述目标信息格式的依赖信息以及所述第二可执行代码执行计算任务,其中,所述目标启动接口适配于每种计算引擎。
10.如权利要求9所述的方法,其特征在于,所述方法还包括:
获取执行所述计算任务时所需的基础数据结构、基础参数以及基础方法;
基于所述基础数据结构、所述基础参数以及所述基础方法,根据所述目标核函数格式的核函数、所述目标信息格式的依赖信息以及所述第二可执行代码执行所述计算任务。
11.如权利要求9所述的方法,其特征在于,对所述模型数据进行编译,得到第一可执行代码,具体包括:
对所述模型数据进行编译,得到模型框架的可执行代码;
将所述模型框架的可执行代码转换为所述第一可执行代码。
12.如权利要求9所述的方法,其特征在于,所述方法还包括:
获取执行所述计算任务所需的基础参数,通过所述目标启动接口,将所述基础参数的格式转换为所述目标引擎所适配的目标参数格式;
基于所述目标核函数格式的核函数、所述目标信息格式的依赖信息以及所述第二可执行代码执行所述计算任务,具体包括:
基于所述目标核函数格式的核函数、所述目标信息格式的依赖信息、所述目标参数格式的基础参数以及所述第二可执行代码执行所述计算任务。
13.如权利要求9所述的方法,其特征在于,所述方法还包括:
对所述目标模型的模型结构、模型参数以及所述计算任务的计算精度中的至少一种进行调整。
14.如权利要求9所述的方法,其特征在于,将所述第一可执行代码的格式转换为所述目标引擎所适配的目标代码格式,具体包括:
将所述第一可执行代码对应计算图的格式转换为各计算引擎对应的计算图格式;
基于所述目标核函数格式的核函数、所述目标信息格式的依赖信息以及所述第二可执行代码执行所述计算任务,具体包括:
基于所述目标核函数格式的核函数、所述目标信息格式的依赖信息,遍历所述第二可执行代码对应的计算图执行所述计算任务。
15.如权利要求9所述的方法,其特征在于,所述任务执行系统还包括:用户接口、设置接口、外部接口以及内部接口中的至少一种,所述用户接口用于将所述任务执行系统对应的应用程序接口导出到用户端,所述设置接口用于响应于用户的设置操作,在各计算引擎中确定出所述目标引擎,所述外部接口用于,接入新增的计算引擎,所述内部接口用于,对所述任务执行系统中的至少部分参数进行转换。
16.如权利要求9所述的方法,其特征在于,所述任务执行系统包括:人工智能AI操作系统。
17.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求9~15任一项所述的方法。
18.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求9~15任一项所述的方法。
CN202310439553.6A 2023-04-18 2023-04-18 一种任务执行系统、方法、存储介质及电子设备 Active CN116185532B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310439553.6A CN116185532B (zh) 2023-04-18 2023-04-18 一种任务执行系统、方法、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310439553.6A CN116185532B (zh) 2023-04-18 2023-04-18 一种任务执行系统、方法、存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN116185532A CN116185532A (zh) 2023-05-30
CN116185532B true CN116185532B (zh) 2023-07-21

Family

ID=86434767

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310439553.6A Active CN116185532B (zh) 2023-04-18 2023-04-18 一种任务执行系统、方法、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN116185532B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116541018B (zh) 2023-06-19 2023-09-15 之江实验室 一种分布式模型编译系统、方法、装置、介质及设备
CN116932092B (zh) * 2023-09-18 2024-01-09 之江实验室 一种算子调用代码自动生成的方法、装置、介质及设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115423101A (zh) * 2022-08-19 2022-12-02 贝式计算(天津)信息技术有限公司 基于编译器的张量数据计算推理方法、装置及存储介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5881289A (en) * 1996-11-26 1999-03-09 Hewlett-Packard Company Remote compiling of source code for cross development
US6484313B1 (en) * 1999-06-30 2002-11-19 Microsoft Corporation Compiling and persisting of intermediate language code
US8010953B2 (en) * 2006-04-04 2011-08-30 International Business Machines Corporation Method for compiling scalar code for a single instruction multiple data (SIMD) execution engine
US20120096445A1 (en) * 2010-10-18 2012-04-19 Nokia Corporation Method and apparatus for providing portability of partially accelerated signal processing applications
US11055063B2 (en) * 2016-05-02 2021-07-06 Marvell Asia Pte, Ltd. Systems and methods for deep learning processor
US10628217B1 (en) * 2017-09-27 2020-04-21 Amazon Technologies, Inc. Transformation specification format for multiple execution engines
CN111897525A (zh) * 2020-07-15 2020-11-06 深圳市腾讯网域计算机网络有限公司 大数据处理方法及系统
CN111651207B (zh) * 2020-08-06 2020-11-17 腾讯科技(深圳)有限公司 一种神经网络模型运算芯片、方法、装置、设备及介质
US20220092439A1 (en) * 2020-09-23 2022-03-24 EMC IP Holding Company LLC Decoupled architecture for artificial intelligence model management
CN115730507A (zh) * 2021-08-31 2023-03-03 阿里云计算有限公司 模型引擎的构建、核函数处理方法、设备及存储介质
CN115906988A (zh) * 2021-09-28 2023-04-04 广州视源电子科技股份有限公司 神经网络推理架构的创建方法、神经网络推理方法及装置
CN115454446A (zh) * 2021-11-15 2022-12-09 北京百度网讯科技有限公司 一种推理引擎开发平台、方法、电子设备及存储介质
CN114511100B (zh) * 2022-04-15 2023-01-13 支付宝(杭州)信息技术有限公司 一种支持多引擎框架的图模型任务实现方法和系统
US20230018149A1 (en) * 2022-09-22 2023-01-19 Intel Corporation Systems and methods for code generation for a plurality of architectures

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115423101A (zh) * 2022-08-19 2022-12-02 贝式计算(天津)信息技术有限公司 基于编译器的张量数据计算推理方法、装置及存储介质

Also Published As

Publication number Publication date
CN116185532A (zh) 2023-05-30

Similar Documents

Publication Publication Date Title
CN116185532B (zh) 一种任务执行系统、方法、存储介质及电子设备
CN110245279B (zh) 依赖树生成方法、装置、设备及存储介质
CN111966334B (zh) 一种业务处理方法、装置及设备
CN116306856B (zh) 一种基于搜索的深度学习模型部署方法及装置
CN108595246B (zh) 一种运行应用的方法、装置及设备
CN116663618B (zh) 一种算子优化方法、装置、存储介质及电子设备
CN116860259B (zh) 一种模型训练和编译器自动调优的方法、装置及设备
CN116304720B (zh) 一种代价模型训练的方法、装置、存储介质及电子设备
CN116521380A (zh) 一种资源自适应协同的模型训练加速方法、装置及设备
CN116225669B (zh) 一种任务执行方法、装置、存储介质及电子设备
CN116932092B (zh) 一种算子调用代码自动生成的方法、装置、介质及设备
CN117828360A (zh) 一种模型训练、代码生成方法、装置、存储介质及设备
CN111459573B (zh) 一种智能合约执行环境的启动方法以及装置
CN116150563B (zh) 一种业务执行方法、装置、存储介质及电子设备
CN116341642B (zh) 一种数据处理的方法、装置、存储介质及电子设备
CN116842715A (zh) 一种仿真数据结构化处理系统
CN116304704A (zh) 一种模型训练方法、装置、存储介质及电子设备
CN116136952A (zh) 一种针对元器件的仿真测试方法及装置
CN115390852A (zh) 一种生成统一抽象语法树与程序分析的方法和装置
CN107291439B (zh) 一种目标增量数据构建方法及装置
US11573777B2 (en) Method and apparatus for enabling autonomous acceleration of dataflow AI applications
CN117519733B (zh) 一种项目部署方法、装置、存储介质及电子设备
CN117171577B (zh) 一种高性能算子选择的动态决策方法及装置
CN114118798B (zh) 工业互联网平台的任务处理方法、装置及工业互联网平台
CN117170669B (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
GR01 Patent grant
GR01 Patent grant