本发明涉及计算机,特别涉及一种多元异构算力设备调度方法、装置、设备及存储介质。
背景技术:
1、目前,随着百tb(太字节,terabyte)级高通量数据处理应用的需求激增,以cpu(中央处理器,centralprocessingunit)为中心的计算架构即使不断加入多元异构算力设备,但由于其存算资源紧耦合,算力设备、内存扩展性受限,导致多节点组成的分布式计算系统性能低下。相关技术中,分布式调度系统无法匹配数据处理模型的动态算力需求,因此,如何解决多元异构算力设备调度问题,实现高通量数据处理是亟待解决的问题。
技术实现思路
1、有鉴于此,本发明的目的在于提供一种多元异构算力设备调度方法、装置、设备及存储介质,能够最大限度的利用各底层硬件资源,提升高通量数据处理模型的处理效率。其具体方案如下:
2、第一方面,本发明公开了一种多元异构算力设备调度方法,包括:
3、获取多元异构算力设备对应的算子级算力表;所述算子级算力表用于表征算子在不同类型的算力设备上的性能高低;
4、根据所述算子级算力表通过两级聚簇方式将数据处理模型相关的算子部署到相应的算力设备上,以得到数据处理模型与多元异构设备的映射关系;
5、根据所述数据处理模型与多元异构设备的映射关系进行多元异构算力设备调度。
6、可选的,所述获取多元异构算力设备对应的算子级算力表,包括:
7、根据多元异构算力设备中不同算力设备对算子池中每种算子的支持情况,构建所述多元异构算力设备对应的设备算子映射表;所述算子池为所述多元异构算力设备对应的算子池;
8、在所述设备算子映射表的基础上,根据算子在算力设备上的性能构建算子级算力表。
9、可选的,所述根据算子在算力设备上的性能构建算子级算力表,包括:
10、通过仿真模拟单秒内算子在相应的算力设备上的最多执行个数,确定算子在相应的算力设备上的性能;其中,算力设备不支持的算子的性能为0。
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、根据算子间语义关系对数据处理模型中的算子进行算子间的聚簇划分,得到n种划分方式,每种划分方式划分后均得到s个算子簇;
41、根据算力设备对算子的支持情况对所述多元异构算力设备进行划分,得到m种划分方式,每种划分方式划分后均得到s个设备组;s大于等于2;
42、根据所述算子的划分方式、所述算力设备的划分方式以及所述算子簇和所述设备组,通过动态规划方法筛选出算子簇与设备组的最优映射关系。
43、可选的,所述通过动态规划方法筛选出算子簇与设备组的最优映射关系,包括:
44、通过依次组合算子的每种划分方式和算力设备的每种划分方式,并在每个划分方式组合的基础上依次将不同算子簇分别映射到不同设备组上;
45、利用代价模型计算每种组合的每个映射关系下的时间开销,根据时间开销最少的组合的映射关系,得到算子簇与设备组的最优映射关系。
46、可选的,所述在所述一级聚簇划分结果基础上,根据所述算子级算力表对算子到算力设备的部署进行二级聚簇划分,以得到数据处理模型与多元异构设备的映射关系,包括:
47、在所述最优映射关系的基础上,根据所述算子级算力表从所述设备组中为所述算子簇中的算子分配最优的算力设备,以确定所述数据处理模型与多元异构设备的映射关系。
48、可选的,所述在所述最优映射关系的基础上,根据所述算子级算力表从所述设备组中为所述算子簇中的算子分配最优的算力设备,以确定所述数据处理模型与多元异构设备的映射关系,包括:
49、在所述最优映射关系的基础上,对所述算子簇进行拆分得到多个单独的算子;
50、根据所述算子级算力表,从所述算子簇对应的设备组中为每个所述单独的算子分配最优的算力设备,得到算子与算力设备的最优映射关系;
51、根据所述算子簇与设备组的最优映射关系以及所述算子与算力设备的最优映射关系,确定数据处理模型与异构设备的映射关系。
52、第二方面,本发明公开了一种多元异构算力设备调度装置,包括:
53、算子级算力表获取模块,用于获取多元异构算力设备对应的算子级算力表;所述算子级算力表用于表征算子在不同类型的算力设备上的性能高低;
54、部署模块,用于根据所述算子级算力表通过两级聚簇方式将数据处理模型相关的算子部署到相应的算力设备上,以得到数据处理模型与多元异构设备的映射关系;
55、调度模块,用于根据所述数据处理模型与多元异构设备的映射关系进行多元异构算力设备调度。
56、第三方面,本发明公开了一种电子设备,包括:
57、存储器,用于保存计算机程序;
58、处理器,用于执行所述计算机程序,以实现前述的多元异构算力设备调度方法。
59、第四方面,本发明公开了一种计算机可读存储介质,用于存储计算机程序;其中计算机程序被处理器执行时实现前述的多元异构算力设备调度方法。
60、本发明中,获取多元异构算力设备对应的算子级算力表;所述算子级算力表用于表征算子在不同类型的算力设备上的性能高低;根据所述算子级算力表通过两级聚簇方式将数据处理模型相关的算子部署到相应的算力设备上,以得到数据处理模型与多元异构设备的映射关系;根据所述数据处理模型与多元异构设备的映射关系进行多元异构算力设备调度。
61、可见,根据多元异构算力设备对应的算子级算力表进行算子到算力设备的部署,能够实现针对多元异构设备的细粒度算力调度,并通过两级聚簇方式实现算子到算力设备的精确部署,最大限度的利用各底层硬件资源,能够有效提升高通量数据处理模型的处理效率,提升数据处理的性能。