[发明专利]一种神经网络模型的拆分方法及相关产品有效
申请号: | 201910115162.2 | 申请日: | 2019-02-14 |
公开(公告)号: | CN111563587B | 公开(公告)日: | 2022-12-09 |
发明(设计)人: | 不公告发明人 | 申请(专利权)人: | 上海寒武纪信息科技有限公司 |
主分类号: | G06N3/08 | 分类号: | G06N3/08 |
代理公司: | 北京华进京联知识产权代理有限公司 11606 | 代理人: | 黄易 |
地址: | 200120 上海市浦*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 神经网络 模型 拆分 方法 相关 产品 | ||
本公开披露一种神经网络模型的拆分方法及相关产品,本方案把一个算子拆分成多个规模更小的子算子,这样可以直接调用单核架构下的计算库,避免了重新实现的额外工作量。
技术领域
本公开的实施例涉及一种神经网络模型的拆分方法及相关产品。
背景技术
近年来,深度学习加速器被不断提出,并如同通用处理器一样,正在由单核向多核扩展。这种扩展后的多核结构可以在训练阶段支持数据并行的方式来提高数据吞吐量,加快训练速度。然而,在推理阶段,相比吞吐量深度神经网络对端到端的时延有着更高的要求,这往往决定了加速器在某个场景下的可用性。传统的数据并行方案不能满足推理场景下对加速器小数据、低延迟的要求。
发明内容
为了解决上述所述的技术问题,本公开提出一种神经网络模型的拆分方法及相关产品。
为实现上述目的,本公开提供一种神经网络模型拆分方法,所述方法包括:
根据所述神经网络模型中目标层的算子,确定与所述目标层的算子关联的张量数据的拆分状态集合;其中,所述目标层为所述神经网络模型中的至少一层;
在所述目标层的算子与关联的拆分状态集合之间插入胶水算子,调整所述算子的张量数据的拆分状态集合中的状态;其中,所述胶水算子用于将所述张量数据按照一拆分方式获得的状态调整成按照任一种拆分方式获得的状态;
在所述目标层的算子与关联的的拆分状态集合之间插入补偿算子,调整所述算子的输入张量数据的拆分状态集合中的状态;其中,所述补偿算子用于从所述状态的任一子张量数据的相邻子张量数据中获取目标数据,将所述目标数据与所述子张量数据合并;
根据所述神经网络模型的有向无环图遍历所述拆分状态集合,确定相邻拆分状态集合之间的状态路径及状态路径的权重;其中,所述状态路径表示所述算子的拆分方式;所述拆分状态集合中的每个状态表示一个子张量数据集合,所述状态的所有子张量数据的并集结果为所述张量数据;
根据所述状态路径的权重,确定所述目标层的目标拆分路径;
利用所述目标拆分路径对所述神经网络模型的目标层的算子进行拆分。
优选地,在所述目标层的算子与关联的拆分状态集合之间插入胶水算子的步骤包括:
在所述目标层的算子与关联的拆分状态集合之间插入胶水算子,获取包含所述胶水算子在内的神经网络模型的有向无环图;
根据所述有向无环图遍历所述目标层的所有张量数据对应的拆分状态集合,确定相邻拆分状态集合之间的状态路径及状态路径的权重;
根据所述状态路径的权重,确定包含所述胶水算子在内的神经网络模型的目标层的拆分路径;
利用包含所述胶水算子在内的神经网络模型的目标层的拆分路径对插入的每个胶水算子进行选择,对不需要插入的胶水算子删除,对需要插入的胶水算子保留。
优选地,所述胶水算子用于将胶水算子的输入张量数据的拆分状态集合中的状态进行拼接。
优选地,所述胶水算子用于将胶水算子的输入张量数据的拆分状态集合中的状态进行拆分。
优选地,所述胶水算子用于将胶水算子的输入张量数据的拆分状态集合中的状态进行拼接,再对经拼接处理后的拆分状态集合中的状态进行拆分。
优选地,所述胶水算子用于将胶水算子的输入张量数据的拆分状态集合中的状态进行拆分,再对经拆分处理后的拆分状态集合中的状态进行拼接。
优选地,在所述目标层的算子与关联的的拆分状态集合之间插入补偿算子的步骤包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海寒武纪信息科技有限公司,未经上海寒武纪信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910115162.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种神经网络模型的拆分方法及相关产品
- 下一篇:一种下行传输方法及其装置