本公开涉及计算机,特别涉及一种神经网络计算图的算子分配方法及装置、电子设备、计算机可读介质。
背景技术:
1、深度学习框架(例如tensorflow或onnx)通常使用计算图来表达深度学习模型(神经网络)的计算。针对特定的加速硬件,神经网络计算图需要经过编译器进行编译,以生成可以在硬件上运行的指令流。其中,硬件可以是存算一体的众核架构芯片,众核架构芯片通常包括多个计算核(core)。
2、在相关技术中,在神经网络计算图的编译阶段,计算图进入编译器后,会进行任务分配。例如,根据计算图的不同算子的计算量、访存需求以及算子间的同步信息,将不同的算子分配到不同的计算核上进行执行。
3、在将不同算子分配到不同的计算核的内存时,如何确保各个计算核的内存负载均衡,以保障众核架构芯片的运行性能,是目前亟待解决的技术问题。
技术实现思路
1、本公开提供一种神经网络计算图的算子分配方法及装置、电子设备、计算机可读介质。
2、根据本公开的第一方面,本公开实施例提供了一种神经网络计算图的算子分配方法,该算子分配方法应用于众核芯片,所述众核芯片包括多个计算核,每个所述计算核对应配置有独立内存,该算子分配方法包括:
3、获取目标神经网络计算图对应的多种算子分配策略,每种所述算子分配策略包括一种算子分配信息,所述算子分配信息表征将所述目标神经网络计算图中多个算子分配到所述众核芯片的多个计算核上的一种算子分配情况;
4、将每种所述算子分配策略对应的算子分配信息输入至预先获取的评估模型,预测得到每种所述算子分配策略对应的内存负载均衡评估值;
5、根据各所述算子分配策略对应的内存负载均衡评估值,从多种算子分配策略中确定出目标算子分配策略;
6、其中,所述内存负载均衡评估值表征按照对应的所述算子分配策略进行算子分配时所述众核芯片上多个计算核的内存负载的分布均匀程度。
7、根据本公开的第二方面,本公开实施例提供了一种算子分配装置,该算子分配装置应用于众核芯片,所述众核芯片包括多个计算核,每个所述计算核对应配置有一个可用内存空间,该算子分配装置包括:
8、策略获取模块,用于获取目标神经网络计算图对应的多种算子分配策略,每种所述算子分配策略包括一种算子分配信息,所述算子分配信息表征将所述目标神经网络计算图中多个算子分配到所述众核芯片的多个计算核上的一种算子分配情况;
9、策略评估模块,用于将每种所述算子分配策略对应的算子分配信息输入至预先获取的评估模型,预测得到每种所述算子分配策略对应的内存负载均衡评估值;
10、策略决策模块,用于根据各所述算子分配策略对应的内存负载均衡评估值,从多种算子分配策略中确定出目标算子分配策略;
11、其中,所述内存负载均衡评估值表征按照对应的所述算子分配策略进行算子分配时所述众核芯片上多个计算核的内存负载的分布均匀程度。
12、根据本公开的第三方面,本公开实施例提供了一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的一个或多个计算机程序,一个或多个所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述任一实施例提供的算子分配方法。
13、根据本公开的第四方面,本公开实施例提供了一种计算机可读介质,其上存储有计算机程序,其中,所述计算机程序在被处理器执行时实现上述任一实施例提供的算子分配方法。
14、本公开实施例所提供的算子分配方法、算子分配装置、电子设备及计算机可读介质的技术方案中,通过评估模型预测每种算子分配策略对应的内存负载均衡评估值,通过每种算子分配策略对应的内存负载均衡评估值可以确定出以每种算子分配策略进行算子分配时众核芯片的多个计算核的内存负载均衡情况,从而可以决策出内存负载均衡情况较好的目标算子分配策略,有效提高了目标算子分配策略的搜索时间和效率,在将神经网络计算图编译到众核芯片上时,有利于改善部分计算核的内存负载较小而部分计算核的内存负载过大的现象,从而有利于实现众核芯片的多个计算核的内存负载均衡,继而有利于改善众核芯片的运行性能。
15、应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
1.一种神经网络计算图的算子分配方法,应用于众核芯片,所述众核芯片包括多个计算核,每个所述计算核对应配置有独立内存,所述方法包括:
2.根据权利要求1所述的算子分配方法,其中所述算子分配信息包括每个计算核对应分配的算子及各算子对应的算子属性信息。
3.根据权利要求2所述的算子分配方法,其中针对每种算子分配策略,所述评估模型用于:
4.根据权利要求3所述的算子分配方法,其中所述内存负载均衡评估值是多个计算核对应的最大内存使用量的标准差,所述根据各所述算子分配策略对应的内存负载均衡评估值,从多种算子分配策略中确定出目标算子分配策略,包括:
5.根据权利要求2所述的算子分配方法,其中所述评估模型包括内存使用量评估模型、和与所述内存使用量评估模型的输出连接的内存负载均衡评估模型;
6.根据权利要求1所述的算子分配方法,其中所述方法还包括:
7.根据权利要求1所述的算子分配方法,其中所述评估模型包括内存使用量评估模型、和与所述内存使用量评估模型的输出连接的内存负载均衡评估模型,所述方法还包括:
8.根据权利要求6或7所述的算子分配方法,其中所述根据对应的训练众核芯片上每个计算核对应的最大内存使用量,获取该训练众核芯片上多个计算核的内存负载均衡评估值,包括:
9.根据权利要求1-7中任一项所述的算子分配方法,其中所述评估模型基于循环神经网络模型训练得到。
10.一种算子分配装置,应用于众核芯片,所述众核芯片包括多个计算核,每个所述计算核对应配置有独立内存,所述装置包括:
11.一种电子设备,包括:
12.一种计算机可读介质,其上存储有计算机程序,其中,所述计算机程序在被处理器执行时实现如权利要求1-9中任一项所述的算子分配方法。