数据处理方法、装置、电子设备及存储介质与流程

文档序号:30978262发布日期:2022-08-02 23:56阅读:74来源:国知局
数据处理方法、装置、电子设备及存储介质与流程

1.本公开涉及数据处理技术领域,尤其涉及数据处理方法、装置、电子设备及存储介质。


背景技术:

2.数据流图(data flow diagram,dfd)是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,数据流图以图形方式表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程。
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.图1是根据一示例性实施例示出的一种数据处理方法的流程图一;
55.图2是根据一示例性实施例示出的一种数据处理方法中目标数据流图的示意图;
56.图3是根据一示例性实施例示出的一种数据处理方法的流程图二;
57.图4是根据一示例性实施例示出的一种数据处理方法的流程图三;
58.图5是根据一示例性实施例示出的一种数据处理装置的框图;
59.图6是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
60.为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
61.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
62.图1是根据一示例性实施例示出的一种数据处理方法的流程图,包括以下步骤。
63.在步骤s11中,获取目标应用对应的目标数据流图中各个节点分别对应的性能指标信息;所述目标数据流图包括节点以及所述节点间的数据流的链路,所述目标数据流图用于描述数据在所述节点和所述节点间的数据流的链路间的逻辑运算过程。
64.在本步骤中,对目标应用的类型不做具体限定。例如,目标应用可以是视频应用、即时通信应用、浏览器应用、教育应用、直播应用等,目标应用可以与执行某种任务的机器学习模型相对应,将机器学习模型以数据流图的方式提交到电子设备上,该电子设备可以为移动终端,从而在电子设备上会存在有目标应用对应的目标数据流图。目标数据流图由节点以及节点间的数据流的链路组成,其中节点表示数据处理操作,不同的节点可以对应相同或不同的数据处理操作。具体地包括输入节点、加工处理节点和输出节点,加工处理节点包括但不限于加法操作、乘法操作或构建变量的初始值操作。节点间的数据流的链路代表数据间的依赖关系,进行数据值的传递,如一个节点的运算输出成为另一个节点的输入,两个节点之间有tensor(张量)流动,即目标数据流图用于描述数据在节点和节点间的数据流的链路间的逻辑运算过程。
65.目标数据流图中的每个节点存在各自对应的性能指标信息,性能指标信息为用于表征节点性能的指标数据。具体地,性能指标信息可以为关于计算复杂度的数据,或关于执行时间的数据。在获取到目标数据流图中各个节点分别对应的性能指标信息后,即可以利用性能指标信息对节点进行评价。
66.在一实施例中,所述步骤s11获取目标应用对应的目标数据流图中各个节点分别对应的性能指标信息,包括:
67.在步骤s111中,针对目标应用对应的目标数据流图中每一个节点:确定所述节点对应的关联节点,所述节点与所述关联节点之间存在数据输入关系或数据输出关系。
68.在本步骤中,不同的节点存在不同的输入节点和输出节点,因此根据目标数据流图中节点间的数据流的链路,可以确定与节点存在数据输入关系或数据输出关系的关联节点。
69.在一种可能的实现方式中,关联节点为数据输入节点,则确定每一个节点分别对应的关联节点具体为确定每一节点分别对应的所有数据输入节点。举例来说,存在如图2所述的目标数据流图,图中字母a至字母g分别代表节点a至节点g,节点间的连线即为节点间的数据流的链路,箭头的方向即为数据的流向,在图2中节点b的数据输入节点有节点a,即节点a为节点b的关联节点;节点c的数据输入节点有节点a和节点b,即节点a和节点b为节点c的关联节点;节点d的数据输入节点有节点a、节点b和节点c,即节点a、节点b和节点c为节点d的关联节点;节点e的数据输入节点有节点a,即节点a为节点e的关联节点;节点f的数据输入节点有节点a和节点e,即节点a和节点e为节点f的关联节点;节点g的数据输入节点有节点a至节点f,即节点a至节点f均为节点g的关联节点。
70.在一种可能的实现方式中,关联节点为数据输出节点,则确定每一个节点分别对应的关联节点具体为确定每一个节点分别对应的数据输出节点。举例来说,存在如图2所述的目标数据流图,节点a的数据输出节点有节点b至节点g,即节点b至节点g为节点a的关联节点;节点b的数据输出节点有节点c、节点d和节点g,即节点c、节点d和节点g为节点b的关联节点;节点c的数据输出节点有节点d和节点g,即节点d和节点g为节点c的关联节点;节点d的数据输出节点有节点g,即节点g为节点d的关联节点;节点e的数据输出节点有节点f和节点g,即节点f和节点g为节点e的关联节点;节点f的数据输出节点有节点g,即节点g为节点e的关联节点。
71.在步骤s112中,确定所述关联节点与所述节点间的目标指标;所述目标指标用于指示数据在节点间的执行时间或计算复杂度。
72.在本步骤中,预先设置目标指标,目标指标用于指示节点与各个关联节点间的性能,具体地,目标指标可以用于指示数据在节点间的执行时间或计算复杂度。
73.在一种可能的实现方式中,在关联节点为数据输入节点时,每一个关联节点与节点vi的目标指标是每一个vi的数据输入节点到vi的计算复杂度或执行时间。举例来说,图2中节点d的数据输入节点有节点a、节点b和节点c,即确定数据从节点a到节点d的第一执行时间、数据从节点b到节点d的第二执行时间、数据从节点c到节点d的第三执行时间,其中第一执行时间、第二执行时间、第三执行时间即为确定出的目标指标。
74.在一种可能的实现方式中,在关联节点为数据输出节点时,节点vi与每一个关联节点的目标指标是从vi出发的数据到每一个数据输出节点的计算复杂度或执行时间。举例来说,节点c的数据输出节点有节点d和节点g,即确定数据从节点c到节点d的第四执行时间、数据从节点c到节点g的第五执行时间,其中,第四执行时间和第五执行时间即为确定出的目标指标。
75.在步骤s113中,基于所述目标指标,确定所述目标数据流图中所述节点对应的所述性能指标信息。
76.在本步骤中,针对每一个节点,对该节点的关联节点与该节点的目标指标进行计
算,确定出目标数据流图中各个节点分别对应的性能指标信息。在本实施例中,将节点的关联节点与节点对应的性能指标信息建立联系,通过充分考虑关联节点,使得确定出的节点的性能指标信息更能反映节点的整体性能,避免对每一个节点进行单独考虑,割裂各个节点之间的联系,进而保证确定出节点的性能指标信息的准确性。
77.可选地,所述基于所述目标指标,确定目标数据流图中所述节点对应的所述性能指标信息,包括:将所述关联节点与所述节点间的目标指标的总和,确定为所述节点对应的性能指标信息。通过将各个节点对应的关联节点与节点间的目标指标的总和,确定为各个节点对应的性能指标信息,可以简单、快速地建立关联节点的目标指标与节点对应的性能指标信息的联系,保证性能指标信息的确定效率性。
78.在一种可能的实现方式中,在关联节点为数据输入节点时,节点vi的性能指标信息是vi的所有输入节点到vi的计算复杂度的总和或执行时间的总和。举例来说,确定出图2中数据从节点a到节点d的第一执行时间、数据从节点b到节点d的第二执行时间、数据从节点c到节点d的第三执行时间后,将第一执行时间、第二执行时间和第三执行时间的总和确定为节点d的性能指标信息,此时的性能指标信息可以称为下排名。
79.在一种可能的实现方式中,在关联节点为数据输出节点时,节点vi的性能指标信息是从vi出发的数据到所有输出节点的计算复杂度的总和或执行时间的总和。举例来说,确定出图2中数据从节点c到节点d的第四执行时间、数据从节点c到节点g的第五执行时间后,将第四执行时间和第五执行时间的总和确定为节点d的性能指标信息,此时的性能指标信息可以称为上排名。
80.可选地,所述基于所述目标指标,确定目标数据流图中所述节点对应的所述性能指标信息,包括:确定所述关联节点对应的预设影响系数;将所述关联节点与所述节点间的目标指标与所述预设影响系数的计算结果,确定为所述节点对应的性能指标信息。预先确定不同关联节点分别对应的影响系数,影响系数体现不同关联节点的重要程度,通过考虑不同关联节点的重要程度,准确地建立关联节点的目标指标与节点对应的性能指标信息的联系,保证确定出的性能指标信息的准确性。
81.在一种可能的实现方式中,在关联节点为数据输入节点时,节点vi的性能指标信息是vi的所有输入节点到vi的计算复杂度与预设影响系数的加权平均值,或节点vi的性能指标信息是vi的所有输入节点到vi的执行时间与预设影响系数的加权平均值。举例来说,确定出图2中数据从节点a到节点d的第一执行时间、数据从节点b到节点d的第二执行时间、数据从节点c到节点d的第三执行时间后,确定节点a对应的第一预设影响系数、节点b对应的第二预设影响系数,节点c对应的第三预设影响系数,将第一执行时间与第一预设影响系数的第一乘积结果、第二执行时间与第二预设影响系数的第二乘积结果以及第三执行时间与第三预设影响系数的第三乘积结果的加和结果除以3得到加权平均值,将该加权平均值确定为节点d的性能指标信息。
82.在步骤s12中,在所述各个节点中,选取出性能指标信息符合预设性能指标条件的关键节点。
83.在本步骤中,预先设置性能指标条件,利用预设性能指标条件对各个节点进行选取,选取出性能指标信息较高的关键节点,即根据预设性能指标条件选取出的关键节点的运算复杂度较大、占用的计算资源较多。对于预设性能指标条件的具体内容本实施例不作
限定,在一种可能的实现方式中,预设性能指标条件包括性能指标信息的最大值或性能指标信息大于预设值。
84.具体地,对各个节点对应的性能指标信息进行由大到小排序,在预设性能指标条件为性能指标信息的最大值时,将排序在第一位的节点选取为关键节点,此时关键节点的数量为一个。在预设性能指标条件为性能指标消息大于预设值时,其中预设值可以为固态设定值,即预先确定一个数值,将各个节点中性能指标信息大于该数值的节点选取为关键节点,此时可能确定出多个关键节点;预设值也可以为动态设定值,如根据排序在预设位的数值确定该预设值,此时可以确定出多个关键节点。
85.在步骤s13中,在所述节点间的数据流的链路中,选取所述关键节点对应的关键路径,在目标执行器上执行所述关键路径。
86.在本步骤中,不同的节点与链路会组成不同的数据传播路径。图2中由节点a至节点g存在两条不同的数据传播路径,即数据传播路径1和数据传播路径2,数据传播路径1由节点a、节点b、节点c、节点d和节点g组成,数据传播路径2由节点a、节点e、节点f和节点g组成。在确定出关键节点后,在不同数据传播路径中确定出关键节点对应的关键路径,因关键节点为对各个节点进行选取的结果,因此关键节点为目标数据流图中全部节点中的部分节点,进一步根据关键节点在全部数据传播路径中进行选取,选取出全部数据传播路径中关键节点对应的关键路径,关键路径为全部数据传播路径中的部分路径,因此在利用目标执行器执行关键路径时,可以避免目标数据流图中关键路径以外的其他节点在目标执行器上执行,有效减少目标数据流图对目标执行器的资源占用,保证目标执行器的执行速度。其中目标执行器为电子设备中用于加速计算的处理器,具体地可以为gpu(graphics processing unit,图形处理器)。
87.在一实施例中,所述步骤s13在所述节点间的数据流的链路中,选取所述关键节点对应的关键路径,包括:
88.在步骤s131中,在所述节点间的数据流的链路中,选取所述关键节点所在的数据传播路径。
89.在步骤s132中,在所述数据传播路径中,选取路径长度符合预设路径长度条件的关键节点对应的关键路径;所述预设路径长度条件包括路径长度的最大值或路径长度大于设定值。
90.在本实施例中,在节点间的数据流的链路中,确定出关键节点所在的数据传播路径。并进一步在关键节点所在的数据传播路径中,确定出路径长度符合预设路径长度条件的关键节点对应的关键路径。
91.可选地,预设路径长度条件可以为路径长度的最大值,即将关键节点所在的数据传播路径中的最长数据传播路径确定为关键路径。在利用性能指标信息准确地确定出关键节点后,通过关键节点对应的路径长度最大值快速、准确地确定出关键路径,有效地确定出目标数据流图中占用计算资源较多的关键路径,在目标执行器执行关键路径时,避免对目标执行器的过多占用,同时使得目标数据流图中对整体性能存在重要影响的关键路径得到了运行。
92.可选地,预设路径长度条件也可以为路径长度大于设定值,设定值可以为预先设定,也可以根据确定出当前路径长度进行动态确定,如存在多条关键节点所在的数据传播
路径,对多条关键节点所在的数据传播路径按路径长度进行由大到小的排序,将前预设位出的路径长度确定为设定值。从而通过预设路径长度条件,对关键节点所在的数据传播路径进行有效筛选,筛选出占用目标执行器较多计算资源的关键路径。
93.具体地,在确定关键节点后,若关联节点为数据输入节点,确定关键节点的前驱节点,以确定出关键节点所在的数据传播路径;若关联节点为数据输出节点,确定关联节点的后继节点,以确定出关键节点所在的数据传播路径。
94.举例来说,当关联节点为数据输入节点时,如图2所示,确定节点a到节点g的性能指标信息,其中节点vi的性能指标信息是vi的所有输入节点到vi的计算复杂度的总和或执行时间的总和,在节点a到节点g中,节点g以节点a至节点f为数据输入节点,因此节点g的性能指标信息值最大,符合预设性能指标条件(性能指标信息值最大),选取节点g为关键节点,确定关键节点的前驱节点,即节点d和节点f;确定节点f的前驱节点,即节点e;确定节点e的前驱节点,即节点a(源顶点);确定节点d的前驱节点,即节点c;确定节点c的前驱节点,即节点b;确定节点b的前驱节点,即节点a(源顶点)。从而确定出两条数据传播路径,其中1条数据传播路径的长度为5,一条数据传播路径的长度为3,长度为5的数据传播路径符合预设路径长度条件(路径长度的最大值),将长度为5的数据传播路径确定为关键路径。当然可以进一步将不符合所述预设路径长度条件的数据传播路径确定为非关键路径。
95.在一种可能的应用场景中,在移动终端上安装tflite(一种机器学习模型,可以直接通过移动电子设备实现语音识别、视频分割等功能),此时目标数据流图与tflite相对应,在移动电子设备上运行tflite时,常常会使用到gpu,而图形处理器同时为其他功能服务,如视频和渲染,因此存在运行tflite时与其他功能抢占gpu资源的问题,通过本实施例提供的方法,在tflite对应的目标数据流图中确定出关键路径,在gpu上运行该关键路径,可以防止过多占用gpu,同时在gpu上运行对tflite的运行中最影响性能的关键路径。
96.在上述实施例中,在获取目标数据流图后,确定目标数据流图中各个节点分别对应的性能指标信息,其中目标数据流图由节点以及在各个节点之间的数据流的链路组成,该目标数据流图用于描述数据在节点和节点间的数据流的链路间的逻辑运算过程,性能指标信息为用于表征节点性能的数据,不同的节点可能对应不同的性能指标信息。进一步在各个节点中,选取出性能指标信息符合预设性能指标条件的关键节点;进而在节点间的数据流的链路中,选取关键节点对应的关键路径,选取出的关键路径为目标数据流图全部路径中的部分路径,通过在目标执行器上执行关键路径,可以避免目标数据流图中关键路径以外的其他节点在目标执行器上执行,有效减少目标数据流图对目标执行器的资源占用,保证目标执行器的执行速度。
97.可选地,目标数据流图为完整数据流图中的一步分,即如图3所示,在一实施例中,所述方法还包括:
98.在步骤s14中,获取完整数据流图;所述完整数据流图包括所述目标应用对应的全部节点以及全部节点间的数据流的链路,所述完整数据流图用于描述数据在所述全部节点和所述全部节点间的数据流的链路间的逻辑运算过程;对所述完整数据流图进行划分,获取至少两个所述目标数据流图。
99.在本实施例中,完整数据流图对应训练好的机器学习模型的整体神经网络,包括目标应用对应的全部节点以及全部节点间的数据流图的链路,该完整数据流图用于描述数
据在全部节点和全部节点间的数据流的链路间的逻辑运算过程。完整数据流图中往往包括大量的节点,因此可以对完整数据流图进行划分,获取到至少两个目标数据流图。进而可以筛选出每一个目标数据流图中的关键路径,通过对完整数据流图进行划分,可以快速地确定出各个目标数据流图中关键路径,将每个目标数据流图中的并发分支减少为关键路径,有效的减少目标数据流图对目标执行器的资源占有。需要说明的是,在本实施例中对完整数据流图的划分方式和划分次数不作具体限定,用户可以预先设置划分规则,根据预设划分规则对完整数据流图进行划分,获取至少两个目标数据流图。
100.可选地,目标数据流图即为目标应用对应的完整数据流图。具体地,目标数据流图对应完整数据流图还是对应完整数据流图中的一部分,用户可以根据实际应用场景进行选取。
101.在一实施例中,所述方法还包括:
102.在步骤s15中,设置内存资源共享池,所述内存资源共享池由所述目标数据流图对应的执行器组成,不同执行器内存数据共享,所述执行器包括所述目标执行器。
103.在上述实施例中,设置内存资源共享池,内存资源共享池内的不同执行器可以对内存数据进行共享,从而在不同的执行器中执行相同的内容时,无需在不同的执行器间进行数据的拷贝,而是将通过内存数据共享的方式使得不同的执行器获取该部分的内容,其中不同的执行器代表电子设备内的不同硬件,通过设置内存资源共享池实现不同硬件设备的零拷贝技术,有效减少io(input/output,输入/输出)开销。
104.图4是根据一示例性实施例示出的一种数据处理方法的流程图,包括以下步骤:
105.在步骤41中,获取目标应用对应的完整数据流图;对所述完整数据流图进行划分,获取至少两个所述目标数据流图。
106.在本步骤中,先获取到目标应用对应的完整数据流图,该完整数据流图结构复杂,为了快速、精细地在完整数据流图中确定出关键路径,对完整数据流图进行划分,获取到至少两个目标数据流图,也就是目标数据流图是完整数据流图中的一部分,需要说明的是,在对完整数据流图进行划分时,可以不只进行一次划分。
107.在步骤42中,设置内存资源共享池,所述内存资源共享池由所述完整数据流图对应的执行器组成,不同执行器内存数据共享。
108.在本步骤中,为了有效减少数据在不同执行器间的io开销,设置内存资源共享池,内存资源共享池内的执行器内存数据共享,从而在执行后续步骤时,数据通过共享的方式在不同执行器内进行传递,避免在不同执行器内进行数据拷贝。
109.在步骤43中,针对每一个所述目标数据流图:确定所述目标数据流图中每一个节点分别对应的关联节点;确定每一个节点分别对应的关联节点与节点间的目标指标;基于所述目标指标,确定所述目标数据流图中各个节点分别对应的性能指标信息。
110.在本步骤中,确定完整数据流图划分出的每一个目标数据流图,针对每一个目标数据流图:确定目标数据流图中每一个节点分别对应的关联节点;确定每一个节点分别对应的关联节点与该节点间的目标指标;将每一个节点分别对应的关联节点与该节点间的目标指标的总和,确定为该节点的性能指标信息。
111.在步骤44中,针对每一个目标数据流图:在各个节点中,选取出性能指标信息符合预设性能指标条件的关键节点;在所述节点间的数据流的链路中,选取所述关键节点所在
的数据传播路径;在所述数据传播路径中,选取路径长度符合预设路径长度条件的关键节点对应的关键路径;在目标执行器上执行所述关键路径;
112.其中,所述预设性能指标条件包括性能指标信息的最大值或性能指标信息大于第一设定值;所述预设路径长度条件包括路径长度的最大值或路径长度大于第二设定值;所述目标执行器为所述完整数据流图对应的执行器中的至少一个。
113.在本步骤中,通过预设性能指标条件,选取关键节点,通过预设路径长度条件,选取关键路径,选取出的关键路径为目标数据流图全部数据传播路径中的部分路径。通过在目标执行器上执行关键路径,可以避免目标数据流图中关键路径以外的其他节点在目标执行器上执行,有效减少目标数据流图对目标执行器的资源占用,保证目标执行器的执行速度。确定出每一个目标数据流图分别对应的关键路径,从而在整体数据流图中选取出对整体性能存在重要影响的多个关键路径,对多个关键路径利用目标执行器进行执行,避免对执行器的过多占用,并且在不同执行器进行执行时,采用内存共享的方式获取数据,有效减少不同执行器的io开销。
114.图5是根据一示例性实施例示出的一种数据处理装置的框图。该装置包括信息获取模块51、节点确定模块52、路径确定模块53;
115.该信息获取模块51,被配置为获取目标应用对应的目标数据流图中各个节点分别对应的性能指标信息,所述目标数据流图包括节点以及所述节点间的数据流的链路,所述目标数据流图用于描述数据在所述节点和所述节点间的数据流的链路间的逻辑运算过程;
116.该节点确定模块52,被配置为在所述各个节点中,选取出性能指标信息符合预设性能指标条件的关键节点;
117.该路径确定模块53,被配置为在所述节点间的数据流的链路中,选取所述关键节点对应的关键路径,在目标执行器上执行所述关键路径。
118.在本公开一示例性实施例中,所述路径确定模块,包括:
119.第一确定单元,被配置为在所述节点间的数据流的链路中,选取所述关键节点所在的数据传播路径;
120.第二确定单元,被配置为在所述数据传播路径中,选取路径长度符合预设路径长度条件的关键节点对应的关键路径;所述预设路径长度条件包括路径长度的最大值或路径长度大于设定值。
121.在本公开一示例性实施例中,所述信息获取模块,包括:
122.第三确定单元,被配置为针对目标应用对应的目标数据流图中每一个节点:确定所述节点对应的关联节点,所述节点与所述关联节点之间存在数据输入关系或数据输出关系;
123.第四确定单元,被配置为确定所述关联节点与所述节点间的目标指标;所述目标指标用于指示数据在节点间的执行时间或计算复杂度;
124.第五确定单元,被配置为基于所述目标指标,确定所述目标数据流图中所述节点对应的所述性能指标信息。
125.在本公开一示例性实施例中,所述第五确定单元,被配置为将所述关联节点与所述节点间的目标指标的总和,确定为所述节点对应的性能指标信息;
126.在本公开一示例性实施例中,所述第五确定单元,被配置为确定所述关联节点对
应的预设影响系数;将所述关联节点与所述节点间的目标指标与所述预设影响系数的计算结果,确定为所述节点对应的性能指标信息。
127.在本公开一示例性实施例中,所述装置还包括:流图划分模块;
128.所述流图划分模块被配置为获取完整数据流图;所述完整数据流图包括所述目标应用对应的全部节点以及全部节点间的数据流的链路,所述完整数据流图用于描述数据在所述全部节点和所述全部节点间的数据流的链路间的逻辑运算过程;对所述完整数据流图进行划分,获取至少两个所述目标数据流图。
129.在本公开一示例性实施例中,所述装置还包括:
130.共享处理模块,被配置为设置内存资源共享池,所述内存资源共享池由所述目标数据流图对应的执行器组成,不同执行器内存数据共享,所述执行器包括所述目标执行器。
131.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
132.图6是根据一示例性实施例示出的一种电子设备的框图。例如,该电子设备600可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
133.参照图6,电子设备600可以包括以下一个或多个组件:处理组件602,存储器604,电力组件606,多媒体组件608,音频组件610,输入/输出(i/o)的接口612,传感器组件614,以及通信组件616。
134.处理组件602通常控制电子设备600的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件602可以包括一个或多个处理器620来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件602可以包括一个或多个模块,便于处理组件602和其他组件之间的交互。例如,处理组件602可以包括多媒体模块,以方便多媒体组件608和处理组件602之间的交互。
135.存储器604被配置为存储各种类型的数据以支持在电子设备600的操作。这些数据的示例包括用于在电子设备600上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器604可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
136.电源组件606为电子设备600的各种组件提供电力。电源组件606可以包括电源管理系统,一个或多个电源,及其他与为电子设备600生成、管理和分配电力相关联的组件。
137.多媒体组件608包括在所述电子设备600和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件608包括一个前置摄像头和/或后置摄像头。当电子设备600处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
138.音频组件610被配置为输出和/或输入音频信号。例如,音频组件610包括一个麦克风(mic),当电子设备600处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器604或经由通信组件616发送。在一些实施例中,音频组件610还包括一个扬声器,用于输出音频信号。
139.i/o接口612为处理组件602和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
140.传感器组件614包括一个或多个传感器,用于为电子设备600提供各个方面的状态评估。例如,传感器组件614可以检测到电子设备600的打开/关闭状态,组件的相对定位,例如所述组件为电子设备600的显示器和小键盘,传感器组件614还可以检测电子设备600或电子设备600一个组件的位置改变,用户与电子设备600接触的存在或不存在,电子设备600方位或加速/减速和电子设备600的温度变化。传感器组件614可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件614还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件614还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
141.通信组件616被配置为便于电子设备600和其他设备之间有线或无线方式的通信。电子设备600可以接入基于通信标准的无线网络,如wifi,运营商网络(如2g、3g、4g或6g),或它们的组合。在一个示例性实施例中,通信组件616经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件616还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。
142.在示例性实施例中,电子设备600可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述数据处理方法。
143.在示例性实施例中,还提供了一种包括指令的存储介质,当所述存储介质中的指令由服务器的处理器执行时,使得服务器能够执行如上述任一方法实施例所述数据处理方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
144.在示例性实施例中,还提供了一种计算机程序产品,该计算机程序产品包括可读性程序代码,该可读性程序代码可由处理器执行以完成上述数据处理方法。可选地,该程序代码可以存储在电子设备的存储介质中,该存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
145.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1