动态链接库文件的生成方法、算子的调用方法及装置制造方法及图纸

技术编号:38441481 阅读:20 留言:0更新日期:2023-08-11 14:23
本公开提供了动态链接库文件的生成方法、算子的调用方法及装置,涉及人工智能技术领域,尤其涉及深度学习技术领域。动态链接库文件的生成方法的具体实现方案为:获取可执行文件生成模板;从张量配置信息中得到算子核函数的名称信息;根据算子核函数的名称信息,从算子配置信息中得到算子核函数的参数信息;以及根据名称信息、参数信息和可执行文件生成模板,生成动态链接库文件,其中,动态链接库文件包括同一算子在不同运行场景的多个可执行文件。件。件。

【技术实现步骤摘要】
动态链接库文件的生成方法、算子的调用方法及装置


[0001]本公开涉及人工智能
,尤其涉及深度学习
,具体涉及一种动态链接库文件的生成方法、算子的调用方法及装置。

技术介绍

[0002]张量作为深度学习框架中的基本数据单元,在利用深度学习框架搭建人工智能模型时,通常是将张量作为输入,通过调用深度学习框架中的算子以完成特定的运算逻辑。

技术实现思路

[0003]本公开提供了一种动态链接库文件的生成方法、算子的调用方法及装置。
[0004]根据本公开的一方面,提供了一种动态链接库文件的生成方法,包括:获取可执行文件生成模板;从张量配置信息中得到算子核函数的名称信息;根据算子核函数的名称信息,从算子配置信息中得到算子核函数的参数信息;以及根据名称信息、参数信息和可执行文件生成模板,生成动态链接库文件,其中,动态链接库文件包括同一算子在不同运行场景的多个可执行文件。
[0005]根据本公开的另一方面,提供了一种深度学习框架算子的调用方法,包括:根据用于调用目标算子的源代码,确定目标运行场景和目标算子,其中,目标运行场景指示了目标算子的调用方式和目标算子的运行模式;根据目标运行场景和目标算子,从动态链接库文件中得到目标可执行文件,其中,动态链接库文件是利用上述动态链接库文件的生成方法生成的;以及通过运行目标可执行文件,以执行目标算子的运算逻辑。
[0006]根据本公开的另一方面,提供了一种动态链接库文件的生成装置,包括:获取模块、第一获得模块、第二获得模块和生成模块。获取模块,用于获取可执行文件生成模板。第一获得模块,用于从张量配置信息中得到算子核函数的名称信息。第二获得模块,用于根据算子核函数的名称信息,从算子配置信息中得到算子核函数的参数信息。生成模块,用于根据名称信息、参数信息和可执行文件生成模板,生成动态链接库文件,其中,动态链接库文件包括同一算子在不同运行场景的多个可执行文件。
[0007]根据本公开的另一方面,提供了一种深度学习框架算子的调用装置,包括:确定模块、第三获得模块和运行模块。确定模块,用于根据用于调用目标算子的源代码,确定目标运行场景和目标算子,其中,目标运行场景指示了目标算子的调用方式和目标算子的运行模式。第三获得模块,用于根据目标运行场景和目标算子,从动态链接库文件中得到目标可执行文件,其中,动态链接库文件是利用上述动态链接库文件的生成方法生成的。运行模块,用于通过运行目标可执行文件,以执行目标算子的运算逻辑。
[0008]根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与上述至少一个处理器通信连接的存储器;其中,上述存储器存储有可被上述至少一个处理器执行的指令,上述指令被上述至少一个处理器执行,以使上述至少一个处理器能够执行如上的方法。
[0009]根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使上述计算机执行如上所述的方法。
[0010]根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,上述计算机程序在被处理器执行时实现如上的方法。
[0011]应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0012]附图用于更好地理解本方案,不构成对本公开的限定。其中:
[0013]图1示意性示出了根据本公开实施例的可以应用动态链接库文件的生成方法或深度学习框架算子的调用方法及装置的示例性系统架构;
[0014]图2示意性示出了根据本公开实施例的动态链接库文件的生成方法的流程图;
[0015]图3示意性示出了根据本公开实施例的根据张量配置信息和算子配置信息生成动态链接库文件的示意图;
[0016]图4示意性示出了根据本公开实施例的按照算子的运行场景对源代码文件进行分别编译得到不同运行场景的动态链接库文件的示意图;
[0017]图5示意性示出了根据本公开实施例的深度学习框架算子的调用方法的流程图;
[0018]图6示意性示出了根据本公开实施例的深度学习框架算子的调用方法的示意图;
[0019]图7示意性示出了根据本公开实施例的动态链接库文件的生成装置的框图;
[0020]图8示意性示出了根据本公开实施例的深度学习框架算子的调用装置的框图;以及
[0021]图9示意性示出了根据本公开实施例的适于实现动态链接库文件的生成方法或深度学习框架算子的调用方法的电子设备的框图。
具体实施方式
[0022]以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0023]张量作为深度学习框架中基本的数据单元,在利用深度学习框架搭建人工智能模型的过程中,通常会对张量频繁操作,例如:将一个或多个张量作为输入,然后调用一个或多个算子,以完成特定的运算逻辑。
[0024]相关技术中,由于运行场景的不同,对张量操作的方法也存在差异。例如:在前向运算的动态图场景中,通常采用的是函数式调用。但是,在前向运算的静态图场景中,通常采用的是结构体式调用。因此,当利用现有的深度学习框架搭建人工智能模型时,需要根据不同的运行场景对算子调用方式的要求,编写用于调用算子的源代码,容易导致源代码冗长,提高了深度学习框架的应用难度,降低了用户体验。
[0025]有鉴于此,本公开实施例提供了一种动态链接库文件的生成方法,根据张量配置信息、算子配置信息和可执行文件生成模板,生成包括同一算子在不同运行场景的多个可
执行文件的动态链接库文件,以便可以根据当前的运行场景自动适配用于调用算子的可执行文件,降低了用于调用算子的源代码的编写难度和深度学习框架的应用难度,能够有效提高用户体验。
[0026]图1示意性示出了根据本公开实施例的可以应用动态链接库文件的生成方法或深度学习框架算子的调用方法及装置的示例性系统架构。
[0027]需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的
技术实现思路
,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。例如,在另一实施例中,可以应用动态链接库文件的生成方法或深度学习框架算子的调用方法及装置的示例性系统架构可以包括终端设备,但终端设备可以无需与服务器进行交互,即可实现本公开实施例提供的动态链接库文件的生成方法或深度学习框架算子的调用方法及装置。
[0028]如图1所示,根据该实施例的系统架构1 00可以包括第一终端设备101、第二终端设备102、第三终端设备103,网络104和服务器105。网络104用以在第一终端设备101、第二终本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种动态链接库文件的生成方法,包括:获取可执行文件生成模板;从张量配置信息中得到算子核函数的名称信息;根据所述算子核函数的名称信息,从算子配置信息中得到算子核函数的参数信息;以及根据所述名称信息、所述参数信息和所述可执行文件生成模板,生成所述动态链接库文件,其中,所述动态链接库文件包括同一算子在不同运行场景的多个可执行文件。2.根据权利要求1所述的方法,其中,所述根据所述名称信息、所述参数信息和所述可执行文件生成模板,生成所述动态链接库文件,包括:根据所述名称信息,确定算子的运行场景;根据所述算子的运行场景,从所述可执行文件生成模板中确定与所述运行场景对应的目标模板;以及通过调用目标模板,根据所述名称信息和所述参数信息,生成动态链接库文件。3.根据权利要求2所述的方法,其中,所述通过调用目标模板,根据所述名称信息和所述参数信息,生成动态链接库文件,包括:通过调用目标模板,根据所述名称信息和所述参数信息,生成与所述算子的运行场景对应的源代码文件;以及根据所述算子在不同运行场景的多个源代码文件,生成所述动态链接库文件。4.根据权利要求3所述的方法,其中,所述根据所述算子在不同运行场景的多个源代码文件,生成动态链接库文件,包括:根据所述多个源代码文件的运行场景,对所述多个源代码文件进行分类,得到第一运行模式的源代码文件和第二运行模式的源代码文件;对所述第一运行模式的源代码文件进行编译,得到所述第一运行模式的动态链接库文件;以及对所述第二运行模式的源代码文件进行编译,得到所述第二运行模式的动态链接库文件。5.一种深度学习框架算子的调用方法,包括:根据用于调用目标算子的源代码,确定目标运行场景和目标算子,其中,所述目标运行场景指示了所述目标算子的调用方式和所述目标算子的运行模式;根据所述目标运行场景和所述目标算子,从动态链接库文件中得到目标可执行文件,其中,所述动态链接库文件是利用权利要求1

4任一项所述的方法生成的;以及通过运行所述目标可执行文件,以执行所述目标算子的运算逻辑。6.根据权利要求1所述的方法,其中,所述根据用于调用目标算子的源代码,确定目标运行场景和目标算子,包括:根据所述源代码的算子名称字段,确定所述目标算子;以及根据所述源代码的输入模式和场景标识字段,确定所述目标运行场景。7.根据权利要求6所述的方法,其中,所述根据所述源代码的输入模式和场景标识字段,确定所述目标运行场景,包括:根据所述源代码的输入模式,确定所述目标算子的运行模式;
通过运行所述源代码,得到所述场景标识字段的识别结果;以及根据所述识别结果,确定所述目标算子的调用方式。8.根据权利要求1所述的方法,其中,所述动态链接库文件还包括算子、算子的核函数名称与运行场景的映射关系,所述根据所述目标运行场景和所述目标算子,从所述动态链接库文件中得到目标可执行文件,包括:根据所述目标算子、所述目标运行场景和所述映射关系,得到所述目标算子在所述目标运行场景的核函数名称;以及根据所述核函数名称,从所述动态链接库文件中得到目标可执行文件。9.一种动态链接库文件的生成装置,包括:获取模块,用于获取可执行文件生成模板;第一获得模块,用于从张量配置信息中得到算子核函数的名称信息;第二获得模块,用于根据所述算子核函数的名称信息,从算子配置信息中得到算子核函数的参数信息;以及生成模块,用于根据所述名称信息、所述参数信息和所述可执行文件生成模板,生成所述动态链接库...

【专利技术属性】
技术研发人员:贾宏宇杨嘉彬陈威行张云飞
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:

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

1