一种计算图切分方法、装置、电子设备及存储介质与流程
未命名
10-18
阅读:91
评论:0
1.本技术涉及信息处理技术领域,特别是涉及一种计算图切分方法、装置、电子设备及存储介质。
背景技术:
2.随着神经网络模型规模的不断增加,受到硬件资源算力的限制,使得神经网络模型的训练及推理过程的耗时越来越长。为降低神经网络模型训练及推理的耗时,需要对神经网络模型进行优化。
技术实现要素:
3.本技术实施例的目的在于提供一种计算图切分方法、装置、电子设备及存储介质,以实现对网络模型中待优化部分的计算图的切分,使得切分得到的各子计算图间的依赖关系较低,以及切分得到的子计算图的数量较少,从而提高提高网络模型的处理效率。具体技术方案如下:
4.本技术实施例提供了一种计算图切分方法,所述方法包括:
5.获取网络模型中待优化部分对应的单向无环图,所述单向无环图中包括多个节点,以及各节点间的关系边,所述多个节点和待优化部分中的算子一一对应;
6.确定所述多个节点中对应算子的预设优化类别为不参与算子融合的节点,作为第一类节点;
7.针对每一第一类节点,将该第一类节点的父节点中的第二类节点标记为缩点中止节点,并将该第一类节点的子节点中的第二类节点标记为缩点起始节点,其中,所述第二类节点为所述多个节点中除所述第一类节点以外的其他节点;
8.根据所述单向无环图中每一关系边连接的两个节点的节点类型,确定该关系边的权重;
9.基于所述缩点中止节点、所述缩点起始节点和每一关系边的权重,对所述单向无环图中的节点进行缩点处理,得到缩点图;
10.基于所述缩点图对所述单向无环图进行切分,得到多个第一子计算图。
11.可选的,所述基于所述缩点中止节点、所述缩点起始节点和每一关系边的权重,对所述单向无环图中的节点进行缩点处理,得到缩点图的步骤,包括:
12.基于所述单向无环图中每一关系边的权重,计算所述单向无环图中每两个第二类节点间的最长路径长度;
13.按照所述单向无环图的拓扑结构,将所述单向无环图中首个未进行缩点处理的第二类节点确定为第一节点,并判断所述第一节点和第二节点是否满足预设缩点规则,所述第二节点为所述第一节点的子节点;
14.在所述第一节点和所述第二节点满足所述预设缩点规则时,将所述第一节点和所述第二节点确定为待处理节点;
15.若所述第二节点为所述第二类节点,则将所述第二节点作为所述第一节点,返回执行所述判断所述第一节点和第二节点是否满足预设缩点规则的步骤,直至所述第一节点和/或所述第二节点不满足所述预设缩点规则,将所述第一节点确定为所述待处理节点;
16.对所述待处理节点进行缩点处理,得到缩点处理后的单向无环图,并返回执行所述按照所述单向无环图的拓扑结构,将所述单向无环图中首个未进行缩点处理的第二类节点确定为第一节点的步骤,直至所述单向无环图中不包括未缩点处理的第二类节点,得到缩点图;
17.所述预设缩点规则包括:当所述第一节点为第一类目标节点时,所述第一节点不是所述缩点中止节点,所述第二节点不是所述缩点起始节点,所述首个未进行缩点处理的第二类节点与所述第二节点间的最长路径长度为预设路径长度,且对所述第一节点和所述第二节点进行缩点处理后得到缩点图为单向无环图;当所述第一节点为第二类目标节点时,所述第二节点为所述第二类节点,所述首个未进行缩点处理的第二类节点与所述第二节点间的最长路径长度为预设路径长度,且对所述第一节点和所述第二节点进行缩点处理后得到缩点图为单向无环图;
18.其中,所述第一类目标节点为不存在父节点为所述第二类节点的第二类节点;所述第二类目标节点为除所述第一类目标节点以外的第二类节点。
19.可选的,所述基于所述单向无环图中每一关系边的权重,计算所述单向无环图中每两个第二类节点间的最长路径长度的步骤,包括:
20.针对所述单向无环图中的每两个第二类节点,确定该两个第二类节点间的每一路径;
21.针对每一路径,根据该路径上每一关系边的权重,计算该两个第二类节点间的路径长度;
22.将计算得到的路径长度中的最大值,确定为该两个第二类节点间的最长路径长度。
23.可选的,所述根据所述单向无环图中每一关系边连接的两个节点的节点类型,确定该关系边的权重的步骤,包括:
24.针对所述单向无环图中的每一关系边,若该关系边所连接的两个节点均为所述第二类节点,则确定该关系边的权重为第一预设权重;
25.若关系边所连接的两个节点中包括所述第一类节点,则确定该关系边的权重为第二预设权重。
26.可选的,所述方法还包括:
27.针对每一第二子计算图,根据该第二子计算图中每一节点对应算子的算子类别,对该第二子计算图中第二类节点对应的算子进行算子融合,得到包括融合算子的第三子计算图;所述第二子计算图为包括多个第二类节点的第一子计算图。
28.可选的,所述方法还包括:
29.按照所述单向无环图的拓扑结构,对所述多个第一子计算图中除所述第二子计算图以外的第一子计算图,以及所述第三子计算图进行组合,得到优化后的待优化部分;
30.调用所述优化后的待优化部分。
31.本技术实施例还提供了一种计算图切分装置,所述装置包括:
32.获取模块,用于获取网络模型中待优化部分对应的单向无环图,所述单向无环图中包括多个节点,以及各节点间的关系边,所述多个节点和待优化部分中的算子一一对应;
33.第一确定模块,用于确定所述多个节点中对应算子的预设优化类别为不参与算子融合的节点,作为第一类节点;
34.标记模块,用于针对每一第一类节点,将该第一类节点的父节点中的第二类节点标记为缩点中止节点,并将该第一类节点的子节点中的第二类节点标记为缩点起始节点,其中,所述第二类节点为所述多个节点中除所述第一类节点以外的其他节点;
35.第二确定模块,用于根据所述单向无环图中每一关系边连接的两个节点的节点类型,确定该关系边的权重;
36.处理模块,用于基于所述缩点中止节点、所述缩点起始节点和每一关系边的权重,对所述单向无环图中的节点进行缩点处理,得到缩点图;
37.切分模块,用于基于所述缩点图对所述单向无环图进行切分,得到多个第一子计算图。
38.可选的,所述处理模块,包括:
39.计算子模块,用于基于所述单向无环图中每一关系边的权重,计算所述单向无环图中每两个第二类节点间的最长路径长度;
40.判断子模块,用于按照所述单向无环图的拓扑结构,将所述单向无环图中首个未进行缩点处理的第二类节点确定为第一节点,并判断所述第一节点和第二节点是否满足预设缩点规则,所述第二节点为所述第一节点的子节点;
41.确定子模块,用于在所述第一节点和所述第二节点满足所述预设缩点规则时,将所述第一节点和所述第二节点确定为待处理节点;
42.调用子模块,用于若所述第二节点为所述第二类节点,则将所述第二节点作为所述第一节点,调用所述判断子模块返回执行所述判断所述第一节点和第二节点是否满足预设缩点规则的步骤,直至所述第一节点和/或所述第二节点不满足所述预设缩点规则,将所述第一节点确定为所述待处理节点;
43.处理子模块,用于对所述待处理节点进行缩点处理,得到缩点处理后的单向无环图,并调用所述判断子模块返回执行所述按照所述单向无环图的拓扑结构,将所述单向无环图中首个未进行缩点处理的第二类节点确定为第一节点的步骤,直至所述单向无环图中不包括未缩点处理的第二类节点,得到缩点图;
44.所述预设缩点规则包括:当所述第一节点为第一类目标节点时,所述第一节点不是所述缩点中止节点,所述第二节点不是所述缩点起始节点,所述首个未进行缩点处理的第二类节点与所述第二节点间的最长路径长度为预设路径长度,且对所述第一节点和所述第二节点进行缩点处理后得到缩点图为单向无环图;当所述第一节点为第二类目标节点时,所述第二节点为所述第二类节点,所述首个未进行缩点处理的第二类节点与所述第二节点间的最长路径长度为预设路径长度,且对所述第一节点和所述第二节点进行缩点处理后得到缩点图为单向无环图;
45.其中,所述第一类目标节点为不存在父节点为所述第二类节点的第二类节点;所述第二类目标节点为除所述第一类目标节点以外的第二类节点。
46.可选的,所述计算子模块,具体用于针对所述单向无环图中的每两个第二类节点,
确定该两个第二类节点间的每一路径;
47.针对每一路径,根据该路径上每一关系边的权重,计算该两个第二类节点间的路径长度;
48.将计算得到的路径长度中的最大值,确定为该两个第二类节点间的最长路径长度。
49.可选的,所述第二确定模块,具体用于针对所述单向无环图中的每一关系边,若该关系边所连接的两个节点均为所述第二类节点,则确定该关系边的权重为第一预设权重;
50.若关系边所连接的两个节点中包括所述第一类节点,则确定该关系边的权重为第二预设权重。
51.可选的,所述装置还包括:
52.融合模块,用于针对每一第二子计算图,根据该第二子计算图中每一节点对应算子的算子类别,对该第二子计算图中第二类节点对应的算子进行算子融合,得到包括融合算子的第三子计算图;所述第二子计算图为包括多个第二类节点的第一子计算图。
53.可选的,所述装置还包括:
54.组合模块,用于按照所述单向无环图的拓扑结构,对所述多个第一子计算图中除所述第二子计算图以外的第一子计算图,以及所述第三子计算图进行组合,得到优化后的待优化部分;
55.调用模块,用于调用所述优化后的待优化部分。
56.本技术实施例还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
57.存储器,用于存放计算机程序;
58.处理器,用于执行存储器上所存放的程序时,实现上述任一所述的计算图切分方法步骤。
59.本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的计算图切分方法步骤。
60.本技术实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的计算图切分方法。
61.本技术实施例有益效果:
62.本技术实施例提供的技术方案,在对网络模型的待优化部分对应的单向无环图进行切分的过程中,针对该单向无环图中每一第一类节点,也就是针对该单向无环图中对应算子不参与后续算子融合过程的每一节点,分别将该节点的父节点和子节点中的第二类节点标记为缩点中止节点和缩点起始节点,从而基于单向无环图中的缩点起始节点、缩点中止节点以及该单向无环图中每一关系边的权重,对该单向无环图中的节点进行缩点处理得到缩点图,从而基于该缩点图对单向无环图进行切分,实现对网络模型中待优化部分的计算图的切分。
63.在本技术实施例中,根据单向无向图的拓扑结构,以及每一节点的节点类型,按照图论算法中缩点方法,对单向无环图中的缩点中止节点和缩点起始节点进行标记,使得可以基于标记得到的缩点起始节点和缩点中止节点,以及每一关系边的权重,将单向无环图
的切分问题转化为等效的图论缩点问题。由于缩点过程中不需要考虑单向无环图中各节点间的依赖关系,这使得在根据缩点处理得到缩点图对单向无环图进行切分时,大大增加了各节点间依赖关系被打破的概率,从而在实现对网络模型中待优化部分的计算图的进行切分的同时,使得切分得到的各子计算图间的依赖关系较低,这大大提高了切分得到的各子计算图并行处理的概率,从而提高网络模型的处理效率。
64.另外,上述缩点中止节点和缩点起始节点是针对每一第一类节点的父节点和子节点中的第二类节点进行标记的,也就是单向无环图中连续连接多个第二类节点中的中间节点并不会标记为缩点中止节点或缩点起始节点,有效提高了相同节点类型的第二类节点被缩点处理为一个节点的概率,降低了不同节点类型被缩点处理为一个节点的概率,大大增加了连续连接多个第二类节点被切分至同一子计算图的概率,从而降低了切分得到的子计算图的数量。也就是在实现对网络模型中待优化部分的单向无环图的进行切分的同时,使得切分得到的各子计算图的数量较少。通过控制切分得到的子计算图的数量,可以使得每一子计算图包括尽可能多的节点,从而便于后期的算子融合过程,使得尽可能多的算子可以融合为一个算子,进而提高网络模型的处理效率。
65.再者,上述第一类节点为对应算子的预设优化类别为不参与算子融合的节点,第二类节点为单向无环图中除第一类节点以外的其他节点,也就是第二类节点为对应算子的预设优化类别为参与算子融合的节点,这将为后期算子融合过程奠定基础,便于后期算子融合过程的进行,提高模型优化效率。
66.当然,实施本技术的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
67.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
68.图1为本技术实施例提供的计算图切分方法的第一种流程示意图;
69.图2-a为本技术实施例提供的计算图的一种结构示意图;
70.图2-b为图2-a所示的单向无环图中各关系边的权重的一种示意图;
71.图2-c为图2-a所示单向无环图对应的缩点图;
72.图2-d为图2-a所示单向无环图切分得到的子计算图;
73.图3为本技术实施例提供的计算图切分方法的第二种流程示意图;
74.图4-a为某一网络模型对应的计算图的一种示意图;
75.图4-b为采用相关技术进行计算图切分得到的各子计算图的一种示意图;
76.图4-c为采用本技术实施例进行计算图切分得到的各子计算图的一种示意图;
77.图5-a为某一网络模型对应的计算图的一种示意图;
78.图5-b为采用相关技术进行计算图切分得到的各子计算图的一种示意图;
79.图5-c为采用本技术实施例进行计算图切分得到的各子计算图的一种示意图;
80.图6为本技术实施例提供的计算图切分方法的第三种流程示意图;
81.图7-a为本技术实施例提供的逻辑融合过程的一种示意图;
82.图7-b为本技术实施例提供的内存融合过程的一种示意图;
83.图8为本技术实施例提供的计算图切分方法的第四种流程示意图;
84.图9为图2-d中各子计算图进行算子融合后组合得到的计算图;
85.图10为本技术实施例提供的计算图切分装置的一种结构示意图;
86.图11为本技术实施例提供的电子设备的一种结构示意图。
具体实施方式
87.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员基于本技术所获得的所有其他实施例,都属于本技术保护的范围。
88.下面对本技术实施例中的名词进行解释。
89.神经网络模型:目前学术界已经提出了各种各样的神经网络模型,例如全连接神经网络、卷积神经网络、递归神经网络、生成对抗网络、图神经网络等。这些不同的神经网络模型的差异主要在于神经元的激活规则、神经网络模型的拓扑结构以及参数的学习算法等。不同的神经网络由不同的计算逻辑组成,相应的计算图也随之各异。
90.计算图:计算图是用图论语言表示数学函数的一种方式。计算图被定义为有向图,其中节点对应于数学运算。节点由边连接,图中的一切要么是节点,要么是边。在计算图中,节点是输入值或用于组合值的函数。
91.相关技术中,在软硬件系统上执行神经网络模型训练及推理时,为了提高系统算力和带宽等资源的利用率,减少神经网络模型处理过程的冗余计算量,可以对神经网络模型进行图算融合优化的方式,实现对神经网络模型的优化。具体的,图算融合优化具体包括计算图切过程和子计算图内算子融合过程。
92.在上述计算图切分过程中,为了使得切分得到的子计算图内算子融合的空间足够大,计算图的切分结果需要具备两点特性,即第一点,切分得到的各子计算图之间的依赖关系最低;第二点,切分得到的各子计算图内包含的算子尽可能多,也就是切分得到的子计算图的数量相对较少。
93.为了使得计算图切分的切分结果满足上述两点特性,本技术实施例提供了一种计算图切分方法。该方法可以应用于任一电子设备,该电子设备包括但不限于移动终端、服务器等设备。在此,对该电子设备不作具体限定。
94.如图1所示,图1为本技术实施例提供的计算图切分方法的第一种流程示意图。该方法包括以下步骤。
95.步骤s101,获取网络模型中待优化部分对应的单向无环图,单向无环图中包括多个节点,以及各节点间的关系边,多个节点和待优化部分中的算子一一对应。
96.步骤s102,确定多个节点中对应算子的预设优化类别为不参与算子融合的节点,作为第一类节点。
97.步骤s103,针对每一第一类节点,将该第一类节点的父节点中的第二类节点标记为缩点中止节点,并将该第一类节点的子节点中的第二类节点标记为缩点起始节点,其中,
第二类节点为多个节点中除第一类节点以外的其他节点。
98.步骤s104,根据单向无环图中每一关系边连接的两个节点的节点类型,确定该关系边的权重。
99.步骤s105,基于缩点中止节点、缩点起始节点和每一关系边的权重,对单向无环图中的节点进行缩点处理,得到缩点图。
100.步骤s106,基于缩点图对单向无环图进行切分,得到多个第一子计算图。
101.通过图1所示的方法,在对网络模型的待优化部分对应的单向无环图进行切分的过程中,针对该单向无环图中每一第一类节点,也就是针对该单向无环图中对应算子不参与后续算子融合过程的每一节点,分别将该节点的父节点和子节点中的第二类节点标记为缩点中止节点和缩点起始节点,从而基于单向无环图中的缩点起始节点、缩点中止节点以及该单向无环图中每一关系边的权重,对该单向无环图中的节点进行缩点处理得到缩点图,从而基于该缩点图对单向无环图进行切分,实现对网络模型中待优化部分的计算图的切分。
102.在本技术实施例中,根据单向无向图的拓扑结构,以及每一节点的节点类型,按照图论算法中缩点方法,对单向无环图中的缩点中止节点和缩点起始节点进行标记,使得可以基于标记得到的缩点起始节点和缩点中止节点,以及每一关系边的权重,将单向无环图的切分问题转化为等效的图论缩点问题。由于缩点过程中不需要考虑单向无环图中各节点间的依赖关系,这使得在根据缩点处理得到缩点图对单向无环图进行切分时,大大增加了各节点间依赖关系被打破的概率,从而在实现对网络模型中待优化部分的计算图的进行切分的同时,使得切分得到的各子计算图间的依赖关系较低,这大大提高了切分得到的各子计算图并行处理的概率,从而提高网络模型的处理效率。
103.另外,上述缩点中止节点和缩点起始节点是针对每一第一类节点的父节点和子节点中的第二类节点进行标记的,也就是单向无环图中连续连接多个第二类节点中的中间节点并不会标记为缩点中止节点或缩点起始节点,有效提高了相同节点类型的第二类节点被缩点处理为一个节点的概率,降低了不同节点类型被缩点处理为一个节点的概率,大大增加了连续连接多个第二类节点被切分至同一子计算图的概率,从而降低了切分得到的子计算图的数量。也就是在实现对网络模型中待优化部分的单向无环图的进行切分的同时,使得切分得到的各子计算图的数量较少。通过控制切分得到的子计算图的数量,可以使得每一子计算图包括尽可能多的节点,从而便于后期的算子融合过程,使得尽可能多的算子可以融合为一个算子,进而提高网络模型的处理效率。
104.再者,上述第一类节点为对应算子的预设优化类别为不参与算子融合的节点,第二类节点为单向无环图中除第一类节点以外的其他节点,也就是第二类节点为对应算子的预设优化类别为参与算子融合的节点,这将为后期算子融合过程奠定基础,便于后期算子融合过程的进行,提高模型优化效率。
105.下面通过具体的实施例,对本技术实施例进行说明。为便于理解,下面仅以电子设备为执行主体进行说明,并不起任何限定作用。
106.针对上述步骤s101,即获取网络模型中待优化部分对应的单向无环图,单向无环图中包括多个节点,以及各节点间的关系边,多个节点和待优化部分中的算子一一对应。
107.在本步骤中,针对网络模型进行模型优化时,电子设备需要获取该网络模型中待
优化部分所对应的计算图。为了保证后续步骤的顺利执行,该计算图为单向无环图。该单向无环图中包括多个节点,以及各节点间的关系边。在此对上述单向无环图的获取不作具体说明。
108.上述网络模型可以为上述神经网络模型、深度学习模型或机器学习模型。在此,对上述网络模型不作具体限定。
109.上述待优化部分可以为上述整个网络模型,也可以为上述网络模型中的部分结构。
110.在本技术实施例中,上述单向无环图中的每一节点分别对待优化部分中的算子一一对应,连接两个节点的边即为上述关系边,该关系边用于指示其连接的两个节点间的依赖关系。上述单向无环图中不包括环结构。
111.针对上述步骤s102,即确定多个节点中对应算子的预设优化类别为不参与算子融合的节点,作为第一类节点。
112.在本步骤中,针对上述单向无环图,电子设备可以根据每一节点对应算子的预设优化类型,确定该单向无环图中每一节点的节点类型。也就是将该单向无环图中的节点划分为第一类节点和第二类节点。其中,第一类节点对应算子的预设优化类别为不参与算子融合的节点。第二类节点为该单向无环图中除第一类节点以外的节点,也就是对应算子的预设优化类型为参与算子融合的节点。
113.在本技术实施例中,上述在划分第一类节点和第二类节点时,仅确定出上述单向无环图中的第一类节点。此时,单向无环图中除第一类节点以外的其他节点默认为第二类节点。同理,电子设备也可以仅确定出单向无环图中的第二类节点,从而将除第二类节点以外的其他节点确定为第一类节点。
114.在本技术实施例中,上述单向无环图中每一节点对应算子存在对应的算子类别。
115.一个可选的实施例中,上述算子类别可以以算子用途表示。例如,某一节点对应算子是该节点子节点的输入,则该算子的算子类别可以为输入算子。再例如,某一节点对应的算子是用于对输入的数据进行卷积(conv)操作,则该算子的算子类别可以为卷积算子。
116.当上述算子类别以算子用途表示时,电子设备可以根据不参与算子融合的预设优化类型,将该单向无环图中对应算子的算子类别为该预设优化类别的节点确定为第一类节点。
117.为便于理解,以不参与算子融合的预设优化类别为卷积算子为例。电子设备可以将上述单向无环图中所有算子类别为卷积算子的算子所对应的节点确定为第一类节点。
118.另一个可选的实施例中,上述算子类别可以以预设优化类别表示。也就是每一算子对应的算子类别为不参与算子融合的预设优化类别(记为第一类别),或参与算子融合的预设优化类别(记为第二类别)。
119.当上述算子类别以上述第一类别或第二类别表示时,电子设备可以将上述单向无环图中所有第一类别的算子所对应的节点确定为上述第一类节点。
120.上述预设优化类别可以根据网络模型的应用场景以及用户需求等进行设置,在此,对上述预设优化类别不作具体限定。
121.在本技术实施例中,根据上述算子类别的表示方式以及预设优化类别的不同,上述单向无环图中确定出的第一类节点和第二类节点也将有所不同。在此,对确定出的第一
类节点和第二类节点的不作具体限定。
122.针对上述步骤s103,即针对每一第一类节点,将该第一类节点的父节点中的第二类节点标记为缩点中止节点,并将该第一类节点的子节点中的第二类节点标记为缩点起始节点,其中,第二类节点为多个节点中除第一类节点以外的其他节点。
123.在上述单向无环图中,针对每一节点,该节点可以无父节点,也可以包括一个父节点或多个父节点。并且,该节点可以无子节点、也可以包括一个子节点或多个子节点。在此,对上述单向无环图中每一节点所对应的父节点和子节点的数量不作具体限定。
124.针对上述单向无环图中的每一第一类节点,当该第一类节点存在父节点时,电子设备可以将该第一类节点的父节点中的每一第二类节点标记为缩点中止节点。当该第一类节点存在子节点时,电子设备可以将该第一类节点的子节点中的每一第二类节点标记为缩点起始节点。
125.为便于理解,结合图2-a为例进行说明。图2-a为本技术实施例提供的计算图的一种结构示意图。
126.在图2-a中,上述第一类节点包括节点b1,第二类节点包括节点a1-节点a8。
127.针对节点b,节点b的父节点为节点a3,子节点为节点a7。由于节点a3和节点a7均属于第二类节点,因此,在执行上述步骤s103时,电子设备可以将节点a3标记为缩点中止节点,并将节点a7标记为缩点起始节点。
128.针对上述步骤s104,即根据单向无环图中每一关系边连接的两个节点的节点类型,确定该关系边的权重。
129.在本技术实施例中,针对上述单向无环图中的每一关系边,该关系边所连接的两个节点的节点类型至少包括三种情况。
130.情况一,该关系边所连接的两个节点的节点类型均为上述第一类节点;
131.情况二,该关系边所连接的两个节点的节点类型均为上述第二类节点;
132.情况三,该关系边连接的两个节点中,一个节点的节点类型为上述第一类节点,另一个节点的节点类型为上述第二类节点。
133.一个可选的实施例中,上述步骤s104,根据单向无环图中每一关系边连接的两个节点的节点类型,确定该关系边的权重,具体可以表示以下步骤,即步骤一至步骤二。
134.步骤一,针对单向无环图中的每一关系边,若该关系边所连接的两个节点均为第二类节点,则确定该关系边的权重为第一预设权重。
135.一个可选的实施例中,上述第一预设权重可以为0。针对上述单向无环图中的每一关系边,当该关系边所连接的两个节点满足上述情况二时,电子设备可以确定该关系边的权重为0。
136.步骤二,若关系边所连接的两个节点中包括第一类节点,则确定该关系边的权重为第二预设权重。
137.一个可选的实施例中,上述第二预设权重可以为除第一预设权重以外的任一数值,如1、2、3等数值。为便于理解,下面仅以第二预设权重为1为例进行说明,并不起任何限定作用。
138.针对上述单向无环图中的每一关系边,当该关系边所连接的两个节点满足上述情况一或情况三时,电子设备可以确定该关系边的权重为1。
139.为便于理解,仍以上述图2-a为例,结合图2-b对上述关系边的权重的确定进行说明。图2-b为图2-a所示的单向无环图中各关系边的权重的一种示意图。
140.针对上述图2-b每一关系边,例如节点a1与节点a3间的关系边,由于节点a1和节点a3均为第二类节点,因此,电子设备可以确定节点a1与节点a3间的关系边的权重为上述第一预设权重,即0;再例如节点a3与节点b间的关系边,由于节点b为上述第一类节点,因此,电子设备可以确定节点a3与节点b间的关系边的权重为上述第二预设权重,即1。以此类推,电子设备可以确定图2-a中每一关系边的权重,得到图2-b所示的每一关系边的权重。
141.在本技术实施例中,通过对上述第一预设权重和第二预设权重,电子设备可以根据每一关系所连接的两个节点的节点类型,准确确定出单向无环图中每一关系边的权重,从而便于后期对单向无环图的缩点处理。
142.在上述实施例中,上述步骤s104是在步骤s103之后执行的,除此以外,上述步骤s104还可以在步骤s103之前执行,或者与步骤s103同时执行。在此,对上述步骤s103和步骤s104的执行顺序不作具体限定。
143.针对上述步骤s105,即基于缩点中止节点、缩点起始节点和每一关系边的权重,对单向无环图中的节点进行缩点处理,得到缩点图。
144.在本步骤中,通过上述步骤s103对单向无环图中的缩点中止节点和缩点起始节点进行标记后,电子设备将对上述单向无环图的切分问题转换为对单向无环图中的节点进行缩点的问题。也就是根据单向无环图中的缩点起始节点和缩点中止节点,以及单向无环图中每一关系边的权重,在满足预设缩点规则情况下,单向无环图中的节点进行缩点处理,得到缩点图。
145.关于上述步骤s105中缩点处理的过程可参见下文描述,在此不作具体说明。
146.针对上述步骤s106,即基于缩点图对单向无环图进行切分,得到多个第一子计算图。
147.在本步骤中,通过上述步骤s105得到上述单向无环图对应的缩点图后,该缩点图中包括多个节点,以及各节点间的关系边。电子设备基于该缩点图,断开上述单向无环图中与缩点图中每一关系边对应的关系边,实现对单向无环图的切分,得到多个第一子计算图。
148.关于上述单向无环图的切分可参见下文描述,在此不作具体说明。
149.一个可选的实施例中,根据上述图1所示的方法,本技术实施例还提供了一种计算图切分方法。如图3所示,图3为本技术实施例提供的计算图切分方法的第二种流程示意图。在图3中,上述步骤s105细化为以下步骤。即步骤s1051-步骤s1055。
150.步骤s1051,基于单向无环图中每一关系边的权重,计算单向无环图中每两个第二类节点间的最长路径长度。
151.在本步骤中,电子设备可以根据上述步骤s104所确定出的每一关系边的权重,以及单向无环图的拓扑结构,计算单向无环图中每两个第二类节点间的最长路径长度。
152.一个可选的实施例中,上述步骤s1051,基于单向无环图中每一关系边的权重,计算单向无环图中每两个第二类节点间的最长路径长度,具体可以细化为以下步骤,即步骤一至步骤三。
153.步骤一,针对单向无环图中的每两个第二类节点,确定该两个第二类节点间的每一路径。
154.在本技术实施例中,根据单向无环图的拓扑结构不同,任意两个第二类节点间的路径的数量可以为空,如上述图2-a中节点a6到节点a7的路径即为空;也可以为1,如上述图2-a中节点a1到节点a2的路径即为1;可以为多个,如图2-a中节点a1到节点a8的路径即为3,具体表示为:路径一,a1-a2-a4-a6-a8,路径二,a1-a3-b-a7-a8,和路径三,a1-a3-a5-a7-a8。
155.电子设备可以根据上述单向无环图的拓扑结构,以及单向无环图中每一节点的节点类型,确定每两个第二类节点间的所有路径。
156.在本技术实施例中,根据单向无环图的拓扑结构的不同,任意两个第二类节点间的路径的数量不同,在此,对上述每两个第二类节点间的所有路径的数量不作具体限定。
157.步骤二,针对每一路径,根据该路径上每一关系边的权重,计算该两个第二类节点间的路径长度。
158.一个可选的实施例中,在计算上述路径长度时,电子设备可以计算该路径上每一关系边的权重的和值,作为该关系边的路径长度。
159.另一个可选的实施例中,在计算上述路径长度时,电子设备可以计算该路径上每一关系边的权重与该关系边的预设数值间的加权和,作为该关系边的路径长度。
160.上述预设数值可以为任一非零正整数。在此,对上述预设数值不作具体限定。
161.在本技术实施例中,对上述每一路径的路径长度的计算方式不作具体限定。
162.步骤三,将计算得到的路径长度中的最大值,确定为该两个第二类节点间的最长路径长度。
163.为便于理解,仍以上述路径长度表示为路径上权重的和值为例,结合图2-a进行说明。通过上述步骤一至步骤三,电子设备可以计算得到如表1所示的最长路径长度关系。
164.表1
165.节点a1a2a3a4a5a6a7a8a1-0000022a2
‑‑
不可达0不可达0不可达0a3
‑‑‑
不可达0不可达22a4
‑‑‑‑
不可达0不可达0a5
‑‑‑‑‑
不可达00a6
‑‑‑‑‑‑
不可达0a7
‑‑‑‑‑‑‑
0a8
‑‑‑‑‑‑‑‑
166.在表1中,节点均为上述第二类节点。由于图2-a为单向无环图,因此,第二类节点到第二类节点本身不存在路径,并且,子节点到父节点不存在路径,具体表示为上述表1中的-。上述表1中的0和2表示为两个第二类节点间的最长路径长度,例如,表1中第2行第9列的2表示为:节点a1到节点a8的最长路径长度为2。上述表1中的不可达表示为两个第二类节点间不存在路径,即路径数量为空,例如,表1中第3行第4列的不可达表示为:节点a2到节点a3的路径数量为空。
167.在本技术实施例中,电子设备在执行上述步骤一至步骤三时,可以通过预设路径算法计算得到上述每两个第二类节点间的最长路径长度。该预设路径算法包括但不限于弗
洛伊德(floyd)最长路算法、深度优先搜索算法、广度优先搜索算法,迪杰特斯拉(dijkstra)算法以及塔扬(tarjan)算法等。在此,对上述第二子计算图中各节点间的路径长度的计算方式不作具体限定。
168.步骤s1052,按照单向无环图的拓扑结构,将单向无环图中首个未进行缩点处理的第二类节点确定为第一节点,并判断第一节点和第二节点是否满足预设缩点规则,第二节点为第一节点的子节点。
169.在本技术实施例中,电子设备按照单向无环图的拓扑结构,将单向无环图中首个未进行缩点处理的第二类节点确定为第一节点。此时,电子设备可以基于单向无环图的拓扑结构,第一节点和第二节点对应的节点类型,以及第一节点和第二节点间关系边的权重,判断该第一节点与该第一节点的子节点(即第二节点)是否满足预设缩点规则。
170.在本技术实施例中,当第一节点为第一类目标节点时,上述预设缩点规则可以表示为:第一节点不是缩点中止节点,第二节点不是缩点起始节点,首个未进行缩点处理的第二类节点与第二节点间的最长路径长度为预设路径长度,且对第一节点和第二节点进行缩点处理后得到缩点图为单向无环图。
171.当第一节点为第二类目标节点时,上述预设缩点规则可以表示为:当第一节点为第二类目标节点时,第二节点为第二类节点,首个未进行缩点处理的第二类节点与第二节点间的最长路径长度为预设路径长度,且对第一节点和第二节点进行缩点处理后得到缩点图为单向无环图。
172.上述第一类目标节点为不存在父节点为第二类节点的第二类节点;第二类目标节点为除第一类目标节点以外的第二类节点。
173.在本技术实施例中,上述第一类目标节点可以表示为:单向无环图中不存在父节点的第二类节点,或者存在父节点、但父节点包括上述第一类节点的第二类节点。
174.例如,上述图2-a中的节点a1和节点a7,相应的,图2-a中除节点a1和节点a7以外的所有第二类节点均为上述第二类目标节点。
175.步骤s1053,在第一节点和第二节点满足预设缩点规则时,将第一节点和第二节点确定为待处理节点。
176.在本步骤中,当上述第一节点和第二节点满足上述预设缩点规则时,电子设备确定第一节点和第二节点可以缩点为一个节点。此时,电子设备可以将上述第一节点与第二节点确定为待处理节点。
177.一个可选的实施例中,当上述第一节点和第二节点不满足上述预设缩点规则时,电子设备确定第一节点和第二节点不可以缩点为一个节点。此时,电子设备可以将上述第一节点确定为待处理节点,对第二节点不作处理。
178.步骤s1054,若第二节点为第二类节点,则将第二节点作为第一节点,返回执行判断第一节点和第二节点是否满足预设缩点规则的步骤,直至第一节点和/或第二节点不满足预设缩点规则,将第一节点确定为待处理节点。
179.在本技术实施例中,上述第二节点的节点类型可以为上述第一类节点,也可以为上述第二类节点。
180.当上述第二节点为上述第二类节点时,电子设备可以将该第二节点确定为第一节点,并返回执行上述步骤s1051中的判断第一节点和第二节点是否满足预设缩点规则的步
骤,直至第一节点和/或第二节点不满足预设缩点规则,将第一节点确定为待处理节点。
181.在本技术实施例中,电子设备上述第二节点被确定为第一节点后,上述第一节点将变更为上述第二节点,相应的,第二节点将变更为更新后的第一节点的子节点。
182.一个可选的实施例中,当上述第二节点为上述第一类节点时,电子设备可以对该第二节点不作处理。
183.通过上述步骤s1053,电子设备所确定出的待处理节点的数量至少为一个。具体的,根据单向无环图的拓扑结构的不同,电子设备所确定出的待处理节点的数量也有所不同。在此,对上述待处理节点的数量不作具体限定。
184.步骤s1055,对待处理节点进行缩点处理,得到缩点处理后的单向无环图,并返回执行按照单向无环图的拓扑结构,将单向无环图中首个未进行缩点处理的第二类节点确定为第一节点的步骤,直至单向无环图中不包括未缩点处理的第二类节点,得到缩点图。
185.在本技术实施例中,通过上述步骤s1053电子设备可以确定出至少一个待处理节点,此时,电子设备可以对确定出的所有待处理节点进行缩点处理,得到缩点处理后的单向无环图。
186.一个可选的实施例中,当确定出的待处理节点的数量为一个时,该待处理节点即为缩点处理后的单向无环图中的进行缩点处理后的节点。
187.另一个可选的实施例中,当确定出的待处理节点的数量为多个时,电子设备可以将多个待处理节点缩点为一个节点。也就是在缩点处理后的单向无环图中多个待处理节点表示为一个节点。
188.在对上述待处理节点进行缩点处理后,电子设备可以返回执行上述步骤s1051,再一次对单向无环图中的节点进行所缩点处理,直至单向无环图中不包括未缩点处理的第二类节点。此时,电子设备可以将当前时刻缩点处理后的单向无环图确定为缩点图。
189.为便于理解,仍以上述图2-a为例,结合图2-c,对上述缩短处理过程进行说明。图2-c为图2-a所示单向无环图对应的缩点图。
190.电子设备在执行上述步骤s1052时,根据图2-a所示的单向无环图的拓扑结构,电子设备可以将节点a1确定为第一节点。由于节点a1的子节点包括节点a2和节点a3,即上述第二节点为节点a2和节点a3,因此,电子设备需要分别判断节点a1和节点a2是否满足预设缩点规则,以及判断节点a1和节点a2是否满足预设缩点规则。
191.在对节点a1和节点a2是否满足预设缩点规则进行判断时,由于第一节点(节点a1)为上述第一类目标节点,因此,预设缩点规则可以表示为:第一节点不是缩点中止节点,第二节点不是缩点起始节点,首个未进行缩点处理的第二类节点与第二节点间的最长路径长度为预设路径长度,且对第一节点和第二节点进行缩点处理后得到缩点图为单向无环图。根据该预设缩点规则,电子设备可以确定第一节点和第二节点满足该预设缩点规则,此时,节点a1和节点a2将被确定为待处理节点。
192.由于节点a2为上述第二类节点,因此,电子设备将执行上述步骤s1054,也就是将节点a2作为第一节点,此时,节点a4将作为第二节点。在重新确定第一节点和第二节点后,电子设备返回执行上述步骤s1052中的判断第一节点和第二节点是否满足预设缩点规则的步骤。
193.在对节点a2和节点a4是否满足预设缩点规则进行判断时,由于节点a2为第二类目
标节点,因此,上述预设缩点规则可以表示为:当第一节点为第二类目标节点时,第二节点为第二类节点,首个未进行缩点处理的第二类节点与第二节点间的最长路径长度为预设路径长度,且对第一节点和第二节点进行缩点处理后得到缩点图为单向无环图。此时,电子设备可以确定节点a2和节点a4满足预设缩点规则,电子设备可以将节点a2和节点a4确定为待处理节点。以此类推,在将图2-a中的节点a6确定为第一节点,节点a8确定为第二节点时,由于第一节点和第二节点间的最长路径长度不等于预设路径长度,因此,电子设备可以确定第一节点和第二节点不满足上述预设缩点规则。此时,电子设备仅可以将节点a6确定为待处理节点。
194.在对上述节点a1和节点a3是否满足预设缩点规则进行判断时,由于第一节点(节点a1)为上述第一类目标节点,因此,预设缩点规则可以表示为:第一节点不是缩点中止节点,第二节点不是缩点起始节点,首个未进行缩点处理的第二类节点与第二节点间的最长路径长度为预设路径长度,且对第一节点和第二节点进行缩点处理后得到缩点图为单向无环图。根据该预设缩点规则,电子设备可以确定第一节点和第二节点满足该预设缩点规则,此时,节点a1和节点a3将被确定为待处理节点。
195.由于节点a3为上述第二类节点,因此,电子设备将执行上述步骤s1054,也就是将节点a3作为第一节点,此时,节点b和节点a5将作为第二节点。在重新确定第一节点和第二节点后,电子设备返回执行上述步骤s1052中的判断第一节点和第二节点是否满足预设缩点规则的步骤。
196.在对上述节点a3和节点a5,以及节点a3和节点b是否满足预设缩点规则进行判断时,由于第一节点(节点a1)为上述第一类目标节点,因此,预设缩点规则可以表示为:第一节点不是缩点中止节点,第二节点不是缩点起始节点,第一节点与第二节点间关系边的权重为预设权重阈值,且对第一节点和第二节点进行缩点处理后得到缩点图为单向无环图。由于节点a3为上述缩点中止节点,因此,节点a3和节点a5,以及节点a3和节点b均不满足预设缩点规则,此时,电子设备可以仅可以将节点a3确定为待处理节点。
197.此时,电子设备确定出的待处理节点包括:节点a1、节点a2、节点a3、节点a4、节点a6。电子设备可以对确定出的待处理节点进行缩点处理,得到缩点处理后的单向无环图。
198.由于缩点处理后的单向无环图仍存在未进行缩点处理的第二类节点,即节点a5、节点a7和节点a8。此时,电子设备可以根据单向无环图的拓扑结构,将节点a5确定为上述第一节点。此时,电子设备可以返回执行上述步骤s1052,依次类推,直至缩点处理后的单向无环图仍不存在未进行缩点处理的第二类节点为止。此时,电子设备可以将当前缩点处理后的单向无环图,确定为上述单向无环图的缩点图,即图2-c所示的缩点图。
199.通过上述步骤s1051-步骤s1055,电子设备可以对单向无环图中的第二类节点进行缩点处理,实现从单向无环图的切分问题到等效的图论缩点问题的转换,降低了考虑单向无环图中各节点间的依赖关系对缩点过程的影响,这使得在根据缩点处理得到缩点图对单向无环图进行切分时,大大增加了各节点间依赖关系被打破的概率,从而在实现对网络模型中待优化部分的计算图的进行切分的同时,使得切分得到的各子计算图间的依赖关系较低。
200.针对上述步骤s106,电子设备通过上述步骤s1051-步骤s1055得到缩点图后,电子设备可以基于该缩点图,对上述单向无环图进行切分,得到多个第一子计算图。具体的,电
子设备可以从上述单向无环图中切分出缩点图中的每一节点对应的子计算图,作为第一计算图。
201.为便于理解,仍以上述图2-c为例,结合图2-d进行说明,图2-d为图2-a所示单向无环图切分得到的子计算图。
202.根据图2-a所示的缩点图,电子设备可以将上述图2-a中的节点a1、节点a2、节点a3、节点a4和节点a6切分为一个第一子计算图,即图2-d中的子计算图1;将节点b切分为一个第一子计算图,即图2-d中的子计算图2,将节点a3切分为一个第一子计算图,即图2-d中的子计算图3,并将节点a7和节点a8切分为一个第一子计算图,即图2-d中的子计算图4。
203.在本技术实施例中,上述缩点中止节点和缩点起始节点是针对每一第一类节点的父节点和子节点中的第二类节点进行标记的,也就是单向无环图中连续连接多个第二类节点中的中间节点并不会标记为缩点中止节点或缩点起始节点,这大大增加了单向无环图中连续连接多个第二类节点被切分至同一在计算图的概率,从而降低了切分得到的子计算图的数量。也就是在实现对网络模型中待优化部分的计算图的进行切分的同时,使得切分得到的各子计算图的数量较少。
204.为便于理解,结合图4-a、图4-b和图4-c为例进行说明。图4-a为某一网络模型对应的计算图的一种示意图;图4-b为采用相关技术进行计算图切分得到的各子计算图的一种示意图;图4-c为采用本技术实施例进行计算图切分得到的各子计算图的一种示意图。
205.在图4-a中,上述第一类节点为节点b,第二类节点a1-节点a7。在图4-b中,图4-a所示计算图被切分为5个子计算图,即子计算图1-子计算图5。在图4-c中,图4-a所示计算图被切分为4个子计算图,即子计算图1-子计算图4。采用本技术实施例切分得到的子计算子图的数量有所降低,其中,子计算图2中包括的节点的数量有所增加。
206.在图4-b中,节点a2、节点a3和节点a5被划分值同一子计算图,即图4-b所示的子计算图2,节点a7被划分至另一子计算图,即图4-b所示的子计算图5。而在图4-c中,节点a2、节点a3、节点a5和节点a7却被划分至同一子计算图,即图4-c所示的子计算图2。因此,图4-c中切分得到的子计算图的数量少于图4-b中切分得到的子计算图的数量,这使得图4-c中子计算图2所包括的节点数量较多。后期电子设备在针对每一子计算图中各节点所对应的算子进行算子融合时,图4-c中子计算图2中所有节点所对应的算子可以融合为一个算子,这使得尽可能多的算子可以被融合为一个算子,从而提高网络模型的处理效率。
207.在本技术实施例中,根据图论算法中缩点算法,针对单向无环图中每一第一类节点,通过将该第一节点所对应的父节点和子节点中的第二类节点标记为缩点中止节点和缩点起始节点,从而将计算图切分问题转化为等效的图论缩点问题,这使得在基于单向无环图中的缩点中止节点和缩点起始节点,对该单向无环图进行切分时,可以不考虑各节点间的依赖关系,大大增加了各节点间依赖关系被打破的概率,从而在实现对网络模型中待优化部分的计算图的进行切分的同时,使得切分得到的各子计算图间的依赖关系较低。
208.为便于理解,结合图5-a、图5-b和图5-c为例进行说明。图5-a为某一网络模型对应的计算图的一种示意图;图5-b为采用相关技术进行计算图切分得到的各子计算图的一种示意图;图5-c为采用本技术实施例进行计算图切分得到的各子计算图的一种示意图。
209.在图5-a中,上述第一类节点为节点b,第二类节点a1-节点a5。在图5-b中,图5-a所示计算图被切分为3个子计算图,即子计算图1-子计算图3。在图5-c中,图5-a所示计算图被
切分为4个子计算图,即子计算图1-子计算图4。虽然图5-c切分得到的子计算图的数量大于图5-b切分得到的子计算图的数量,但是,在图5-b中,子计算图2的输入依赖子计算图1中节点a2的输出。这使得子计算图2必须在子计算图1执行后执行,也就是在节点a3所对应的算子执行后执行,增大了子计算图1中节点a3与节点b间的依赖关系。
210.然而,在图5-c中,由于节点a3和节点b被划分至不同的子计算图,即图5-c所示的子计算图2和子计算图3,这有效降低了子计算图2节点a3与子计算图3中节点b之间的依赖关系。
211.另外,在图5-b中,子计算图2必须在子计算图1执行完毕后,根据节点a2的输出执行节点b所对应的处理过程,并且,节点a4的执行也必须根据节点a3和节点b的输出才能执行,也就是子计算图3必须在子计算图2执行完毕后执行。但是,在图5-c中,子计算图2和子计算图3的执行均是依赖子计算图1中的节点a2的输出,由于子计算图2和子计算图3属于两个子计算图,因此,在子计算图1执行完毕后,子计算图2和子计算图3可以并行执行,有效提高了网络模型的进行训练和推理的处理效率。
212.一个可选的实施例中,根据图1所示的方法,本技术实施例还提供了一种计算图切分方法。如图6所示,图6为本技术实施例提供的计算图切分方法的第三种流程示意图。该方法包括以下步骤。
213.步骤s601,获取网络模型中待优化部分对应的单向无环图,单向无环图中包括多个节点,以及各节点间的关系边,多个节点和待优化部分中的算子一一对应。
214.步骤s602,确定多个节点中对应算子的预设优化类别为不参与算子融合的节点,作为第一类节点。
215.步骤s603,针对每一第一类节点,将该第一类节点的父节点中的第二类节点标记为缩点中止节点,并将该第一类节点的子节点中的第二类节点标记为缩点起始节点,其中,第二类节点为多个节点中除第一类节点以外的其他节点。
216.步骤s604,根据单向无环图中每一关系边连接的两个节点的节点类型,确定该关系边的权重。
217.步骤s605,基于缩点中止节点、缩点起始节点和每一关系边的权重,对单向无环图中的节点进行缩点处理,得到缩点图。
218.步骤s606,基于缩点图对单向无环图进行切分,得到多个第一子计算图。
219.上述步骤s601-步骤s606与上述步骤s101-步骤s106相同。
220.步骤s607,针对每一第二子计算图,根据该第二子计算图中每一节点对应算子的算子类别,对该第二子计算图中第二类节点对应的算子进行算子融合,得到包括融合算子的第三子计算图;第二子计算图为包括多个第二类节点的第一子计算图。
221.在本步骤中,电子设备对上述单向无环图进行切分得到多个第一子计算图后,可以针对多个第一子计算图中的每一第二子计算图,根据第二子计算图中每一第二类节点对应算子的算子类别,对算子类别为预设算子类别的算子进行算子融合,得到包括融合算子的第三子计算图。
222.上述预设算子类别可以根据用户需求、具体应用场景等进行设置,在此,对上述预设算子类别不作具体限定。
223.在本技术实施例中,上述算子融合过程是指将网络模型中的多个计算单元合并至
一个计算核中,得到一个核函数,即上述融合算子。
224.为便于理解,结合图7-a和图7-b为例进行说明。图7-a为本技术实施例提供的逻辑融合过程的一种示意图;图7-b为本技术实施例提供的内存融合过程的一种示意图。
225.在图7-a中,在左侧所示的网络模型结构中依次包括输入算子、conv算子、输出算子、输入算子、批标准化(batch normalization,bn)算子、输出算子。当conv算子和bn算子所对应的节点为在同一子计算图中的通过某一关系边连接的两个第二类节点。当上述预设算子类别包括conv算子和bn算子时,电子设备可以对conv算子和bn算子进行算子融合,得到如左侧所示的网络模型结构,该网络模型结构包括输入算子、convbn算子、输出算子。
226.在图7-a中,通过对conv算子和bn算子的逻辑融合,可以是使得融合得到的convbn算子的计算逻辑等同于conv算子和bn算子共同作用时的计算逻辑,从而降低逻辑计算的频次。
227.在图7-b中,在左侧所示的网络模型结构中依次包括输入算子、乘(mul)算子、输出算子、输入算子、加(add)算子、输出算子。当mul算子和add算子所对应的节点为在同一子计算图中的通过某一关系边连接的两个第二类节点。上述预设算子类别包括mul算子和add算子时,电子设备可以对mul算子和add算子进行算子融合,得到如左侧所示的网络模型结构,该网络模型结构包括输入算子、mul+add算子、输出算子。
228.在图7-b中,mul算子和add算子的内存融合,可以使得融合得到的mul+add算子的计算效果等同于mul算子和add算子共同作用时的计算效果。
229.在本技术实施例中,通过上述对上述第二子计算图中的第二类节点对应算子的算子融合,可以有效避免中间数据的数据搬移过程,节省了逻辑执行或数据计算等所需的时间和资源。
230.一个可选的实施例中,根据图6所示的方法,本技术实施例还提供了一种计算图切分方法。如图8所示,图8为本技术实施例提供的计算图切分方法的第四种流程示意图。该方法增加了以下步骤,即步骤s608-步骤s609。
231.步骤s608,按照单向无环图的拓扑结构,对多个第一子计算图中除第二子计算图以外的第一子计算图,以及第三子计算图进行组合,得到优化后的待优化部分。
232.上述多个第一子计算中除第二子计算图以外的第一子计算图还可以包括:仅包含一个第二类节点的第一子计算图,和/或仅包含第一类节点的第一子计算图。
233.电子设备对上述多个第一子计算图中的第二子计算图进行算子融合得到第三子计算图后,可以根据上述单向无环图中各节点间的依赖关系,也就是根据单向无环图中各节点间的连接关系,电子设备可以对多个第一子计算图中除第二子计算图以外的第一子计算图,以及第三计算图进行组合,得到优化后的待优化部分。
234.为便于理解,仍以上述图2-d为例,结合图9为例进行说明。图9为图2-d中各子计算图进行算子融合后组合得到的计算图。
235.通过上述步骤s607-步骤s608,图2-d中的节点a1、节点a2、节点a3、节点a4和节点a6所对应的算子被融合为一个融合算子,即图9中的融合算子1所对应的节点;图2-d中的节点a7和节点a8所对应的算子被融合为一个融合算子,即图9中的融合算子2所对应的节点。此时,电子设备根据图2-a中各节点间的依赖关系,对算子融合后的各子计算图进行组合可以得到如图9所示的计算图。该计算图所对应的网络模型即为上述待优化部分优化后得到
的网络模型结构。
236.步骤s609,调用优化后的待优化部分。
237.在本步骤中,电子设备可以调用上述优化后的待优化部分,从而完成对上述网络模型的训练及推理。
238.为便于理解,以上述网络模型为人脸识别模型为例进行说明。现假设该人脸识别模型的待优化部分中包括5个连续的卷积池化层,每一卷积池化层的算子构成为:输入算子-卷积算子-输出算子-输入算子-池化算子-输出算子。通过上述步骤s601-步骤s607,人脸识别模型所包括的5个连续的卷积池化层中的所有算子被融合至一个算子,即卷积池化算子。在对该人脸识别模型进行训练和推理等处理时,电子设备在对人脸图像进行特征提取,即对人脸图像进行卷积和池化操作时,可以直接利用融合得到的卷积池化算子对人脸图像进行处理,完成特征提取过程,并继续后续的处理过程。
239.通过上述步骤s608-步骤s609,电子设备通过调用优化后的待优化部分,在实现对网络模型优化的同时,可以有效降低网络模型训练及推理过程中的数据搬移过程,提高网络模型训练及推理的效率,节约系统的计算资源。
240.上述实施例仅以网络模型为人脸识别模型为例,对待优化部分的调用进行说明。除此以外,上述网络模型还可以为语音识别模型、行为识别模型等,根据网络模型的应用场景的不同,上述网络模型也有所不同,在此,对上述网络模型不作具体限定。
241.基于同一种发明构思,根据上述本技术实施例提供的计算图切分方法,本技术实施例还提供了一种计算图切分装置。如图10所示,图10为本技术实施例提供的计算图切分装置的一种结构示意图。该装置可以包括以下模块。
242.获取模块1001,用于获取网络模型中待优化部分对应的单向无环图,单向无环图中包括多个节点,以及各节点间的关系边,多个节点和待优化部分中的算子一一对应;
243.第一确定模块1002,用于确定多个节点中对应算子的预设优化类别为不参与算子融合的节点,作为第一类节点;
244.标记模块1003,用于针对每一第一类节点,将该第一类节点的父节点中的第二类节点标记为缩点中止节点,并将该第一类节点的子节点中的第二类节点标记为缩点起始节点,其中,第二类节点为多个节点中除第一类节点以外的其他节点;
245.第二确定模块1004,用于根据单向无环图中每一关系边连接的两个节点的节点类型,确定该关系边的权重;
246.处理模块1005,用于基于缩点中止节点、缩点起始节点和每一关系边的权重,对单向无环图中的节点进行缩点处理,得到缩点图;
247.切分模块1006,用于基于缩点图对单向无环图进行切分,得到多个第一子计算图。
248.可选的,上述处理模块1005,包括:
249.计算子模块,用于基于单向无环图中每一关系边的权重,计算单向无环图中每两个第二类节点间的最长路径长度;
250.判断子模块,用于按照单向无环图的拓扑结构,将单向无环图中首个未进行缩点处理的第二类节点确定为第一节点,并判断第一节点和第二节点是否满足预设缩点规则,第二节点为第一节点的子节点;
251.确定子模块,用于在第一节点和第二节点满足预设缩点规则时,将第一节点和第
二节点确定为待处理节点;
252.调用子模块,用于若第二节点为第二类节点,则将第二节点作为第一节点,调用判断子模块返回执行判断第一节点和第二节点是否满足预设缩点规则的步骤,直至第一节点和/或第二节点不满足预设缩点规则,将第一节点确定为待处理节点;
253.处理子模块,用于对待处理节点进行缩点处理,得到缩点处理后的单向无环图,并调用判断子模块返回执行按照单向无环图的拓扑结构,将单向无环图中首个未进行缩点处理的第二类节点确定为第一节点的步骤,直至单向无环图中不包括未缩点处理的第二类节点,得到缩点图;
254.预设缩点规则包括:当第一节点为第一类目标节点时,第一节点不是缩点中止节点,第二节点不是缩点起始节点,首个未进行缩点处理的第二类节点与第二节点间的最长路径长度为预设路径长度,且对第一节点和第二节点进行缩点处理后得到缩点图为单向无环图;当第一节点为第二类目标节点时,第二节点为第二类节点,首个未进行缩点处理的第二类节点与第二节点间的最长路径长度为预设路径长度,且对第一节点和第二节点进行缩点处理后得到缩点图为单向无环图;
255.其中,第一类目标节点为不存在父节点为第二类节点的第二类节点;第二类目标节点为除第一类目标节点以外的第二类节点。
256.可选的,上述计算子模块,具体可以用于针对单向无环图中的每两个第二类节点,确定该两个第二类节点间的每一路径;
257.针对每一路径,根据该路径上每一关系边的权重,计算该两个第二类节点间的路径长度;
258.将计算得到的路径长度中的最大值,确定为该两个第二类节点间的最长路径长度。
259.可选的,上述第二确定模块1004,具体可以用于针对单向无环图中的每一关系边,若该关系边所连接的两个节点均为第二类节点,则确定该关系边的权重为第一预设权重;
260.若关系边所连接的两个节点中包括第一类节点,则确定该关系边的权重为第二预设权重。
261.可选的,上述计算图切分装置还可以包括:
262.融合模块,用于针对每一第二子计算图,根据该第二子计算图中每一节点对应算子的算子类别,对该第二子计算图中第二类节点对应的算子进行算子融合,得到包括融合算子的第三子计算图;第二子计算图为包括多个第二类节点的第一子计算图。
263.可选的,上述计算图切分装置还可以包括:
264.组合模块,用于按照单向无环图的拓扑结构,对多个第一子计算图中除第二子计算图以外的第一子计算图,以及第三子计算图进行组合,得到优化后的待优化部分;
265.调用模块,用于调用优化后的待优化部分。
266.通过本技术实施例提供的装置,在对网络模型的待优化部分对应的单向无环图进行切分的过程中,针对该单向无环图中每一第一类节点,也就是针对该单向无环图中对应算子不参与后续算子融合过程的每一节点,分别将该节点的父节点和子节点中的第二类节点标记为缩点中止节点和缩点起始节点,从而基于单向无环图中的缩点起始节点、缩点中止节点以及该单向无环图中每一关系边的权重,对该单向无环图中的节点进行缩点处理得
到缩点图,从而基于该缩点图对单向无环图进行切分,实现对网络模型中待优化部分的计算图的切分。
267.在本技术实施例中,根据单向无向图的拓扑结构,以及每一节点的节点类型,按照图论算法中缩点方法,对单向无环图中的缩点中止节点和缩点起始节点进行标记,使得可以基于标记得到的缩点起始节点和缩点中止节点,以及每一关系边的权重,将单向无环图的切分问题转化为等效的图论缩点问题。由于缩点过程中不需要考虑单向无环图中各节点间的依赖关系,这使得在根据缩点处理得到缩点图对单向无环图进行切分时,大大增加了各节点间依赖关系被打破的概率,从而在实现对网络模型中待优化部分的计算图的进行切分的同时,使得切分得到的各子计算图间的依赖关系较低,这大大提高了切分得到的各子计算图并行处理的概率,从而提高网络模型的处理效率。
268.另外,上述缩点中止节点和缩点起始节点是针对每一第一类节点的父节点和子节点中的第二类节点进行标记的,也就是单向无环图中连续连接多个第二类节点中的中间节点并不会标记为缩点中止节点或缩点起始节点,有效提高了相同节点类型的第二类节点被缩点处理为一个节点的概率,降低了不同节点类型被缩点处理为一个节点的概率,大大增加了连续连接多个第二类节点被切分至同一子计算图的概率,从而降低了切分得到的子计算图的数量。也就是在实现对网络模型中待优化部分的单向无环图的进行切分的同时,使得切分得到的各子计算图的数量较少。通过控制切分得到的子计算图的数量,可以使得每一子计算图包括尽可能多的节点,从而便于后期的算子融合过程,使得尽可能多的算子可以融合为一个算子,进而提高网络模型的处理效率。
269.再者,上述第一类节点为对应算子的预设优化类别为不参与算子融合的节点,第二类节点为单向无环图中除第一类节点以外的其他节点,也就是第二类节点为对应算子的预设优化类别为参与算子融合的节点,这将为后期算子融合过程奠定基础,便于后期算子融合过程的进行,提高模型优化效率。
270.基于同一种发明构思,根据上述本技术实施例提供的计算图切分方法,本技术实施例还提供了一种电子设备,如图11所示,包括处理器1101、通信接口1102、存储器1103和通信总线1104,其中,处理器1101,通信接口1102,存储器1103通过通信总线1104完成相互间的通信,
271.存储器1103,用于存放计算机程序;
272.处理器1101,用于执行存储器1103上所存放的程序时,实现如下步骤:
273.获取网络模型中待优化部分对应的单向无环图,单向无环图中包括多个节点,以及各节点间的关系边,多个节点和待优化部分中的算子一一对应;
274.确定多个节点中对应算子的预设优化类别为不参与算子融合的节点,作为第一类节点;
275.针对每一第一类节点,将该第一类节点的父节点中的第二类节点标记为缩点中止节点,并将该第一类节点的子节点中的第二类节点标记为缩点起始节点,其中,第二类节点为多个节点中除第一类节点以外的其他节点;
276.根据单向无环图中每一关系边连接的两个节点的节点类型,确定该关系边的权重;
277.基于缩点中止节点、缩点起始节点和每一关系边的权重,对单向无环图中的节点
进行缩点处理,得到缩点图;
278.基于缩点图对单向无环图进行切分,得到多个第一子计算图。
279.通过本技术实施例提供的电子设备,在对网络模型的待优化部分对应的单向无环图进行切分的过程中,针对该单向无环图中每一第一类节点,也就是针对该单向无环图中对应算子不参与后续算子融合过程的每一节点,分别将该节点的父节点和子节点中的第二类节点标记为缩点中止节点和缩点起始节点,从而基于单向无环图中的缩点起始节点、缩点中止节点以及该单向无环图中每一关系边的权重,对该单向无环图中的节点进行缩点处理得到缩点图,从而基于该缩点图对单向无环图进行切分,实现对网络模型中待优化部分的计算图的切分。
280.在本技术实施例中,根据单向无向图的拓扑结构,以及每一节点的节点类型,按照图论算法中缩点方法,对单向无环图中的缩点中止节点和缩点起始节点进行标记,使得可以基于标记得到的缩点起始节点和缩点中止节点,以及每一关系边的权重,将单向无环图的切分问题转化为等效的图论缩点问题。由于缩点过程中不需要考虑单向无环图中各节点间的依赖关系,这使得在根据缩点处理得到缩点图对单向无环图进行切分时,大大增加了各节点间依赖关系被打破的概率,从而在实现对网络模型中待优化部分的计算图的进行切分的同时,使得切分得到的各子计算图间的依赖关系较低,这大大提高了切分得到的各子计算图并行处理的概率,从而提高网络模型的处理效率。
281.另外,上述缩点中止节点和缩点起始节点是针对每一第一类节点的父节点和子节点中的第二类节点进行标记的,也就是单向无环图中连续连接多个第二类节点中的中间节点并不会标记为缩点中止节点或缩点起始节点,有效提高了相同节点类型的第二类节点被缩点处理为一个节点的概率,降低了不同节点类型被缩点处理为一个节点的概率,大大增加了连续连接多个第二类节点被切分至同一子计算图的概率,从而降低了切分得到的子计算图的数量。也就是在实现对网络模型中待优化部分的单向无环图的进行切分的同时,使得切分得到的各子计算图的数量较少。通过控制切分得到的子计算图的数量,可以使得每一子计算图包括尽可能多的节点,从而便于后期的算子融合过程,使得尽可能多的算子可以融合为一个算子,进而提高网络模型的处理效率。
282.再者,上述第一类节点为对应算子的预设优化类别为不参与算子融合的节点,第二类节点为单向无环图中除第一类节点以外的其他节点,也就是第二类节点为对应算子的预设优化类别为参与算子融合的节点,这将为后期算子融合过程奠定基础,便于后期算子融合过程的进行,提高模型优化效率。
283.上述电子设备提到的通信总线可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
284.通信接口用于上述电子设备与其他设备之间的通信。
285.存储器可以包括随机存取存储器(random access memory,ram),也可以包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
286.上述的处理器可以是通用处理器,包括中央处理器(central processing unit,
cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
287.基于同一种发明构思,根据上述本技术实施例提供的计算图切分方法,本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一计算图切分方法的步骤。
288.基于同一种发明构思,根据上述本技术实施例提供的计算图切分方法,本技术实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一计算图切分方法。
289.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
290.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
291.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质及计算机程序产品等实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
292.以上所述仅为本技术的较佳实施例,并非用于限定本技术的保护范围。凡在本技术的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本技术的保护范围内。
技术特征:
1.一种计算图切分方法,其特征在于,所述方法包括:获取网络模型中待优化部分对应的单向无环图,所述单向无环图中包括多个节点,以及各节点间的关系边,所述多个节点和待优化部分中的算子一一对应;确定所述多个节点中对应算子的预设优化类别为不参与算子融合的节点,作为第一类节点;针对每一第一类节点,将该第一类节点的父节点中的第二类节点标记为缩点中止节点,并将该第一类节点的子节点中的第二类节点标记为缩点起始节点,其中,所述第二类节点为所述多个节点中除所述第一类节点以外的其他节点;根据所述单向无环图中每一关系边连接的两个节点的节点类型,确定该关系边的权重;基于所述缩点中止节点、所述缩点起始节点和每一关系边的权重,对所述单向无环图中的节点进行缩点处理,得到缩点图;基于所述缩点图对所述单向无环图进行切分,得到多个第一子计算图。2.根据权利要求1所述的方法,其特征在于,所述基于所述缩点中止节点、所述缩点起始节点和每一关系边的权重,对所述单向无环图中的节点进行缩点处理,得到缩点图的步骤,包括:基于所述单向无环图中每一关系边的权重,计算所述单向无环图中每两个第二类节点间的最长路径长度;按照所述单向无环图的拓扑结构,将所述单向无环图中首个未进行缩点处理的第二类节点确定为第一节点,并判断所述第一节点和第二节点是否满足预设缩点规则,所述第二节点为所述第一节点的子节点;在所述第一节点和所述第二节点满足所述预设缩点规则时,将所述第一节点和所述第二节点确定为待处理节点;若所述第二节点为所述第二类节点,则将所述第二节点作为所述第一节点,返回执行所述判断所述第一节点和第二节点是否满足预设缩点规则的步骤,直至所述第一节点和/或所述第二节点不满足所述预设缩点规则,将所述第一节点确定为所述待处理节点;对所述待处理节点进行缩点处理,得到缩点处理后的单向无环图,并返回执行所述按照所述单向无环图的拓扑结构,将所述单向无环图中首个未进行缩点处理的第二类节点确定为第一节点的步骤,直至所述单向无环图中不包括未缩点处理的第二类节点,得到缩点图;所述预设缩点规则包括:当所述第一节点为第一类目标节点时,所述第一节点不是所述缩点中止节点,所述第二节点不是所述缩点起始节点,所述首个未进行缩点处理的第二类节点与所述第二节点间的最长路径长度为预设路径长度,且对所述第一节点和所述第二节点进行缩点处理后得到缩点图为单向无环图;当所述第一节点为第二类目标节点时,所述第二节点为所述第二类节点,所述首个未进行缩点处理的第二类节点与所述第二节点间的最长路径长度为预设路径长度,且对所述第一节点和所述第二节点进行缩点处理后得到缩点图为单向无环图;其中,所述第一类目标节点为不存在父节点为所述第二类节点的第二类节点;所述第二类目标节点为除所述第一类目标节点以外的第二类节点。
3.根据权利要求2所述的方法,其特征在于,所述基于所述单向无环图中每一关系边的权重,计算所述单向无环图中每两个第二类节点间的最长路径长度的步骤,包括:针对所述单向无环图中的每两个第二类节点,确定该两个第二类节点间的每一路径;针对每一路径,根据该路径上每一关系边的权重,计算该两个第二类节点间的路径长度;将计算得到的路径长度中的最大值,确定为该两个第二类节点间的最长路径长度。4.根据权利要求1所述的方法,其特征在于,所述根据所述单向无环图中每一关系边连接的两个节点的节点类型,确定该关系边的权重的步骤,包括:针对所述单向无环图中的每一关系边,若该关系边所连接的两个节点均为所述第二类节点,则确定该关系边的权重为第一预设权重;若关系边所连接的两个节点中包括所述第一类节点,则确定该关系边的权重为第二预设权重。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:针对每一第二子计算图,根据该第二子计算图中每一节点对应算子的算子类别,对该第二子计算图中第二类节点对应的算子进行算子融合,得到包括融合算子的第三子计算图;所述第二子计算图为包括多个第二类节点的第一子计算图。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:按照所述单向无环图的拓扑结构,对所述多个第一子计算图中除所述第二子计算图以外的第一子计算图,以及所述第三子计算图进行组合,得到优化后的待优化部分;调用所述优化后的待优化部分。7.一种计算图切分装置,其特征在于,所述装置包括:获取模块,用于获取网络模型中待优化部分对应的单向无环图,所述单向无环图中包括多个节点,以及各节点间的关系边,所述多个节点和待优化部分中的算子一一对应;第一确定模块,用于确定所述多个节点中对应算子的预设优化类别为不参与算子融合的节点,作为第一类节点;标记模块,用于针对每一第一类节点,将该第一类节点的父节点中的第二类节点标记为缩点中止节点,并将该第一类节点的子节点中的第二类节点标记为缩点起始节点,其中,所述第二类节点为所述多个节点中除所述第一类节点以外的其他节点;第二确定模块,用于根据所述单向无环图中每一关系边连接的两个节点的节点类型,确定该关系边的权重;处理模块,用于基于所述缩点中止节点、所述缩点起始节点和每一关系边的权重,对所述单向无环图中的节点进行缩点处理,得到缩点图;切分模块,用于基于所述缩点图对所述单向无环图进行切分,得到多个第一子计算图。8.根据权利要求7所述的装置,其特征在于,所述处理模块,包括:计算子模块,用于基于所述单向无环图中每一关系边的权重,计算所述单向无环图中每两个第二类节点间的最长路径长度;判断子模块,用于按照所述单向无环图的拓扑结构,将所述单向无环图中首个未进行缩点处理的第二类节点确定为第一节点,并判断所述第一节点和第二节点是否满足预设缩点规则,所述第二节点为所述第一节点的子节点;
确定子模块,用于在所述第一节点和所述第二节点满足所述预设缩点规则时,将所述第一节点和所述第二节点确定为待处理节点;调用子模块,用于若所述第二节点为所述第二类节点,则将所述第二节点作为所述第一节点,调用所述判断子模块返回执行所述判断所述第一节点和第二节点是否满足预设缩点规则的步骤,直至所述第一节点和/或所述第二节点不满足所述预设缩点规则,将所述第一节点确定为所述待处理节点;处理子模块,用于对所述待处理节点进行缩点处理,得到缩点处理后的单向无环图,并调用所述判断子模块返回执行所述按照所述单向无环图的拓扑结构,将所述单向无环图中首个未进行缩点处理的第二类节点确定为第一节点的步骤,直至所述单向无环图中不包括未缩点处理的第二类节点,得到缩点图;所述预设缩点规则包括:当所述第一节点为第一类目标节点时,所述第一节点不是所述缩点中止节点,所述第二节点不是所述缩点起始节点,所述首个未进行缩点处理的第二类节点与所述第二节点间的最长路径长度为预设路径长度,且对所述第一节点和所述第二节点进行缩点处理后得到缩点图为单向无环图;当所述第一节点为第二类目标节点时,所述第二节点为所述第二类节点,所述首个未进行缩点处理的第二类节点与所述第二节点间的最长路径长度为预设路径长度,且对所述第一节点和所述第二节点进行缩点处理后得到缩点图为单向无环图;其中,所述第一类目标节点为不存在父节点为所述第二类节点的第二类节点;所述第二类目标节点为除所述第一类目标节点以外的第二类节点。9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现权利要求1-6任一所述的方法步骤。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6任一所述的方法步骤。
技术总结
本申请实施例提供了一种计算图切分方法、装置、电子设备及存储介质。获取单向无环图;确定算子的预设优化类别为不参与算子融合的节点,作为第一类节点;针对每一第一类节点,将该第一类节点的父节点中的第二类节点标记为缩点中止节点,将该第一类节点的子节点中的第二类节点标记为缩点起始节点;根据每一关系边连接的两个节点的节点类型,确定该关系边的权重;基于缩点中止节点、缩点起始节点和每一关系边的权重进行缩点处理,得到缩点图;基于缩点图对单向无环图进行切分,得到多个第一子计算图。通过本申请实施例提供的技术方案,使得切分得到的各子计算图间的依赖关系较低,以及切分得到的子计算图的数量较少,从而提高网络模型的处理效率。模型的处理效率。模型的处理效率。
技术研发人员:张云铭 屠震元 李鹏飞 周智强 叶挺群
受保护的技术使用者:杭州海康威视数字技术股份有限公司
技术研发日:2022.03.22
技术公布日:2023/10/11
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
