[发明专利]一种用多核处理器实现神经网络模型拆分方法及相关产品在审
申请号: | 201910910116.1 | 申请日: | 2019-09-24 |
公开(公告)号: | CN110689121A | 公开(公告)日: | 2020-01-14 |
发明(设计)人: | 不公告发明人 | 申请(专利权)人: | 上海寒武纪信息科技有限公司 |
主分类号: | G06N3/063 | 分类号: | G06N3/063;G06N3/04;G06N3/08 |
代理公司: | 44202 广州三环专利商标代理有限公司 | 代理人: | 郝传鑫;熊永强 |
地址: | 201306 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 神经网络模型 算子 多核处理器 计算机设备 多核并行 资源消耗 分组 申请 | ||
本申请实施例公开了一种用多核处理器实现神经网络模型拆分方法及相关产品,当神经网络模型中存在可以进行拆分的算子时,对算子进行拆分,并选择最优拆分组合获得整个神经网络模型的最优拆分结果,再由多核并行执行最优拆分结果对应的子算子,达成减少计算机设备的资源消耗的目的。
技术领域
本发明涉及深度学习技术领域,尤其涉及一种用多核处理器实现神经网络模型拆分方法及相关产品。
背景技术
近年来,神经网络处理器被不断提出,并如同通用处理器一样,正在由单核向多核扩展。这种扩展后的多核结构可以在训练阶段支持数据并行的方式来提高数据吞吐量,加快训练速度。然而,在推理阶段,相比吞吐量深度神经网络对端到端的时延有着更高的要求,这往往决定了加速器在某个场景下的可用性。传统的数据并行方案不能满足推理场景下对加速器小数据、低延迟的要求。
发明内容
为实现上述目的,第一方面,本申请实施例提供了一种用多核处理器实现神经网络模型拆分方法,该方法包括:
根据所述神经网络模型中目标算子的算子,确定与所述目标算子的算子关联的张量数据的原始拆分状态集合;其中,所述目标算子为所述神经网络模型中的至少一层;
在所述目标算子的算子与所述原始拆分状态集合之间插入胶水算子,调整所述算子的张量数据的拆分状态集合中的拆分状态,得到调整后的拆分状态集合;其中,所述胶水算子用于将张量数据按照一种拆分方式得到的子张量数据转换成按照另一种拆分方式得到的子张量数据;
遍历所述调整后的拆分状态集合,确定相邻拆分状态集合之间所述算子的张量数据的拆分路径;
根据所述拆分路径的权重,确定所述目标算子的张量数据的目标拆分路径;
根据所述目标拆分方式对所述神经网络模型的目标算子的张量数据进行拆分,以分配到多核处理器的对应核进行处理。
在一个可行的示例中,所述调整所述目标算子的张量数据的拆分状态集合中的拆分状态,包括:
对所述原始拆分状态集合中的拆分状态进行拼接。
在一个可行的示例中,所述调整所述目标算子的张量数据的拆分状态集合中的拆分状态,包括:
对所述原始拆分状态集合中的拆分状态进行拆分。
在一个可行的示例中,所述调整所述目标算子的拆分状态集合中的拆分状态,包括:
对所述原始拆分状态集合中的拆分状态进行拼接,再对经过拼接处理后的拆分状态集合中的拆分状态进行拆分。
在一个可行的示例中,所述调整所述目标算子的拆分状态集合中的拆分状态,包括:
对所述原始拆分状态集合中的拆分状态进行拆分,再对经过拆分处理后的拆分状态集合中的拆分状态进行拼接。
在一个可行的示例中,在所述目标算子与所述原始拆分状态集合之间插入胶水算子,还包括:
利用包含所述胶水算子在内的计算图中的目标算子的目标拆分路径对插入的每个胶水算子进行选择,在满足所述目标拆分路径中包含的胶水算子的输入张量数据的拆分状态和输出张量数据的拆分状态相同的情况下,删除所述胶水算子。
在一个可行的示例中,在所述目标算子与所述原始拆分状态集合之间插入胶水算子,所述方法还包括:
在满足所述目标拆分路径中插入了胶水算子的输入张量数据的拆分状态和输出张量数据的拆分状态不相同的情况下,保留所述胶水算子。
在一个可行的示例中,确定所述目标算子的张量数据的目标拆分路径的步骤包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海寒武纪信息科技有限公司,未经上海寒武纪信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910910116.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种面向昆虫机器人的环路控制神经性实验系统
- 下一篇:一种存储系统和方法