一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

任务处理方法及分配方法、装置、电子设备、介质与流程

2022-06-01 14:24:23 来源:中国专利 TAG:


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.图1为本公开实施例提供的一种基于众核系统的任务处理方法的流程图;
40.图2为本公开实施例提供的一种任务分配方法的流程图;
41.图3为本公开实施例提供的另一种任务分配方法的流程图;
42.图4为本公开实施例提供的另一种基于众核系统的任务处理方法的流程图;
43.图5为一种众核系统的组成框图;
44.图6为本公开实施例提供的一种任务处理装置的组成框图;
45.图7为本公开实施例提供的一种任务分配装置的组成框图;
46.图8为本公开实施例提供的一种电子设备的组成框图。
具体实施方式
47.为使本领域的技术人员更好地理解本公开的技术方案,以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
48.在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。
49.如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。
50.本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由
……
制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
51.除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。
52.图1为本公开实施例提供的一种基于众核系统的任务处理方法的流程图。
53.参照图1,本公开实施例提供了一种基于众核系统的任务处理方法,其中,众核系统包括多个处理核,该任务处理方法可以由任务处理装置来执行,该装置可以通过软件和/或硬件的方式实现,该任务处理方法包括:
54.步骤s11、接收待处理任务。
55.步骤s12、根据待处理任务,确定用于处理该待处理任务的核心簇,该核心簇包括从多个处理核中确定出的至少一个目标处理核。
56.步骤s13、向该核心簇发送待处理任务,以供该核心簇执行待处理任务。
57.本公开实施例所提供的任务处理方法,对于接收到的每个待处理任务,根据该待处理任务组建与之相应的核心簇,每个待处理任务均由其对应的核心簇进行处理,从而提高了众核系统的任务处理的灵活性。
58.在本公开实施例中,在步骤s11中,接收主机(host)发送的待处理任务。其中,主机为众核系统外部的处理单元,例如主机为中央处理器(central processing unit,cpu),主机用于将待处理任务传输给众核系统,以供众核系统进行任务处理,待处理任务例如可以
是图像识别任务、目标检测任务等任何合适的计算任务。
59.在一些实施例中,众核系统的多个处理核包括第一处理核和多个第二处理核,上述任务处理装置可以为第一处理核,即上述任务处理方法可以基于众核系统的第一处理核实现。在此种情形下,在步骤s11中,第一处理核接收待处理任务,具体地,第一处理核接收来自主机(host)的待处理任务。在此种情形下,众核系统的第一处理核负责待处理任务的接收及组建用于处理待处理任务的核心簇,相较于传统的众核系统的处理核而言,本公开实施例中众核系统中部分处理核(第一处理核)的控制能力有所提升。
60.在一些实施例中,任务处理装置可以根据待处理任务对应的资源需求量组建相应的核心簇,具体地,步骤s12可以进一步包括:步骤s121和步骤s122。
61.步骤s121、根据待处理任务,确定出执行该待处理任务时所需的资源需求量。
62.具体地,任务在创建时,携带有其对应的资源需求,其中,资源可以是计算资源、存储资源和/或带宽资源。在步骤s121中,通过对该待处理任务进行解析,可以确定出执行该待处理任务时所需的资源需求量,例如是所需的计算资源需求量、存储资源需求量和/或带宽资源需求量。
63.步骤s122、根据执行该待处理任务时所需的资源需求量,从当前可用的所有处理核中确定出至少一个目标处理核,以组成该核心簇。
64.在一些实施例中,任务处理装置可以监控或获取众核系统中各处理核的状态,从而可以确定众核系统中当前可用的所有处理核,可用的处理核可以是空闲的处理核。在步骤s122中,根据执行该待处理任务时所需的资源需求量,从当前可用的所有处理核中确定出至少一个处理核,以作为目标处理核,从而将该至少一个目标处理核作为一个核心簇,该核心簇用于处理该待处理任务。
65.在一些实施例中,任务处理装置为众核系统中的第一处理核,则该核心簇包括从多个第二处理核中确定出的至少一个目标处理核,在步骤s122中,具体地,第一处理核根据执行该待处理任务时所需的资源需求量,从当前可用的所有第二处理核中确定出至少一个第二处理核,以作为目标处理核,从而组建核心簇,该核心簇用于处理该待处理任务。
66.其中,该至少一个目标处理核的当前剩余(空闲)资源情况需满足执行该待处理任务时所需的资源需求量,即该至少一个目标处理核的当前剩余(空闲)资源总量需大于或等于执行该待处理任务时所需的资源需求量。需要说明的是,本公开实施例对于核心簇中目标处理核的数量不作具体限定,只要核心簇的所有目标处理核的当前剩余资源情况能够至少满足执行该待处理任务时所需的资源需求量即可。
67.在本公开实施例中,由于不同待处理任务的实际资源需求情况不同,因此,根据本公开实施例的任务处理方法,对于不同的待处理任务,可以根据不同的待处理任务的实际情况组建不同的核心簇进行处理,实现了对不同待处理任务的动态处理,提高了众核系统的任务处理的灵活性。
68.在一些实施例中,任务处理装置还可以根据待处理任务对应的延迟需求(计算时间)量组建相应的核心簇。具体地,任务在创建时,还可以携带有其对应的延迟需求,通过对该待处理任务进行解析,可以确定出该待处理任务对应的延迟约束量。则在步骤s12中,根据该待处理任务对应的延迟约束量,从当前可用的所有处理核中确定出至少一个目标处理核,以组成该核心簇。
69.其中,目标处理核的数量可以根据该待处理任务对应的延迟约束量确定,本公开实施例对于如何根据延迟约束量确定目标处理核的数量不作限制,只要能够使得确定出一个或多个目标处理核处理待处理任务时所用的时间满足(小于或等于)该待处理任务所对应的延迟约束量即可。
70.例如,在一些实施例中,首先从当前可用的所有处理核中任意选择出一个处理核,预测该一个处理核执行该待处理任务所需的时间,若该一个处理核执行该待处理任务所需的时间小于或等于该待处理任务所对应的延迟约束量,则可以确定该一个处理核为目标处理核;若该一个处理核执行该待处理任务所需的时间大于该待处理任务所对应的延迟约束量,则继续从当前可用的其他处理核中任意选择出一个或多个处理核,并预测该一个或多个处理核分别执行该待处理任务所需的时间,而后计算选择出的每个处理核执行该待处理任务所需的时间与选择出的处理核的数量的比值,若其中最大的比值小于或等于该待处理任务所对应的延迟约束量,则可以确定选择出的多个处理核作为多个目标处理核。
71.例如,在一些实施例中,还可以预先配置延迟约束量与所需的目标处理核的数量的对应关系,在确定待处理任务的延迟约束量后,可以从该对应关系中确定出执行该待处理任务所需的目标处理核的数量,从而从当前可用的所有处理核中选择出相应数量的目标处理核,例如从当前可用的所有处理核中随机选择出相应数量的处理核,以作为目标处理核。
72.在本公开实施例中,为了便于管理核心簇及簇中的成员,在确定用于处理该待处理任务的核心簇之后,任务处理装置(例如第一处理核)可以生成该核心簇对应的核心簇列表,同时建立该核心簇与该待处理任务的对应关系,在该核心簇列表中包括但不限于:该核心簇的簇标识、该核心簇与该待处理任务的对应关系、该核心簇中各目标处理核分别对应的核标识信息,核标识信息包括但不限于:该目标处理核的核标识以及地址、位置等。在生成该核心簇对应的核心簇列表之后,还可以将该核心簇列表发送给该核心簇中的各目标处理核进行存储。
73.在一些实施例中,在核心簇中的目标处理核的数量为1个的情形下,在步骤s13中,向核心簇发送待处理任务包括:向该核心簇中的该目标处理核发送该待处理任务。
74.在一些实施例中,在核心簇中的目标处理核的数量为多个的情形下,为了便于管理,在向核心簇发送待处理任务即步骤s13之前,还包括:从该核心簇中选择一目标处理核作为该核心簇的主核,以通过该主核对其自身所在核心簇进行管理,其中可以随机选择一目标处理核作为该核心簇的主核。在一些实施例中,上述核心簇列表中还可以进一步包括用于标识该核心簇的主核的身份的信息。
75.在一些实施例中,在确定核心簇的主核之后,在步骤s13中,向核心簇发送待处理任务的步骤可以进一步包括:向该核心簇的主核发送该待处理任务,以供主核根据待处理任务向自身所在的核心簇中的至少部分目标处理核进行任务分配,至少部分目标处理核中可以包括主核自身。
76.在一些实施例中,可以通过片上网络将待处理任务传递给对应的核心簇的主核。
77.在本公开实施例中,众核系统可以包括至少一个众核芯片,每一众核芯片均可以包括多个处理核。在一些实施例中,对于每一众核芯片,其对应的多个处理核可以包括一第一处理核和多个第二处理核。主机(host)可以根据需要将待处理任务传递给任一众核芯片
进行处理,每个众核芯片的第一处理核均可以用于基于接收到的待处理任务执行上述任务处理方法。在核心簇的目标处理核的数量为多个的情形下,该多个目标处理核可以位于同一众核芯片上,且可以与组建该核心簇的第一处理核位于同一众核芯片上。
78.由于核心簇中用于处理该待处理任务的各目标处理核与第一处理核均位于同一众核芯片,从而可以有效避免在处理任务过程中因跨芯片交互而造成不必要的能量消耗,从而有效保证了众核系统的功耗。
79.可以理解的是,上述任务处理方法描述了根据待处理任务动态组建相应的用于处理该待处理任务的核心簇的方法,基于上述任务处理方法,能够实现对于每一待处理任务,均能够组建相应的核心簇执行该待处理任务,提高了众核系统的任务处理的灵活性,同时提高了众核系统中部分处理核(如第一处理核、核心簇的主核)的控制能力。
80.图2为本公开实施例提供的一种任务分配方法的流程图。
81.参照图2,为了解决任务处理装置在将待处理任务传递到核心簇之后,该待处理任务如何在核心簇中进行任务分配的问题,本公开实施例提供了一种任务分配方法,该任务分配方法用于众核系统中预先组建的核心簇,该核心簇基于上述任务处理方法确定,该核心簇包括多个目标处理核,多个目标处理核中包括一作为主核的目标处理核,该用于该核心簇的任务分配方法基于该核心簇的主核实现,该任务分配方法包括:
82.步骤s21、接收待处理任务。
83.具体地,在步骤s21中,接收来自任务处理装置的待处理任务,或者接收来自第一处理核的待处理任务。
84.步骤s22、将待处理任务拆分成多个子任务。
85.作为示例,在接收到待处理任务后,可以对该待处理任务进行解析,将该待处理任务分解为若干个计算步骤,根据各个计算步骤确定计算步骤之间的依赖关系,根据计算步骤所需的资源需求量(如存储资源需求量和计算资源需求量)以及计算步骤之间的依赖关系进行子任务划分。例如将具有依赖关系的计算步骤划分为同一个子任务,将不具有依赖关系的计算步骤划分为不同的子任务,同时基于计算步骤所需的资源需求量,使得划分的各个子任务分别对应的资源需求量尽可能平均、均衡。其中,当一个计算步骤的输出为另一个计算步骤的输入时,则该两个计算步骤之间具有依赖关系,当多个计算步骤之间不具有输入、输出之间的串行关系时,则该多个计算步骤之间不具有依赖关系。换言之,具有依赖关系的计算步骤是指需串行计算的计算步骤,不具有依赖关系的计算步骤是指可以并行计算的计算步骤。最终划分出来的多个子任务为可并行计算的多个子任务。
86.例如,一个基于神经网络的待处理任务,其计算过程包括卷积、池化、卷积、池化、卷积、池化、全连接,其中,卷积的结果为池化的输入,池化的结果为全连接的输入,则表明卷积、池化、全连接之间具有依赖关系,若卷积、池化、全连接中的任一个可以分解成多个可以并行计算的计算步骤,例如卷积可以分解成多个计算步骤,每个计算步骤用于处理部分卷积,则卷积对应的多个计算步骤之间不具有依赖关系;同理,池化对应的多个计算步骤之间不具有依赖关系,全连接对应的多个计算步骤之间不具有依赖关系。
87.步骤s23、向自身所在的核心簇中的至少部分目标处理核分配相应的子任务,每个目标处理核对应至少一个子任务,以供至少部分所述目标处理核中的各目标处理核执行各自对应的子任务。
88.本公开实施例所提供的任务分配方法,对于众核系统的每个核心簇,该核心簇的主核通过将该核心簇对应的待处理任务拆分成多个子任务,并将多个子任务分配给簇内各目标处理核(包括主核自身)进行处理,从而有效提升了待处理任务的处理效率。
89.图3为本公开实施例提供的另一种任务分配方法的流程图。
90.在一些实施例中,为了能够有效避免核心簇在处理其对应的待处理任务时出现故障的情况发生,在一些实施例中,参照图3,在上述步骤s22之后,还包括步骤s221至步骤s223。
91.步骤s221、统计自身所在的核心簇的当前有效核资源情况。
92.其中,核心簇的当前有效核资源情况可以包括核心簇中目标处理核的数量以及各目标处理核分别对应的当前剩余(空闲)资源情况,例如当前剩余资源量,包括当前剩余计算资源量、当前剩余存储资源量和/或当前剩余带宽资源量。
93.步骤s222、根据当前有效核资源情况,判断自身所在的核心簇当前是否具备执行当前拆分出的多个子任务的条件,若具备,则跳转至步骤s23,否则执行步骤s223。
94.具体地,在步骤s222中,判断自身所在的核心簇的当前有效核资源情况是否满足当前拆分出的各子任务分别对应的资源需求量,若满足,则判断出自身所在的核心簇当前具备执行当前拆分出的多个子任务的条件,否则判断出自身所在的核心簇当前不具备执行当前拆分出的多个子任务的条件。
95.作为示例,若核心簇中目标处理核的数量小于当前拆分出的子任务的数量,且存在至少一个目标处理核,该目标处理核满足执行多个子任务的条件,且对于除该目标处理核外的其他目标处理核,其他目标处理核均分别满足执行至少一个子任务的条件,且所有目标处理核能够执行的子任务的数量与当前拆分出的子任务的数量一致,则判断出自身所在的核心簇当前具备执行多个子任务的条件。其中,目标处理核满足执行多个子任务的条件可以是该目标处理核的当前剩余资源量大于或等于该多个子任务所需的资源需求量,目标处理核满足执行至少一个子任务的条件可以是该目标处理核的当前剩余资源量大于或等于该至少一个子任务所需的资源需求量。
96.作为示例,若核心簇中目标处理核的数量大于或等于当前拆分出的子任务的数量,且针对每一目标处理核,该目标处理核满足执行至少一个子任务的条件,例如该目标处理核对应的剩余内存容量(即当前剩余存储资源量)超过该至少一个子任务所需的静态内存量(即存储资源需求量),且该目标处理核对应的剩余计算能力(即当前剩余计算资源量)超过该至少一个子任务所需的计算量(即计算资源需求量),且该目标处理核对应的当前路由传输带宽阈值(即当前剩余带宽资源量)超过该至少一个子任务所需的路由传输量(即带宽资源需求量),且所有目标处理核能够执行的子任务的数量的总和与当前拆分出的子任务的数量一致,则表明核心簇的所有目标处理核均满足执行相应子任务的条件,从而判断出自身所在的核心簇当前具备执行当前拆分出的多个子任务的条件。若存在至少一目标处理核不满足执行任一子任务的条件,例如该目标处理核的剩余存储资源量小于该子任务所需的存储资源量,则判断出自身所在的核心簇当前不具备执行当前拆分出的多个子任务的条件。
97.在步骤s222中,响应于判断出自身所在的核心簇当前具备执行当前拆分出的多个子任务的条件,执行向自身所在的核心簇中的各目标处理核分配子任务的步骤,即执行步
骤s23。
98.在步骤s222中,响应于判断出自身所在的核心簇当前不具备执行当前拆分出的多个子任务的条件,跳转至步骤s223。
99.步骤s223、响应于判断出自身所在的所述核心簇当前不具备执行当前拆分出的多个子任务的条件,将待处理任务重新进行拆分,以重新拆分出多个新的子任务,并跳转至步骤s222。
100.例如,通过增加或减少子任务的数量,以调整部分或全部子任务所需的资源需求量,或者保持子任务的数量不变,将部分子任务中的部分计算步骤划分到其他子任务中,从而调整部分或全部子任务所需的资源需求量。
101.若经过多次待处理任务的重新拆分,自身所在的所述核心簇均不能满足执行拆分出的多个子任务的条件,则向任务处理装置(如第一处理核)申请将更多的核资源加入自身所在的核心簇中,或者从众核系统中确定出其他空闲的处理核,并将众核系统中其他空闲的处理核添加至自身所在的核心簇,以扩大自身所在的核心簇的当前剩余资源量,从而使得核心簇能够满足执行多个子任务的条件。其中,拆分次数的阈值可以预先设定,例如可以设定为3次。
102.进一步地,为了确定至少部分目标处理核中每个目标处理核能够执行的子任务的数量,以便进行任务分配,在一些实施例中,在响应于判断出自身所在的核心簇当前具备执行当前拆分出的多个子任务的条件,执行向自身所在的核心簇中的各目标处理核分配子任务的步骤即执行步骤s23之前,该任务分配方法还包括:针对至少部分目标处理核中每个目标处理核,根据该目标处理核的当前剩余资源情况和当前拆分出的各子任务分别对应的资源需求量,确定出与该目标处理核匹配的至少一个子任务。
103.例如,针对至少部分目标处理核,若某个目标处理核的当前剩余资源情况仅满足执行多个子任务中的一个子任务的条件,则该目标处理核与该子任务对应匹配,在后续任务分配时,向该目标处理核分配该子任务即可。若某个目标处理核的当前剩余资源情况满足执行当前拆分出的多个子任务中的两个子任务的条件,则该目标处理核与该两个子任务对应匹配,在后续任务分配时,可以向该目标处理核分配该两个子任务。
104.在确定至少部分目标处理核中每个目标处理核分别对应匹配的子任务之后,向该至少部分目标处理核分配相应的子任务,具体包括:针对每个子任务,将该子任务分配至自身所在的核心簇中与该子任务匹配的目标处理核。
105.在一些实施例中,为了进一步提高任务处理效率,还可以根据时间均衡策略,进行子任务的分配,以使得每个目标处理核处理各自被分配到的子任务时所需的时间相等或近似相等,也即每个目标处理核处理相应子任务所用的时间与其他目标处理核所用的时间相等或近似相等。
106.在一些实施例中,考虑到路由传输带宽对众核系统的性能的影响,在向自身所在的核心簇中的至少部分目标处理核分配相应的子任务即步骤s23之前,该任务分配方法还包括:根据各子任务对应的资源需求量、至少部分目标处理核中各目标处理核的当前剩余资源情况以及位置信息,确定出当前最优的子任务分配策略。
107.具体地,针对至少部分目标处理核中每个目标处理核,根据该目标处理核的当前剩余资源情况和当前拆分出的各子任务分别对应的资源需求量,确定出与该目标处理核匹
配的至少一个子任务。在确定各目标处理核对应匹配的子任务之后,依据各目标处理核的位置信息确定出最终向其分配的子任务,即最终由各目标处理核执行的子任务,从而得到当前最优的子任务分配策略,该最优的子任务分配策略包括各目标处理核与最终所需执行的子任务的对应关系,以使得自身所在核心簇对应的整体路由传输带宽最小,从而保证众核系统的性能。
108.作为示例,在确定各目标处理核对应匹配的子任务之后,首先按照随机分配原则确定出所有可能的初始子任务分配策略,初始子任务分配策略包括各目标处理核与子任务的初始对应关系,针对每个初始子任务分配策略,利用预设的路由传输代价算法,计算出该初始子任务分配策略对应的路由传输代价。其中,路由传输代价算法包括路由传输代价函数:
109.w=∑mn,mn=|x
i-xj| |y
i-yj|
110.其中,w表示该初始子任务分配策略对应的路由传输代价,mn表示第n个子任务对应的路由传输代价,xi表示核心簇的主核在预设的位置坐标系中的x轴位置坐标,yi表示核心簇的主核在预设的位置坐标系的y轴位置坐标,j表示第n个子任务在初始对应关系中对应的目标处理核在预设的位置坐标系中的x轴位置坐标,yj表示第n个子任务在初始对应关系中对应的目标处理核在预设的位置坐标系中的y轴位置坐标。其中,预设的位置坐标系可以是预先以众核系统中的第一处理核作为原点建立的二维坐标系,也可以是预先以核心簇中的主核作为原点建立的二维坐标系,此时核心簇中的主核的位置坐标为(0,0)。
111.在确定各初始子任务分配策略对应的路由传输代价w之后,将路由传输代价w的值最小的初始子任务分配策略作为最优的当前最优的子任务分配策略。
112.在一些实施例中,还可以进一步采用基于神经网络的强化学习方法、模拟退火算法、凸优化算法等优化方法对上述路由传输代价函数进行优化,并基于优化后的路由传输代价函数计算得到基于目标处理核的位置信息进行子任务分配的最优解,该最优解即为当前最优的子任务分配策略。
113.在一些实施例中,在确定出当前最优的子任务分配策略之后,向该至少部分目标处理核分配相应的子任务,具体包括:基于当前最优的子任务分配策略,向自身所在的核心簇中的至少部分目标处理核分配相应的子任务。
114.在一些实施例中,为了便于目标处理核执行其相应的子任务,在确定至少部分目标处理核中每个目标处理核分别对应的子任务之后,向目标处理核分配相应子任务的步骤之前,该任务分配方法还包括:步骤s231和步骤s233。
115.步骤s231、生成至少部分目标处理核中各目标处理核对应的子任务的任务配置信息。
116.具体地,针对至少部分目标处理核中的每个目标处理核,根据该目标处理核对应的子任务,生成相应的任务配置信息,任务配置信息包括但不限于:内存配置信息、运算算子配置信息、路由配置信息、计算控制配置信息和同步管理配置信息。
117.例如,内存配置信息可以包括该目标处理核执行子任务所需的内存信息、执行子任务需要存储或导入的数据、参数等,运算算子配置信息可以包括需执行的运算算子的信息,路由配置信息可以包括计算结果(任务执行结果)等数据的路由传输路径,计算控制配置信息可以包括运算顺序、运算时间等信息,同步管理配置信息可以包括需同步处理的数
据的信息。
118.在一些实施例中,为了便于管理和任务执行,在确定至少部分目标处理核中每个目标处理核分别对应的子任务之后,向目标处理核分配相应子任务的步骤之前,该任务分配方法还包括:生成各目标处理核对应的任务执行指令、地址产生逻辑、控制逻辑以及同步逻辑。其中,地址产生逻辑例如可以是该目标处理核对应的内存读写地址的生成逻辑,控制逻辑例如可以是各目标处理核的运算时机、顺序的控制逻辑,同步逻辑例如可以是需同步处理的数据的逻辑,上述任务配置信息可以包括地址产生逻辑、控制逻辑以及同步逻辑等逻辑。
119.步骤s232、向至少部分目标处理核中各目标处理核分别发送各自对应的任务配置信息,以使各目标处理核存储其对应的任务配置信息。
120.具体地,在步骤s232中,通过片上网络向至少部分目标处理核中各目标处理核分别发送各自对应的任务配置信息。
121.步骤s233、响应于各目标处理核返回的配置完成信息,通知待处理任务对应的数据源向各目标处理核提供各目标处理核所需的任务数据。
122.在步骤s233中,在对至少部分目标处理核的各目标处理核进行任务配置之后,可以通知待处理任务对应的数据源搬运任务数据(例如输入的该任务对应的图片数据、文本数据等),其中可以通过信令方式通知数据源。
123.在一些实施例中,步骤s23可以包括:向至少部分目标处理核中的各目标处理核分别发送相应的任务执行指令,以供各目标处理核响应于任务执行指令执行各自对应的子任务。其中,步骤23与上述步骤s233可以同步并行执行,或者步骤s23可以在步骤s233之后执行,本公开实施例对此不作限制。
124.至少部分目标处理核中的各目标处理核接收到相应的任务执行指令之后,响应于任务执行指令,执行相应的子任务,并得到并存储相应的任务执行结果或计算结果。在子任务执行完成后,接收各目标处理核发送的子任务完成消息。
125.而后,根据各目标处理核的任务完成情况确定待处理任务已完成之后,通知数据源将分布于各目标处理核的任务执行结果读取到众核芯片外部的存储器,例如主机存储器(host ddr)或者其他外部存储器(ddr)。
126.在一些实施例中,在待处理任务完成之后,可以将相应的核心簇进行解散,例如将控制逻辑挂起。同时向任务处理装置汇报核心簇已解散,以便进行下一个待处理任务。
127.图4为本公开实施例提供的另一种基于众核系统的任务处理方法的流程图,图5为一种众核系统的组成框图,如图4和图5所示,该众核系统包括第一处理核和多个第二处理核,该任务处理方法包括:
128.步骤s31、第一处理核接收主机发送的待处理任务。
129.步骤s32、第一处理核根据待处理任务,确定用于处理该待处理任务的核心簇,该核心簇包括从多个第二处理核中确定出的至少一个目标处理核。
130.步骤s33、第一处理核从核心簇中选择一目标处理核作为该核心簇的主核,并向该主核发送该待处理任务。
131.步骤s34、主核将该待处理任务拆分成多个子任务。
132.步骤s35、主核根据核心簇的当前有效核资源情况,判断核心簇当前是否具备执行
当前拆分出的多个子任务的条件。
133.步骤s36、主核响应于判断出自身所在的核心簇当前具备执行当前拆分出的多个子任务的条件,确定至少部分目标处理核中每个目标处理核对应的至少一个子任务。
134.步骤s37、主核生成各目标处理核对应的子任务的任务配置信息,并向各目标处理核发送任务配置信息。
135.步骤s38、主核响应于各目标处理核返回的配置完成信息,通知待处理任务对应的数据源向各目标处理核提供各目标处理核所需的任务数据。
136.步骤s39、主核向各目标处理核发送响应的任务执行指令,以供各目标处理核响应于任务执行指令执行各自对应的子任务。
137.步骤s40、在待处理任务完成之后,主核通知待处理任务对应的数据源将分布在各个目标处理核的各个任务执行结果读出至外部存储器。
138.步骤s41、主核将核心簇进行解散,并向第一处理核反馈核心簇已解散的信息。
139.需要说明的是,关于图4所示的任务处理方法具体描述可参见上述图1所示的任务处理方法的描述,以及图2和图3所示的任务分配方法的描述,此处不再赘述。
140.图6为本公开实施例提供的一种任务处理装置的组成框图。
141.参照图6,本公开实施例提供了一种任务处理装置500,该任务处理装置应用于众核系统,该众核系统包括多个处理核,该任务处理装置500包括:第一接收模块501、核心簇组建模块502和发送模块503。
142.其中,第一接收模块501用于接收待处理任务;核心簇组建模块502用于根据待处理任务,确定用于处理该待处理任务的核心簇,核心簇包括从多个处理核中确定出的至少一个目标处理核;发送模块503用于向核心簇发送待处理任务,以供核心簇执行待处理任务。
143.此外,本公开实施例所提供的任务处理装置500,用于实现上述的任务处理方法,关于该任务处理装置500的其他描述可参见上述任务处理方法中的描述,此处不再赘述。
144.图7为本公开实施例提供的一种任务分配装置的组成框图。
145.参照图7,本公开实施例提供了一种任务分配装置600,该任务分配装置600用于实现上述任务分配方法,对众核系统中预先组建的核心簇进行任务分配,该核心簇包括多个目标处理核,该任务分配装置600包括:第二接收模块601、任务拆分模块602和任务分配模块603。
146.其中,第二接收模块601用于接收待处理任务;任务拆分模块602用于将待处理任务拆分成多个子任务;任务分配模块603用于向自身所在的核心簇中的至少部分目标处理核分配相应的子任务,至少部分目标处理核中每个目标处理核对应至少一个子任务,以供至少部分目标处理核中的各目标处理核执行各自对应的子任务。
147.此外,本公开实施例所提供的任务分配装置600,用于实现上述任务分配方法,关于该任务分配装置600的其他描述可参见上述任务分配方法中的描述,此处不再赘述。
148.本公开实施例还提供一种处理核,该处理核包括:上述的任务处理装置和/或上述的任务分配装置。
149.图8为本公开实施例提供的一种电子设备的组成框图。
150.参照图8,本公开实施例提供了一种电子设备,该电子设备包括多个处理核701以
及片上网络702,其中,多个处理核701均与片上网络702连接,片上网络702用于交互多个处理核间的数据和外部数据。
151.其中,一个或多个处理核701中存储有一个或多个第一指令,一个或多个第一指令被一个或多个处理核701执行,以使一个或多个处理核701能够执行上述的任务处理方法;和/或,一个或多个处理核701中存储有一个或多个第二指令,一个或多个第二指令被一个或多个处理核701执行,以使一个或多个处理核701能够执行上述的任务分配方法。
152.此外,本公开实施例还提供了一种计算机可读介质,其上存储有第一计算机程序和/或第二计算程序,其中,所述第一计算机程序在被处理核执行时实现上述的任务处理方法;所述第二计算机程序在被处理核执行时实现上述的任务分配方法。
153.此外,本公开实施例还提供了一种计算机程序产品,所述计算机程序产品在计算机上运行时,使得计算机执行上述的任务处理方法,或者所述计算机程序产品在计算机上运行时,使得计算机执行上述的任务分配方法。
154.本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
155.本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其他实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献