[发明专利]一种神经网络模型的拆分方法及相关产品有效
| 申请号: | 201910114967.5 | 申请日: | 2019-02-14 |
| 公开(公告)号: | CN111563585B | 公开(公告)日: | 2023-03-17 |
| 发明(设计)人: | 请求不公布姓名 | 申请(专利权)人: | 上海寒武纪信息科技有限公司 |
| 主分类号: | G06N3/082 | 分类号: | G06N3/082 |
| 代理公司: | 北京华进京联知识产权代理有限公司 11606 | 代理人: | 孙岩 |
| 地址: | 200120 上海市浦*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 神经网络 模型 拆分 方法 相关 产品 | ||
本公开披露一种神经网络模型的拆分方法及相关产品,本方案把一个算子拆分成多个规模更小的子算子,这样可以直接调用单核架构下的计算库,避免了重新实现的额外工作量。
技术领域
本公开的实施例涉及一种神经网络模型的拆分方法及相关产品。
背景技术
近年来,深度学习加速器被不断提出,并如同通用处理器一样,正在由单核向多核扩展。这种扩展后的多核结构可以在训练阶段支持数据并行的方式来提高数据吞吐量,加快训练速度。然而,在推理阶段,相比吞吐量深度神经网络对端到端的时延有着更高的要求,这往往决定了加速器在某个场景下的可用性。
针对多核处理器结构芯片来说,如图1所示,这种共享存储多核结构是一种经典的多核结构。这种结构非常适合数据并行的神经网络训练方法。每个核可以作为数据并行中的一个处理器,分别读取不同的数据然后并行完成神经网络模型的正反向计算。每个核在计算阶段仍能够保持其在之前单核架构下良好的性能功耗比,与此同时整个系统的吞吐量也可以随着核数的扩展而增加。数据并行的问题在于,其扩展性依赖于处理的数据批量的大小。尽管在训练阶段这通常不会是一个问题,但是对于推理阶段这个前提则难以保证。一般来说,用于实时服务领域(包括视频监控,自动驾驶等)的神经网络模型,处理的数据通常是以流的方式串行输入,导致了每次处理的数据规模很小甚至往往是单张图片。在这种情况下,数据并行不能提供任何并行度,所有的工作任务会集中在单个核上,这使得多核带来的计算资源不能转化成处理任务的速度。
发明内容
为了解决上述所述的技术问题,本公开提出一种神经网络模型的拆分方法及相关产品。
为实现上述目的,本公开提供为实现上述目的,本公开提供一种神经网络模型拆分方法,所述方法包括:
根据所述神经网络模型中目标层的算子,确定与所述目标层的算子关联的张量数据的拆分状态集合;其中,所述目标层为所述神经网络模型中的至少一层;
在所述目标层的算子与关联的拆分状态集合之间插入胶水算子,调整所述算子的张量数据的拆分状态集合中的状态;其中,所述胶水算子用于将所述张量数据按照一拆分方式获得的状态调整成按照任一种拆分方式获得的状态;
根据所述神经网络模型的有向无环图遍历所述拆分状态集合,确定相邻拆分状态集合之间的状态路径及状态路径的权重;其中,所述状态路径表示所述算子的拆分方式;所述拆分状态集合中的每个状态表示一个子张量数据集合,所述状态的所有子张量数据的并集结果为所述张量数据;
根据所述状态路径的权重,确定所述目标层的目标拆分路径;
利用所述目标拆分路径对所述神经网络模型的目标层的算子进行拆分。
优选地,确定所述目标层的目标拆分路径的步骤包括:
遍历所述目标层的所有拆分状态集合,对当前拆分状态集合,遍历每一状态,获得所有指向当前状态的状态路径以及所述状态路径的起始状态到所述目标层的输入张量数据的起始状态的拆分路径;
根据所述状态路径的权重和所述拆分路径的权重确定所述当前状态到所述目标层的输入张量数据的起始状态的拆分路径;其中,所述拆分路径的权重根据所述拆分路径对应的所有状态路径的权重确定;
遍历完所述目标层的所有拆分状态集合后,获得所述目标层的输入张量数据的拆分状态集合与所述目标层的输出张量数据的拆分状态集合之间的目标拆分路径。
优选地,确定所述目标层的目标拆分路径的步骤包括:
遍历所述目标层的所有拆分状态集合,对当前拆分状态集合,遍历每一状态,获得所有以当前状态为起点的状态路径以及所述状态路径的结束状态到所述目标层的输出张量数据的终止状态的拆分路径;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海寒武纪信息科技有限公司,未经上海寒武纪信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910114967.5/2.html,转载请声明来源钻瓜专利网。





