任务调度方法及相关产品与流程

文档序号:25601781发布日期:2021-06-25 12:03阅读:90来源:国知局
任务调度方法及相关产品与流程

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.图1为一个实施例中组合处理装置的结构示意图;
49.图2为一个实施例中任务调度方法的流程示意图;
50.图3为一个实施例中性能评估函数曲线的示意图;
51.图4为一个实施例中根据所述性能参数,生成任务调度策略的补充方案的流程示意图;
52.图5为一个实施例中不同计算平台的性能评估函数曲线的示意图;
53.图6为另一个实施例中根据所述性能参数,生成任务调度策略的补充方案的流程示意图;
54.图7为另一个实施例中不同计算平台的性能评估函数曲线的示意图;
55.图8为又一个实施例中根据所述性能参数,生成任务调度策略的补充方案的流程示意图;
56.图9为又一个实施例中不同计算平台的性能评估函数曲线的示意图;
57.图10为一个实施例中vgg16的计算量和访存量统计表格的示意图。
具体实施方式
58.为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
59.本申请提供的任务调度方法,可以应用于如图1所示的应用环境中。其中,第一计算平台10包括第一控制器110、第一运算器120和第一通信单元130,第一控制器110分别连接第一运算器120和第一通信单元130。第二计算平台20包括第二控制器110、第二运算器120和第二通信单元130,第二控制器110分别连接第二运算器120和第二通信单元130。第一通信单元130通过网络与第二通信单元230通信。具体地,在第一控制器110或第二控制器120中,可设置相应的任务调度设备。该任务调度设备用于根据多个计算平台对应的算力和带宽,以及多个运算任务的计算量和访存量,评估各运算任务在不同计算平台的性能表现,由此生成任务调度策略,以实现对运算任务的调度。另一方面,第一控制器110或第二控制器120还用于生成任务调度时的控制指令,以便于其他单元能够根据该控制指令执行相应操作。例如:各运算器根据该控制指令处理相应的运算任务,并生成输出结果。各通信单元根据该控制指令实现第一计算平台10与第二计算平台20之间的交互。
60.应当说明的是,本申请实施例涉及的应用场景不限于计算平台的数量,计算平台的数量可以是三个及以上。
61.在一个实施例中,请参阅图2,提供了一种任务调度方法,以该方法应用于任务调度设备为例进行说明,包括以下步骤:
62.s202,获取多个计算平台对应的算力和带宽。
63.其中,计算平台是指具有计算能力的硬件设备。例如,计算平台包括服务器和客户端。算力即每秒峰值运算次数,其也称为计算平台的性能上限,可理解为一个计算平台倾尽全力每秒钟所能完成的运算数。带宽即每秒峰值内存数据存取量(peak memory bandwidth),其也称为计算平台的带宽上限,可理解为一个计算平台倾尽全力每秒所能完成的内存交换量,单位是byte/sec。
64.具体地,任务调度设备获取多个计算平台对应的算力和带宽。
65.s204,根据算力和带宽,确定每一计算平台对应的性能评估策略。
66.具体地,由于算力和带宽是计算平台的固有属性,它们可以表征计算平台的性能。可选地,针对算力和带宽,任务调度设备可进行一系列地算术运算,得到用于表征计算平台的性能指标,根据该性能指标、算力和带宽,可确定每一计算平台对应的性能评估策略。该性能评估策略用于确定运算任务在计算平台中运行时对应的性能参数。
67.s206,获取机器学习模型所包含的运算任务的计算量和访存量。
68.其中,机器学习模型是指用于机器学习运算的模型。机器学习模型例如可以是支持向量机、神经网络模型等等。机器学习模型所包含的运算任务按照对象的不同,包括机器学习模型需计算的任务、机器学习模型中的层需计算的任务以及神经网络算子需计算的任务等等。而无论是哪一种运算任务,都有其对应的固有属性:计算量和访存量。针对于神经网络模型而言,计算量可以是指输入单个样本,例如:对于cnn的模型而言可以是一张图像,模型进行一次完整的前向传播所发生的浮点运算个数,也即模型的时间复杂度,单位是flops,也可以是指该图像在神经网络中某一层或者某一个算子的运算量。访存量可以是指
输入单个样本,模型完成一次前向传播过程中所发生的内存交换总量,也即模型的空间复杂度,也可以是指在传输过程中某一层或者算子的访问量。
69.具体地,任务调度设备获取机器学习模型所包含的运算任务的计算量和访存量。
70.s208,根据计算量和访存量,并基于每一计算平台对应的性能评估策略,确定运算任务在每一计算平台中运行时对应的性能参数。
71.具体地,任务调度设备在获得任务的性能指标:计算量和访存量以及计算平台对应的性能评估策略之后,根据这些信息确定运算任务在每一计算平台中运行时对应的性能参数。该性能参数用于表征运算任务在计算平台中运行时的性能表现,例如可以是运算速度、运算时间等参数。
72.s210,根据性能参数,生成任务调度策略。
73.具体地,任务调度设备在获取所有性能参数之后,通过比较或者按照预设调度条件生成任务调度策略。任务调度策略是指基于性能表现,将任务分配至更为适配的计算平台。
74.s212,基于任务调度策略,将运算任务在多个计算平台中进行调度。
75.具体地,鉴于机器学习的特性:运算量大,其包含的运算任务体量也很大很多。基于上述步骤,可得到每个运算任务对应的任务调度策略,这样,可将多个运算任务分配至不同的计算平台中进行协同处理,且运算任务的属性与计算平台的属性更为适配,从而有效利用不同计算平台的计算能力,极大地加快了计算效率。
76.上述任务调度方法,采用计算平台的属性:算力和带宽,机器学习模型运算任务的属性:计算量和访存量,来确定运算任务在多个计算平台中分别运行时的性能表现,从而根据这些性能表现,确定运算任务该分配至哪个计算平台处理,可实现将很多的运算任务分配至不同的计算平台来协同处理,且运算任务的属性与计算平台的属性更为适配。采用这种调度方式,有效利用了不同计算平台的计算能力,极大地加快了计算效率。
77.可选地,在一个实施例中,每秒峰值运算次数包括每秒峰值浮点运算次数,单位是flop/sec。需要指出,以下内容所涉及的每秒峰值浮点运算次数均为一种具体的示例。
78.在一个实施例中,涉及根据所述算力和所述带宽,确定每一计算平台对应的性能评估策略的一种可能的实现过程。在上述实施例的基础上,s210包括以下步骤:
79.s210a,根据算力和带宽,确定每一计算平台对应的性能评估函数。
80.或者,
81.s210b,根据算力和带宽,确定每一计算平台对应的性能评估函数曲线。
82.具体地,性能评估策略可采用不同的呈现方式呈现。例如:任务调度设备采用函数形式来作为性能评估策略;或者采用函数图像方式来作为性能评估策略。
83.可选地,作为进一步的说明,任务调度设备根据算力和带宽,确定每一计算平台所能提供的最大计算强度,进而根据每一计算平台所能提供的最大计算强度、算力和带宽,确定每一计算平台对应的性能评估策略。其中,最大计算强度可以为算力与带宽的比值。
84.为便于直观理解,请参阅图3,图3即为性能评估函数曲线的一实施例的示意图。其中,p表示运算任务在计算平台中运行时对应的性能参数,i表示运算任务的计算量与访存量的比值:运算任务的计算强度,β表示带宽,π表示算力,i
max
表示计算平台的计算强度。需要理解的是,算力决定图像中直线的高度,带宽决定图像中斜线的斜率,而所有在这个计算
平台上运行的运算任务能够达到的性能都处于折线的下方。
85.为了更加直观地理解,将图像划分为两个区域:计算瓶颈区域(compute-bound)和带宽瓶颈区域(memory-bound)。在带宽瓶颈区域中,当运算任务的计算强度小于计算平台的计算强度时,运算任务的性能受限于内存带宽。此时,计算平台的带宽越大,或者运算任务的计算强度越大,任务的性能表现越好。在计算瓶颈区域中,当运算任务的计算强度大于计算平台的计算强度时,运算任务的性能受限于算力。此时,计算平台的算力越高,运算任务的性能表现越好。
86.在一种实施方式中,基于上述内容,性能评估函数可以表示为:
[0087][0088]
在一个实施例中,涉及根据计算量和访存量,并基于每一计算平台对应的性能评估策略,确定运算任务在每一计算平台中运行时对应的性能参数的一种可能的实现过程。在上述实施例的基础上,s208包括以下步骤:
[0089]
s2082,根据计算量和访存量,确定运算任务对应的计算强度;
[0090]
s2084,根据运算任务对应的计算强度和每一计算平台对应的性能评估策略,确定运算任务在每一计算平台中运行时对应的性能参数。
[0091]
具体地,运算任务对应的计算强度可以是计算量与访存量的比值,即每byte内存交换到底用于进行多少次浮点运算,单位是flop/byte。承上所述,任务调度设备可将运算任务对应的计算强度代入上述性能评估函数或性能评估函数曲线中,以得出运算任务在每一计算平台中运行时对应的性能参数。可选地,该性能参数包括运算任务在计算平台中运行时所能达到的每秒浮点运算次数。
[0092]
为了进一步解释本申请,在一个实施例中,计算平台包括第一计算平台和第二计算平台,其中,第一计算平台与第二计算平台的带宽相同,第一计算平台的算力大于第二计算平台。可选地,第一计算平台可以是终端或服务器,第二计算平台可以是终端或服务器。对此,请参阅图4,s210包括以下步骤:
[0093]
s2101,若所述运算任务在所述第一计算平台中运行时所能达到的每秒浮点运算次数大于所述运算任务在所述第二计算平台中运行时所能达到的每秒浮点运算次数,则将所述运算任务分配至所述第一计算平台中;
[0094]
s2102,若所述运算任务在所述第一计算平台中运行时所能达到的每秒浮点运算次数与所述运算任务在所述第二计算平台中运行时所能达到的每秒浮点运算次数相同,则将所述运算任务分配至所述第二计算平台中。
[0095]
具体地,请一并参阅图5,图5中所示的分别为第一计算平台对应的性能评估函数曲线和第一计算平台对应的性能评估函数曲线。不难看出,由于第一计算平台与第二计算平台的带宽是相同的,而算力有所差异,因此,它们的斜线的斜率是相同的,仅仅直线的高度不同。并且,从图4中可以看出:在m点之前,运算任务在第一计算平台中运行时所能达到的每秒浮点运算次数与运算任务在第二计算平台中运行时所能达到的每秒浮点运算次数相同;在m点之后,运算任务在第一计算平台中运行时所能达到的每秒浮点运算次数大于运算任务在第二计算平台中运行时所能达到的每秒浮点运算次数。对于此种情况,可将位于m点之前的运算任务分配至第二计算平台,而将位于m点之后的运算任务分配至第一计算平
台,由此可充分利用第一计算平台和第二计算平台的算力,从而在整体上加快运算速度。
[0096]
在另一个实施例中,第一计算平台的带宽大于第二计算平台的带宽,第一计算平台的算力大于第二计算平台。对此,请参阅图6,10包括以下步骤:
[0097]
s2103,若所述运算任务对应的计算强度小于或等于所述第二计算平台所能提供的最大计算强度,则将所述运算任务分配至所述第二计算平台中;
[0098]
s2104,若所述运算任务对应的计算强度大于所述第二计算平台所能提供的最大计算强度,则将所述运算任务分配至所述第一计算平台中。
[0099]
具体地,请一并参阅图7,图7中所示的分别为第一计算平台对应的性能评估函数曲线和第一计算平台对应的性能评估函数曲线。不难看出,由于第一计算平台的带宽大于第二计算平台的带宽,第一计算平台的算力大于第二计算平台,因此,第一计算平台对应的斜线的斜率大于第二计算平台对应的斜线的斜率,且第一计算平台对应的直线的高度也大于第二计算平台对应的直线的高度。对于此种情况,可以将m点之前的运算任务,即满足运算任务在第二计算平台中运行时所能达到的计算强度小于或等于第二计算平台所能提供的最大计算强度的运算任务分配至第二计算平台中,充分利用第二计算平台的算力;将m点之后的运算任务,即满足运算任务在第二计算平台中运行时的计算强度大于第二计算平台所能提供的最大计算强度的运算任务分配至第一计算平台中。由此也可充分利用第一计算平台和第二计算平台的算力,从而在整体上加快运算速度。
[0100]
在又一个实施例中,第一计算平台的带宽小于第二计算平台的带宽,第一计算平台的算力大于第二计算平台。对此,请参阅图8,s210包括以下步骤:
[0101]
s2105,若运算任务在第一计算平台中运行时所能达到的每秒浮点运算次数小于或等于运算任务在第二计算平台中运行时所能达到的每秒浮点运算次数,则将运算任务分配至第二计算平台中;
[0102]
s2106,若运算任务在第一计算平台中运行时所能达到的每秒浮点运算次数大于运算任务在第二计算平台中运行时所能达到的每秒浮点运算次数,则将运算任务分配至第一计算平台中。
[0103]
具体地,请一并参阅图9,图9中所示的分别为第一计算平台对应的性能评估函数曲线和第一计算平台对应的性能评估函数曲线。不难看出,由于第一计算平台的带宽小于第二计算平台的带宽,而第一计算平台的算力大于第二计算平台,因此,第一计算平台对应的斜线的斜率小于第二计算平台对应的斜线的斜率,而第一计算平台对应的直线的高度大于第二计算平台对应的直线的高度。对于此种情况,同样可以将m点之前的运算任务,即满足运算任务在第一计算平台中运行时所能达到的每秒浮点运算次数小于或等于运算任务在第二计算平台中运行时所能达到的每秒浮点运算次数的运算任务分配至第二计算平台中,充分利用第二计算平台的算力;将m点之后的运算任务,即满足运算任务在第一计算平台中运行时所能达到的每秒浮点运算次数大于运算任务在第二计算平台中运行时所能达到的每秒浮点运算次数的运算任务分配至第一计算平台中。由此也可充分利用第一计算平台和第二计算平台的算力,从而在整体上加快运算速度。
[0104]
作为一示例,第一计算平台为服务器,第二计算平台为终端。其中,该终端包括第一控制器、第一运算器、第一存储器和第一通信模块,第一控制器分别与第一运算器、第一存储器和第一通信模块连接,第一存储器分别与第一运算器和第一通信模块连接。该服务
器包括第二控制器、第二运算器、第二存储器和第二通信模块,第二控制器分别与第二运算器、第二存储器和第二通信模块连接,第二存储器分别与第二运算器和第二通信模块连接。第一通信模块与第二通信模块通过网络进行通信。可选地,任务调度设备可以设置在第一控制器中。
[0105]
其中,终端与服务器需要执行的运算任务包括机器学习模型对应的运算任务、机器学习模型中每一层网络对应的运算任务或神经网络算子对应的运算任务。而对于神经网络而言,运算任务包括神经网络模型对应的运算任务、神经网络模型中每一层网络对应的运算任务或神经网络算子对应的运算任务。运算任务具体可以是很小任务量的矩阵乘法,也可以是很大任务量的神经网络的训练方法。
[0106]
一般而言,服务器的算力必然大于终端的算力,但带宽并非如此,因此,为了充分利用服务器和终端的计算资源,通常,将计算密集型的运算任务分配给服务器,例如caffe框架下模型的卷积层;将数据密集型的运算任务分配给终端,例如caffe框架下模型的全连接层。
[0107]
举例而言,以caffe框架下的cnn网络-vgg16为例,请参阅图5,图5为vgg16的计算量和访存量统计表格的示意图。从图中可以看出,不同层的运算任务对算力和带宽的要求差异很大。对于服务器而言,其有更高的算力,i
max
更难达到,因此容易受到带宽的限制;对于终端而言,受限于终端计算芯片的性能,其容易受到算力的限制。为了实现对不同层的运算任务的合理调度,一种可行的实现方式可以是:将conv2d的运算任务都分配至服务器处理,从而充分利用其高算力;将所有的maxpooling2d和flatten的运算任务都分配至终端处理,以利用其低算力但是高带宽的特性;而对于最后的dense的运算任务,则可以根据实际的flops结果,分配在服务器或者终端;对于vgg可将前两层dense的运算任务分配至服务器处理,最后一层dense的运算任务分配至终端处理。由此,按照层的划分使终端与服务器以协同一体的方式处理运算任务,使得服务器与终端的算力都得到最大程度的利用。
[0108]
在一个实施例中,考虑到终端与服务器在执行不同的网络层时,存在执行的先后顺序,因此,本实施例采用类似乒乓操作的方式对运算任务进行分发,使得终端与服务器不会相互阻塞,尽量使得两者都能处于任务处理状态。举例而言,在服务器与终端中,交叉着进行运算任务1和运算任务2的运算,例如:在服务器执行运算任务1的conv层而终端需要等待时,终端可以先执行运算任务2的maxpooling层,等服务器执行运算任务1的conv层后继续执行运算任务2的conv层,直到等到终端的任务1的maxpooling层结果返回。不难理解,该方式可以使得服务器与终端的运算部件尽可能的跑满算力,进一步提高运算效率。
[0109]
在一个实施例中,s210包括步骤:根据性能参数和终端的数量,生成任务调度策略。具体地,任务调度装置先获取终端的数量,并根据终端的数量以及运算任务在每一终端中运行时对应的性能参数,可确定终端叠加后的性能参数,从而根据终端叠加后的性能参数和服务器对应的性能参数,生成任务调度策略。本实施例中,考虑到终端叠加后的性能更高,通过充分利用多个终端,可更为合理的分配运算任务,增加终端处理任务的比重,可进一步提高运算效率。
[0110]
在一个实施例中,s210还包括步骤:根据性能参数、终端对应的负载信息和服务器对应的负载信息,生成任务调度策略。具体地,任务调度装置一方面获取性能参数,另一方面分别获取终端和服务器处理运算任务时计算负载信息,若服务器的计算负载大于预设的
数值,且终端的计算负载还有剩余,则将部分超过m点之后的运算任务不再分配给服务器,而是分配给终端处理,即:即使终端处于计算瓶颈状态,但仍借助终端来协同处理运算任务。可以理解,为了减轻服务器的计算负荷,可将一部分对于终端而言,处于满算力的运算任务分配至终端处理,通过合理的调度方式,充分利用两部分的计算资源,使得任务调度的灵活性更高。
[0111]
进一步地,在一个实施例中,设置多个终端作为一个集群来协同处理分配到终端侧的运算任务。具体而言,在当前终端被分配运算任务后,判断当前终端的状态,若当前终端达到算力瓶颈状态,即当前终端已无法提供更高的运算能力,此时,选取下一终端接收分配的运算任务,实现多个终端共同处理运算任务的目的。
[0112]
在本实施例中,终端群相对于单个终端而言,其可以通过任务分发的方式处理更多的运算任务,性能更为优越,可进一步提升运算效率。
[0113]
应该理解的是,虽然图2-9的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-9中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0114]
在一个实施例中,提供了一种任务调度器,该任务调度器包括指令生成电路和通信电路。其中,该指令生成电路用于执行如上述实施例中涉及的任务调度方法,并根据任务调度策略生成控制指令,进而根据控制指令,控制通信电路分发运算任务,以将运算任务在多个计算平台中进行调度。
[0115]
其中,指令生成电路中,包含用于生成计算机指令的电路的最小集成。指令生成电路可以集成在某一计算机设备的处理芯片上。同理,通信电路中,包含用于实现通信功能的电路的最小集成。通信电路可封装于通信产品中,构成具有独立功能的通信模块。
[0116]
具体地,在任务调度器中,指令生成电路获取多个计算平台的指标参数例如是算力和带宽,以及获取多个运算任务的指标参数例如是计算量和访存量,并基于上述方法执行步骤,得到相应的任务调度策略,进而根据该任务调度策略生成控制指令,该控制指令经解析后,可控制通信电路向各个计算平台分发运算任务,由此实现了将不同的运算任务在多个计算平台中进行调度的目的。
[0117]
在一个实施例中,还提供了一种任务处理系统,该任务调度系统包括终端和服务器。可选地,如上所述的任务调度器,可设置于终端侧,也可以设置于服务器侧。相对应地,控制指令包括终端控制指令和服务器控制指令,其中,终端控制指令用于控制终端运行时的动作;服务器控制指令用于控制服务器运行时的动作。
[0118]
示例性地,将任务调度器设置于终端侧,由此,在终端中,任务调度器中的指令生成电路根据任务调度策略,分别生成数据通讯指令、终端控制指令和服务器控制指令。其中,数据通讯指令用于通过通信电路,实现服务器与终端之间的数据交互;服务器控制指令用于控制服务器中的运算器和存储器完成对相应运算任务的运算及存储;终端控制指令用于控制服务器中的运算器和存储器完成对相应运算任务的运算及存储。当所有的运算完成
后,最终的运算结果会返回到终端中,以便向用户展示。
[0119]
在一个实施例中,服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群,例如云端服务器。
[0120]
在一个实施例中,还提供了一种板卡,所述板卡包括人工智能处理器,所述人工智能处理器包括任务调度器,所述任务调度器用于执行上述任一实施例所述的任务调度方法。
[0121]
在一个实施例中,还提供了一种主板,所述主板包括:通用处理器和上述板卡。
[0122]
在一个实施例中,还提供了一种电子设备,所述电子设备上述主板。
[0123]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0124]
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1