神经网络计算图的处理方法及处理装置制造方法及图纸

技术编号:34402519 阅读:23 留言:0更新日期:2022-08-03 21:44
本公开提供了一种神经网络计算图的处理方法及处理装置、电子设备、计算机可读介质,该神经网络计算图包括多个算子节点,该处理方法包括:根据多个算子节点的输出连接关系,获取所有符合拆分点条件的目标算子节点,拆分点条件包括:具有第一输入端和第二输入端,且第一输入端所连接的算子节点为数据输入节点;以目标算子节点的第二输入端作为拆分点,将神经网络计算图拆分为串行连接的多个计算子图,第二输入端所连接的算子节点的输入端与其他算子节点连接;依次根据每个计算子图生成每个计算子图对应的可执行文件。根据本公开的技术方案,能够实现对任意神经网络计算图的自动化拆分,提高神经网络计算图的编译效率和效果,降低编译难度。低编译难度。低编译难度。

【技术实现步骤摘要】
神经网络计算图的处理方法及处理装置


[0001]本公开涉及计算机
,特别涉及一种神经网络计算图的处理方法及处理装置、电子设备、计算机可读存储介质。

技术介绍

[0002]基于存算一体的众核架构芯片,因将计算和存储都放在片上,减少了数据搬运时间,降低了功耗,是众核芯片的一个重要发展方向。
[0003]深度学习框架(例如TensorFlow或ONNX)通常使用计算图来表达深度学习模型(神经网络)的计算。针对特定的加速硬件,神经网络计算图需要经过编译器进行编译,以生成可以在硬件上运行的指令流。其中,硬件可以是基于存算一体的众核芯片,众核芯片通常包括多个物理核(Core)。

技术实现思路

[0004]本公开提供一种神经网络计算图的处理方法及处理装置、电子设备、计算机可读存储介质。
[0005]第一方面,本公开提供了一种神经网络计算图的处理方法,所述神经网络计算图包括多个算子节点,所述处理方法包括:
[0006]根据多个所述算子节点的输出连接关系,获取所有符合拆分点条件的目标算子节点,所述拆分点条件包括:具有第一输入端和第二输入端,且所述第一输入端所连接的算子节点为数据输入节点;
[0007]以所述目标算子节点的第二输入端作为拆分点,将所述神经网络计算图拆分为串行连接的多个计算子图,所述第二输入端所连接的算子节点的输入端与其他算子节点连接;
[0008]依次根据每个所述计算子图生成每个所述计算子图对应的可执行文件。
[0009]第二方面,本公开提供了一种处理装置,所述处理装置用于对待处理的神经网络计算图进行处理,所述神经网络计算图包括多个算子节点,所述处理装置包括:
[0010]确定模块,用于根据多个所述算子节点的输出连接关系,获取所有符合拆分点条件的目标算子节点,所述拆分点条件包括:具有第一输入端和第二输入端,且所述第一输入端所连接的算子节点为数据输入节点;
[0011]第一拆分模块,用于以所述目标算子节点的第二输入端作为拆分点,将所述神经网络计算图拆分为串行连接的多个计算子图,所述第二输入端所连接的算子节点的输入端与其他算子节点连接;
[0012]生成模块,用于依次根据每个所述计算子图生成每个所述计算子图对应的可执行文件。
[0013]第三方面,本公开提供了一种电子设备,该电子设备包括:
[0014]至少一个处理器;
[0015]以及与所述至少一个处理器通信连接的存储器;
[0016]其中,所述存储器存储有可被所述至少一个处理器执行的一个或多个计算机程序,一个或多个所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的神经网络计算图的处理方法。
[0017]第四方面,本公开提供了一种计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序在被处理器/处理核执行时实现上述的神经网络计算图的处理方法。
[0018]根据本公开实施例提供的神经网络计算图的处理方法的技术方案,一方面,该处理方法适用于任意神经网络计算图,能够实现对任意神经网络计算图的自动化拆分,使得神经网络计算图能够分段进行编译,降低了神经网络计算图的编译难度,提高了神经网络计算图的编译效率和效果,且有效降低了神经网络计算图的编译对芯片硬件存储资源的要求,有利于解决神经网络计算图的编译所需存储资源较大而实际芯片硬件存储资源无法满足的问题,实现了对芯片硬件存储资源的合理利用,提高了芯片硬件存储资源的利用效率;另一方面,通过本公开实施例提供的处理方法对神经网络计算图进行拆分和可执行文件的生成,对于目标算子节点的部分输入端(如第一输入端)所需的数据,无需提前且长期存储于相应芯片上,从而能够有效节省相应芯片的片上存储资源,提高片上存储资源的利用率。
[0019]应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0020]附图用来提供对本公开的进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开,并不构成对本公开的限制。通过参考附图对详细示例实施例进行描述,以上和其他特征和优点对本领域技术人员将变得更加显而易见,在附图中:
[0021]图1为本公开实施例提供的一种神经网络计算图的处理方法的流程示意图;
[0022]图2为一种神经网络计算图的结构示意图;
[0023]图3为图1中步骤S13的一种具体实现方式的流程示意图;
[0024]图4为图1中步骤S13的另一种具体实现方式的流程示意图;
[0025]图5为本公开实施例提供的另一种神经网络计算图的处理方法的流程示意图;
[0026]图6为本公开实施例提供的另一种神经网络计算图的处理方法的流程示意图;
[0027]图7为本公开实施例提供的另一种神经网络计算图的处理方法的流程示意图;
[0028]图8为本公开实施例提供的另一种神经网络计算图的处理方法的流程示意图;
[0029]图9为本公开实施例提供的一种处理装置的组成框图;
[0030]图10为本公开实施例提供的一种电子设备的组成框图。
具体实施方式
[0031]为使本领域的技术人员更好地理解本公开的技术方案,以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0032]在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。
[0033]如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。
[0034]本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由
……
制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
[0035]除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。
[0036]在相关技术中,大型神经网络的计算图通常所需的运算量、数据量较大,芯片的计算、存储资源通常无法满足整个神经网络计算图的资源需求,造成神本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种神经网络计算图的处理方法,其特征在于,所述神经网络计算图包括多个算子节点,所述处理方法包括:根据多个所述算子节点的输入连接关系,获取所有符合拆分点条件的目标算子节点,所述拆分点条件包括:具有第一输入端和第二输入端,且所述第一输入端所连接的算子节点为数据输入节点;以所述目标算子节点的第二输入端作为拆分点,将所述神经网络计算图拆分为串行连接的多个计算子图,所述第二输入端所连接的算子节点的输入端与其他算子节点连接;依次根据每个所述计算子图生成每个所述计算子图对应的可执行文件。2.根据权利要求1所述的处理方法,其特征在于,所述第一输入端的输入数据预先存储于片外存储器。3.根据权利要求1所述的处理方法,其特征在于,所述依次根据每个所述计算子图生成每个所述计算子图对应的芯片可执行文件,包括:响应于在生成当前的所述计算子图对应的可执行文件时发生失败报错,将当前的所述计算子图进一步拆分成串行连接的多个计算子图;依次根据进一步拆分得到的每个所述计算子图,生成进一步拆分得到的每个所述计算子图对应的可执行文件。4.根据权利要求1所述的处理方法,其特征在于,所述依次根据每个所述计算子图生成每个所述计算子图对应的芯片可执行文件,包括:响应于在生成当前的所述计算子图对应的可执行文件时无失败报错,将当前的所述计算子图作为目标计算子图;将每个所述目标计算子图对应的可执行文件加载至对应的芯片。5.根据权利要求1所述的处理方法,其特征在于,在所述依次根据每个所述计算子图生成每个所述计算子图对应的可执行文件之后,所述处理方法还包括:响应于在生成每个所述计算子图对应的可执行文件时均无失败报错,获取至少一组计算子图,每组计算子图包括串行连接的至少两个计算子图;对每组计算子图中的至少两个计算子图进行融合处理,以得到每组计算子图对应的备选计算子图;在生成所述备选计算子图对应的可执行文件时无失败报错的情况下,将所述备选计算子图作为目标计算子图。6.根据权利要求5所述的处理方法,其特征在于,所述获取至少一组计算子图,包括:根据各所述计算子图对应的子图属性参数,确定所有计算子图中可进行融合处理的至少一组计算子图;其中,所述计算子图对应的子图属性参数包括所述计算子图对应的计算量、权重信息、以及对应的矢量加速单元APU图的节点数量。7.根据权利要求6所述的处理方法,其特征在于,所述根据各所述计算子图对应的子图属性参数,确定所有计算子图中可进行融合处理的至少一组计算子图,包括:按照所有计算子图的串行连接关系以及执行顺序,依次检查串行连接的至少两个计算子图是否满足融合条件;当确定串行连接的至少两个计算子图满足融合条件时,将该至少两个计算子图作为一
组计算子图;其中,所述融合条件包括:该至少两个计算子图对应的计算量之和大于或等于最小计算量阈值,且小于或等于最大计算量阈值;该至少两个计算子图对应的权重信息之和大于或等于最小权重阈值,且小于或等于最大权重阈值;该至少两个计算子图对应的APU图的节点数量之和大于或等于最小数量阈值,且小于或等于最大数量阈值。8.根据权利要求5所述的处理方法,其特征在于,所述获取至少一组计算子图,包括:按照所有计算子图的串行连接关系以及执行顺序,将所有计算子图中每两个串行连接的计算子图分别作为一组计算子图。9.根据权利要求1所述的处理方法,其特征在于,在所述依次根据每个所述计算子图生成每个所述计算子图对应的可执行文件之后,所述处理方法还包括:...

【专利技术属性】
技术研发人员:吴欣洋李涵陈锐李康
申请(专利权)人:北京灵汐科技有限公司
类型:发明
国别省市:

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

1