算子处理方法及装置、电子设备、计算机可读存储介质制造方法及图纸

技术编号:34987367 阅读:10 留言:0更新日期:2022-09-21 14:32
本公开提供一种算子处理方法及装置、电子设备、计算机可读存储介质,该方法包括:将神经网络计算图中预设数量的算子中的每个算子映射为一个多面体模型,多面体模型包括对应算子中的多个执行实例;将预设数量的多面体模型置于同一参考坐标空间中并确定每个多面体模型中多个执行实例的当前执行顺序;利用目标算法对每个多面体模型中多个执行实例的当前执行顺序进行迭代优化,以使预设数量的算子的输入输出数据的当前最大缓存量满足目标条件,得到预设数量的目标多面体模型。根据本公开能够高效、自动化地调整算子中多个执行实例的执行顺序,有利于降低神经网络计算图中动态数据的存储量,有利于节省硬件设备的存储资源。有利于节省硬件设备的存储资源。有利于节省硬件设备的存储资源。

【技术实现步骤摘要】
算子处理方法及装置、电子设备、计算机可读存储介质


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

技术介绍

[0002]神经网络、图形渲染、高性能等等领域的算法或任务往往可以表示为计算图形式。通常定义计算图为由表示计算操作的结点(算子)和表示计算操作之间数据依赖关系的边组成的图,计算图的执行往往需要消耗大量的硬件存储,这使得计算图的存储优化变得尤为重要。

技术实现思路

[0003]本公开提供一种神经网络计算图的算子处理方法及算子处理装置、电子设备、计算机可读存储介质。
[0004]第一方面,本公开提供了一种神经网络计算图的算子处理方法,所述算子处理方法包括:将神经网络计算图中预设数量的算子中的每个算子映射为一个多面体模型,所述多面体模型包括对应的所述算子中的多个执行实例;所述预设数量为所述神经网络计算图中全部或部分算子的数量;将所述预设数量的所述多面体模型置于同一参考坐标空间中,并确定每个所述多面体模型中所述多个执行实例的当前执行顺序;利用目标算法对所述预设数量中每个所述多面体模型中所述多个执行实例的当前执行顺序进行迭代优化,以使所述预设数量的算子对应的输入输出数据的当前最大缓存量满足目标条件,从而得到优化后的所述预设数量的目标多面体模型。
[0005]第二方面,本公开提供了一种算子处理装置,所述算子处理装置包括:映射单元,用于将神经网络计算图中预设数量的算子中的每个算子映射为一个多面体模型,所述多面体模型包括对应的所述算子中的多个执行实例;确定单元,用于将所述预设数量的所述多面体模型置于同一参考坐标空间中,并确定每个所述多面体模型中所述多个执行实例的当前执行顺序;迭代优化单元,用于利用目标算法对所述预设数量中每个所述多面体模型中所述多个执行实例的当前执行顺序进行迭代优化,以使所述预设数量的算子对应的输入输出数据的当前最大缓存量满足目标条件,从而得到优化后的所述预设数量的目标多面体模型。
[0006]第三方面,本公开提供了一种电子设备,该电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的一个或多个计算机程序,一个或多个所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能
够执行上述的算子处理方法。
[0007]第四方面,本公开提供了一种计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序在被处理器执行时实现上述的算子处理方法。
[0008]根据本公开实施例提供的神经网络计算图的算子处理方法及算子处理装置、电子设备、计算机可读存储介质的技术方案,利用目标算法对预设数量的算子中每个算子对应的多面体模型中多个执行实例的当前执行顺序进行迭代优化,以改变预设数量中每个多面体模型的多个执行实例的当前执行顺序,从而调整预设数量的算子对应的输入输出数据的当前最大缓存量,直至预设数量的算子对应的输入输出数据的当前最大缓存量满足目标条件,从而有利于降低神经网络计算图中动态数据的存储量,有利于节省硬件设备的存储资源。在应用于具有复杂的数据依赖情况的神经网络计算图时,能够高效、自动化地调整和优化算子的多个执行实例的执行顺序,以使神经网络计算图中动态数据的存储量尽可能的小。
[0009]应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0010]附图用来提供对本公开的进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开,并不构成对本公开的限制。通过参考附图对详细示例实施例进行描述,以上和其他特征和优点对本领域技术人员将变得更加显而易见,在附图中:图1为本公开实施例中一种神经网络计算图的结构示意图;图2为本公开实施例提供的一种神经网络计算图的算子处理方法的流程示意图;图3为一种将算子映射为多面体模型的示意图;图4为一种多面体模型中多个执行实例的执行顺序示意图;图5为一种具有数据依赖关系的两个算子的多个执行实例的执行顺序示意图;图6为图5所示两个算子之间的输入输出数据在硬件内存模型中的缓存情况示意图;图7为另一种具有数据依赖关系的两个算子的多个执行实例的执行顺序示意图;图8为图7所示两个算子之间的输入输出数据在硬件内存模型中的缓存情况示意图;图9为另一种具有数据依赖关系的两个算子的多个执行实例的执行顺序示意图;图10为图9所示两个算子之间的输入输出数据在硬件内存模型中的缓存情况示意图;图11为图1中步骤S13的一种具体实施方式的流程示意图;图12为本公开实施例提供的另一种算子处理方法的流程示意图;图13为本公开实施例提供的一种算子处理装置的组成框图;图14为本公开实施例提供的一种电子设备的组成框图。
具体实施方式
[0011]为使本领域的技术人员更好地理解本公开的技术方案,以下结合附图对本公开的
示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0012]在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。
[0013]如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。
[0014]本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由
……
制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
[0015]除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。
[0016]图1为本公开实施例中一种神经网络计算图的结构示意图,在相关技术中,如图1所示,在硬件设备执行神经网络计算图的过程中,存储的数据可以分为两类:静态数据与动态数据。其中,静态数据即在计算过程中不会发生改变的数据,例如神经网络的权重;动态数据为运行过程中会发生变化的数据,如计算结点(也称为算子)的输入、输出数据,一个结点的输出数据通常作为另一个结点的输入数据,则该一个结点的输出数据为动态数据。静态数据的缓存大小一般固定,但是动态数据的缓存大小往往因本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种神经网络计算图的算子处理方法,其特征在于,包括:将神经网络计算图中预设数量的算子中的每个算子映射为一个多面体模型,所述多面体模型包括对应的所述算子中的多个执行实例;所述预设数量为所述神经网络计算图中全部或部分算子的数量;将所述预设数量的所述多面体模型置于同一参考坐标空间中,并确定每个所述多面体模型中所述多个执行实例的当前执行顺序;利用目标算法对所述预设数量中每个所述多面体模型中所述多个执行实例的当前执行顺序进行迭代优化,以使所述预设数量的算子对应的输入输出数据的当前最大缓存量满足目标条件,从而得到优化后的所述预设数量的目标多面体模型。2.根据权利要求1所述的方法,其特征在于,在所述利用目标算法对所述预设数量中每个所述多面体模型中多个执行实例的当前执行顺序进行迭代优化之前,所述方法还包括:根据硬件内存模型的存储粒度,获取预设数量的所述多面体模型中多个执行实例按照所述当前执行顺序执行时,所述预设数量的算子对应的输入输出数据的当前最大缓存量;所述利用目标算法对所述预设数量中每个所述多面体模型中多个执行实例的当前执行顺序进行迭代优化,包括:在所述预设数量的算子对应的输入输出数据的当前最大缓存量不满足目标条件的情况下,利用目标算法对所述预设数量中每个所述多面体模型中多个执行实例的当前执行顺序进行迭代优化。3.根据权利要求1所述的方法,其特征在于,所述目标算法包括线性变换函数,所述利用目标算法对所述预设数量中每个所述多面体模型中多个执行实例的当前执行顺序进行迭代优化,包括:针对每个多面体模型,根据所述线性变换函数对所述多面体模型进行线性变换处理,以更新所述多面体模型中所述多个执行实例的当前执行顺序;根据硬件内存模型的存储粒度,获取所述预设数量的所述多面体模型中多个执行实例按照所述当前执行顺序执行时,所述预设数量的算子对应的输入输出数据的当前最大缓存量;在所述预设数量的算子对应的输入输出数据的当前最大缓存量不满足目标条件的情况下,更新所述线性变换函数的线性变换参数,并返回所述根据所述线性变换函数对所述多面体模型进行线性变换处理的步骤;在所述预设数量的算子对应的输入输出数据的当前最大缓存量满足目标条件的情况下,将在满足目标条件时的所述预设数量的多面体模型作为所述预设数量的目标多面体模型。4.根据权利要求3所述的方法,其特征在于,所述线性变换函数包括:,其中,表示所述多面体模型中所述多个执行实例在所述参考坐标空间中...

【专利技术属性】
技术研发人员:张伟豪王冠睿
申请(专利权)人:北京灵汐科技有限公司
类型:发明
国别省市:

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

1