当前位置: 首页 > 专利查询>清华大学专利>正文

一种静态子图切分方法及系统技术方案

技术编号:30345518 阅读:41 留言:0更新日期:2021-10-12 23:32
本发明专利技术提供一种静态子图切分方法及系统,该方法包括:输入统一计算图集合以及第一算子,并判断所述第一算子是否被执行,所述第一算子用于触发同步事件操作;若所述第一算子未被执行,则将所述第一算子添加进先进先出队列中;基于广度优先算法,遍历所述统一计算图集合,获取由未被执行的第二算子构成的目标集合,并将所述目标集合中的第二算子添加进所述先进先出队列中,得到切分后的子图,所述第二算子为所述第一算子的前驱结点算子。本发明专利技术可较好地运用在实际模型运算中,在线性复杂度内,将完整的统一计算图,切分成静态子图点集,保证了易用性和高效性。保证了易用性和高效性。保证了易用性和高效性。

【技术实现步骤摘要】
一种静态子图切分方法及系统


[0001]本专利技术涉及子图切分
,尤其涉及一种静态子图切分方法及系统。

技术介绍

[0002]根据执行方法的不同,深度学习框架的计算图执行方式可分为:静态执行,又被称之为定义后执行(defined

and

run),经典的静态图深度学习框架有TensorFLow和Theano等等;动态执行,又被称之为定义时执行(define

and

run)和立刻执行。
[0003]在静态执行方式中,静态图框架先定义整个模型,然后在每个迭代中完成对计算图的执行,首先通过placeholder占位符方法来代表整个计算图的数据入口,多数静态图框架都是采用此方法,如TensorFlow中的tf.placeholder()。在完成对数据入口的定义后,就可以开始组建计算图。当构建完成计算图后,用户就可以遍历整个数据集,并且对神经网络进行推理或者训练。静态计算图的优点为原理十分简单,并且易于优化和部署。
[0004]尽管静态计算图有易于优化部署等优点,但缺点是调试困难,动态交互性差。因为整个计算图是一次性构建好再运行,所以如果用户需要在计算图构建的过程中打印中间结果,就会十分困难的。因此,现在亟需一种静态子图切分方法及系统来解决上述问题。

技术实现思路

[0005]针对现有技术存在的问题,本专利技术提供一种静态子图切分方法及系统。
[0006]本专利技术提供一种静态子图切分方法,包括:r/>[0007]输入统一计算图集合以及第一算子,并判断所述第一算子是否被执行,所述第一算子用于触发同步事件操作;
[0008]若所述第一算子未被执行,则将所述第一算子添加进先进先出队列中;
[0009]基于广度优先算法,遍历所述统一计算图集合,获取由未被执行的第二算子构成的目标集合,并将所述目标集合中的第二算子添加进所述先进先出队列中,得到切分后的子图,所述第二算子为所述第一算子的前驱结点算子。
[0010]根据本专利技术提供的一种静态子图切分方法,所述统一计算图集合是由静态图和动态图结合得到的。
[0011]根据本专利技术提供的一种静态子图切分方法,所述方法还包括:
[0012]若所述第一算子已被执行,则返回空集。
[0013]根据本专利技术提供的一种静态子图切分方法,在所述若所述第一算子未被执行,则将所述第一算子添加进先进先出队列中之后,所述方法还包括:
[0014]基于所述先进先出队列,将静态子图切分问题转换为使用广度优先算法的搜索问题。
[0015]根据本专利技术提供的一种静态子图切分方法,所述方法还包括:
[0016]将所述统一计算图集合中的计算图作为有向无环图G=(V,E),其中,所述有向无环图每一个节点v代表一个算子,每一条边代表一个变量e。
[0017]根据本专利技术提供的一种静态子图切分方法,所述方法还包括:
[0018]通过邻接表,获取所述统一计算图集合中计算图的复杂度:
[0019]O(|V|+|E|);
[0020]其中,O为复杂度因子表示形式。
[0021]本专利技术还提供一种静态子图切分系统,包括:
[0022]输入模块,用于输入统一计算图集合以及第一算子,并判断所述第一算子是否被执行,所述第一算子用于触发同步事件操作;
[0023]添加模块,用于若所述第一算子未被执行,则将所述第一算子添加进先进先出队列中;
[0024]遍历切分模块,用于基于广度优先算法,遍历所述统一计算图集合,获取由未被执行的第二算子构成的目标集合,并将所述目标集合中的第二算子添加进所述先进先出队列中,得到切分后的子图,所述第二算子为所述第一算子的前驱结点算子。
[0025]根据本专利技术提供的一种静态子图切分系统,其特征在于,所述系统还包括:
[0026]有向无环图构建模块,用于将所述统一计算图集合中的计算图作为有向无环图G=(V,E),其中,所述有向无环图每一个节点v代表一个算子,每一条边代表一个变量e。
[0027]本专利技术还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述静态子图切分方法的步骤。
[0028]本专利技术还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述静态子图切分方法的步骤。
[0029]本专利技术提供的一种静态子图切分方法及系统,可较好地运用在实际模型运算中,在线性复杂度内,将完整的统一计算图,切分成静态子图点集,保证了易用性和高效性。
附图说明
[0030]为了更清楚地说明本专利技术或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0031]图1为本专利技术提供的静态子图切分方法的流程示意图;
[0032]图2为本专利技术提供的静态子图切分算法示意图;
[0033]图3为本专利技术提供的静态子图切分系统的结构示意图;
[0034]图4为本专利技术提供的电子设备的结构示意图。
具体实施方式
[0035]为使本专利技术的目的、技术方案和优点更加清楚,下面将结合本专利技术中的附图,对本专利技术中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0036]为了解决静态深度学习框架的动态交互性差的问题,现有许多框架提出了动态图
执行的方式,也叫立即执行,如Pytorch、Chainer和TensorFlow2.0,都采取了这种方式。动态图执行会在每次迭代中重新建立计算图,并且计算图中的算子会在构建以后立刻执行。为了同时获得动态图交互能力和静态图易于优化的能力,本专利技术提出统一计算图的延迟执行方式,统一计算图拥有和动态图相同的交互能力:可以打印中间结果、即时改变网络结构、命令行交互和断点调试等;还具有静态图易于优化的能力:融合优化和整图优化等。统一计算图不同于动态图的将构建和运行完全耦合在一起,也不同于静态计算图的将构建过程和计算过程完全拆分开来,而是根据用户编写的代码,自动的将计算图拆分成若干个静态子图,同时保证了易用和高效。静态子图切分是将整个动态图进行切分,是统一计算图高效执行的保证,是一项与统一计算图配套的新技术。
[0037]图1为本专利技术提供的静态子图切分方法的流程示意图,如图1所示,本专利技术提供了一种静态子图切分方法,包括:
[0038]步骤101,输入统一计算图集合以及第一算子,并判断所述第一算子是否被执行,所述第一算子用于触发同步事件操作;
[00本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种静态子图切分方法,其特征在于,包括:输入统一计算图集合以及第一算子,并判断所述第一算子是否被执行,所述第一算子用于触发同步事件操作;若所述第一算子未被执行,则将所述第一算子添加进先进先出队列中;基于广度优先算法,遍历所述统一计算图集合,获取由未被执行的第二算子构成的目标集合,并将所述目标集合中的第二算子添加进所述先进先出队列中,得到切分后的子图,所述第二算子为所述第一算子的前驱结点算子。2.根据权利要求1所述的静态子图切分方法,其特征在于,所述统一计算图集合是由静态图和动态图结合得到的。3.根据权利要求1所述的静态子图切分方法,其特征在于,所述方法还包括:若所述第一算子已被执行,则返回空集。4.根据权利要求1所述的静态子图切分方法,其特征在于,在所述若所述第一算子未被执行,则将所述第一算子添加进先进先出队列中之后,所述方法还包括:基于所述先进先出队列,将静态子图切分问题转换为使用广度优先算法的搜索问题。5.根据权利要求1所述的静态子图切分方法,其特征在于,所述方法还包括:将所述统一计算图集合中的计算图作为有向无环图G=(V,E),其中,所述有向无环图每一个节点v代表一个算子,每一条边代表一个变量e。6.根据权利要求5所述的静态子图切分方法,其特征在于,所述方法还包括:通过邻接表,获取...

【专利技术属性】
技术研发人员:胡事民国孟昊梁盾
申请(专利权)人:清华大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1