[发明专利]运算方法及装置在审
申请号: | 201910318642.9 | 申请日: | 2019-04-19 |
公开(公告)号: | CN111832714A | 公开(公告)日: | 2020-10-27 |
发明(设计)人: | 不公告发明人 | 申请(专利权)人: | 上海寒武纪信息科技有限公司 |
主分类号: | G06N3/063 | 分类号: | G06N3/063 |
代理公司: | 北京林达刘知识产权代理事务所(普通合伙) 11277 | 代理人: | 刘新宇 |
地址: | 201306 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 运算 方法 装置 | ||
1.一种神经网络运算方法,其特征在于,包括:
获取待执行的神经网络运算,所述神经网络运算包括多个运算操作;
基于所述多个运算操作划分出满足第一要求的多个运算子图,每个所述运算子图包括至少一个运算操作,所述第一要求包括划分出的多个运算子图中不存在孤立的运算子图,并且划分出的运算子图在与其余的运算操作和运算子图不形成循环运算的情况下,能够包括最多的运算操作;
基于划分的所述多个运算子图并行执行所述神经网络运算。
2.根据权利要求1所述的方法,其特征在于,所述基于所述多个运算操作划分出满足第一要求的多个运算子图,包括:
基于所述神经网络运算的运算顺序,将所述神经网络运算的第一个运算操作或者最后一个运算操作确定为初始子图,按照其余运算操作与该初始子图的连接顺序,依次向所述初始子图中加入运算操作;
如果将待加入的运算操作加入至所述初始子图所形成的新的子图与其他运算操作以及运算子图不存在循环运算,则将该待加入的运算子图加入至所述初始子图中形成新的子图,并继续向所述新的子图中加入下一运算操作,直至将待加入的运算操作加入至新的子图后所形成的新的子图与其他运算操作或者运算子图之间存在循环运算,则终止该新的子图的扩展,并将未加入该形成循环运算的待加入运算子图的子图作为一个满足第一要求的第一运算子图;
将与得到的第一运算子图连接的下一个运算操作作为下一个初始子图,并基于该下一个初始子图确定其余满足第一要求的第一运算子图;
基于各第一运算子图确定划分的所述多个运算子图。
3.根据权利要求2所述的方法,其特征在于,在所述基于所述多个运算操作划分出满足第一要求的多个运算子图之前,所述方法还包括:
将所述神经网络运算的多个运算操作中通过加速器以外的电子器件执行的运算操作,作为一个第一运算子图。
4.根据权利要求2或3所述的方法,其特征在于,所述基于所述多个运算操作划分出满足第一要求的多个运算子图,还包括:
将所述多个第一运算子图进一步划分成满足第二要求的多个第二运算子图,所述第二要求包括划分出的第二运算子图中的各运算操作的输入路径和输出路径最多为一个。
5.根据权利要求4所述的方法,其特征在于,将所述多个第一运算子图进一步划分成满足第二要求的多个第二运算子图,包括:
确定所述神经网络运算中各运算操作的输入路径的数量;
如果运算操作的输入路径的数量大于1个,执行该输入路径的剪枝操作。
6.根据权利要求4或5所述的方法,其特征在于,所述将所述多个第一运算子图进一步划分成满足第二要求的多个第二运算子图,包括:
确定所述神经网络运算中各运算操作的输出路径的数量;
如果运算操作的输出路径的数量大于1个,执行该输出路径的剪枝操作。
7.一种神经网络加速器,其特征在于,包括:
处理器,其用于执行如权利要求1-6中任意一项所述的方法。
8.一种机器学习芯片,其特征在于,所述机器学习芯片用于执行如权利要求1-6中任意一项所述的方法。
9.一种电子设备,其特征在于,所述电子设备包括如所述权利要求8所述的芯片。
10.一种计算机可读存储介质,所述存储介质中存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至6中任意一项所述的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海寒武纪信息科技有限公司,未经上海寒武纪信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910318642.9/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种工件上料机构及使用该机构的导光柱自动组装机
- 下一篇:动态随机存取存储器