一种用于对神经网络中的算子进行融合的方法和相关产品与流程

文档序号:35375026发布日期:2023-09-08 14:37阅读:51来源:国知局
一种用于对神经网络中的算子进行融合的方法和相关产品与流程

本公开涉及人工智能领域,更具体地,涉及神经网络中算子的融合。


背景技术:

1、深度学习算法由一个个计算单元组成,我们称这些计算单元为算子(operator,简称op)。神经网络中的数据通常表示为张量(tensor)。张量具有不同的形状,可以通过形状算子(shape op)来对张量的形状进行描述,比如形状(3,4)表示第一维有3个元素,第二维有4个元素,是一个3行4列的矩阵数组。在形状中有多少个数字,就代表这个张量有多少维。例如,shape=(5,20,30,3)可以具有如下物理含义:可以表述有5张照片,这就是shape算子里5的含义;每张照片的宽为20,高为30,也就是每张照片具有20*30=600个像素;每个像素点都由红/绿/蓝3色组成,这就是shape算子里面3的含义。

2、在一个深度学习的网络中,经常存在较多的形状算子,其输出结果并不参与核心的计算。shape算子会搭配gather、slice、add、div、pack等算子组合使用,常见有三类与形状相关的算子:提取、拼接、数值计算,以实现数据定位、参数传递和矩阵变形等功能。与形状相关的算子虽然主要涉及简单的计算,但是多次启动kernel,以及小数据量的搬运都会造成i/o带宽利用率低,并且会使网络的融合粒度变小,从而使得网络的性能较差。


技术实现思路

1、本公开的一个目的在于减少由于多次启动kernel而造成的i/o带宽利用率低的问题。

2、根据本公开第一方面,提供一种用于对神经网络中的算子进行融合的方法,包括:在神经网络中搜索形状算子以及与形状算子相关的形状操作算子,其中,形状操作算子的入度取决于所述形状操作算子的输入的数量;循环地执行提取操作:提取调整后入度为0的形状算子或形状操作算子;更新形状操作算子的入度以得到调整后入度,直到不存在调整后入度为0的形状操作算子;以及针对相同形状算子,将最新的调整后入度为0的形状操作算子作为所述相同形状算子的输出形状操作算子,以针对所述相同形状算子来实现形状操作算子的融合。

3、根据本公开第二方面,提供一种电子设备,包括:一个或多个处理器;以及存储器,所述存储器中存储有计算机可执行指令,当所述计算机可执行指令由所述一个或多个处理器运行时,使得所述电子设备执行如上所述的方法。

4、根据本公开第三方面,提供一种计算机可读存储介质,包括计算机可执行指令,当所述计算机可执行指令由一个或多个处理器运行时,执行如上所述的方法。

5、根据本公开的一个实施方式,形状操作算子被融合在一起,并且最终负责输出的算子与初始的形状算子之间可以具有确定的矩阵函数关系,因此仅需要一次启动即可以完成现有技术中需要多次启动算子才能完成的任务,从而大大提升了系统性能。

6、根据本公开的另一个实施方式,本公开的方法可以运行在cpu而无需运行在gpu端,因此gpu的运行时间不会被形状相关算子的运行占用,从而提升了gpu的运算效率。

7、根据本公开的又一个实施方式,本公开的方法可以在cpu端在进行编译时执行,而无需在gpu的运行时执行,这使得gpu在运行时,可以直接从cpu获取数据,而需要在gpu处继续进行运算,这从另一方面也提升了gpu的运算效率。



技术特征:

1.一种用于对神经网络中的算子进行融合的方法,包括:

2.根据权利要求1所述的方法,进一步包括:将搜索到的形状算子和形状操作算子置入到存储库中,以便于从所述存储库中提取形状操作算子。

3.根据权利要求1或2所述的方法,其中,所述形状算子的入度被初始化为0。

4.根据权利要求1-3中任意一项所述的方法,其中,所述形状操作算子的入度为去除常量输入之后其他输入的数量。

5.根据权利要求1-4中任意一项所述的方法,其中,更新形状操作算子的入度以得到调整后入度包括:

6.根据权利要求5所述的方法,其中,所述矩阵函数关系包括乘法关系和加法关系。

7.根据权利要求6所述的方法,其中,矩阵的元素以整数来表示。

8.根据权利要求1-7中任意一项所述的方法,其中,循环地执行提取操作还包括:

9.根据权利要求8所述的方法,循环地执行提取操作还包括:

10.根据权利要求1-9中任意一项所述的方法,其中,如果形状操作算子的至少一个后继算子属于不可融算子,则以该形状操作算子作为形状算子的输出形状操作算子。

11.根据权利要求10所述的方法,其中,如果形状操作算子的仅一部分后继算子属于不可融算子,则以该形状操作算子作为形状算子的局部输出形状操作算子。

12.根据权利要求10所述的方法,其中,如果形状操作算子的全部后继算子属于不可融算子,则以该形状操作算子作为形状算子的最终输出形状操作算子。

13.根据权利要求1-12中任意一项所述的方法,其中,所述方法在编译过程中执行。

14.根据权利要求13所述的方法,其中,所述编译过程在cpu中执行。

15.根据权利要求1-14中任意一项所述的方法,其中,所述形状操作算子包括:提取算子、拼接算子、数值计算算子。

16.一种电子设备,包括:

17.一种计算机可读存储介质,包括计算机可执行指令,当所述计算机可执行指令由一个或多个处理器运行时,执行如权利要求1-15中任意一项所述的方法。


技术总结
本公开提供一种用于对神经网络中的算子进行融合的方法和相关产品,其中该方法可以包括在组合处理装置中,该组合处理装置还可以包括通用互联接口和其他处理装置。所述计算装置与其他处理装置进行交互,共同完成用户指定的计算操作。组合处理装置还可以包括存储装置,该存储装置分别与设备和其他处理装置连接,用于存储该设备和其他处理装置的数据。

技术研发人员:请求不公布姓名
受保护的技术使用者:上海寒武纪信息科技有限公司
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1