数据处理方法、装置、设备及存储介质制造方法及图纸

技术编号:33029167 阅读:13 留言:0更新日期:2022-04-15 09:04
本申请公开了一种数据处理方法、装置、设备及存储介质,涉及数据处理技术领域,用于自定义算子开发,从而解决算子开发框架过于庞大,框架维护非常复杂的问题。该方法用于算子开发框架,该方法包括:获取自定义算子的源代码,自定义算子包括至少两个基础算子;其中,待执行自定义算子的目标硬件平台的算子库中预先存储有至少两个基础算子,基础算子是多个硬件平台通用的基础算子,多个硬件平台包括目标硬件平台;解析源代码,得到自定义算子的拓扑结构文件,拓扑结构文件用于指示目标硬件平台执行自定义算子时从算子库中调用至少两个基础算子,以及至少两个基础算子的计算逻辑。以及至少两个基础算子的计算逻辑。以及至少两个基础算子的计算逻辑。

【技术实现步骤摘要】
数据处理方法、装置、设备及存储介质


[0001]本申请涉及数据处理
,尤其涉及一种数据处理方法、装置、设备及存储介质。

技术介绍

[0002]相关技术中,深度学习算子通常采用硬件指令编写成平台可执行代码。然而,由于不同的硬件平台需要专门的代码生成后端进行可执行代码的编写,导致深度学习算子的平台通用性不佳。此外,由于每新增一个硬件平台后需要增加一个代码生成后端用于编写该新增硬件平台的可执行代码,导致整个算子开发框架过于庞大,框架维护非常复杂。

技术实现思路

[0003]本申请实施例提供了一种数据处理方法、装置、设备及存储介质,用于自定义算子开发,从而解决算子开发框架过于庞大,框架维护非常复杂的问题。
[0004]为达到上述目的,本申请实施例提供如下技术方案:
[0005]第一方面,提供了一种数据处理方法,包括:获取自定义算子的源代码,自定义算子包括至少两个基础算子;其中,待执行自定义算子的目标硬件平台的算子库中预先存储有至少两个基础算子,基础算子是多个硬件平台通用的基础算子,多个硬件平台包括目标硬件平台;解析源代码,得到自定义算子的拓扑结构文件,拓扑结构文件用于指示目标硬件平台执行自定义算子时从算子库中调用至少两个基础算子,以及至少两个基础算子的计算逻辑。
[0006]由于自定义算子的源代码通过各个硬件平台通用的基础算子组成,使得自定义算子的源代码与硬件平台的特性无关,进而实现自定义算子的源代码可以适用于不同的硬件平台。进一步地,通过解析源代码得到自定义算子的拓扑结构文件,该拓扑结构文件可以指示目标硬件平台从算子库中获取至少两个基础算子并依照拓扑结构文件指示的计算逻辑执行该至少两个基础算子,也即,不同硬件平台都可以通过该拓扑结构文件实现自定义算子的运行,从而实现了自定义算子的多平台通用。进一步地,由于硬件平台基于拓扑结构文件和自身的算子库便可以执行自定义算子,因此,不必再为每一个硬件平台增加一个代码生成后端,大大降低了算子开发框架的代码量,代码维护简单。
[0007]在一种可能的实现方式中,拓扑结构文件包括每个基础算子的参数信息,参数信息用于确定目标硬件平台调用的至少两个基础算子的参数。
[0008]该种可能的实施方式,有助于保证在至少两个基础算子配置有参数的情况下,避免缺少至少两个基础算子的参数,从而保证每个基础算子的准确性,进而保证自定义算子的准确性。
[0009]在一种可能的实现方式中,方法还包括:在确定自定义算子中包括不属于算子库的目标算子的情况下,发出提示信息;其中,提示信息用于指示用户修改目标算子。
[0010]该种可能的实现方式,通过在硬件平台的算子库不包括基础算子时,发出提示信
息,提醒算子开发人员进行重新编写,有助于避免硬件平台无法执行自定义算子。
[0011]在一种可能的实现方式中,算子开发框架包括预先配置的基础算子调用接口库,基础算子调用接口库包括多个硬件平台通用的基础算子的调用接口;获取自定义算子的源代码,包括:获取基于算子调用接口库生成的自定义算子的源代码,源代码包括至少两个基础算子的调用接口;解析源代码,得到自定义算子的拓扑结构文件,包括:解析源代码,得到至少两个基础算子的调用接口之间的拓扑关系;至少两个基础算子的调用接口,用于目标硬件平台执行自定义算子时,从算子库中调用至少两个基础算子。
[0012]该种可能的实现方式,通过为用户提供基础算子调用接口库,使得用户无需掌握硬件平台的特性,也无需熟悉算子开发编程语言,即可编写自定义算子的源代码,算子开发难度低,开发效率高。
[0013]在一种可能的实现方式中,源代码还包括目标硬件平台的平台标识;拓扑结构文件还包括平台标识,以指示目标硬件平台在运行自定义算子之前,获取拓扑结构文件。
[0014]该种可能的实现方式,通过在拓扑结构文件中配置平台标识,以便硬件平台设备在获取拓扑结构文件时,可以根据硬件平台的平台标识,获取对应的拓扑结构文件,从而保证了硬件平台获取拓扑结构文件的准确性。
[0015]在一种可能的实现方式中,在解析源代码,得到自定义算子的拓扑结构文件之后,方法还包括:确定神经网络中的自定义算子;获取预先存储的自定义算子的拓扑结构文件;基于拓扑结构文件,从目标硬件平台的算子库调用至少两个基础算子,并基于拓扑结构文件指示的至少两个基础算子的计算逻辑,运行至少两个基础算子。
[0016]该种可能的实现方式,实现了对硬件平台底层驱动加速库(即算子库)的二次利用,进而实现极致利用硬件平台的性能,并且有助于提高的自定义算子的性能。
[0017]第二方面,提供了一种数据处理装置,用于算子开发框架,装置包括:用于执行第一方面提供的任意一种方法的功能单元,各个功能单元所执行的动作通过硬件实现或通过硬件执行相应的软件实现。例如,数据处理装置可以包括:算子编程单元和代码解析单元;算子编程单元,用于获取自定义算子的源代码,自定义算子包括至少两个基础算子;其中,待执行自定义算子的目标硬件平台的算子库中预先存储有至少两个基础算子,基础算子是多个硬件平台通用的基础算子,多个硬件平台包括目标硬件平台;代码解析单元,用于解析源代码,得到自定义算子的拓扑结构文件,拓扑结构文件用于指示目标硬件平台执行自定义算子时从算子库中调用至少两个基础算子,以及至少两个基础算子的计算逻辑。
[0018]第三方面,提供了一种计算机设备,包括:处理器和存储器。处理器与存储器连接,存储器用于存储计算机执行指令,处理器执行存储器存储的计算机执行指令,从而实现第一方面提供的任意一种方法。
[0019]第四方面,提供了一种芯片,该芯片包括:处理器和接口电路;接口电路,用于接收代码指令并传输至处理器;处理器,用于运行代码指令以执行第一方面提供的任意一种方法。
[0020]第五方面,提供了一种计算机可读存储介质,包括计算机执行指令,当计算机执行指令在计算机上运行时,使得计算机执行第一方面提供的任意一种方法。
[0021]第六方面,提供了一种计算机程序产品,包括计算机执行指令,当计算机执行指令在计算机上运行时,使得计算机执行第一方面提供的任意一种方法。
[0022]第二方面至第六方面中的任一种实现方式所带来的技术效果可参见第一方面中对应实现方式所带来的技术效果,此处不再赘述。
附图说明
[0023]图1为本申请实施例提供的一种相关技术中的算子开发方案的示意图;
[0024]图2为本申请实施例提供的另一种相关技术中的算子开发方案的示意图;
[0025]图3为本申请实施例提供的另一种相关技术中的算子开发方案的示意图;
[0026]图4为本申请实施例提供的一种计算机设备的示意图;
[0027]图5为本申请实施例提供的另一种计算机设备的示意图;
[0028]图6为本申请实施例提供的一种数据处理方法的流程示意图;
[0029]图7为本申请实施例提供的一种数据处理方法的原理图;
[0030]图8为本申本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,其特征在于,用于算子开发框架,所述方法包括:获取自定义算子的源代码,所述自定义算子包括至少两个基础算子;其中,待执行所述自定义算子的目标硬件平台的算子库中预先存储有所述至少两个基础算子,所述基础算子是多个硬件平台通用的基础算子,所述多个硬件平台包括所述目标硬件平台;解析所述源代码,得到所述自定义算子的拓扑结构文件,所述拓扑结构文件用于指示所述目标硬件平台执行所述自定义算子时从所述算子库中调用所述至少两个基础算子,以及所述至少两个基础算子的计算逻辑。2.根据权利要求1所述的方法,其特征在于,所述拓扑结构文件包括每个所述基础算子的参数信息,所述参数信息用于确定所述目标硬件平台调用的所述至少两个基础算子的参数。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:在确定所述自定义算子中包括不属于所述算子库的目标算子的情况下,发出提示信息;其中,所述提示信息用于指示用户修改所述目标算子。4.根据权利要求1所述的方法,其特征在于,所述算子开发框架包括预先配置的基础算子调用接口库,所述基础算子调用接口库包括所述多个硬件平台通用的基础算子的调用接口;所述获取所述自定义算子的源代码,包括:获取基于所述算子调用接口库生成的所述自定义算子的源代码,所述源代码包括所述至少两个基础算子的调用接口;所述解析所述源代码,得到所述自定义算子的拓扑结构文件,包括:解析所述源代码,得到所述至少两个基础算子的调用接口之间的拓扑关系;所述至少两个基础算子的调用接口,用于所述目标硬件平台执行所述自定义算子时,从所述算子库中调用所述至少两个基础算子。5.根据权利要求1所述的方法,其特征在于,所述源代码还包括所述目标硬件平台的平台标识;所述拓扑结构文件还包括所述平台标识,以指示所述目标硬件平台在执行所述自定义算子之前,获取所述拓扑结构文件。6.根据权利要求1

5中任一项所述的方法,其特征在于,在所述解析所述源代码,得到所述自定义算子的拓扑结构文件之后,所述方法还包括:确定神经网络中的所述自定义算子;获取预先存储的所述自定义算子的所述拓扑结构文件;基于所述拓扑结构文件,从所述目标硬件平台的算子库调用所述至少两个基础算子,并基于所述拓扑结构文件指示的所述至少两个基础算子的计算逻辑,运行所述至少两个基础算子。7.一种数据处理装置,其特征在于,用于算子开发框架,所述装置包括:算子编程单元,用于获取自定义算子的源代码,所述自定义算子包括至少两个基础算子;其中,...

【专利技术属性】
技术研发人员:毛驰权蒋运超陈博伦周智强叶挺群
申请(专利权)人:杭州海康威视数字技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1