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

技术编号:38741699 阅读:9 留言:0更新日期:2023-09-08 23:26
本公开提供一种用于对神经网络中的算子进行融合的方法和相关产品,其中该方法可以包括在组合处理装置中,该组合处理装置还可以包括通用互联接口和其他处理装置。所述计算装置与其他处理装置进行交互,共同完成用户指定的计算操作。组合处理装置还可以包括存储装置,该存储装置分别与设备和其他处理装置连接,用于存储该设备和其他处理装置的数据。于存储该设备和其他处理装置的数据。于存储该设备和其他处理装置的数据。

【技术实现步骤摘要】
一种用于对神经网络中的算子进行融合的方法和相关产品


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

技术介绍

[0002]深度学习算法由一个个计算单元组成,我们称这些计算单元为算子(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的含义。
[0003]在一个深度学习的网络中,经常存在较多的形状算子,其输出结果并不参与核心的计算。shape算子会搭配Gather、slice、add、Div、pack等算子组合使用,常见有三类与形状相关的算子:提取、拼接、数值计算,以实现数据定位、参数传递和矩阵变形等功能。与形状相关的算子虽然主要涉及简单的计算,但是多次启动kernel,以及小数据量的搬运都会造成I/O带宽利用率低,并且会使网络的融合粒度变小,从而使得网络的性能较差。

技术实现思路

[0004]本公开的一个目的在于减少由于多次启动kernel而造成的I/O带宽利用率低的问题。
[0005]根据本公开第一方面,提供一种用于对神经网络中的算子进行融合的方法,包括:在神经网络中搜索形状算子以及与形状算子相关的形状操作算子,其中,形状操作算子的入度取决于所述形状操作算子的输入的数量;循环地执行提取操作:提取调整后入度为0的形状算子或形状操作算子;更新形状操作算子的入度以得到调整后入度,直到不存在调整后入度为0的形状操作算子;以及针对相同形状算子,将最新的调整后入度为0的形状操作算子作为所述相同形状算子的输出形状操作算子,以针对所述相同形状算子来实现形状操作算子的融合。
[0006]根据本公开第二方面,提供一种电子设备,包括:一个或多个处理器;以及存储器,所述存储器中存储有计算机可执行指令,当所述计算机可执行指令由所述一个或多个处理器运行时,使得所述电子设备执行如上所述的方法。
[0007]根据本公开第三方面,提供一种计算机可读存储介质,包括计算机可执行指令,当所述计算机可执行指令由一个或多个处理器运行时,执行如上所述的方法。
[0008]根据本公开的一个实施方式,形状操作算子被融合在一起,并且最终负责输出的算子与初始的形状算子之间可以具有确定的矩阵函数关系,因此仅需要一次启动即可以完成现有技术中需要多次启动算子才能完成的任务,从而大大提升了系统性能。
[0009]根据本公开的另一个实施方式,本公开的方法可以运行在CPU而无需运行在GPU
端,因此GPU的运行时间不会被形状相关算子的运行占用,从而提升了GPU的运算效率。
[0010]根据本公开的又一个实施方式,本公开的方法可以在CPU端在进行编译时执行,而无需在GPU的运行时执行,这使得GPU在运行时,可以直接从CPU获取数据,而需要在GPU处继续进行运算,这从另一方面也提升了GPU的运算效率。
附图说明
[0011]通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,并且相同或对应的标号表示相同或对应的部分其中:
[0012]图1示出本披露实施例的一种板卡的结构示意图;
[0013]图2是示出此实施例的组合处理装置中的示意图;
[0014]图3示出了计算装置的内部结构示意图;
[0015]图4示出了处理核的内部架构示意图;
[0016]图5示出了根据本公开一个实施方式的计算图;
[0017]图6示出了根据本公开一个实施方式的对神经网络中的算子进行融合的方法流程图;
[0018]图7示出了根据本公开一个示例性的计算图;以及
[0019]图8示出了根据本公开一个实施方式的算子融合后的计算图。
具体实施方式
[0020]下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
[0021]应当理解,本披露的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。“第一”、“第二”、“第三”和“第四”等也不仅仅表示一个,而是也可以表示多个。第一本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0022]还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0023]如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0024]下面结合附图来详细描述本披露的具体实施方式。
[0025]现今的半导体制程是从一块完整的晶圆(wafer)开始的,晶圆由纯硅构成的圆形薄片,一般分为6英寸、8英寸、12英寸等多种规格,晶圆会被切割成一个个的小块,这小块称为晶粒(die)。每个晶粒上会贴装有芯片(chip),并布置好接线,以实现特定的电气功能。接着以晶粒为单位封装成为一个颗粒,封装的目的是安放、固定、密封、保护芯片和增强电热性能的作用,同时在芯片的触点上用导线连接到封装外壳的引脚上,一个芯片封装结构便完成了。
[0026]内存用于暂时存放片上系统所需的运算数据,以及与外部存储器交换的数据。在此实施例中,内存可以是高宽带内存(high bandwidth memory,HBM),这是一种基于3D堆栈工艺制作的高性能DRAM,适用于高存储器带宽需求的应用场合,像是图形处理器、网上交换及转发设备(如路由器、交换器)等。
...

【技术保护点】

【技术特征摘要】
1.一种用于对神经网络中的算子进行融合的方法,包括:在神经网络中搜索形状算子以及与形状算子相关的形状操作算子,其中,形状操作算子的入度取决于所述形状操作算子的输入的数量;循环地执行提取操作:提取调整后入度为0的形状算子或形状操作算子;更新形状操作算子的入度以得到调整后入度,直到不存在调整后入度为0的形状操作算子;以及针对相同形状算子,将最新的调整后入度为0的形状操作算子作为所述相同形状算子的输出形状操作算子,以针对所述相同形状算子来实现形状操作算子的融合。2.根据权利要求1所述的方法,进一步包括:将搜索到的形状算子和形状操作算子置入到存储库中,以便于从所述存储库中提取形状操作算子。3.根据权利要求1或2所述的方法,其中,所述形状算子的入度被初始化为0。4.根据权利要求1

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

4中任意一项所述的方法,其中,更新形状操作算子的入度以得到调整后入度包括:在形状操作算子与前驱算子的输出之间建立矩阵函数关系;响应于建立了矩阵函数关系,对形状操作算子的入度进行递减。6.根据权利要求5所述的方法,其中,所述矩阵函数关系包括乘法关系和加法关系。7.根据权利要求6所述的方法,其中,矩阵的元素以整数来表示。8.根据权利要求1

7中任意一项所述的方法,其中,循环地执行提取操作还包括:将当前调整后入度为0的形状操作算子提取到单独的列表中。9...

【专利技术属性】
技术研发人员:请求不公布姓名
申请(专利权)人:上海寒武纪信息科技有限公司
类型:发明
国别省市:

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

1