[发明专利]一种用于神经网络的算子融合方法及其相关产品有效
申请号: | 201910750140.3 | 申请日: | 2019-08-14 |
公开(公告)号: | CN110490309B | 公开(公告)日: | 2022-06-07 |
发明(设计)人: | 不公告发明人 | 申请(专利权)人: | 中科寒武纪科技股份有限公司 |
主分类号: | G06N3/06 | 分类号: | G06N3/06;G06N3/04 |
代理公司: | 北京维昊知识产权代理事务所(普通合伙) 11804 | 代理人: | 李波;孙新国 |
地址: | 100086 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 神经网络 算子 融合 方法 及其 相关 产品 | ||
1.一种可用于神经网络的算子融合方法,其特征在于,所述算子融合方法包括:
遍历所述神经网络对应的计算图中的算子,从所述计算图中选择当前算子和待融合算子;
按照一拆分尺寸,将所述待融合算子的输出数据拆分成多个输出块;
基于所述输出块,映射得到与所述输出块对应的所述当前算子的输入数据的数据块尺寸、以及所述当前算子与待融合算子之间的中间数据的数据块尺寸;
基于所述拆分尺寸、所述当前算子的输入数据的数据块尺寸、以及所述当前算子与待融合算子之间的中间数据的数据块尺寸,判断是否将所述当前算子与待融合算子融合在一起;其中,所述判断是否可将所述当前算子与待融合算子融合在一起的步骤包括:
如果所述拆分尺寸、与所述输出块对应的所述当前算子的输入数据的数据块尺寸、以及所述当前算子与待融合算子之间的中间数据的数据块尺寸之和大于一阈值,将所述当前算子与待融合算子融合;否则,不将所述当前算子与待融合层融合在一起;其中,所述阈值是人工智能芯片的片上存储器的存储容量,或者是片上存储器中可供分配的存储容量。
2.如权利要求1所述的算子融合方法,其特征在于,所述映射得到与所述输出块对应的所述当前算子的输入数据块的尺寸、以及所述当前算子与待融合算子之间的中间数据块的尺寸的步骤包括:
基于所述输出块,通过形状推导和/或形状传递,得到与所述输出块对应的所述当前算子的输入数据的数据块尺寸的大小、以及所述当前算子与待融合算子之间的中间数据的数据块尺寸的大小,其中形状推导是对于一个指定的算子所对应的运算操作,根据给定的输出或输入数据的坐标位置范围,给出对应的输入或输出数据的坐标位置范围;形状传递是对于一个融合图来说,根据融合图中算子之间的连接关系,由输出或输入数据的坐标位置范围,给出对应的输入或输出数据的坐标位置范围。
3.如权利要求1或2所述的算子融合方法,其特征在于,所述判断是否可将所述当前算子与待融合算子融合在一起的步骤还包括:
调整所述拆分尺寸,根据调整后的所述拆分尺寸将所述待融合算子的输出数据拆分成对应的输出块;
基于所述输出块,映射得到与所述输出块对应的所述当前算子的输入数据的数据块尺寸、以及所述当前算子与待融合算子之间的中间数据的数据块尺寸;
基于调整后的所述拆分尺寸、所述当前算子的输入数据的数据块尺寸、以及所述当前算子与待融合算子之间的中间数据的数据块尺寸,进一步判断是否可将所述当前算子与待融合算子融合在一起。
4.如权利要求1或2所述的算子融合方法,其特征在于,所述算子之间的数据流向为单向的。
5.一种计算机可读存储介质,其特征在于,包括存储于其上的计算机可执行指令,所述可执行指令在被处理器执行时实施如权利要求1-4中任一项所述的算子融合方法。
6.一种可用于神经网络的算子融合装置,其特征在于,所述算子融合装置包括:
选择单元,遍历所述神经网络对应的计算图中的算子,从所述计算图中选择当前算子和待融合算子;
拆分单元,配置成按照一拆分尺寸,将所述待融合算子的输出数据拆分成多个输出块;
映射单元,配置成基于所述输出块,映射得到与所述输出块对应的所述当前算子的输入数据的数据块尺寸、以及所述当前算子与待融合算子之间的中间数据的数据块尺寸;和
判断单元,配置成基于所述拆分尺寸、所述当前算子的输入数据的数据块尺寸、以及所述当前算子与待融合算子之间的中间数据的数据块尺寸,判断是否将所述当前算子与待融合算子融合在一起;
其中,通过如下方式来判断是否可将所述当前算子与待融合算子融合在一起:
如果所述拆分尺寸、与所述输出块对应的所述当前算子的输入数据的数据块尺寸、以及所述当前算子与待融合算子之间的中间数据的数据块尺寸之和大于一阈值,将所述当前算子与待融合算子融合;否则,不将所述当前算子与待融合层融合在一起;其中,所述阈值是人工智能芯片的片上存储器的存储容量,或者是片上存储器中可供分配的存储容量。
7.一种计算设备,其特征在于,包括:
一个或多个处理器;和
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1-4中任一项所述的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中科寒武纪科技股份有限公司,未经中科寒武纪科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910750140.3/1.html,转载请声明来源钻瓜专利网。