一种异构芯片的任务处理方法、任务处理装置及电子设备与流程

文档序号:20699110发布日期:2020-05-12 15:25阅读:180来源:国知局
一种异构芯片的任务处理方法、任务处理装置及电子设备与流程

本申请属于高性能计算技术领域,尤其涉及一种异构芯片的任务处理方法、任务处理装置、电子设备及计算机可读存储介质。



背景技术:

由于物联网,人工智能等领域的兴起,计算规模和数据体量持续增长,相比于有限的单核计算能力,多板异构众核成为一种新的解决方案。

在现有技术中,多板异构众核包括一个主机设备和多个加速器设备,各设备通过总线互联。在接收到计算任务时,根据计算任务的规模分摊硬件资源,各个设备执行单周期任务,使得设备运行时大部分处理资源处于等待阶段,在一定程度上降低了计算设备的运行效率。

因此,现有技术有待进一步改进。



技术实现要素:

有鉴于此,本申请提供了一种异构芯片的数据处理方法、数据处理装置、电子设备及计算机可读存储介质,可以极大程度地降低处理资源在处理任务时的等待时间,提升硬件资源的处理效率。

第一方面,本申请提供了一种异构芯片的任务处理方法,包括:

接收单个任务的执行指令;

将上述单个任务划分为有先后顺序的至少二个子任务;

将各个子任务分发到所述异构芯片中的不同的计算芯片上;

控制上述不同的计算芯片以第一流水线模式依次处理上述各个子任务,其中,第一流水线模式对应的第一流水线级数与子任务的个数相同,且上述第一流水线的一级运算时间包括一个子任务的执行时间和在相邻两个计算芯片之间传输上述子任务对应的数据的时间。

第二方面,本申请提供了一种异构芯片的任务处理装置,包括:

接收模块,用于接收单个任务的执行指令;

划分模块,用于将上述单个任务划分为有先后顺序的至少二个子任务;

分发模块,用于将各个子任务分发到所述异构芯片中的不同的计算芯片上;

处理模块,用于控制上述不同的计算芯片以第一流水线模式依次处理上述各个子任务,其中,第一流水线模式对应的第一流水线级数与子任务的个数相同,且上述第一流水线的一级运算时间包括一个子任务的执行时间和在相邻两个计算芯片之间传输上述子任务对应的数据的时间。

第三方面,本申请提供了一种电子设备,包括存储器、处理器以及存储在上述存储器中并可在上述处理器上运行的计算机程序,上述处理器执行上述计算机程序时实现如上述第一方面所提供的方法。

第四方面,本申请提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现如第一方面所提供的方法。

第五方面,本申请提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行上述第一方面所提供的方法。

由上可见,本申请方案中首先接收单个任务的执行指令;然后将上述单个任务划分为有先后顺序的至少二个子任务并将各个子任务分发到所述异构芯片中的不同的计算芯片上;最后控制上述不同的计算芯片以第一流水线模式依次处理上述各个子任务,其中,第一流水线模式对应的第一流水线级数与子任务的个数相同,且上述第一流水线的一级运算时间包括一个子任务的执行时间和在相邻两个计算芯片之间传输上述子任务对应的数据的时间。采用上述方法可以使计算芯片在处理完一个任务的子任务后,立即开始处理下一个任务的子任务,极大程度地降低处理资源在处理任务时的等待时间,提升硬件资源的处理效率。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的异构芯片的任务处理方法的流程示意图;

图2是本申请实施例提供的流水线的任务处理示意图;

图3是本申请实施例提供的电子设备与异构芯片之间的数据交互示例图;

图4是本申请实施例提供的异构芯片的任务处理装置的结构示意图;

图5是本申请实施例提供的电子设备的结构示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。

应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。

另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。

图1示出了本申请实施例提供的一种异构芯片的任务处理方法的流程图,详述如下:

步骤101,接收单个任务的执行指令;

在本申请实施例中,异构芯片的任务处理方法应用于电子设备,该电子设备具有通用处理器功能。当通用处理器执行上述任务处理方法的步骤时,控制上述异构芯片中的各个计算芯片处理任务,上述任务包括待处理的数据(如图像、文本、视频)和处理该数据的程序。任务的执行指令由用户发出或触发,当用户向电子设备发出执行指令后,该电子设备即开始执行上述任务处理方法的步骤。

步骤102,将上述单个任务划分为有先后顺序的至少二个子任务;

在本申请实施例中,每个子任务包括上述程序的一部分,且每个子任务的执行具有先后顺序,上述先后顺序即上述程序的执行顺序。每个子任务按照先后顺序依次执行,即可完成对待处理数据的处理。例如,当上述任务为通过一个卷积神经网络对待处理数据进行处理时,该卷积神经网络包括依次连接的第一卷积层、第一池化层、第二卷积层、第二池化层以及三层全连接层。将该卷积神经网络划分后,得到三个子任务,第一子任务包括通过第一卷积层和第一池化层对待处理数据进行处理,第二子任务包括通过第二卷积层和第二池化层对待处理数据进行处理,第三子任务包括通过三层全连接层对待处理数据进行处理,依次执行上述第一子任务、第二子任务以及第三子任务,即可完成对输入到该卷积神经网络的数据的处理。

需要说明的是,任务划分后得到的各个子任务的执行时间相等。如果在任务划分的过程中各个子任务的执行时间不相等,则应在各个子任务执行后添加延时,使得添加延时后的各个子任务的执行时间相等。进一步地,在各个子任务执行后添加延时的方式可以是:从各个执行时间不相等的子任务中找出执行时间最长的子任务,该执行时间最长的子任务执行后不添加延时,而其它的子任务添加延时后,执行时间变成与该执行时间最长的子任务的执行时间相等。

可选地,上述步骤102具体包括:

a1、根据上述单个任务的执行时间和上述异构芯片的硬件资源信息将上述单个任务划分为有先后顺序的至少二个子任务。

其中,上述异构芯片的硬件资源信息包括计算芯片的个数。以上述任务为通过卷积神经网络(cnn网络)对待处理数据进行处理为例进行说明,首先确定子任务的数目,再对子任务的执行时间进行优化,使子任务的执行时间尽量小。例如,将cnn网络划分为m个不可再分割的基本单元m1,m2,…mm,其中每个基本单元对应的执行时间为l(mi),1≤i≤m,且i为整数。确定的子任务的数目为n,需要将m个基本单元分为n个部分。利用二分法完成:首先将各个基本单元对应的执行时间按顺序二分为部分,1≤j≤m,且j为整数,在满足的情况下取j的最大值,将基本单元m1、m2……mj一起组成一个子任务,其中l(max)为各个基本单元对应的执行时间中最长的执行时间。下一步将划分为两部分,其中,j+1≤k≤m,且k为整数,在满足的情况下取k的最大值,将基本单元mj+1、mj+2……mk一起组成一个子任务,依次迭代划分。

作为一种可能的实现方式,确定子任务的数目可以采用以下方式:以上述cnn网络为例,先将上述cnn网络划分为多个单元,每个单元为cnn网络中的一层,为cnn网络中不可分割的最小单元。从多个单元中,选取执行时间最大的单元。计算上述cnn网络总执行时间与该执行时间最大的单元的执行时间的比值。将上述异构芯片中计算芯片的个数与该比值进行比较,若计算芯片的个数大于该比值,则划分后的子任务数目为该比值向上取整的数值,若计算芯片的个数小于该比值,则划分后的子任务数目为计算芯片的个数。

单个任务划分后,得到的子任务数目不能够大于计算芯片的数目,以保证每个子任务被一个计算芯片执行。在有先后顺序的多个子任务中,前一个子任务执行完毕得到的输出发送到后一个子任务,作为后一个子任务的输入,首个子任务的输入则为任务中包括的待处理的数据,最后一个子任务的输出则为最后的任务执行结果。划分后各个子任务对应的执行时间一致。

可选地,上述步骤a1具体包括:

b1、根据上述单个任务的执行时间和上述异构芯片的硬件资源信息确定至少一个划分方案,上述划分方案为将任务划分为至少二个子任务的方案;

b2、计算每个划分方案对应的资源转换效率;

b3、从上述至少一个划分方案中选取对应的资源转换效率最大的划分方案作为最终划分方案;

b4、根据上述最终划分方案将上述单个任务划分为有先后顺序的至少二个子任务。

具体地,首先根据上述单个任务的执行时间和上述异构芯片中计算芯片的个数确定多个划分方案,划分方案的个数取决于计算芯片的个数,可以先确定划分方案所要划分的子任务的数目,再根据步骤a1中的任务划分方法将任务对应划分。例如,上述异构芯片包括四个计算芯片,那么上述划分方案的个数就为三个,三个划分方案分别为第一方案:将任务划分为4个子任务,第二方案:将任务划分为3个子任务,第三方案:将任务划分为2个子任务。得到多个划分方案后,分别计算各个划分方案对应的资源转换效率。

电子设备可以基于任务的浮点运算量、吞吐率以及任务占用的硬件资源计算资源转换效率。该资源转换效率指示了在异构芯片在任务处理过程中,单位硬件资源的处理能力,反映了对应划分方案对硬件资源的优化程度。资源转换效率越大,则表示异构芯片的单位硬件资源的处理能力越强,反之,资源转换效率越小,则表示异构芯片的单位硬件资源的处理能力越弱。因此,在计算得到各个划分方案对应的资源转换效率后,比较各个划分方案对应的资源转换效率的数值大小,将各个划分方案中对应的资源转换效率最大的划分方案作为最终划分方案。还是以上述第一方案、第二方案以及第三方案为例,通过计算,得到第一方案对应的资源转换效率为0.5,第二方案对应的资源转换效率为0.6,第三方案对应的资源转换效率为0.7,则通过比较资源转换效率的大小,选取第三方案作为最终划分方案。

可选地,上述步骤b2具体包括:

根据预设的资源转换效率公式计算每个划分方案对应的资源转换效率。

其中,上述资源转换效率公式为γ=pβ/n,γ为资源转换效率,p为单个任务的计算量,β为异构芯片执行单个任务过程中的吞吐率,n为计算芯片的个数。上述吞吐率可以根据划分方案对应的子任务的个数和子任务的运行时间计算得到,上述计算芯片的个数为根据子任务的个数实际使用的计算芯片个数。

可选地,上述步骤a1具体包括:

c1、根据上述单个任务的执行时间和上述异构芯片的硬件资源信息确定至少一个划分方案,上述划分方案为将单个任务划分为至少二个子任务的方案;

c2、从上述至少一个划分方案中筛选出至少一个满足预设的筛选条件的初选划分方案;

c3、从至少一个初选划分方案中选取子任务数目最大的初选划分方案作为最终划分方案;

c4、根据上述最终划分方案将上述单个任务划分为有先后顺序的至少二个子任务。

具体地,首先根据上述单个任务的执行时间和上述异构芯片中计算芯片的个数确定多个划分方案,划分方案的个数取决于计算芯片的个数,可以先确定划分方案所要划分的子任务的数目,再根据步骤a1中的任务划分方法将任务对应划分。例如,上述异构芯片包括四个计算芯片,那么上述划分方案的个数就为三个,三个划分方案分别为第一方案:将任务划分为4个子任务,第二方案:将任务划分为3个子任务,第三方案:将任务划分为2个子任务。得到多个划分方案后,分别计算各个划分方案对应的资源利用率,上述资源利用率指示了子任务在对应的单个计算芯片上运行时占用的硬件资源大小。得到各个划分方案对应的资源利用率后,从各个划分方案中筛选出满足预设的筛选条件的初选划分方案,上述筛选条件即为划分方案对应的资源利用率要大于预设的资源利用率阈值,当划分方案满足该筛选条件时,可以充分发挥计算芯片的性能。在多个初选划分方案中,选择子任务数目最大的初选划分方案作为最终划分方案,子任务的数目越大,任务处理时的并行程度就越高,异构芯片的吞吐率也就越大。根据上述最终划分方案将上述任务划分为有先后顺序的至少二个子任务。例如,上述第一方案对应的资源利用率为50%,第二方案对应的资源利用率为70%,第三方案对应的资源利用率为80%,筛选条件为划分方案对应的资源利用率要大于60%,那么根据该筛选条件筛选出的初选划分方案就包括第二方案和第三方案。而第二方案对应的子任务数目为2,第三方案对应的子任务数目为1,则选取第二方案作为最终划分方案。根据该最终划分方案,将任务划分为2个子任务。

步骤103,将各个子任务分发到所述异构芯片中的不同的计算芯片上;

在本申请实施例中,划分后的各个子任务需发送到不同的计算芯片上执行,一个计算芯片执行一个子任务。例如,上述异构芯片中包括5个计算芯片,子任务数目为3个,则将子任务分别发送到5个计算芯片中的3个计算芯片上执行,剩余2个计算芯片不进行子任务的处理。其中,异构芯片中的计算芯片通过总线依次连接。以计算芯片为fpga为例,在将各个子任务分发到不同的fpga之前,需要将各个子任务转换为比特流文件,然后将各个子任务对应的比特流文件烧写到相应的fpga。

步骤104,控制上述不同的计算芯片以第一流水线模式依次处理上述各个子任务。

在本申请实施例中,上述第一流水线模式对应的第一流水线的级数与上述子任务的个数相同,上述第一流水线的一级运算时间包括一个子任务的执行时间与相邻两个计算芯片之间传输上述子任务对应的数据的时间。且上述第一流水线的各个流水线级的运算时间相等。需要说明的是,各个子任务在计算芯片上的执行时间是相等的,各相邻计算芯片之间传输子任务对应的数据的时间也是相等的,子任务在计算芯片上的执行时间要大于相邻计算芯片之间传输上述子任务对应的数据的时间。上述第一流水线的一级包括计算芯片执行对应的子任务和将上述子任务的处理结果传输至下一个计算芯片。

进一步地,由于上述第一流水线的每一级的运算时间均相等,且上述第一流水线的每一级都处理一个子任务,在需要处理的相同的单个任务有多个时,上述第一流水线可以并行处理上述多个任务。即上述第一流水线的第二级开始处理第一个任务时,上述第一流水线的第一级开始处理第二个任务,上述第一流水线的第二级开始处理第二个任务时,上述第一流水线的第一级开始处理第三个任务,以此类推。引出图2以作解释,图2中的(a)部分为第一流水线处理并行三个任务的过程,其中,tm为子任务的执行时间,tl为各相邻计算芯片之间传输子任务对应的数据的时间,第一流水线的一级的运算时间等于tm+tl。第一任务、第二任务以及第三任务均为卷积神经网络,且该卷积神经网络包括2层卷积层、2层池化层、1层全连接层。conv+pool表示一个包含一层卷积层和一层池化层的子任务,fullyconn表示一个包含一层全连接层的子任务。当第一任务的第一个conv+pool执行结束并经过一个tl的时长后,第一流水线开始处理第二任务的第一个conv+pool。

可选地,若接收到至少二个相同的单个任务的执行指令,则上述步骤104具体包括:

d1、根据单个任务的子任务的个数、子任务的运算时间以及在相邻两个计算芯片之间传输上述子任务对应的数据的时间,计算模式阈值;

d2、若上述相同的单个任务的个数小于或等于上述模式阈值,则控制上述不同的计算芯片以第一流水线模式依次处理上述各个子任务。

具体地,根据预设的公式计算l=m(tm+tl)/tl+1计算上述模式阈值,其中,l为模式阈值,m为流水线的级数,tm为子任务的执行时间,tl为在相邻两个计算芯片之间传输上述子任务对应的数据的时间。当需要处理的任务的个数小于或等于上述模式阈值时,则控制上述不同的计算芯片以第一流水线模式依次处理上述各个子任务。

可选地,若上述相同的单个任务的个数大于上述模式阈值,则上述任务处理方法还包括:

控制上述不同的计算芯片以第二流水线模式依次处理上述各个子任务;

其中,一个子任务的执行和上述子任务对应的数据在相邻两个计算芯片之间的传输分别作为上述第二流水线模式对应的第二流水线的一级,且上述第二流水线的一级运算时间等于一个子任务的执行时间。与上述第一流水线模式是将一个子任务的执行和所述子任务对应的数据在相邻两个计算芯片之间的传输一起作为上述第一流水线的一级,上述第二流水线是将一个子任务的执行和将所述子任务对应的数据在相邻两个计算芯片之间的传输分别作为所述第二流水线模式对应的第二流水线的一级。也即是说,上述第二流水线的一级可能为一个子任务的执行,也可能为一个子任务对应的数据在相邻两个计算芯片之间的传输。需要说明的是,为了使上述第二流水线的每一级的运算时间相等,在各相邻计算芯片之间传输子任务对应的数据后添加了延时,使得一个子任务的执行时间等于所述子任务对应的数据在相邻两个计算芯片之间传输的时间。

进一步地,由于上述第二流水线的每一级的运算时间均相等,且上述第二流水线的每一级子任务处理流水线级都处理一个子任务,在需要处理的任务有多个时,上述第二流水线可以并行处理上述多个任务。即上述第二流水线的第二级(为数据传输流水线级)开始进行第一个任务的数据传输时,上述第二流水线的第一级开始处理第二个任务,上述第二流水线的第三级开始进行处理第一个任务时,上述第二流水线的第一级开始处理第三个任务,以此类推。引出图2以作解释,图2中的(b)部分为第二流水线处理并行三个任务的过程,其中,tm为子任务的执行时间,第二流水线的一级的运算时间等于tm。第一任务、第二任务以及第三任务均为卷积神经网络,且该卷积神经网络包括2层卷积层、2层池化层、1层全连接层。conv+pool表示一个包含一层卷积层和一层池化层的子任务,fullyconn表示一个包含一层全连接层的子任务,latency为数据传输流水线级。当第一任务的第一个conv+pool执行结束,第二流水线开始处理第二任务的第一个conv+pool。

如图3所示,电子设备可以为赛灵思公司推出的zynq7035系列开发板,计算芯片可以为现场可编程逻辑门阵列(fieldprogrammablegatearray,fpga),此处不作限定。zynq7035系列开发板通过ps(processingsystem,处理系统)端的以太网口与上位机进行通信,同时使用rapidio协议,高速串行收发器与各个fpga通信,用户可通过上位机向zynq7035系列开发板发送任务的执行指令,该zynq7035系列开发板接收到执行指令,控制各个fpga执行上述任务,当各个fpga执行完上述任务得到处理结果时,zynq7035系列开发板接收该处理结果并将该处理结果通过以太网口发送给上位机。

由上可见,本申请方案中首先接收单个任务的执行指令;然后将上述单个任务划分为有先后顺序的至少二个子任务并将各个子任务分发到所述异构芯片中的不同的计算芯片上;最后控制上述不同的计算芯片以第一流水线模式依次处理上述各个子任务,其中,第一流水线模式对应的第一流水线级数与子任务的个数相同,且上述第一流水线的一级运算时间包括一个子任务的执行时间和在相邻两个计算芯片之间传输上述子任务对应的数据的时间。采用上述方法可以使计算芯片在处理完一个任务的子任务后,立即开始处理下一个任务的子任务,极大程度地降低处理资源在处理任务时的等待时间,提升硬件资源的处理效率。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

图4示出了本申请实施例提供的一种异构芯片的任务处理装置的结构示意图,该异构芯片的任务处理装置可应用于电子设备,为了便于说明,仅示出了与本申请实施例相关的部分。

该异构芯片的任务处理装置400包括:

接收模块401,用于接收单个任务的执行指令;

划分模块402,用于将上述单个任务划分为有先后顺序的至少二个子任务;

分发模块403,用于将各个子任务分发到所述异构芯片中的不同的计算芯片上;

处理模块404,用于控制上述不同的计算芯片以第一流水线模式依次处理上述各个子任务,其中,第一流水线模式对应的第一流水线级数与子任务的个数相同,且上述第一流水线的一级运算时间包括一个子任务的执行时间和在相邻两个计算芯片之间传输上述子任务对应的数据的时间。

可选地,若接收到至少二个相同的单个任务的执行指令,则上述处理模块404还包括:

模式阈值计算单元,用于根据单个任务的子任务的个数、子任务的运算时间以及在相邻两个计算芯片之间传输上述子任务对应的数据的时间,计算模式阈值;

第一控制单元,用于若上述相同的单个任务的个数小于或等于上述模式阈值,则控制上述不同的计算芯片以第一流水线模式依次处理上述各个子任务。

可选地,若上述相同的单个任务的个数大于上述模式阈值,则上述异构芯片的任务处理装置400还包括:

第二控制单元,用于控制上述不同的计算芯片以第二流水线模式依次处理上述各个子任务,其中,一个子任务的执行和上述子任务对应的数据在相邻两个计算芯片之间的传输分别作为上述第二流水线模式对应的第二流水线的一级,且上述第二流水线的一级运算时间等于一个子任务的执行时间。

可选地,上述划分模块402还包括:

执行时间划分单元,用于根据上述单个任务的执行时间和上述异构芯片的硬件资源信息将上述单个任务划分为有先后顺序的至少二个子任务,其中,前一个子任务的输出作为与其相邻的后一个子任务的输入。

可选地,上述执行时间划分单元还包括:

第一方案确定子单元,用于根据上述单个任务的执行时间和上述异构芯片的硬件资源信息确定至少一个划分方案,上述划分方案为将单个任务划分为至少二个子任务的方案;

效率计算子单元,用于计算每个划分方案对应的资源转换效率,其中,上述资源转换效率指示了异构芯片的单位硬件资源的数据处理能力;

第一最终方案确定子单元,用于从上述至少一个划分方案中选取对应的资源转换效率最大的划分方案作为最终划分方案;

第一最终划分子单元,用于根据上述最终划分方案将上述单个任务划分为有先后顺序的至少二个子任务。

可选地,上述效率计算子单元还包括:

效率公式计算子单元,用于根据预设的资源转换效率公式计算每个划分方案对应的资源转换效率,上述资源转换效率公式为γ=pβ/n,其中,γ为资源转换效率,p为单个任务的计算量,β为异构芯片执行单个任务过程中的吞吐率,n为计算芯片的个数。

可选地,上述执行时间划分单元还包括:

第二方案确定子单元,用于根据上述单个任务的执行时间和上述异构芯片的硬件资源信息确定至少一个划分方案,上述划分方案为将单个任务划分为至少二个子任务的方案;

筛选子单元,用于从上述至少一个划分方案中筛选出至少一个满足预设的筛选条件的初选划分方案,其中,上述筛选条件为划分方案对应的资源利用率大于预设的资源利用率阈值;

第二最终方案确定子单元,用于从至少一个初选划分方案中选取子任务数目最大的初选划分方案作为最终划分方案;

第二最终划分子单元,用于根据上述最终划分方案将上述单个任务划分为有先后顺序的至少二个子任务。

由上可见,本申请方案中首先接收单个任务的执行指令;然后将上述单个任务划分为有先后顺序的至少二个子任务并将各个子任务分发到所述异构芯片中的不同的计算芯片上;最后控制上述不同的计算芯片以第一流水线模式依次处理上述各个子任务,其中,第一流水线模式对应的第一流水线级数与子任务的个数相同,且上述第一流水线的一级运算时间包括一个子任务的执行时间和在相邻两个计算芯片之间传输上述子任务对应的数据的时间。采用上述方法可以使计算芯片在处理完一个任务的子任务后,立即开始处理下一个任务的子任务,极大程度地降低处理资源在处理任务时的等待时间,提升硬件资源的处理效率。

图5为本申请实施例提供的电子设备的结构示意图。如图5所示,该实施例的电子设备5包括:至少一个处理器50(图5中仅示出一个)处理器、存储器51以及存储在上述存储器51中并可在上述至少一个处理器50上运行的计算机程序52,上述处理器50执行上述计算机程序52时实现以下步骤:

接收单个任务的执行指令;

将上述单个任务划分为有先后顺序的至少二个子任务;

将各个子任务分发到所述异构芯片中的不同的计算芯片上;

控制上述不同的计算芯片以第一流水线模式依次处理上述各个子任务,其中,第一流水线模式对应的第一流水线级数与子任务的个数相同,且上述第一流水线的一级运算时间包括一个子任务的执行时间和在相邻两个计算芯片之间传输上述子任务对应的数据的时间。

假设上述为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第二种可能的实施方式中,若接收到至少二个相同的单个任务的执行指令,则上述控制上述不同的计算芯片以第一流水线模式依次处理上述各个子任务,包括:

根据单个任务的子任务的个数、子任务的运算时间以及在相邻两个计算芯片之间传输上述子任务对应的数据的时间,计算模式阈值;

若上述相同的单个任务的个数小于或等于上述模式阈值,则控制上述不同的计算芯片以第一流水线模式依次处理上述各个子任务。

在上述第二种可能的实施方式作为基础而提供的第三种可能的实施方式中,若上述相同的单个任务的个数大于上述模式阈值,则上述任务处理方法还包括:

控制上述不同的计算芯片以第二流水线模式依次处理上述各个子任务,其中,一个子任务的执行和上述子任务对应的数据在相邻两个计算芯片之间的传输分别作为上述第二流水线模式对应的第二流水线的一级,且上述第二流水线的一级运算时间等于一个子任务的执行时间。

在上述第一种可能的实施方式作为基础而提供的第四种可能的实施方式中,上述将上述单个任务划分为有先后顺序的至少二个子任务,包括:

根据上述单个任务的执行时间和上述异构芯片的硬件资源信息将上述单个任务划分为有先后顺序的至少二个子任务,其中,前一个子任务的输出作为与其相邻的后一个子任务的输入。

在上述第四种可能的实施方式作为基础而提供的第五种可能的实施方式中,上述根据上述单个任务的执行时间和上述异构芯片的硬件资源信息将上述单个任务划分为有先后顺序的至少二个子任务,包括:

根据上述单个任务的执行时间和上述异构芯片的硬件资源信息确定至少一个划分方案,上述划分方案为将单个任务划分为至少二个子任务的方案;

计算每个划分方案对应的资源转换效率,其中,上述资源转换效率指示了异构芯片的单位硬件资源的数据处理能力;

从上述至少一个划分方案中选取对应的资源转换效率最大的划分方案作为最终划分方案;

根据上述最终划分方案将上述单个任务划分为有先后顺序的至少二个子任务。

在上述第五种可能的实施方式作为基础而提供的第六种可能的实施方式中,上述计算每个划分方案对应的资源转换效率,包括:

根据预设的资源转换效率公式计算每个划分方案对应的资源转换效率,上述资源转换效率公式为γ=pβ/n,其中,γ为资源转换效率,p为单个任务的计算量,β为异构芯片执行单个任务过程中的吞吐率,n为计算芯片的个数。

在上述第四种可能的实施方式作为基础而提供的第七种可能的实施方式中,上述根据上述单个任务的执行时间和上述异构芯片的硬件资源信息将上述单个任务划分为有先后顺序的至少二个子任务,包括:

根据上述单个任务的执行时间和上述异构芯片的硬件资源信息确定至少一个划分方案,上述划分方案为将单个任务划分为至少二个子任务的方案;

从上述至少一个划分方案中筛选出至少一个满足预设的筛选条件的初选划分方案,其中,上述筛选条件为划分方案对应的资源利用率大于预设的资源利用率阈值;

从至少一个初选划分方案中选取子任务数目最大的初选划分方案作为最终划分方案;

根据上述最终划分方案将上述单个任务划分为有先后顺序的至少二个子任务。

该电子设备可包括,但不仅限于,处理器50、存储器51。本领域技术人员可以理解,图5仅仅是电子设备5的举例,并不构成对电子设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。

所称处理器50可以是中央处理单元(centralprocessingunit,cpu),该处理器50还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

上述存储器51在一些实施例中可以是上述电子设备5的内部存储单元,例如电子设备5的硬盘或内存。上述存储器51在另一些实施例中也可以是上述电子设备5的外部存储设备,例如上述电子设备5上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,上述存储器51还可以既包括上述电子设备5的内部存储单元也包括外部存储设备。上述存储器51用于存储操作系统、应用程序、引导装载程序(bootloader)、数据以及其他程序等,例如上述计算机程序的程序代码等。上述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。

由上可见,本申请方案中首先接收单个任务的执行指令;然后将上述单个任务划分为有先后顺序的至少二个子任务并将各个子任务分发到所述异构芯片中的不同的计算芯片上;最后控制上述不同的计算芯片以第一流水线模式依次处理上述各个子任务,其中,第一流水线模式对应的第一流水线级数与子任务的个数相同,且上述第一流水线的一级运算时间包括一个子任务的执行时间和在相邻两个计算芯片之间传输上述子任务对应的数据的时间。采用上述方法可以使计算芯片在处理完一个任务的子任务后,立即开始处理下一个任务的子任务,极大程度地降低处理资源在处理任务时的等待时间,提升硬件资源的处理效率。

需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本申请实施例还提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。

本申请实施例提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行时实现可实现上述各个方法实施例中的步骤。

上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读介质至少可以包括:能够将计算机程序代码携带到异构芯片的任务处理装置/电子设备的任何实体或装置、记录介质、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质。例如u盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

以上上述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1