任务处理方法、多核处理器及计算机设备与流程

文档序号:25045795发布日期:2021-05-14 12:09阅读:134来源:国知局
任务处理方法、多核处理器及计算机设备与流程

1.本申请实施例涉及处理器技术领域,特别涉及一种任务处理方法、多核处理器及计算机设备。


背景技术:

2.随着处理器制造工艺的不断发展,计算机设备配置的处理器具有越来越多的处理核心,以完成越来越复杂的计算任务。
3.然而,处理器核心数量的增加虽然能够提高计算机设备的计算能力,但同时也会造成计算机设备的功耗增加,因此如何在保证计算能力的同时,降低处理器的功耗成为急需解决的问题。


技术实现要素:

4.本申请实施例提供了一种任务处理方法、多核处理器及计算机设备。所述技术方案包括:
5.一方面,本申请实施例提供了一种任务处理方法,所述方法包括:
6.确定单核心处理原始任务时的单核工作频率;
7.基于所述单核工作频率和频率功率曲线,确定目标核心数量,所述频率功率曲线用于表征单核心处理任务时工作频率与功率之间的关系,所述目标核心数量小于等于处理器的核心总数,且所述核心总数大于等于2;
8.为所述目标核心数量的核心分配任务,并通过各个核心处理分配的任务,其中,各个核心处理任务时的工作频率相同,且通过目标核心数量的核心进行任务处理的处理功耗最低;
9.收集并重组各个核心的任务处理结果。
10.另一方面,本申请实施例提供了一种多核处理器,所述多核处理器具有n个核心,所述多核处理器用于实现如上述方面所述的任务处理方法。
11.另一方面,本申请实施例提供了一种计算机设备,所述计算机设备设置有多核处理器,所述多核处理器用于实现如上述方面所述的任务处理方法。
12.本申请实施例提供的技术方案至少包括如下有益效果:
13.本申请实施例中,处理器进行任务处理前,首先根据单核心处理原始任务时的单核工作频率,以及表征单核心处理时工作频率与功率之间关系的频率功率曲线,确定目标核心数量,从而基于目标核心数量进行任务分配,进而通过目标核心数量的核心进行任务处理,并收集重组各个核心的任务处理结果,以达到最低任务处理功耗;在不影响任务处理的前提下,处理器能够基于核心工作频率与功率之间的特性关系,对任务进行动态划分合并,并动态调整处理任务的核心数量,实现任务处理时的最低功耗,有助于延长设备的续航时间。
附图说明
14.图1示出了本申请一个示例性实施例提供的任务处理方法的流程图;
15.图2是本申请一个示例性实施例示出的频率功率曲线;
16.图3示出了本申请另一个示例性实施例提供的任务处理方法的流程图;
17.图4是通过单核心和双核心进行任务处理时的频率功率曲线;
18.图5是通过单核心和三核心进行任务处理时的频率功率曲线;
19.图6是不同核心数量下任务处理过程中功率效率的示意图;
20.图7示出了本申请另一个示例性实施例提供的任务处理方法的流程图;
21.图8是本申请一个示例性实施例示出的任务处理过程的示意图;
22.图9是本申请另一个示例性实施例示出的任务处理过程的示意图;
23.图10是本申请另一个示例性实施例示出的任务处理过程的示意图;
24.图11示出了本申请另一个示例性实施例提供的任务处理方法的流程图;
25.图12示出了本申请一个示例性实施例提供的计算机设备的结构方框图。
具体实施方式
26.为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
27.在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
28.在现有技术条件下,处理器中核心的功率p与工作频率f的关系曲线函数为p(f),函数p(f)的取值随着f的增大而增大,且p(f)的斜率随着f的增大而增大,即f不断增大时,核心所消耗功率增加的比例大于f增大的比例。此外,在工作频率趋近于0的情况下,受限于工艺技术和物理限制,核心仍旧会存在一定的功率消耗(如漏电功耗)。如果通过单核心进行任务处理,当任务的复杂度较高时,单核心需要达到极高的工作频率,进而带来极高的功率消耗。
29.为了降低处理器处理任务时的功耗,本申请实施例提供了一种任务处理方法。应用本申请实施例提供的任务处理方法时,多核处理器进行任务处理前,首先根据原始任务的任务复杂,确定单核心处理原始任务时的单核工作频率,并根据单核工作频率,以及表征单核心处理时工作频率与功率之间关系的频率功率曲线,确定目标核心数量,从而基于目标核心数量进行任务分配,进而通过目标核心数量的核心进行任务处理,并收集重组各个核心的任务处理结果,以达到最低任务处理功耗。在不影响任务处理的前提下,处理器能够基于核心工作频率与功率之间的特性关系,对任务进行动态划分合并,并动态调整处理任务的核心数量,实现任务处理时的最低功耗,有助于降低任务处理功耗。
30.请参考图1,其示出了本申请一个示例性实施例提供的任务处理方法的流程图。该方法包括如下步骤:
31.步骤101,确定单核心处理原始任务时的单核工作频率。
32.在一种可能的实施方式中,对于待处理的至少一个原始任务,处理器根据原始任务的任务复杂度,确定单核心处理原始任务时的单核工作频率。其中,该单核工作频率可以
为最低工作频率,且任务复杂度越高,单核工作频率越高(即将工作频率作为任务复杂度的量化指标)。
33.可选的,当存在多个原始任务时,该单核工作频率为单核心处理各个原始任务的工作频率之和。
34.在一个示例性的例子中,该原始任务为多路视频流的编解码任务,单核工作频率即为单核心处理多路视频流编解码任务时的工作频率。
35.步骤102,基于单核工作频率和频率功率曲线,确定目标核心数量,频率功率曲线用于表征单核心处理任务时工作频率与功率之间的关系,目标核心数量小于等于处理器的核心总数,且核心总数大于等于2。
36.由于核心处理任务时,工作频率与功率之间并非呈简单的线性关系,因此采用不同数量的核心处理相同任务时的功耗也不同,因此为了降低任务处理功耗,本申请实施例中,处理器并非通过固定数量的核心(比如处理器中所有的核心)对原始任务进行处理,而是基于单核工作频率以及频率功率曲线,动态确定所需采用核心的目标核心数量,该目标核心数量为至少一个。
37.其中,频率功率曲线是用于表征单核心处理任务时工作频率与功率之间关系连续曲线,或者,由若干离散点拟合得到的曲线(核心的工作频率并非连续值,而是受到基础时钟频率控制,以此工作频率是基础工作频率的整数倍)。示意性的,频率功率曲线p(f)如图2所示,且频率功率曲线上最优功率效率点a对应的最优工作频率为f0,最优工作频率对应的功率为p(f0)。
38.在一种可能的实施方式中,处理器以最小化任务处理功耗为目标确定目标核心数量。
39.步骤103,为目标核心数量的核心分配任务,并通过各个核心处理分配的任务,其中,各个核心处理任务时的工作频率相同,且通过目标核心数量的核心进行任务处理的处理功耗最低。
40.设需要处理器处理的任务记为t,任务t在单个核心上处理时,所需要的最低的工作频率为f(f>0)。任务的复杂度越高,对应的最低工作频率f越高,两者成正比关系。当需要将任务t分为n(n≥2)个并行的子任务时,记划分后的子任务为t1,t2,...,t
n
。每个子任务可以在一个核心上进行处理。这里的n个的子任务的处理复杂度可以相同,也可以不同。假设其中每个子任务在一个核心上处理时所需要的最低的工作频率记为f1,f2,...,f
n
,则有f1+f2+

+f
n
=f,且0<f1<f,0<f2<f,0<f3<f,...,0<f
n
<f,n≥2。即所有子任务所对应的最低工作频率之和,等于原始任务在单核心上处理时所需要的工作频率。
41.在一种可能的实施方式中,处理器首先需要基于单核工作频率以及目标核心数量对原始任务进行任务划分,从而得到目标核心数量的子任务,从而将子任务分配给目标核心数量的核心进行处理。其中,各个子任务的任务复杂度相同,相应的,各个核心处理子任务时的工作频率相同,以达到处理原始任务的最低功耗。
42.在一个示例性的例子中,当原始任务为多路视频流的编解码任务,且目标核心数量为n时,处理器将多路视频流分为n组,并将n组视频流的编解码任务分配给n个核心进行处理。
43.步骤104,收集并重组各个核心的任务处理结果。
44.完成子任务分配后,处理器中的核心即进行任务处理,并输出各自子任务的子任务处理结果,进一步的,处理器收集各个核心输出的子任务处理结果,并进行重组,得到原始任务对应的任务处理结果。
45.结合上述步骤中的示例,处理器对n个核心输出的编解码结果进行收集重组,得到原始多路视频流的编解码结果。
46.综上所述,本申请实施例中,处理器进行任务处理前,首先根据单核心处理原始任务时的单核工作频率,以及表征单核心处理时工作频率与功率之间关系的频率功率曲线,确定目标核心数量,从而基于目标核心数量进行任务分配,进而通过目标核心数量的核心进行任务处理,并收集重组各个核心的任务处理结果,以达到最低任务处理功耗;在不影响任务处理的前提下,处理器能够基于核心工作频率与功率之间的特性关系,对任务进行动态划分合并,并动态调整处理任务的核心数量,实现任务处理时的最低功耗,有助于延长设备的续航时间。
47.在实际应用中发现,任务处理的总功耗通常由各核心的处理功耗,以及对任务进行子任务划分、对任务处理结果进行收集重组时造成的额外功耗构成。
48.以处理器将原始任务划分为至少两个子任务(t1、t2、...,t
n
),并通过至少两个核心进行任务处理为例,各个核心的任务处理功耗可以表示为p(f1)、p(f2)、...、p(f
n
),其中,f1+f2+

f
n
=f,0<f1<f,0<f2<f,...,0<f
n
<f,f为单核心处理原始任务时的单核工作频率。
49.若任务处理过程中的额外功耗可以表示为p
extra
(t;t1,t2,...,t
n
),则整个任务处理过程的处理总功耗可以表示为:
50.p
total
(t;t1,t2,...,t
n
)=p(f1)+p(f2)+

+p(f
n
)+p
extra
(t;t1,t2,...,t
n
)。
51.由于额外功耗在处理总功耗中所占的比重较小(远小于核心处理任务过程的处理功耗),因此在一种可能的实施方式中,处理器将任务处理过程的处理总功耗确定各个核心的处理功耗之和,以此简化目标核心数量的确定流程,下面采用示意性的实施例进行说明。
52.请参考图3,其示出了本申请另一个示例性实施例提供的任务处理方法的流程图。该方法包括如下步骤:
53.步骤301,确定单核心处理原始任务时的单核工作频率。
54.本步骤的实施方式可以参考上述步骤101,本实施例在此不再赘述。
55.步骤302,获取频率功率曲线中最优功率效率点对应的最优工作频率,最优功率效率点处的功率效率高于频率功率曲线上其它点处的功率效率,功率效率为工作频率与功率的比值。
56.图2所示的频率功率曲线是一个在定义域内递增的凸函数,曲线的斜率在定义域内为非负数,且斜率随着工作频率的增加而不断增大,即随着工作频率的增大,功率增大的比例越来越大。
57.记经过原点o并与频率功率曲线p(f)相切或相交的斜率最小的直线,与频率功率曲线的切点或交点为a,a点即为整条曲线上的最优功率效率点。设该点对应的工作频率为f0,对应的功率为p(f0),则该点的功率效率为即为整条曲线上的最高功率效率,也是a点到原点所在直线斜率的倒数。
58.该点的物理含义为单位功率消耗条件下单个核心的最高处理能力。即在给定待处理任务的条件下,在工作频率为f0时,单个核心所消耗的总能量最低。换一个角度,在给定总的能量消耗的条件下,在工作频率为f0时,单个核心能够处理更多的任务。
59.基于上述分析可知,当工作频率小于等于最优工作频率时,采用多核心并行处理任务时的总处理功耗将大于采用单核心处理任务时的处理功耗;当工作频率大于最优工作频率时,采用多核心并行处理任务时的总处理功耗才有可能小于采用单核心处理任务时的处理功耗。
60.因此,在一种可能的实施方式中,在确定目标核心数量时,首先获取频率功率曲线中最优功率效率点对应的最优工作频率,并检测单核工作频率是否大于最优工作。若大于,则执行步骤304至306,若小于等于,则执行步骤303。
61.可选的,处理器预先存储有频率功率曲线上的最优工作频率。
62.步骤303,响应于单核工作频率小于等于最优工作频率,确定目标核心数量为1。
63.当原始任务对应的单核工作频率小于等于最优工作频率时,处理器确定目标核心数量为1,后续即通过任一核心对原始任务进行处理。
64.步骤304,响应于单核工作频率大于最优工作频率,基于单核工作频率和候选核心数量,确定候选工作频率,候选工作频率为单核工作频率与候选核心数量的比值,候选核心数量小于等于核心总数。
65.当原始任务对应的单核工作频率大于最优工作频率时,多核心并行处理并不一定能够降低任务处理功耗。为了确定在何种核心分配情况下,才能够达到最低处理功耗,进行了如下分析。
66.设单个任务t通过单个核心进行处理时,所需要的最低工作频率为f,单个任务t分为两个子任务t1,t2,且每个子任务分别在一个核心上处理时的最低工作频率分别为f1、f2,并满足f1+f2=f。通过两个核心处理两个子任务所需要的总处理功率记为:
67.p
(2)
(f1,f2)=p(f1)+p(f2)=p(f1)+p(f

f1)=p(f2)+p(f

f2)
68.令如图4所示,可以证明,在定义域[0,f]上关于对称,且时,的值最小。
[0069]
在约束f1+f2=f的条件下,当时,p
(2)
(f1,f2)的值取到最小值,即当需要通过两个核心并行处理单个任务t时,将任务t按照处理复杂度平均分为两个处理复杂度相同的子任务,每个核心处理其中一个子任务时,所消耗的总功率最低。且每个核心的最低工作频率,等于原始任务在一个核心处理时所需要的最低工作频率的二分之一。
[0070]
假设单个任务t通过单个核心进行处理时,所需要的最低工作频率为f。单个任务t分为三个子任务t1、t2和t3,且每个子任务分别在一个核心上处理时的最低工作频率分别为f1、f2和f3,并满足f1+f2+f3=f。那么通过三个核心并行处理此三个子任务所需要的总处理功率记为:
[0071]
p
(3)
(f1,f2,f3)=p(f1)+p(f2)+p(f3)
[0072]
如图5所示,可以证明,在约束f1+f2+f3=f的条件下,p
(3)
(f1,f2,f3)在
的条件下取得最小值。即当需要通过三个核心并行处理单个任务t时,将任务t按照处理复杂度平均分为三个处理复杂度相同的子任务,每个核心处理其中一个子任务时,所消耗的总功率最低。且每个核心的最低工作频率,等于原始任务在一个核心处理时所需要的最低工作频率的三分之一。
[0073]
将上述结论进一步推广至三路以上的情况,可以得到如下结论:在约束f1+f2+

+f
n
=f的条件下,p
(n)
(f1,f2,...,f
n
)在的条件下取得最小值。即当需要通过n(n>3)个核心并行处理单个任务t时,将任务t按照处理复杂度平均分为n个处理复杂度相同的子任务,每个核心处理其中一个子任务时,所消耗的总功率最低。且每个核心的最低工作频率,等于原始任务在一个核心处理时所需要的最低工作频率的n分之一。
[0074]
此时n个核心所消耗的总处理功率为:
[0075][0076]
基于上述结论,由于多核处理器中用于处理任务的核心数量可变,因此,在一种可能的实施方式中,处理器需要基于单核工作频率和候选核心数量,确定候选工作频率,该候选工作频率即为基于任务复杂度将原始任务划分为n个子任务后,各个核心处理子任务时的工作频率。
[0077]
在一个示意性的例子中,当单核工作频率为2000mhz,且处理器的核心总数为6时,确定出的候选工作频率包括1000mhz(对应2核心)、667mhz(对应3核心)、500mhz(对应4核心)、400mhz(对应5核心)、333mhz(对应6核心)。
[0078]
步骤305,基于频率功率曲线,从候选工作频率中确定目标工作频率。
[0079]
当核心数量n可变时,假设n的最大取值为n
max
,n取不同值时最小处理功耗为:
[0080][0081]
从上述所有n
max
种的情况中,选择使得总处理消耗最低的n的作为实际采用核心的目标核心数量,则可以得到当前条件下最低的处理功率。记此最低处理功率对应的目标核心数量为n
best
,则n
best
可以写为:
[0082][0083]
当r已知时,可以重写为:
[0084][0085]
进一步的,n
best
可以重写为:
[0086][0087]
其中,即为单核工作频率为f的n等分点对应的频率功率曲线p(f)上的点到原点所在直线的斜率,如图6所示。
[0088]
在给定f条件下求取使得的最小的n值的过程,即等价为寻找f的所有n
max
个等分点对应的曲线p(f)上的点到原点的直线的最小斜率(最大功率效率)的过程。
[0089]
以图6为例,n=2时,频率功率曲线p(f)上的点到原点的直线的斜率,为所有n
max
个等分点对应的直线中最小的一条。点也是所有n
max
个等分点中功率效率最高的一条。即将原始任务划分为两个子任务,并通过两个核心对子任务进行处理时,总处理功率最小。n取其他任何值时总处理功率,均不小于n=2时消耗的总处理功率。
[0090]
基于上述分析结论,在一种可能的实施方式中,如图7所示,本步骤可以包括如下步骤。
[0091]
步骤305a,基于频率功率曲线,确定单核工作频率对应的第一功率效率,以及各个候选工作频率各自对应的第二功率效率。
[0092]
在一种可能的实施方式中,处理器基于频率功率曲线,确定单核心处理时的第一功率效率,以及采用多核心处理时的第二功率效率。进一步的,处理器检测是否存在高于第一功率效率的第二功率效率,若存在,则确定采用多核心处理可以降低处理功耗,并执行步骤305b,若不存在,则确定采用多核心处理的功耗均高于单核心处理,并执行步骤305c。
[0093]
步骤305b,响应于存在第二功率效率高于第一功率效率,将最高第二功率效率对应的候选工作频率确定为目标工作频率。
[0094]
当存在至少一个第二功率效率高于第一功率效率时,将最高第二功率效率对应的候选工作频率,确定为多核心处理时达到最低处理功耗的目标工作频率。
[0095]
示意性的,如图6所示,当单核工作频率为f时,处理器将确定为目标工作频率。
[0096]
步骤305c,响应于不存在第二功率效率高于第一功率效率,确定目标核心数量为1。
[0097]
当不存在高于第一功率效率的第二功率效率时,处理器确定采用多核心处理无法降低处理功耗,从而将目标核心数量确定为1。
[0098]
步骤306,将目标工作频率对应的候选核心数量确定为目标核心数量,其中,通过目标核心数量的核心进行任务处理时,各个核心的工作频率为目标工作频率。
[0099]
进一步的,处理器将目标工作频率对应的候选核心数量确定为达到最低处理功率时的目标核心数量,后续通过目标核心数量的核心进行任务处理时,各个核心处理子任务时的工作频率均为目标工作频率。
[0100]
示意性的,如图6所示,当目标工作频率为时,处理器将目标核心数量确定为2,即后续通过两个核心处理原始任务。
[0101]
步骤307,为目标核心数量的核心分配任务,并通过各个核心处理分配的任务。
[0102]
针对不同情况下原始任务的数量,处理器通过目标核心数量的核心进行任务处理前,首先需要将原始任务划分为多个复杂度相同的子任务,以此保证每一核心处理子任务的工作频率为目标工作频率。在一种可能的实施方式中,对不同情况下原始任务的处理方式包括如下几种。
[0103]
一、响应于存在一个原始任务,且目标核心数量为1,向任一核心分配原始任务。
[0104]
当仅存在单个原始任务,且确定出的目标核心数量为1时,表明直接通过单个核心处理原始任务的功耗低于多核心处理原始任务的功耗,且由于原始任务的数量和目标核心数量为1,因此处理器可以通过任一核心处理原始任务。
[0105]
对应的,单一核心对原始任务进行处理后,即可得到原始任务的任务处理结果。
[0106]
在一个示意性的例子中,若原始任务对应的单核工作频率f小于f0,处理器通过单核处理原始任务。
[0107]
二、响应于存在一个原始任务,且目标核心数量为n,对原始任务进行任务划分,得到n个子任务;向n个核心分配n个子任务,n为大于等于1的整数。
[0108]
当仅存在单个原始任务,且确定出的目标核心数量为n路时,表明将原始任务划分为n个子任务,并通过n个核心处理n个子任务时的处理功耗最低,因此处理器对原始任务进行子任务划分,得到n个任务复杂度相同的子任务,并通过n个核心分别对n个子任务进行处理。
[0109]
对应的,通过对n个核心各自输出的任务处理结果进行收集整理,即得到原始任务的任务处理结果。
[0110]
在一个示意性的例子中,若原始任务对应的单核工作频率为f(大于f0),且确定出的目标核心数量为3时,处理器将原始任务划分为三个子任务,并分配给三个核心进行任务处理。
[0111]
三、响应于存在m个原始任务,且目标核心数量为1,向任一核心分配m个原始任务,m为大于等于1的整数。
[0112]
当存在多个原始任务,且确定出的目标核心数量仅为1时,表明通过单核心进行任务处理的功耗低于多核心进行任务处理的功耗,因此处理器可以向同一核心同时分配m个原始任务,由该核心对m个原始任务进行处理,得到m个原始任务各自对应的任务处理结果。
[0113]
在一个示意性的例子中,若原始任务数量为3,且3个原始任务对应的单核工作频率之和f小于f0,处理器即将3个原始任务分配给单个核心进行任务处理。
[0114]
四、响应于存在m个原始任务,且目标核心数量为n,对m个原始任务进行任务划分,得到m
×
n个子任务;向n个核心分配m
×
n个子任务,其中,每个核心用于处理m个子任务,且m个子任务来自不同原始任务。
[0115]
可选的,当原始任务的数量为m,目标核心数量为n,且存在至少一个原始任务对应的工作频率不是目标工作频率时,处理器需要对各个原始任务进行子任务划分,并将划分得到的子任务分配给相应的核心进行处理。
[0116]
可选的,为了使后续各个核心处理子任务时的工作频率为单核工作频率的n分之
一,对于各个原始任务,处理器将该原始任务划分为任务复杂度相同的n个子任务,从而得到m
×
n个子任务;进一步的,处理器将属于不同原始任务的m个子任务分配给单个核心进行处理。
[0117]
示意性的,如图8所示,当存在两个原始任务(任务1对应的工作频率为f1,任务2对应的工作频率为f2),且目标核心数量为2时,处理器分别对任务1和2进行子任务划分,得到两个对应工作频率为f1/2的子任务(1a和1b),以及两个对应工作频率为f2/2的子任务(2a和2b),并进一步分配核心1处理子任务1a和子任务2a(单核最低工作频率为(f1+f2)/2),分配核心2处理子任务1b和子任务2b(单核最低工作频率为(f1+f2)/2)。核心1和核心2完成任务处理后,处理器收集整理子任务1a的处理结果以及子任务1b的处理结果,得到任务1的处理结果;处理器收集整理子任务2a的处理结果以及子任务2b的处理结果,得到任务2的处理结果。
[0118]
进一步推广到任意多核处理场景,如图9所示,当存在m个原始任务(任务1对应的工作频率为f1,任务2对应的工作频率为f1,...,任务m对应的工作频率为f
m
),且目标核心数量为n
best
时,处理器分别对任务1至m进行子任务划分,得到n
best
个对应工作频率为f1/n
best
的子任务,n
best
个对应工作频率为f2/n
best
的子任务,...,以及n
best
个对应工作频率为f
m
/n
best
的子任务。进一步的,处理器向各个核心分配处理n
best
个子任务(单核最低工作频率为核心1至核心m完成任务处理后,处理器收集整理任务1对应的n
best
个子任务处理结果,得到任务1处理结果,收集整理任务2对应的n
best
个子任务处理结果,得到任务2处理结果,...,收集整理任务m对应的n
best
个子任务处理结果,得到任务m处理结果。
[0119]
为了减少子任务划分数量,在一种可能的实施方式中,当原始任务对应的工作频率为目标工作频率的整数倍时,处理器对该原始任务进行子任务划分,得到至少一个目标工作频率的子任务;当至少两个原始任务对应的工作频率之和为目标工作频率时,处理器将该至少两个原始任务分配给同一核心,无需进行子任务划分。
[0120]
示意性的,在图9的基础上,如图10所示,若任务1对应的工作频率为2
·
f
best
,处理器即对原始任务进行子任务划分,得到两个工作频率为f
best
的子任务(而非划分为n
best
个子任务),从而通过核心1和2对任务1进行处理。相应的,处理器对核心1和核心2输出的任务处理结果进行整理,得到任务1处理结果。
[0121]
若任务2和3的工作频率均为f
best
/2,处理器即将任务2和3分配给核心3进行处理,无需将任务2和3划分为个n
best
子任务。相应的,处理器对核心3输出的任务处理结果进行整理,得到任务2和任务3的处理结果。
[0122]
需要说明的是,上述实施例仅以一种可能的子任务划分方式为例进行说明,并不对任务划分的具体分配方式构成限定。
[0123]
步骤308,收集并重组各个核心的任务处理结果。
[0124]
在一种可能的实施方式中,当存在m个原始任务,且目标核心数量为n时,处理器收集n个核心对同一原始任务对应n个子任务的子任务处理结果,从而对子任务处理结果进行重组,得到原始任务的任务处理结果。
[0125]
在其他可能的实施方式中,当存在一个原始任务,且目标核心数量为1时,处理器将单个核心输出的处理结果确定为原始任务的任务处理结果;当存在一个原始任务,且目
标核心数量为n,处理器将n个核心输出的处理结果进行整合,得到原始任务的任务处理结果;当存在m个原始任务,且目标核心数量为1时,处理器对单个核心输出的处理结果进行划分,得到m个原始任务各自对应的任务处理结果。
[0126]
本实施例中,处理器基于频率功率曲线,确定不同候选工作频率对应的功率效率,进而基于功率效率确定出最低处理功耗下所采用核心的目标核心数量,简化了目标核心数量的确定流程,提高了任务处理效率。
[0127]
为了提高确定出的目标核心数量的准确性,在一种可能的实施方式中,处理器将任务处理过程中的额外功耗纳入总处理功耗,进而基于总处理功耗确定目标核心数量。下面采用示意性的实施例进行说明。
[0128]
请参考图11,其示出了本申请另一个示例性实施例提供的任务处理方法的流程图。该方法包括如下步骤:
[0129]
步骤1101,确定单核心处理原始任务时的单核工作频率。
[0130]
本步骤的实施方式可以参考步骤101,本实施例在此不再赘述。
[0131]
步骤1102,基于单核工作频率和候选核心数量,确定候选工作频率,候选工作频率为单核工作频率与候选核心数量的比值,候选核心数量小于等于n。
[0132]
本步骤的实施方式可以参考上述步骤304,本实施例在此不再赘述。
[0133]
步骤1103,基于频率功率曲线确定候选工作频率对应的候选功率,并基于候选功率和候选核心数量确定候选处理功耗。
[0134]
在一种可能的实施方式中,处理器从频率功率曲线上确定候选工作频率对应的候选功率,且由于各个核心的工作频率相同,因此处理器可以基于候选功率和候选核心数量确定候选处理功耗,其中,该候选处理功耗=候选功率
×
候选核心数量。
[0135]
步骤1104,确定采用候选核心数量的核心进行任务处理的候选额外功耗,候选额外功耗包括任务分配功耗和处理结果重组功耗。
[0136]
步骤1105,基于候选处理功耗和候选额外功耗确定候选核心数量对应的候选总处理功耗。
[0137]
在一种可能的实施方式中,当额外功耗p
extra
(t1,t2,...,t
m
;t
′1,t
′2,...,t

n
)只与原始任务t1,t2,...,t
m
在单个核心上处理时所需要的最低工作频率f有关,可理解为只与所有任务的总的任务复杂度有关,其中f=f1+f2+

+f
m
。所有m(m≥2)个原始任务需要通过子任务划分、任务或子任务分组,分为n个任务组(t
′1,t
′2,...,t

n
),每个任务组在1个核心上处理,且n个核心承担的任务组所需要的最低工作频率分别为f
′1,f
′2,...,f

n
时,其中f
′1+f
′2+

+f

n
=f。
[0138]
通过n个核心并行处理mfm≥2)个原始任务所消耗的总处理功耗可以写为:
[0139]
p
total
(t1,t2,...,t
m
;n)=p(f
′1)+p(f
′2)+

+p(f

n
)+p
extra
(f)
[0140]
在给定f和并行核心的数量n时,在f
′1+f
′2+

+f

n
=f的约束条件下,当按照当时,总处理功耗p
total
(t1,t2,...,t
m
;n)取得最小值,记为:
[0141][0142]
该结论对任意n≥2的整数成立。
[0143]
在f给定,但并行工作的核心的数量n可变时,假设n的最大值为n
max
,对于n的所有
取值,有:
[0144][0145]
从上述n
max
种可能的选择中,选择使得总处理功耗最低的n作为实际的并行工作的核心的数量,就可以得到当前条件下最低的处理功耗。
[0146]
记n≥2时,功耗最低的目标核心数量为n

best
,则n

best
可以写为:
[0147][0148]
可得出结论:在给定f的条件下求取n

best
的过程,即等价为在曲线p(f)上寻找所有等分点到原点决定的所有直线的最小斜率的过程,其中斜率最小的直线对应的n值即为n

best

[0149]
在另一种可能的实施方式中,额外功耗p
extra
(t1,t2,...,t
m
;t
′1,t
′2,...,t

n
)不只与f(f=f1+f2+

+f
m
)有关,还可能跟每个任务各自在一个核心上处理时所需要的最低工作频率f1,f2,...,f
m
有关,还可能跟并行处理任务的核心的数量n有关,还可能跟每个核心承担的任务组(t

1,t
′2,...,t

n
)所需要的最低工作频率f
′1,f
′2,...,f

n
有关。此时无法直接通过代数解析式、几何曲线或曲面分析并行处理后的总功率消耗的规律。
[0150]
通过n个核心并行处理m(m≥2)个原始任务所消耗的总处理功耗可以写为:
[0151]
p
totaf
(t1,t2,...,t
m
;n)=p(f1)+p(f2)+

+p(f
n
)+p
extra
(t1,t2,...,t
m
;t
′1,t
′2,...,t

n
)
[0152]
记p
totaf
(t1,t2,...,t
m
;n)的最小值记为:
[0153][0154]
假设n的最大值为n
max
,那么对于n的所有取值,有:
[0155]

n=1时,
[0156][0157]

n=2时,
[0158][0159]

n=3时,
[0160][0161]

...
[0162]

n=n
max
时,
[0163][0164]
从上述n
max
种可能的选择中,选择使得总处理功耗最低的n作为目标核心数量,则可以得到当前条件下最低的处理功耗。
[0165]
步骤1106,将最低候选总处理功耗对应的候选核心数量确定为目标核心数量。
[0166]
进一步的,通过比较各个候选总处理功耗,处理器将最低候选总处理功耗对应的候选核心数量确定为目标核心数量。
[0167]
步骤1107,为目标核心数量的核心分配任务,并通过各个核心处理分配的任务。
[0168]
步骤1108,收集并重组各个核心的任务处理结果。
[0169]
步骤1107至1108的实现方式可以参考步骤307和308,本实施例在此不再赘述。
[0170]
本实施例中,处理器基于处理功耗和额外功耗确定总处理功耗,进而基于总处理功耗确定目标核心数量,有助于提高确定出的目标核心数量的准确性,即确保采用目标核心数量的核心进行任务处理时达到最低功耗。
[0171]
此外,从上述实施例可以看出,由于各个核心的目标工作频率并不一定等于f0,因此无法保证达到最优功率效率。为了进一步降低任务处理功耗,在一种可能的实施方式中,当单核工作频率大于最优工作频率,且原始任务的任务复杂度可调时,处理器可以通过调整原始任务的任务复杂度,将单核工作频率调整为最优工作频率的整数倍。后续进行任务分配时,每一个核心处理子任务时的工作频率即为最优工作频率,从而达到最低任务处理功耗。
[0172]
在其他可能的实施方式中,还可以通过调整核心的最优功率效率点,使最优功率效率点出的工作频率等于或略大于目标工作频率,本实施例对此不作限定。
[0173]
本申请实施例还提供了一种多核处理器,多核处理器具有n个核心,多核处理器用于实现如上述实施例提供的任务处理方法。
[0174]
请参考图12,其示出了本申请一个示例性实施例提供的计算机设备的结构方框图。该计算机设备1200可以是智能手机、平板电脑、可穿戴式设备、便携式计算机或者服务器等。本申请中的计算机设备1200可以包括一个或多个如下部件:处理器1210和存储器1220。
[0175]
处理器1210可以包括多个处理核心。处理器1210利用各种接口和线路连接整个计算机设备1200内的各个部分,通过运行或执行存储在存储器1220内的指令、程序、代码集或指令集,以及调用存储在存储器1220内的数据,执行计算机设备1200的各种功能和处理数据。可选地,处理器1210可以采用数字信号处理(digital signal processing,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器1210可集成中央处理器(central processing unit,cpu)、图像处理器(graphics processing unit,gpu)、神经网络处理器(neural

network processing unit,npu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责触摸显示屏1230所需要显示
的内容的渲染和绘制;npu用于实现人工智能(artificial intelligence,ai)功能;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1210中,单独通过一块芯片进行实现。
[0176]
存储器1220可以包括随机存储器(random access memory,ram),也可以包括只读存储器(read

only memory,rom)。可选地,该存储器1220包括非瞬时性计算机可读介质(non

transitory computer

readable storage medium)。存储器1220可用于存储指令、程序、代码、代码集或指令集。存储器1220可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等;存储数据区可存储根据计算机设备1200的使用所创建的数据(比如音频数据、电话本)等。
[0177]
除此之外,本领域技术人员可以理解,上述附图所示出的计算机设备1200的结构并不构成对计算机设备1200的限定,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,计算机设备1200中还包括显示组件、射频电路、传感器、音频电路、无线保真(wireless fidelity,wifi)组件、电源、蓝牙组件等部件,在此不再赘述。
[0178]
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
[0179]
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1