本发明涉及神经网络,尤其涉及一种gpu虚拟化和ai结合的算力调度方法及系统。
背景技术:
1、gpu虚拟化技术是指显卡虚拟化技术,显卡虚拟化技术就是将显卡进行切片,并将这些显卡时间片分配给虚拟机使用的过程,由于支持显卡虚拟化的显卡一般可以根据需要切分成不同的规格的时间片,因此可以分配给多台虚拟机使用,人工智能(ai)是一种模拟人类智能思维的技术,它可以实现人类的认知和思维活动,通过这种技术,计算机可以模拟人类的思维方式和智能,从而可以完成许多复杂的任务,如图像识别、语音识别、自然语言处理、决策制定等,算力调度是指在一定区域或者系统中合理分配和利用算力资源的过程,利用将cpu资源分配给进程。
2、目前,现有技术进行算力调度过程大多是提前设置好的,即提前调查业务端的算力需求,再设置好哪些业务需要分配哪些算力,这个过程中会出现一些问题,一是业务端动态变化时,由于算力调度的准则是提前设置好的、静态的,则算力调度无法追随业务端进行动态变化,二是现有的算力调度算法是根据哪些业务紧急或哪些业务量大来优先调度算力,这会存在非紧急业务与短业务由于长期未进行算力调度而饥饿的问题。因此,算力调度的饥饿问题较难解决。
技术实现思路
1、为了解决上述问题,本发明提供了一种gpu虚拟化和ai结合的算力调度方法及系统,可以减少算力调度的饥饿问题。
2、第一方面,本发明提供了一种gpu虚拟化和ai结合的算力调度方法,包括:
3、识别进行算力调度时的算力需求方、算力供应方及算力中介,在所述算力中介中检测所述算力需求方在预设的历史时段内的历史业务量与业务量时刻,基于所述历史业务量与所述业务量时刻,分析所述算力需求方在预设的规划时段内的规划业务量;
4、根据所述规划业务量,设置所述算力需求方的算力调度优先级,查询在预设的历史时段内从所述算力供应方调度算力至所述算力需求方处的历史调度时长,识别所述历史业务量与所述历史调度时长之间的业务-时长映射关系;
5、根据所述业务-时长映射关系与所述规划业务量,分析在所述规划时段内从所述算力供应方调度算力至所述算力需求方处的规划调度时长,利用所述规划调度时长与预设的gpu虚拟化技术,分配所述算力需求方的算力调度时间片;
6、基于所述算力调度时间片,利用预设的时间片轮转算法与所述算力调度优先级调度所述算力供应方,得到算力调度记录,利用所述算力调度记录判断所述算力供应方是否符合所述算力需求方;
7、在所述算力供应方不符合所述算力需求方时,计算所述算力调度记录中所述算力供应方的算力调度性能,根据所述算力调度性能,确定从所述算力供应方调度算力至所述算力需求方处的算力调度算法;
8、利用所述算力调度算法完成从所述算力供应方至所述算力需求方的算力调度,得到所述算力供应方的算力调度结果。
9、在第一方面的一种可能实现方式中,所述基于所述历史业务量与所述业务量时刻,分析所述算力需求方在预设的规划时段内的规划业务量,包括:
10、基于所述业务量时刻,利用下述格式将所述历史业务量转换为业务量序列:
11、
12、x=(x(1),x(2),...x(j),...x(m))
13、
14、x=(x1,x2,...xi,...,xn)t
15、其中,x表示业务量序列,i表示算力需求方的序号,n表示算力需求方的总数,j表示业务量时刻的序号,m表示业务量时刻的总数,x(j)表示第j个业务量时刻下的历史业务量,表示第1个算力需求方在第j个业务量时刻下的历史业务量,表示第2个算力需求方在第j个业务量时刻下的历史业务量,表示第i个算力需求方在第j个业务量时刻下的历史业务量,表示第n个算力需求方在第j个业务量时刻下的历史业务量,x(1)表示第1个业务量时刻下的历史业务量,x(2)表示第2个业务量时刻下的历史业务量,x(m)表示第m个业务量时刻下的历史业务量,xi表示第i个算力需求方的历史业务量,表示第i个算力需求方在第1个业务量时刻下的历史业务量,表示第i个算力需求方在第2个业务量时刻下的历史业务量,表示第i个算力需求方在第m个业务量时刻下的历史业务量,x1表示第1个算力需求方的历史业务量,x2表示第2个算力需求方的历史业务量,xn表示第n个算力需求方的历史业务量;
16、利用预设的主成分分析法对所述业务量序列进行特征提取,得到提取特征;
17、将所述提取特征输入至预设的长短期记忆循环网络中;
18、在所述长短期记忆循环网络中,根据所述提取特征,利用下述公式计算所述算力需求方在预设的规划时段内的规划业务量:
19、ft=σ(wf·[ht-1,xt]+bf)
20、it=σ(wi·[ht-1,xt]+bi)
21、ct=tanh(wc·[ht-1,xt]+bc)
22、ct=ft·ct-1+it·ct
23、ot=σ(wo·[ht-1,xt]+bo)
24、ht=ot·tanh(ct)
25、其中,ht表示所述规划业务量,σ表示,xt表示历史时刻t的提取特征,ht-1表示历史时刻t的上一时刻的隐层状态,wf表示遗忘门的权重矩阵,bf表示遗忘门的偏置项,σ表示sigmoid函数,ft表示历史时刻t的遗忘门的输出结果,wi表示输入门的权重矩阵,bi表示输入门的偏置项,it表示输入门的输出结果,wc表示记忆门的权重矩阵,bc表示记忆门的偏置项,ct表示历史时刻t的记忆门输出的细胞状态,ct-1表示历史时刻t的上一时刻的细胞状态,wo表示输出门的权重矩阵,bo表示输出门的偏置项,ot表示输出门的输出结果。
26、在第一方面的一种可能实现方式中,所述利用预设的主成分分析法对所述业务量序列进行特征提取,得到提取特征,包括:
27、利用预设的主成分分析法计算所述业务量序列的协方差矩阵;
28、根据所述协方差矩阵,利用所述预设的主成分分析法计算所述业务量序列的特征值与特征向量;
29、从所述特征值中选取非零特征值;
30、在所述特征向量中识别所述非零特征值对应的目标特征向量;
31、将所述目标特征向量作为所述提取特征。
32、在第一方面的一种可能实现方式中,所述根据所述规划业务量,设置所述算力需求方的算力调度优先级,包括:
33、随机排列所述规划业务量,得到业务量队列;
34、将所述业务量队列转换为大根堆;
35、按照预设的前序遍历算法查询所述大根堆中所述规划业务量的前后顺序;
36、基于所述前后顺序,按照预设的先来先调度算法设置所述规划业务量的算力调度优先级。
37、在第一方面的一种可能实现方式中,所述识别所述历史业务量与所述历史调度时长之间的业务-时长映射关系,包括:
38、将所述历史业务量按照业务量从小到大的顺序排列,得到业务量顺序;
39、依据所述业务量顺序,排列所述历史调度时长,得到时长序列;
40、利用缺失值插补法将所述业务量顺序规格化,得到规格化顺序;
41、将所述规格化顺序输入至预设的时长分析模型中,以通过所述时长分析模型输出所述规格化顺序对应的规格化时长;
42、识别所述规格化时长中与所述业务量顺序对应的目标时长;
43、计算所述时长序列与所述目标时长之间的时长损失值,以通过所述时长损失值优化所述时长分析模型,得到优化好的时长分析模型;
44、利用所述优化好的时长分析模型识别所述历史业务量与所述历史调度时长之间的业务-时长映射关系。
45、在第一方面的一种可能实现方式中,所述利用所述规划调度时长与预设的gpu虚拟化技术,分配所述算力需求方的算力调度时间片,包括:
46、利用所述gpu虚拟化技术分配所述算力需求方的初始时间片;
47、根据所述初始时间片与所述规划调度时长,利用下述公式计算所述算力需求方的算力调度次数:
48、
49、
50、其中,k表示算力调度次数,ki表示第i个算力需求方的算力调度次数,ti表示第i个算力需求方的规划调度时长,t0表示初始时间片,表示向上取整符号;
51、利用所述算力调度次数确定所述规划调度时长的算力调度轮次;
52、利用所述初始时间片对所述规划调度时长进行时长分割,得到分割时长;
53、利用所述算力调度轮次确定所述分割时长的算力调度轮号;
54、获取所述算力需求方的算力调度优先级;
55、利用所述算力调度优先级构建所述算力调度轮号的优先级;
56、利用所述算力调度轮号与所述优先级排序所述规划调度时长,得到规划时长序列;
57、根据所述规划时长序列,利用下述公式计算所述算力需求方的算力等待时间:
58、
59、
60、…
61、
62、…
63、
64、
65、
66、其中,t表示算力等待时间,ti表示第i个算力需求方的算力等待时间,u表示规划时长序列中的算力调度轮号,u表示规划时长序列中的算力调度轮号的总数,v表示规划时长序列中的优先级,v表示规划时长序列中的优先级总数,i表示算力需求方的序号,n表示算力需求方的总数,t0表示初始时间片,表示第i个算力需求方在第1个算力调度轮号下的算力等待时间,表示第i个算力需求方在第2个算力调度轮号下的算力等待时间,表示第i个算力需求方在第u个算力调度轮号下的算力等待时间,表示第i个算力需求方在第u个算力调度轮号下的算力等待时间,ti表示第i个算力需求方的总算力等待时间;
67、根据所述算力等待时间,利用下述公式计算所述算力需求方的平均等待时间:
68、
69、其中,t′表示平均等待时间,n表示算力需求方的总数,t表示算力等待时间;
70、基于所述算力调度次数与所述平均等待时间的总和,从所述初始时间片中获取所述算力调度次数与所述平均等待时间对应的目标时间片,并将所述目标时间片作为所述算力调度时间片。
71、在第一方面的一种可能实现方式中,所述基于所述算力调度时间片,利用预设的时间片轮转算法与所述算力调度优先级调度所述算力供应方,得到算力调度记录,包括:
72、基于所述算力调度时间片,利用所述时间片轮转算法与所述算力调度优先级设置所述算力需求方中每个算力需求方对应的第一算力供应次序;
73、设置所述第一算力供应次序对应的所述算力需求方之间的第二算力供应次序;
74、随机生成所述算力供应方的供应方序列;
75、根据所述第二算力供应次序,利用预设的先来先调度算法调度所述供应方序列中的算力供应方,得到算力调度记录。
76、在第一方面的一种可能实现方式中,所述计算所述算力调度记录中所述算力供应方的算力调度性能,包括:
77、利用所述算力调度记录识别所述规划业务量中发生阻塞的目标业务量;
78、将目标业务量与所述规划业务量之比作为所述算力供应方的业务阻塞率;
79、利用所述算力调度记录识别所述算力调度时间片在算力调度轮次中的未进行算力调度时间片;
80、利用下述公式计算所述未进行算力调度时间片的方差:
81、
82、其中,s2表示方差,yp表示第p个算力调度轮次中未进行算力调度时间片的数量,表示p个算力调度轮次中未进行算力调度时间片的数量的均值,p表示算力调度轮次的总数,p表示算力调度轮次的序号;
83、将所述业务阻塞率与所述方差作为所述算力调度性能。
84、在第一方面的一种可能实现方式中,所述根据所述算力调度性能,确定从所述算力供应方调度算力至所述算力需求方处的算力调度算法,包括:
85、在所述算力调度性能中的业务阻塞率最小且所述算力调度性能中的方差最小时,分别从所述算力调度优先级与所述算力调度时间片中获取优化算力调度优先级与优化算力调度时间片;
86、利用所述优化算力调度优先级与优化算力调度时间片确定从所述算力供应方调度算力至所述算力需求方处的算力调度算法。
87、第二方面,本发明提供了一种gpu虚拟化和ai结合的算力调度系统,所述系统包括:
88、业务分析模块,用于识别进行算力调度时的算力需求方、算力供应方及算力中介,在所述算力中介中检测所述算力需求方在预设的历史时段内的历史业务量与业务量时刻,基于所述历史业务量与所述业务量时刻,分析所述算力需求方在预设的规划时段内的规划业务量;
89、关系识别模块,用于根据所述规划业务量,设置所述算力需求方的算力调度优先级,查询在预设的历史时段内从所述算力供应方调度算力至所述算力需求方处的历史调度时长,识别所述历史业务量与所述历史调度时长之间的业务-时长映射关系;
90、时间分配模块,用于根据所述业务-时长映射关系与所述规划业务量,分析在所述规划时段内从所述算力供应方调度算力至所述算力需求方处的规划调度时长,利用所述规划调度时长与预设的gpu虚拟化技术,分配所述算力需求方的算力调度时间片;
91、记录判断模块,用于基于所述算力调度时间片,利用预设的时间片轮转算法与所述算力调度优先级调度所述算力供应方,得到算力调度记录,利用所述算力调度记录判断所述算力供应方是否符合所述算力需求方;
92、算法确定模块,用于在所述算力供应方不符合所述算力需求方时,计算所述算力调度记录中所述算力供应方的算力调度性能,根据所述算力调度性能,确定从所述算力供应方调度算力至所述算力需求方处的算力调度算法;
93、算力调度模块,用于利用所述算力调度算法完成从所述算力供应方至所述算力需求方的算力调度,得到所述算力供应方的算力调度结果。
94、与现有技术相比,本方案的技术原理及有益效果在于:
95、本发明实施例通过基于所述历史业务量与所述业务量时刻,分析所述算力需求方在预设的规划时段内的规划业务量,以用于分析未来时段内所述算力需求方需要处理的业务量,便于后续分析未来时段内需要调用多长时间的算力资源,本发明实施例通过根据所述规划业务量,设置所述算力需求方的算力调度优先级,以用于利用大根堆的从大到小的顺序来安排所述规划业务量的处理优先级,由于大根堆的从大到小的顺序并不是完全的从大到小的顺序,而是在较大数值中间穿插着较小数值,因此算力调度优先级可以兼顾小业务量的算力调度需求,减少算力调度饥饿现象,进一步地,本发明实施例通过识别所述历史业务量与所述历史调度时长之间的业务-时长映射关系,以用于利用所述业务-时长映射关系预测未来时段内规划业务量应需要的规划调度时长,本发明实施例通过利用所述规划调度时长与预设的gpu虚拟化技术,分配所述算力需求方的算力调度时间片,以用于为每个业务分配固定的时间片,减少业务长期得不到算力资源的饥饿现象,本发明实施例通过计算所述算力调度记录中所述算力供应方的算力调度性能,以用于从所述算力调度优先级与所述算力调度时间片中获取在算力调度性能上表现最好的优先级与时间片,并且利用算力调度性能中的未进行算力调度时间片的方差来观测给算力需求方分配的时间片是否可以使得每个算力需求方的业务量均衡处理,进一步地,本发明实施例通过根据所述算力调度性能,确定从所述算力供应方调度算力至所述算力需求方处的算力调度算法,以用于从所述算力调度优先级与所述算力调度时间片中获取在算力调度性能上表现最好的优先级与时间片。因此,本发明实施例提出的一种gpu虚拟化和ai结合的算力调度方法及系统,可以减少算力调度的饥饿问题。
1.一种gpu虚拟化和ai结合的算力调度方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述基于所述历史业务量与所述业务量时刻,分析所述算力需求方在预设的规划时段内的规划业务量,包括:
3.根据权利要求2所述的方法,其特征在于,所述利用预设的主成分分析法对所述业务量序列进行特征提取,得到提取特征,包括:
4.根据权利要求1所述的方法,其特征在于,所述根据所述规划业务量,设置所述算力需求方的算力调度优先级,包括:
5.根据权利要求1所述的方法,其特征在于,所述识别所述历史业务量与所述历史调度时长之间的业务-时长映射关系,包括:
6.根据权利要求1所述的方法,其特征在于,所述利用所述规划调度时长与预设的gpu虚拟化技术,分配所述算力需求方的算力调度时间片,包括:
7.根据权利要求1所述的方法,其特征在于,所述基于所述算力调度时间片,利用预设的时间片轮转算法与所述算力调度优先级调度所述算力供应方,得到算力调度记录,包括:
8.根据权利要求1所述的方法,其特征在于,所述计算所述算力调度记录中所述算力供应方的算力调度性能,包括:
9.根据权利要求1所述的方法,其特征在于,所述根据所述算力调度性能,确定从所述算力供应方调度算力至所述算力需求方处的算力调度算法,包括:
10.一种gpu虚拟化和ai结合的算力调度系统,其特征在于,所述系统包括: