本技术涉及异构计算,尤其涉及一种应用程序运行方法、装置、电子设备及存储介质。
背景技术:
1、相关技术中,图像识别、语音识别等人工智能(artificial intelligence,ai)应用场景面临大量的数据处理与分析,为了提升计算效率和性能,往往会引入ai芯片(加速器)实现数据的并行计算与处理。针对一种结构的ai芯片,开发编译阶段-应用阶段都需要使用该ai芯片的工具链,当使用了某一ai芯片的工具链进行程序编译之后,该编译程序无法在其他异构的ai芯片上进行识别或者运行。鉴于现有ai芯片种类繁多,ai应用程序很难只基于某固定ai芯片进行开发和运行,而需要支持在多种异构硬件上运行的问题。目前常用的方法是,针对异构的ai芯片开发不同的应用程序版本,导致整体开发成本增加,同一ai应用程序的不同版本可执行程序所消耗的存储资源也随着ai芯片种类的增加而成倍数增加,将造成不必要的存储资源浪费。
技术实现思路
1、本技术实施例提供的一种应用程序运行方法、装置、电子设备及存储介质,可以降低开发成本,并降低ai应用程序所消耗的存储资源。
2、本技术的技术方案是这样实现的:
3、本技术实施例提供了一种应用程序运行方法,包括:
4、加载应用程序的程序中间文件;其中,所述程序中间文件包括执行所述应用程序时在中央处理器上处理的中间表示,以及执行所述应用程序时在至少一种架构的加速器上分别处理的加速任务描述信息;
5、将至少一个所述加速任务描述信息与当前加速器对应的加速任务描述特征匹配,确定至少一个所述加速任务描述信息中的目标加速任务描述信息;其中,所述当前加速器属于至少一种架构的所述加速器;所述目标加速任务描述信息是与所述当前加速器对应的底层环境适配的加速任务描述信息;
6、执行所述中间表示和所述目标加速任务描述信息,完成所述应用程序的运行。
7、上述方案中,所述将至少一个所述加速任务描述信息与当前加速器对应的加速任务描述特征匹配,确定至少一个所述加速任务描述信息中的目标加速任务描述信息之前,所述方法还包括:
8、扫描所述当前加速器对应的底层环境,获取所述当前加速器适配的至少一个加速任务描述类型,每一所述加速任务描述类型对应的优先级,以及每一所述加速任务描述类型执行时的解析策略。
9、上述方案中,所述加速任务描述特征包括:至少一个所述加速任务描述类型;所述将至少一个所述加速任务描述信息与当前加速器对应的加速任务描述特征匹配,确定至少一个所述加速任务描述信息中的目标加速任务描述信息,包括:
10、将每一所述加速任务描述信息与每一所述加速任务描述类型进行匹配,得到匹配结果;
11、基于所述匹配结果,在至少一个所述加速任务描述信息中确定与所述底层环境适配的所述目标加速任务描述信息。
12、上述方案中,所述将每一所述加速任务描述信息与每一所述加速任务描述类型进行匹配,得到匹配结果之后,所述方法还包括:
13、若所述匹配结果表征每一所述加速任务描述信息与任一所述加速任务描述类型不匹配,则提示错误,终止所述应用程序的运行。
14、上述方案中,所述加速任务描述特征包括:每一所述加速任务描述类型对应的优先级;所述将每一所述加速任务描述信息与每一所述加速任务描述类型进行匹配,得到匹配结果之后,所述方法还包括:
15、若所述匹配结果表征存在n个所述加速任务描述信息分别与一所述加速任务描述类型匹配,则在n个所述加速任务描述信息中确定所述目标加速任务描述信息;其中,所述目标加速任务描述信息是n个所述加速任务描述信息中对应的加速任务描述类型优先级最高的;n为大于0的整数。
16、上述方案中,所述将至少一个所述加速任务描述信息与当前加速器对应的加速任务描述特征匹配,确定至少一个所述加速任务描述信息中的目标加速任务描述信息之后,所述方法还包括:
17、获取所述目标加速任务描述信息的存储位置;其中,所述存储位置用于在执行所述目标加速任务描述信息时基于所述存储位置调取所述目标加速任务描述信息。
18、上述方案中,所述执行所述中间表示和所述目标加速任务描述信息,包括:
19、通过所述中央处理器执行所述中间表示,并基于所述目标加速任务描述信息对应的加速任务描述类型,通过所述当前加速器执行所述目标加速任务描述信息;其中,所述加速任务描述类型包括:加速器定制类型和加速器通用类型。
20、上述方案中,所述中间表示包括:第一表示描述信息和第二表示描述信息;其中,执行所述第一表示描述信息涉及所述中央处理器,执行所述第二表示描述信息涉及所述中央处理器和所述当前加速器的交互;
21、所述通过所述中央处理器执行所述中间表示,并基于所述目标加速任务描述信息对应的所述加速任务描述类型,通过所述当前加速器执行所述目标加速任务描述信息,包括:
22、通过所述中央处理器执行所述第一表示描述信息,和/或将所述第二表示描述信息翻译成所述当前加速器对应的底层环境适配的第一执行内容后,通过所述底层环境执行所述第一执行内容;
23、若所述目标加速任务描述信息的所述加速任务描述类型为所述加速器定制类型或者所述加速器通用类型,且所述目标加速任务描述信息的所述加速任务描述类型对应的解析策略表征不需要解析,则通过所述当前加速器对应的底层环境执行所述目标加速任务描述信息;
24、或者,若所述目标加速任务描述信息的所述加速任务描述类型为所述加速器通用类型,且所述目标加速任务描述信息的所述加速任务描述类型对应的解析策略表征需要解析,则将所述目标加速任务描述信息翻译为与所述底层环境适配的第二执行内容,并通过所述当前加速器对应的底层环境执行所述第二执行内容。
25、本技术实施例还提供了一种应用程序运行装置,包括:
26、加载单元,用于加载应用程序的程序中间文件;其中,所述程序中间文件包括执行所述应用程序时在中央处理器上处理的中间表示,以及执行所述应用程序时在至少一种架构的加速器上分别处理的加速任务描述信息;
27、确定单元,用于基于至少一个所述加速任务描述信息与当前加速器对应的加速任务描述特征匹配,确定至少一个所述加速任务描述信息中的目标加速任务描述信息;其中,所述当前加速器属于至少一种架构的所述加速器;所述目标加速任务描述信息是与所述当前加速器对应的底层环境适配的加速任务描述信息;
28、执行单元,用于执行所述中间表示和所述目标加速任务描述信息,完成所述应用程序的运行。
29、本技术实施例还提供了一种电子设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法中的步骤。
30、本技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述方法中的步骤。
31、本技术实施例还提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现上述方法中的步骤。
32、本技术实施例中,加载应用程序的程序中间文件;其中,程序中间文件包括执行应用程序时在中央处理器上处理的中间表示,以及执行应用程序时在至少一种架构的加速器上分别处理的加速任务描述信息;基于至少一个加速任务描述信息与当前加速器对应的加速任务描述特征匹配,确定至少一个加速任务描述信息中的目标加速任务描述信息;其中,当前加速器属于至少一种架构的加速器;目标加速任务描述信息是与当前加速器对应的底层环境适配的加速任务描述信息;执行中间表示和目标加速任务描述信息,完成应用程序的运行。由于本技术中应用程序的程序中间文件包括了至少一个架构的芯片对应的加速任务描述信息,这样只需要在至少一个加速任务描述信息中确定与当前加速器(ai芯片)的底层环境最适配的一个目标加速任务描述信息,即可实现在异构的加速器上进行应用程序的执行,不需要针对异构的加速器开发多个版本的应用程序,降低开发成本。并且,由于本技术中只需要针对应用程序开发包括至少一个加速任务描述信息的一个程序版本即可,相比于现有技术中的多个版本的应用程序所占存储较小,降低应用程序所消耗的存储资源。
1.一种应用程序运行方法,其特征在于,包括:
2.根据权利要求1所述的应用程序运行方法,其特征在于,所述将至少一个所述加速任务描述信息与当前加速器对应的加速任务描述特征匹配,确定至少一个所述加速任务描述信息中的目标加速任务描述信息之前,所述方法还包括:
3.根据权利要求2所述的应用程序运行方法,其特征在于,所述加速任务描述特征包括:至少一个所述加速任务描述类型;所述将至少一个所述加速任务描述信息与当前加速器对应的加速任务描述特征匹配,确定至少一个所述加速任务描述信息中的目标加速任务描述信息,包括:
4.根据权利要求3所述的应用程序运行方法,其特征在于,所述将每一所述加速任务描述信息与每一所述加速任务描述类型进行匹配,得到匹配结果之后,所述方法还包括:
5.根据权利要求3所述的应用程序运行方法,其特征在于,所述加速任务描述特征包括:每一所述加速任务描述类型对应的优先级;所述将每一所述加速任务描述信息与每一所述加速任务描述类型进行匹配,得到匹配结果之后,所述方法还包括:
6.根据权利要求1所述的应用程序运行方法,其特征在于,所述将至少一个所述加速任务描述信息与当前加速器对应的加速任务描述特征匹配,确定至少一个所述加速任务描述信息中的目标加速任务描述信息之后,所述方法还包括:
7.根据权利要求1至6任一项所述的应用程序运行方法,其特征在于,所述执行所述中间表示和所述目标加速任务描述信息,包括:
8.根据权利要求7所述的应用程序运行方法,其特征在于,所述中间表示包括:第一表示描述信息和第二表示描述信息;其中,执行所述第一表示描述信息涉及所述中央处理器,执行所述第二表示描述信息涉及所述中央处理器和所述当前加速器的交互;
9.一种应用程序运行装置,其特征在于,包括:
10.一种电子设备,其特征在于,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1至8任一项所述方法中的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8任一项所述方法中的步骤。
12.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序在被处理器执行时实现权利要求1至8任一项所述方法中的步骤。