算子融合方法、计算装置、计算设备以及可读存储介质制造方法及图纸

技术编号:36218875 阅读:16 留言:0更新日期:2023-01-04 12:16
本公开提供了一种算子融合方法、计算装置、计算设备以及可读存储介质。该算子融合方法应用于包括多个算子的神经网络,包括:基于算子的类别标签设置至少一个线性结构的模板融合模式;以及根据神经网络中的多个算子各自的类别标签,按照至少一个线性结构的模板融合模式对神经网络中的多个算子进行算子融合,以融合神经网络中符合至少一个的线性结构的模板融合模式的一个或多个算子。板融合模式的一个或多个算子。板融合模式的一个或多个算子。

【技术实现步骤摘要】
算子融合方法、计算装置、计算设备以及可读存储介质


[0001]本公开涉及数据处理
,具体地,涉及一种应用于包括多个算子的神经网络的算子融合方法、计算装置、计算设备以及可读存储介质。

技术介绍

[0002]为了提高神经网络的计算效率,在进行计算过程之前,通常将神经网络中满足一定条件或规则的多个算子(operator)进行融合,形成经融合的算子(fused operator)。经融合得到的算子或者无法进行融合的单个算子,可以称为一个融合算子,也可以称为融合层(fusion layer)。神经网络的计算过程以融合层为单位、逐层(layer

by

layer)进行,由此,算子融合(operator fusion)成为神经网络图优化中的重要过程。
[0003]一般地,算子融合过程涉及两个步骤:第一定义融合模式,即定义要进行融合的目标;第二确定融合算法,用于匹配神经网络中出现的融合模式,并且互不干扰地进行融合。相关技术中的算子融合方案采用固定的融合模式,并且融合模式与融合算法是一一对应的,即一种融合模式对应于一种融合算法。这使得如果融合模式发生改变,同时也需要改变融合算法来对其进行支持,因而融合模式的扩展和定制化受到限制。

技术实现思路

[0004]本公开的一些实施例提供了一种算子融合方法、计算装置、计算设备以及可读存储介质,用于针对各种类型的神经网络结构提供高效的、可扩展的算子融合方案。
[0005]根据本公开的一方面,提供了一种算子融合方法,应用于包括多个算子的神经网络。该算子融合方法包括:基于算子的类别标签设置至少一个线性结构的模板融合模式;以及根据神经网络中的多个算子各自的类别标签,按照至少一个线性结构的模板融合模式对神经网络中的多个算子进行算子融合,以融合神经网络中符合至少一个线性结构的模板融合模式的一个或多个算子。
[0006]根据本公开的一些实施例的算子融合方法还包括:基于算子的功能和/或硬件平台的计算架构特点对算子进行分类,并针对不同类别的算子分配类别标签。
[0007]根据本公开的一些实施例,类别标签包括非模板类别以及模板类别,其中,模板类别包括以下的一种或多种:矩阵类别、归一化类别、池化类别、数据重排类别、数据归约类别、回归函数类别以及损失函数类别。
[0008]根据本公开的一些实施例,属于非模板类别的算子在神经网络的计算过程中不消耗寄存器资源或者同步内存资源。
[0009]根据本公开的一些实施例,至少一个线性结构的模板融合模式由线性连接的一个或多个模板类别组成,其中,基于算子的类别标签设置至少一个线性结构的模板融合模式包括:基于模板类别的类别标签且忽略非模板类别的类别标签,以设置至少一个线性结构的模板融合模式。
[0010]根据本公开的一些实施例的算子融合方法还包括:基于神经网络的网络结构生成
有向无环图,其中,有向无环图包括算子以及算子之间的连线,算子之间的连线表征算子之间的数据依赖关系和数据流向,其中,按照至少一个线性结构的模板融合模式对神经网络中的多个算子进行算子融合包括:根据神经网络中的多个算子各自的类别标签,按照至少一个线性结构的模板融合模式中线性连接的一个或多个模板类别,对神经网络的有向无环图中的算子进行遍历,分别将一个或多个算子匹配为对应的线性结构的模板融合模式,对神经网络中的多个算子进行算子融合。
[0011]根据本公开的一些实施例,基于算子的类别标签设置至少一个线性结构的模板融合模式包括:基于算子的类别标签设置线性结构的第一模板融合模式和第二模板融合模式,其中,在第一模板融合模式与第二模板融合模式存在相同部分的模板类别并且第一模板融合模式除相同部分的模板类别之外还包括其他模板类别的情况下,下,先按照第一模板融合模式对神经网络中的多个算子进行算子融合,再按照第二模板融合模式对神经网络中的多个算子进行算子融合。
[0012]根据本公开的一些实施例,基于算子的类别标签设置至少一个线性结构的模板融合模式包括:利用可配置的文件设置至少一个线性结构的模板融合模式。
[0013]根据本公开的一些实施例的算子融合方法还包括:以算子为单位设置子图结构的融合模式;以及基于神经网络的网络结构生成有向无环图,其中,有向无环图包括算子以及算子之间的连线,算子之间的连线表征算子之间的数据依赖关系和数据流向。
[0014]根据本公开的一些实施例,在按照至少一个线性结构的模板融合模式对神经网络中的多个算子进行算子融合之前,该方法还包括:按照子图结构的融合模式对神经网络的有向无环图中的算子进行算子融合,得到经子图结构算子融合后的图表达。
[0015]根据本公开的一些实施例,按照至少一个线性结构的模板融合模式对神经网络中的多个算子进行算子融合包括:根据神经网络中的多个算子各自的类别标签,按照至少一个线性结构的模板融合模式,对经子图结构算子融合后的图表达中的算子进行遍历,分别将一个或多个算子匹配为对应的线性结构的模板融合模式,对图表达中的算子进行算子融合。
[0016]根据本公开的一些实施例,属于非模板类别的算子包括:激活函数、线性整流函数、绝对值函数、加法函数;属于矩阵类别的算子包括:前向卷积算子、反向数据卷积算子、反向滤波器卷积算子、矩阵乘法算子;属于归一化类别的算子包括:批归一化算子、层归一化算子;属于池化类别的算子包括:最大池化层算子、平均池化层算子、全局平均池化层算子;属于数据重排类别的算子包括:拼接算子、变换算子;属于数据归约类别的算子包括:最大值函数、最小值函数、平均值函数;属于回归函数类别的算子包括:针对样点的回归函数、针对信道的回归函数;以及属于损失函数类别的算子包括:均方误差函数、交叉熵函数。
[0017]根据本公开的另一方面,提供了一种计算装置,用于对神经网络进行算子融合,其中,神经网络包括多个算子。该计算装置包括:融合模式配置单元,配置成:基于算子的类别标签设置至少一个线性结构的模板融合模式;以及融合单元,配置成根据神经网络中的多个算子各自的类别标签,按照至少一个线性结构的模板融合模式对神经网络中的多个算子进行算子融合,以融合神经网络中符合至少一个线性结构的模板融合模式的一个或多个算子。
[0018]根据本公开的一些实施例的计算装置还包括分类单元,配置成:基于算子的功能
和/或硬件平台的计算架构特点对算子进行分类,并针对不同类别的算子分配类别标签,其中,类别标签包括非模板类别以及模板类别,模板类别包括以下的一种或多种:矩阵类别、归一化类别、池化类别、数据重排类别、数据归约类别、回归函数类别以及损失函数类别。
[0019]根据本公开的一些实施例,属于非模板类别的算子在神经网络的计算过程中不消耗寄存器资源或者同步内存资源。
[0020]根据本公开的一些实施例,至少一个线性结构的模板融合模式由线性连接的一个或多个模板类别组成,基于算子的类别标签设置至少一个线性结构的模板融合模式包括:基于模板类别的类别标签且忽略非模板类别的类别标签本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种算子融合方法,应用于包括多个算子的神经网络,所述方法包括:基于算子的类别标签设置至少一个线性结构的模板融合模式;以及根据所述神经网络中的所述多个算子各自的类别标签,按照所述至少一个线性结构的模板融合模式对所述神经网络中的所述多个算子进行算子融合,以融合所述神经网络中符合所述至少一个线性结构的模板融合模式的一个或多个算子。2.根据权利要求1所述的方法,还包括:基于算子的功能和/或硬件平台的计算架构特点对算子进行分类,并针对不同类别的算子分配类别标签。3.根据权利要求2所述的方法,其特征在于,所述类别标签包括非模板类别以及模板类别,其中,所述模板类别包括以下的一种或多种:矩阵类别、归一化类别、池化类别、数据重排类别、数据归约类别、回归函数类别以及损失函数类别。4.根据权利要求3所述的方法,其特征在于,属于所述非模板类别的算子在神经网络的计算过程中不消耗寄存器资源或者同步内存资源。5.根据权利要求3所述的方法,其特征在于,所述至少一个线性结构的模板融合模式由线性连接的一个或多个模板类别组成,其中,所述基于算子的类别标签设置至少一个线性结构的模板融合模式包括:基于所述模板类别的类别标签且忽略所述非模板类别的类别标签,以设置所述至少一个线性结构的模板融合模式。6.根据权利要求5所述的方法,还包括:基于所述神经网络的网络结构生成有向无环图,其中,所述有向无环图包括算子以及算子之间的连线,所述算子之间的连线表征算子之间的数据依赖关系和数据流向,其中,所述按照所述至少一个线性结构的模板融合模式对所述神经网络中的所述多个算子进行算子融合包括:根据所述神经网络中的所述多个算子各自的类别标签,按照所述至少一个线性结构的模板融合模式,对所述神经网络的所述有向无环图中的算子进行遍历,分别将一个或多个算子匹配为对应的所述线性结构的模板融合模式,对所述神经网络中的所述多个算子进行算子融合。7.根据权利要求5所述的方法,其特征在于,所述基于算子的类别标签设置至少一个线性结构的模板融合模式包括:基于算子的类别标签设置线性结构的第一模板融合模式和第二模板融合模式,其中,在所述第一模板融合模式与所述第二模板融合模式存在相同部分的模板类别并且所述第一模板融合模式除所述相同部分的模板类别之外还包括其他模板类别的情况下,先按照所述第一模板融合模式对所述神经网络中的所述多个算子进行算子融合,再按照所述第二模板融合模式对所述神经网络中的所述多个算子进行算子融合。8.根据权利要求1所述的方法,其特征在于,所述基于算子的类别标签设置至少一个线性结构的模板融合模式包括:利用可配置的文件设置所述至少一个线性结构的模板融合模式。9.根据权利要求1所述的方法,还包括:以算子为单位设置子图结构的融合模式;以及基于所述神经网络的网络结构生成有向无环图,其中,所述有向无环图包括算子以及算子之间的连线,所述算子之间的连线表征算子之间的数据依赖关系和数据流向。
10.根据权利要求9所述的方法,其特征在于,在按照所述至少一个线性结构的模板融合模式对所述神经网络中的所述多个算子进行算子融合之前,所述方法还包括:按照所述子图结构的融合模式对所述神经网络的所述有向无环图中的算子进行算子融合,得到经子图结构算子融合后的图表达。11.根据权利要求10所述的方法,其特征在于,所述按照所述至少一个线性结构的模板融合模式对所述神经网络中的所述多个算子进行算子融合包括:根据所述神经网络中的所述多个算子各自的类别标签,按照所述至少一个线性结构的模板融合模式,对所述经子图结构算子融合后的图表达中的算子进行遍历,分别将一个或多个算子匹配为对应的所述线性结构的模板融合模式,对所述图表达中的算子进行算子融合。12.根据权利要求3所述的方法,其特征在于,属于所述非模板类别的算子包括:激活函数、线性整流函数、绝对值函数、加法函数;属于所述矩阵类别的算子包括:前向卷积算子、反向数据卷积算子、反向滤波器卷积算子、矩阵乘法算子;属于所述归一化类别的算子包括:批归一化算子、层归一化算子;属于所述池化类别的算子包括:最大池化层算子、平均池化层算子、全局平均池化层算子;属于所述数据重排类别的算子包括:拼接算子、变换算子;属于所述数据归约类别的算子包括:...

【专利技术属性】
技术研发人员:ꢀ七四专利代理机构
申请(专利权)人:上海壁仞智能科技有限公司
类型:发明
国别省市:

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

1