[发明专利]一种静态子图切分方法及系统在审
申请号: | 202110552926.1 | 申请日: | 2021-05-20 |
公开(公告)号: | CN113495980A | 公开(公告)日: | 2021-10-12 |
发明(设计)人: | 胡事民;国孟昊;梁盾 | 申请(专利权)人: | 清华大学 |
主分类号: | G06F16/901 | 分类号: | G06F16/901 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 杨明月 |
地址: | 100084 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 静态 切分 方法 系统 | ||
本发明提供一种静态子图切分方法及系统,该方法包括:输入统一计算图集合以及第一算子,并判断所述第一算子是否被执行,所述第一算子用于触发同步事件操作;若所述第一算子未被执行,则将所述第一算子添加进先进先出队列中;基于广度优先算法,遍历所述统一计算图集合,获取由未被执行的第二算子构成的目标集合,并将所述目标集合中的第二算子添加进所述先进先出队列中,得到切分后的子图,所述第二算子为所述第一算子的前驱结点算子。本发明可较好地运用在实际模型运算中,在线性复杂度内,将完整的统一计算图,切分成静态子图点集,保证了易用性和高效性。
技术领域
本发明涉及子图切分技术领域,尤其涉及一种静态子图切分方法及系统。
背景技术
根据执行方法的不同,深度学习框架的计算图执行方式可分为:静态执行,又被称之为定义后执行(defined-and-run),经典的静态图深度学习框架有TensorFLow和Theano等等;动态执行,又被称之为定义时执行(define-and-run)和立刻执行。
在静态执行方式中,静态图框架先定义整个模型,然后在每个迭代中完成对计算图的执行,首先通过placeholder占位符方法来代表整个计算图的数据入口,多数静态图框架都是采用此方法,如TensorFlow中的tf.placeholder()。在完成对数据入口的定义后,就可以开始组建计算图。当构建完成计算图后,用户就可以遍历整个数据集,并且对神经网络进行推理或者训练。静态计算图的优点为原理十分简单,并且易于优化和部署。
尽管静态计算图有易于优化部署等优点,但缺点是调试困难,动态交互性差。因为整个计算图是一次性构建好再运行,所以如果用户需要在计算图构建的过程中打印中间结果,就会十分困难的。因此,现在亟需一种静态子图切分方法及系统来解决上述问题。
发明内容
针对现有技术存在的问题,本发明提供一种静态子图切分方法及系统。
本发明提供一种静态子图切分方法,包括:
输入统一计算图集合以及第一算子,并判断所述第一算子是否被执行,所述第一算子用于触发同步事件操作;
若所述第一算子未被执行,则将所述第一算子添加进先进先出队列中;
基于广度优先算法,遍历所述统一计算图集合,获取由未被执行的第二算子构成的目标集合,并将所述目标集合中的第二算子添加进所述先进先出队列中,得到切分后的子图,所述第二算子为所述第一算子的前驱结点算子。
根据本发明提供的一种静态子图切分方法,所述统一计算图集合是由静态图和动态图结合得到的。
根据本发明提供的一种静态子图切分方法,所述方法还包括:
若所述第一算子已被执行,则返回空集。
根据本发明提供的一种静态子图切分方法,在所述若所述第一算子未被执行,则将所述第一算子添加进先进先出队列中之后,所述方法还包括:
基于所述先进先出队列,将静态子图切分问题转换为使用广度优先算法的搜索问题。
根据本发明提供的一种静态子图切分方法,所述方法还包括:
将所述统一计算图集合中的计算图作为有向无环图G=(V,E),其中,所述有向无环图每一个节点v代表一个算子,每一条边代表一个变量e。
根据本发明提供的一种静态子图切分方法,所述方法还包括:
通过邻接表,获取所述统一计算图集合中计算图的复杂度:
O(|V|+|E|);
其中,O为复杂度因子表示形式。
本发明还提供一种静态子图切分系统,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110552926.1/2.html,转载请声明来源钻瓜专利网。