数据处理方法、众核系统及存储介质与流程

未命名 08-13 阅读:100 评论:0


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.图1为相关技术提供的一种数据处理方法的示意图;
43.图2为本公开实施例提供的一种数据处理方法的流程图;
44.图3为图2中步骤s100的具体流程图;
45.图4为图3中步骤s102的具体流程图;
46.图5为一种众核系统应用本公开实施例提供的数据处理方法处理一个任务的示意图;
47.图6为应用本公开实施例提供的数据处理方法的一种众核系统的示意图;
48.图7为另一种众核系统应用本公开实施例提供的另一种数据处理方法处理两个任务的示意图;
49.图8为应用本公开实施例提供的数据处理方法的另一种众核系统的示意图;
50.图9为另一种众核系统应用本公开实施例提供的另一种数据处理方法处理两个任务的示意图;
51.图10为另一种众核系统应用本公开实施例提供的另一种数据处理方法处理两个任务的示意图;
52.图11为另一种众核系统应用本公开实施例提供的另一种数据处理方法处理两个任务的示意图;
53.图12为本公开实施例提供的众核系统的示意图;
54.图13为本公开实施例提供的存储介质的示意图。
具体实施方式
55.为使本领域的技术人员更好地理解本公开的技术方案,下面结合附图对本公开提供的数据处理方法、众核系统和存储介质进行详细描述。
56.在下文中将参考附图更充分地描述本公开,但是所示的实施例可以以不同形式来体现,且不应当被解释为限于本公开阐述的实施例。反之,提供这些实施例的目的在于使本公开透彻和完整,并将使本领域技术人员充分理解本公开的范围。
57.本公开可借助本公开的理想示意图而参考平面图和/或截面图进行描述。因此,可根据制造技术和/或容限来修改示例图示。
58.在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。
59.本公开所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本公开所使用的术语“和/或”包括一个或多个相关列举条目的任何和所有组合。如本公开所使用的单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。如本公开所使用的术语“包括”、“由
……
制成”,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。
60.除非另外限定,否则本公开所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语
应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本公开明确如此限定。
61.本公开不限于附图中所示的实施例,而是包括基于制造工艺而形成的配置的修改。因此,附图中例示的区具有示意性属性,并且图中所示区的形状例示了元件的区的具体形状,但并不是旨在限制性的。
62.在一些相关技术中,提供了一种数据处理方法。请参照图1,当众核系统在处理神经网络的两个相邻层时,处理核(c1~c4)共同处理第一任务,处理核(c5~c8)共同处理第二任务,其中,第一任务和第二任务分别为神经网络的两个相邻层layer 1、layer 2。以全连接层为例,处理第一任务的每个处理核(c1、c2、c3、c4)处理第一任务的一个子任务,当第一任务的每个处理核(c1、c2、c3、c4)处理完相应子任务后,分别获得任务结果(output_1、output_2、output_3、output_4)。处理第二任务的每个处理核(c5~c8)需要接收全部任务结果(output_1~output_4)才能够开始第二任务的处理,因此,处理第一任务的每个处理核(c1、c2、c3、c4)需要将其获得的任务结果(output_1、output_2、output_3、output_4)分别发给处理第二任务的每个处理核(c5、c6、c7、c8)。
63.上述数据处理方法致使处理核必须接收任务所需的全部数据才能够开始处理,导致处理核等待时间长。
64.有鉴于此,本公开提供了一种数据处理方法、众核系统和存储介质。
65.第一方面,请参照图2至图3,本公开实施例提供一种数据处理方法,应用于众核系统,众核系统的多个处理核分为至少一个核组,每个核组包括多个处理核。数据处理方法包括:
66.s100、每个核组处理一个任务。
67.其中,该核组的每个处理核对应该任务的一个子任务。每个核组处理一个任务(s100)包括:
68.s101、每个处理核获取一个子数据。
69.其中,子数据为处理该任务所需的全部数据的一部分,不同处理核获取的子数据不同。
70.其中,每个任务包括对全部数据进行的多个运算,而每个子任务是指以上多个运算中的一部分,所有子任务共同构成任务;而每个子数据是以上全部数据的一部分,所有子数据构成全部数据。
71.其中,各子任务的运算量、以及各子数据的数据量应当是比较平衡的,以平衡各个处理核的处理速度。
72.因此,每个子任务对所有子数据处理完成即可得到该子任务对全部数据的处理结果(即后续描述的子任务结果);而所有子任务结果的总和,就相当于对该任务的整体处理结果。
73.其中,处理核是指该核组的处理核。
74.在本实施例中的部分内容,描述的是一个核组处理一个任务的情况,因此,在这种描述中提到的处理核指的是处理该任务的核组中的处理核。
75.s102、每个处理核用其对应的子任务处理其当前获取的子数据,获得其单次处理结果。
76.s103、若处理完成,则每个处理核获得其子任务结果。
77.其中,“处理完成”是指每个处理核均已完成对全部数据的处理。
78.其中,每个处理核的子任务结果根据其全部单次处理结果获得。
79.由于每个处理核在每次获取并处理的子数据均不相同,经过几次子数据交换,每个处理核均已完成对全部数据的处理,从而每个处理核均获得了其对应的全部单次处理结果,因而,能够处理得到子任务结果。
80.在一些实施例中,每个处理核的子任务结果可通过对其全部单次处理结果进行拼接而获得。
81.所谓“拼接”是指,根据数据尺寸将多个单次处理结果拼在一起。
82.拼接后所获得的子任务结果的数据尺寸,是多个单次处理结果的数据尺寸。
83.例如,单次处理结果的数据尺寸是1*1,接收到的单次处理结果的数量是n个,通过拼接的方式处理n个单次处理结果时,处理后的结果的数据尺寸为1*n。当然,根据拼接方向的不同,处理后的结果的数据尺寸也可以为n*1。
84.s104、若未处理完成,则每个处理核将其当前获取的子数据发送至一个未对该子数据进行过处理的处理核,并返回步骤s101。
85.其中,执行完步骤s102之后,方法还包括:
86.判断是否已完成对全部数据的处理,若判断结果为处理完成,则进行步骤s103,若未处理完成,则进行步骤s104。
87.其中,在核组处理一个任务的过程中,每个处理核处理的子任务是固定不变的,只有获取的子数据发生变化,从而当处理完成时,每个子任务能够处理完全部数据,每个子数据经过全部子任务的处理。
88.其中,在每个处理核第一次进行步骤s101时,子数据不是从处理该任务的其它处理核发送而来的,而是从该任务之外而来的,例如,从外界输入的,或者,从前一任务获得(如从处理前一任务的处理核)的。
89.由于核组的每个处理核对应该任务的一个子任务,可知,核组中处理核的数量等于子任务的数量。由于每个处理核获取一个子数据且不同处理核获取的子数据不同,可知,处理核的数量等于子数据的数量。由上可知,以下三者的数量均相同:共同处理一个任务的处理核的数量、子任务的数量、子输入数据的数量。
90.本公开提供的数据处理方法中,由于共同处理一个任务的每个处理核每次仅获取处理该任务所需的全部数据的一部分,而非一次获得全部数据,从而降低了开始处理任务前的数据传输量(或者说是处理相邻任务的处理核之间的数据传输量),降低了片上网络的传输带宽需求。
91.本公开实施例对于何时对单次处理结果进行处理不做特殊限定。只要当处理完成,每个处理核能够获得其子任务结果,均属于本公开保护范围。
92.在一些实施例中,在步骤s102中包括:
93.每个处理核用其对应的子任务处理其当前获取的子数据,获得其单次处理结果并存储。
94.并且,在步骤s103中包括:
95.每个处理核根据其中存储的全部单次处理结果获得其子任务结果。
96.也就是说,每个处理将其获得的每个单次处理结果均进行存储,直至每个处理核均已完成对全部数据的处理,再统一对全部单次处理结果进行处理,获得其子任务结果。
97.在一些实施例中,参见图4,在步骤s102中包括:
98.s1021、每个处理核用其对应的子任务处理其当前获取的子数据,获得其单次处理结果。
99.s1022、每个处理核将其当前获得的单次处理结果加入其子任务结果中。
100.也就是说,每当处理核获得一个单次处理结果,就将其与加入其子任务结果中,从而当每个处理核均已完成对全部数据的处理时,最后一次加入单次处理结果之后所获得的子任务结果,即为最终的子任务结果。
101.需要说明的是,在最后一次加入单次处理结果之前,子任务结果仅仅是阶段子任务结果,而非处理核已完成对全部数据的处理之后所获得的最终子任务结果。
102.如此处理方式,每次获得单次处理结果之后,即将单次处理结果加入子任务结果,进而无需存储每个单次处理结果,而只需要存储加入单次处理结果后获得的子任务结果即可,从而降低处理核存储需求。在一些实施例中,数据处理方法用于处理神经网络,每个任务为神经网络的一个层(每个层包括多个节点,每个子任务可为其中一个或多个节点)。
103.神经网络是机器学习模型中的一种模型,由于神经网络具有很强的表达能力,在语音识别、图像分类、人脸识别、自然语言处理等领域。
104.在一些实施例中,在步骤s102之前,还包括:
105.每个处理核获取其当前获取的子数据对应的子权重信息。
106.其中,在神经网络的不同层的节点之间有连接,每个连接具有一个权重信息,用于表征该连接的连接强度。在本公开实施例中,子数据的“子权重信息”是指该处理核的子任务的各节点,当前获取的子数据所经过的连接的权重信息。
107.获得子权重信息是处理核用子任务处理当前子数据的必要条件,本公开实施例对于获取其当前获取的子数据对应的子权重信息的时机不做特殊限定,只要在步骤s102之前,获取当前获取的子数据对应的子权重信息,均属于本公开保护范围。
108.在一些实施例中,在步骤s101之前,即核组开始处理一个任务之前,该核组的每个处理核将所需的所有子数据对应的所有子权重信息一次性全部加载至每个处理核中。
109.在一些实施例中,在每次执行步骤s102时,在每个处理核在对当前获取的子数据进行处理之前,将当前获取的子数据对应的一个子权重信息加载至处理核中。
110.因此,只要在步骤s102之前,获取当前获取的子数据对应的子权重信息,以保证处理核能够对子数据进行正常处理,均属于本公开保护范围。
111.在一些实施例中,每个核组处理一个任务的过程中,在每次执行步骤s104时,每个处理核每次将其当前获取的子数据均传输至同一处理核。
112.即在处理一个任务的过程中,每个处理核对每次获取的子数据,都固定发给一个处理核,例如形成参照图5的固定的环形接力。
113.下面结合附图对众核系统采用本公开实施例提供的数据处理方法处理一个任务的流程进行具体描述。
114.请参见图5,在该众核系统中,处理核(c1~c4)划分为一个核组,该核组处理一个任务,任务为神经网络中的一个层layer n,每个处理核(c1、c2、c3、c4)处理一个子任务,处
理该任务所需的全部数据为x1+x2+x3+x4。
115.在t=1时刻,每个处理核(c1、c2、c3、c4)分别获取一份子数据(x1、x2、x3、x4),每个处理核(c1、c2、c3、c4)获取其当前子数据(x1、x2、x3、x4)对应的子权重信息(wn11、wn22、wn33、wn44),每个处理核(c1、c2、c3、c4)用其对应的子任务处理子数据(x1、x2、x3、x4),获得其单次处理结果(y11、y22、y33、y44)。并将每个单次处理结果(y11、y22、y33、y44)一一对应的加入每个子任务结果中。
116.由于每个处理核(c1、c2、c3、c4)只处理了完一份子数据(x1、x2、x3、x4),即未处理完成全部数据(x1~x4),因此,每个处理核(c1、c2、c3、c4)将其当前获取的子数据(x1、x2、x3、x4)发送至一个未对该子数据(x1、x2、x3、x4)进行过处理的处理核,以供各处理核(c1、c2、c3、c4)继续对新接收到的子数据(x1、x2、x3、x4)进行处理。
117.在本实施例中采用以下命名规则:x表示子数据,w表示子权重,y表示单次处理结果,n表示处理的第n个任务(layer n),a表示第a个子任务,b表示第b个子数据。
118.具体地,采用上述命名规则命名的子权重信息wnab是指,在处理第n个任务(layer n)时用第a个子任务处理子数据xb的权重。以子权重信息wn13为例,其表征在第n个任务(layer n)中用第1个子任务处理子数据x3的权重。
119.具体地,采用上述命名规则命名的单次处理结果yab是指,用第a个子任务处理子数据xb所获得的处理结果。以单次处理结果y13为例,其表征用第1个子任务处理子数据x3所获得的处理结果。
120.关于处理核之间的传输顺序,参见图5,处理核c1将其当前获取的子数据x1发送至处理核c2,处理核c2将其当前获取的子数据x2发送至处理核c3,处理核c3将其当前获取的子数据x3发送至处理核c4,处理核c4将其当前获取的子数据x4发送至处理核c1。并且,按照处理核c1传输至处理核c2、处理核c2传输至处理核c3、处理核c3传输至处理核c4、处理核c4传输至处理核c1,形成固定的传输顺序,从而在处理该任务过程中,直接使用固定的传输顺序进行多个处理核(c1~c4)之间的数据传输。
121.其中,“当前获取的”子数据(x1、x2、x3、x4)是指,每个处理核(c1、c2、c3、c4)在的处理时刻中(例如是t=1的时刻)获取的子数据(x1、x2、x3、x4),也是指,每个处理核(c1、c2、c3、c4)在当前t=1时刻处理的子数据(x1、x2、x3、x4)。
122.在t=2时刻,每个处理核(c1、c2、c3、c4)分别接收其他处理核(c4、c1、c2、c3)发送的一份子数据(x4、x1、x2、x3),每个处理核(c1、c2、c3、c4)获取其当前子数据(x4、x1、x2、x3)对应的子权重信息(wn14、wn21、wn32、wn43),每个处理核(c1、c2、c3、c4)用其对应的子任务处理子数据(x4、x1、x2、x3),获得其单次处理结果(y14、y21、y32、y43)。并将每个单次处理结果(y14、y21、y32、y43)一一对应的加入每个子任务结果中,此时,每个处理核(c1、c2、c3、c4)对应的阶段子任务结果分别为y11+y14、y22+y21、y33+y32、y44+y43。
123.由于每个处理核(c1、c2、c3、c4)只处理完两份子数据(x1+x4、x2+x1、x3+x2、x4+x3),即未处理完成全部数据(x1~x4),因此,每个处理核(c1、c2、c3、c4)将其当前获取的子数据(x4、x1、x2、x3)按照固定的传输顺序,发送至一个未对该子数据(x4、x1、x2、x3)进行过处理的处理核,以供各处理核(c1、c2、c3、c4)继续对新接收到的子数据(x4、x1、x2、x3)进行处理。
124.t=3时刻的处理过程与t=2时刻的处理过程类似,不再进行详细描述。
125.在t=4时刻,每个处理核(c1、c2、c3、c4)分别接收其他处理核(c4、c1、c2、c3)发送的一份子数据(x2、x3、x4、x1),每个处理核(c1、c2、c3、c4)获取其当前子数据(x2、x3、x4、x1)对应的子权重信息(wn12、wn23、wn34、wn41),每个处理核(c1、c2、c3、c4)用其对应的子任务处理子数据(x2、x3、x4、x1),获得其单次处理结果(y12、y23、y34、y41)。
126.经过t=1至t=4,参见图5中虚线框出部分,每个处理核(c1、c2、c3、c4)均已完成对全部数据(x1+x2+x3+x4)的处理,即处理完成。将最后一次个单次处理结果(y12、y23、y34、y41)一一对应的加入每个子任务结果中,从而获得子任务结果(y1、y2、y3、y4)。
127.需要说明的是,t=1至t=4仅用于表示每个处理核(c1、c2、c3、c4)执行至第几个子数据,并不表示实际时刻,也不表示每个处理核(c1~c4)处理不同子数据的所需时间相同或不同。
128.还需要说明的是,本公开实施例中接力的数据为子数据,即该任务所需的全部数据的一部分,因此,本公开实施例适用于输入的数据量较大且每个处理核均需要对全部数据进行处理的层,例如正向卷积层、全连接层等。
129.在一些实施例中,参见图6,众核系统包括至少一个共享存储600,核组中的每个处理核(c1、c2、c3、c4)均能够直接访问共享存储600。
130.相应的,在数据处理方法中,步骤104包括:
131.每个处理核(c1、c2、c3、c4)将其当前获取的子数据通过共享存储600发送(图中箭头所示)至一个未对该子数据进行过处理的处理核。
132.其中,“通过共享存储发送”是指,处理核将需要传输的数据存入共享存储600中,再由需要接收数据的处理核访问共享存储600,以获取相应数据。
133.在一些相关技术中,请参见图1,对于处理第一任务的一个处理核c1而言,需要将任务结果output_1向处理第二任务的每个处理核(c5、c6、c7、c8)各发送一次,共计四份(output_1*4),进而,处理第一任务的处理核(c1~c4)与处理第二任务的处理核(c5~c8)之间的数据传输量即为第一任务的全部任务结果的四倍((output_1+output_2+output_3+output_4)*4)。
134.在本公开实施例中,由于核组内的不同处理核之间的数据交互是通过访问共享存储600实现的,因此不会占用片上网络的传输带宽,从而降低了处理一个任务的多个处理核之间的片上网络传输带宽要求。
135.在一些实施例中,众核系统的多个处理核分为多个核组,多个核组包括第一核组和第二核组。方法包括:第一核组处理第一任务,第二核组处理第二任务,且第一任务为第二任务的相邻的在先任务。
136.在第一核组处理第一任务时,步骤s103包括:
137.第一核组的每个处理核获得其子任务结果,并将其获得的子任务结果发送至第二核组的至少一个处理核。
138.在第二核组处理第二任务时,在首个步骤s101中,包括:
139.第二核组的每个处理核根据接收到的子任务结果获得一个子数据。
140.其中,第二核组的每个处理核接收的子任务结果即为第一核组的每个处理核发送的子任务结果。
141.其中,在第二核组的处理核处理第二任务时,仅在首个步骤s101中接收第一核组
的处理核发送的子任务结果,在非首个步骤s101中,每个处理核接收第二核组中其他处理核发送的子数据。
142.请参见图7,第一核组的每个处理核(c1、c2、c3、c4)共同处理第一任务,第二核组的每个处理核(c5、c6、c7、c8)共同处理第二任务。第一任务为第二任务的相邻的在先任务,其中,每个任务为神经网络的一个层,即,第一任务和第二任务分别为神经网络的两个相邻层(layer 1、layer 2)。
143.图7中示出了第一核组与第二核组之间的数据交互。
144.在t=1至t=3时刻,第一核组的每个处理核(c1、c2、c3、c4)按照本公开实施例前述的t=1至t=3时刻进行数据处理,在此不再赘述。
145.在t=4时刻,即第一核组处理第一任务的最后一个时刻,第一核组的每个处理核(c1、c2、c3、c4)获得子任务结果(y1、y2、y3、y4),由于第一核组的处理核的数量与第二核组的处理核的数量相同,每个处理核(c1、c2、c3、c4)将其获得的子任务结果(y1、y2、y3、y4)一一对应的发送至第二核组的每个处理核(c5、c6、c7、c8)。
146.在t=5时刻,即第二核组处理第二任务的首个时刻,第二核组的每个处理核(c5、c6、c7、c8)分别获得一个子任务结果(y1、y2、y3、y4),并将获得的子任务结果(y1、y2、y3、y4)直接作为第二任务的一个子数据进行处理。
147.在t=6至t=8时刻,第二核组的每个处理核(c5、c6、c7、c8)按照本公开实施例前述的t=2至t=4时刻进行数据处理,在此不再赘述。
148.还需要说明的是,尽管在图7所示实施例中,处理第一任务的处理核的数量与处理第二任务的处理核的数量相同,处理第一任务的每个处理核在t=4时刻一一对应的将其获得的子任务结果发送至处理第二任务的处理核,但在实际应用过程中,存在处理第一任务的处理核的数量与处理第二任务的处理核的数量不同的情况。
149.若第一核组的处理核的数量多于第二核组的处理核的数量,则第二核组的至少一个处理核要接收多个第一核组的处理核的子任务结果。
150.作为一种获得子数据的方式,请参见图10、图11,第一核组的每个处理核(c1、c2、c3、c4)共同处理第一任务,第二核组的每个处理核(c5、c6、c7)共同处理第二任务,即,第一核组的处理核的数量多于第二核组的处理核的数量。
151.采用图10的方式,在t=4时刻,第一核组的每个处理核(c1、c2、c3、c4)获得子任务结果(y1、y2、y3、y4),第一核组的两个处理核(c1、c2)将其获得的子任务结果(y1、y2)同时发送至第二核组的处理核c5,第一核组的其他两个处理核(c3、c4)将其获得的子任务结果(y3、y4)一一对应的发送至第二核组的其他两个处理核(c6、c7)。
152.在t=5时刻,第二核组的处理核c5获得第一任务的两个子任务结果(y1、y2),第二核组的处理核(c6、c7)分别获得一个子任务结果(y3、y4),第二核组的各处理核将第一核组的子任务结果(y1+y2、y3、y4)分别作为第二核组的子数据进行处理。
153.或者采用图11的方式,在t=4时刻,第一核组的处理核c1将其获得子任务结果y1发送至第二核组的处理核c5,第一核组的处理核c2将其获得子任务结果y2同时发送至第二核组的处理核(c5、c6),第一核组的处理核c3将其获得子任务结果y3同时发送至第二核组的处理核(c6、c7),第一核组的处理核c4将其获得子任务结果y4发送至第二核组的处理核c7。
154.在t=5时刻,第二核组的处理核c5同时获得第一任务的两个子任务结果(y1、y2),第二核组的处理核c6同时获得第一任务的两个子任务结果(y2、y3),第二核组的处理核c7同时获得第一任务的两个子任务结果(y3、y4)。。
155.需要说明的是,无论采用何种方式进行相邻任务间的数据传输,只要确保,第二核组的各处理核在第一次获取所有子数据的数据量的和,等于第一核组的各处理核获得的所有子任务结果的数据量的和,并且每个处理核接受一个完整的子任务结果或者连续子任务结果的一部分,均属于本公开的保护范围。
156.进一步地,应尽量确保每个处理核接收到的各子数据的数据量是比较平衡的。
157.以图10为例,当子任务结果(y1、y2、y3、y4)中的几个数据量较少、且其他几个数据量较大,可以将较少的几个数据量的子任务结果(y1、y2)发送至一个处理核,以使第二核组的每个处理核(c5、c6、c7)接收到的数据量比较平衡。
158.以图11为例,假设第一核组的每个子任务结果(y1、y2、y3、y4)的数据量为100,那么第二核组的每个处理核(c5、c6、c6)接收的子数据的数据量应当为133,也就是说,处理核c5接收子任务结果y1和三分之一的子任务结果y2,处理核c6接收三分之二的子任务结果y2和三分之二的子任务结果y3,处理核c7接收三分之一的子任务结果y3和子任务结果y4。
159.在实际应用中,可以根据第一任务的每个子任务结果的数据量、第一核组的处理核的数量、第二核组的处理核的数量来确定第二核组的每个处理核接收到的子数据的数据量,以使每个处理核接收到的各子数据的数据量是比较平衡的。
160.若第一核组的处理核的数量少于第二核组的处理核的数量,则第一核组的至少一个处理核要将其子任务结果发送至第二核组的多个处理核。第二核组的各处理核也可以其接收到的全部或部分子任务结果作为子数据。
161.进一步地,在一些实施例中,参照图8,众核系统包括至少一个共享存储mem,第一核组的每个处理核(c1、c2、c3、c4)和第二核组中的每个处理核(c5、c6、c7、c8)均能够直接访问同一个共享存储mem。
162.在第一核组处理第一任务时,步骤s103包括:
163.第一核组的每个处理核(c1、c2、c3、c4)获得其子任务结果(y1、y2、y3、y4),并将其获得的子任务结果(y1、y2、y3、y4)存储至共享存储。
164.并且,在第二核组处理第二任务时,每个处理核(c5、c6、c7、c8)第一次进行步骤s101包括:
165.第二核组的每个处理核(c5、c6、c7、c8)通过访问共享存储,分别获取一个子任务结果(y1、y2、y3、y4)作为一个子数据。
166.也就是说,当不同核组分别处理不同任务的情况下,可以通过共享存储的方式实现不同核组的处理核之间的数据交互,而不通过片上网络进行数据传输,从而在降低相邻层(layer 1、layer 2)之间的数据传输量的基础上,从而消除相邻层(layer 1、layer 2)之间的数据传输需求,进而降低片上网络的传输带宽需求。
167.在一些实施例中,图8中的共享存储mem可以具有图6中的共享存储600的功能,也就是说,共享存储mem既用于不同核组的处理核之间的数据交互,也用于同一核组内不同处理核之间的数据交互。从而既降低了处理一个任务的多个处理核之间的片上网络传输带宽要求,又消除了处理相邻任务的两个核组的不同处理核之间的数据传输需求,进而降低片
上网络的传输带宽需求。
168.在一些实施例中,方法包括:
169.s200、至少一个核组处理多个任务。
170.其中,多个任务包括第一任务和第二任务,且第一任务为第二任务的相邻的在先任务。
171.其中,核组先处理第一任务,再处理第二任务,也就是说,第一任务和第二任务是串行处理的。
172.其中,对于任意一个任务(第一任务或第二任务),采用前述步骤s101至步骤s104的方法进行处理。
173.具体地,在核组处理第二任务时,其步骤s101包括:
174.每个处理核获取该处理核在处理第一任务时获得的子任务结果,作为处理第二任务的一个子数据。
175.对于两个相邻任务的数据处理方法,可以采用图7中所示的方法,第一核组处理第一任务,第二核组处理第二任务,也可以采用一个核组依次处理第一任务、第二任务的方法。
176.需要说明的是,“第一任务”和“第二任务”,并不表示该核组只处理两个任务,也不表示一定是神经网络中的第一个任务和第二个任务,其仅用于表示任意两个相邻任务。
177.请参见图9,核组的每个处理核(c1、c2、c3、c4)依次处理第一任务和第二任务。第一任务为第二任务的相邻的在先任务,其中,每个任务为神经网络的一个层,即,第一任务和第二任务分别为神经网络的两个相邻层(layer1、layer 2)。
178.在t=4时刻,即核组处理第一任务的最后一个时刻,核组的每个处理核(c1、c2、c3、c4)获得子任务结果(y1、y2、y3、y4)。
179.在t=5时刻,即核组处理第二任务的首个时刻,该核组的每个处理核(c1、c2、c3、c4)获取该处理核(c1、c2、c3、c4)在处理第一任务时获得的子任务结果(y1、y2、y3、y4),作为处理第二任务的一个子数据进行处理。
180.由于第二任务仍由该核组的处理核(c1~c4)处理,并且,在第二任务的首个时刻中,获得子数据的处理核(c1~c4)即是第一任务中获得相应子任务结果(y1、y2、y3、y4)的处理核(c1~c4),因此,第一任务获得的子任务结果(y1、y2、y3、y4)无需发送,从而消除相邻层(layer 1、layer 2)之间的数据传输需求,进而降低片上网络的传输带宽需求。
181.第二方面,参见图12,本公开提供了一种众核系统,包括:
182.多个处理核1001;
183.多个处理核1001用于执行本公开实施例提供的任意一种数据处理方法。
184.第三方面,参见图13,本公开提供了一种存储介质,存储介质110存储有计算机程序,计算机程序被处理器执行实现本公开实施例提供的任意一种数据处理方法。
185.本领域普通技术人员可以理解,上文中所公开的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
186.在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。
187.某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器(cpu)、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机可读介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机可读介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其它数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机可读介质包括但不限于随机存取存储器(ram,更具体如sdram、ddr等)、只读存储器(rom)、带电可擦可编程只读存储器(eeprom)、闪存(flash)或其它磁盘存储器;只读光盘(cd-rom)、数字多功能盘(dvd)或其它光盘存储器;磁盒、磁带、磁盘存储或其它磁存储器;可以用于存储期望的信息并且可以被计算机访问的任何其它的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其它传输机制之类的调制数据信号中的其它数据,并且可包括任何信息递送介质。
188.本公开已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其它实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。

技术特征:
1.一种数据处理方法,应用于众核系统,其特征在于,众核系统的多个处理核分为至少一个核组,每个核组包括多个处理核;方法包括:每个核组处理一个任务;其中,该核组的每个处理核对应该任务的一个子任务;所述每个核组处理一个任务包括:每个处理核获取一个子数据;其中,所述子数据为处理该任务所需的全部数据的一部分,不同处理核获取的子数据不同;每个处理核用其对应的子任务处理其当前获取的子数据,获得其单次处理结果;若处理完成,则每个所述处理核获得其子任务结果;其中,所述处理完成为每个处理核均已完成对全部数据的处理,每个所述处理核的子任务结果根据其全部单次处理结果获得;若未处理完成,则每个所述处理核将其当前获取的子数据发送至一个未对该子数据进行过处理的处理核,并返回所述每个处理核获取一个子数据的步骤。2.根据权利要求1所述的数据处理方法,其特征在于,所述每个处理核用其对应的子任务处理其当前获取的子数据,获得其单次处理结果,包括:每个处理核用其对应的子任务处理其当前获取的子数据,获得其单次处理结果并存储;所述每个所述处理核获得其子任务结果,包括:每个处理核根据其中存储的全部所述单次处理结果获得其子任务结果。3.根据权利要求1所述的数据处理方法,其特征在于,所述每个处理核用其对应的子任务处理其当前获取的子数据,获得其单次处理结果包括:每个处理核用其对应的子任务处理其当前获取的子数据,获得其单次处理结果;每个处理核将其当前获得的所述单次处理结果加入其子任务结果中。4.根据权利要求1所述的数据处理方法,其特征在于,所述数据处理方法用于处理神经网络,每个任务为神经网络的一个层。5.根据权利要求4所述的数据处理方法,其特征在于,在所述每个处理核用其对应的子任务处理其当前获取的子数据,获得其单次处理结果之前,还包括:每个所述处理核获取其当前获取的子数据对应的子权重信息。6.根据权利要求1所述的数据处理方法,其特征在于,在每个核组处理一个任务的过程中,每个所述处理核每次将其当前获取的所述子数据均传输至同一处理核。7.根据权利要求1所述的数据处理方法,其特征在于,所述众核系统包括至少一个共享存储,所述核组中的每个所述处理核均能够直接访问所述共享存储;所述每个所述处理核将其当前获取的子数据发送至一个未对该子数据进行过处理的处理核包括:每个所述处理核将其当前获取的子数据通过所述共享存储发送至一个未对该子数据进行过处理的处理核。8.根据权利要求1所述的数据处理方法,其特征在于,所述众核系统的多个处理核分为多个核组,多个核组包括第一核组和第二核组;所述方法包括:所述第一核组处理第一任务,所述第二核组处理第二任务,且所述第一任务为所述第二任务的相邻的在先任务;在所述第一核组处理所述第一任务时,所述每个处理核获得其子任务结果包括:所述第一核组的每个所述处理核获得其子任务结果,并将其获得的所述子任务结果发送至所述第二核组的至少一个所述处理核;
在所述第二核组处理所述第二任务时,所述每个处理核第一次获取一个子数据包括:所述第二核组的每个处理核根据接收到的子任务结果获得一个子数据。9.根据权利要求8所述的数据处理方法,其特征在于,所述众核系统包括至少一个共享存储,所述第一核组和所述第二核组中的每个所述处理核均能够直接访问同一个所述共享存储;在所述第一核组处理所述第一任务时,每个处理核获得其子任务结果包括:所述第一核组的每个所述处理核获得其子任务结果,并将其获得的所述子任务结果存储至所述共享存储;在所述第二核组处理所述第二任务时,每个处理核第一次获取一个子数据包括:所述第二核组的每个处理核访问所述共享存储,根据获取到的子任务结果获得一个子数据。10.根据权利要求1所述的数据处理方法,其特征在于,所述方法包括:至少一个核组处理多个任务,所述多个任务包括第一任务和第二任务,且所述第一任务为所述第二任务的相邻的在先任务;在所述核组处理所述第二任务时,每个处理核第一次获取一个子数据包括:每个处理核至少获取该处理核在处理所述第一任务时获得的子任务结果,根据至少一个所述子任务结果获得处理所述第二任务的一个子数据。11.一种众核系统,其特征在于,包括:多个处理核;所述多个处理核用于执行权利要求1至10中任意一项所述数据处理方法。12.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行实现如权利要求1至10中任意一项所述数据处理方法。

技术总结
本公开提供了一种数据处理方法、众核系统及存储介质。该数据处理方法中,每个核组的多个处理核处理一个任务,其中,每个处理核每次仅获取处理该任务所需的全部数据的一部分,由于仅接收全部数据的一部分即可以开始处理任务,从而降低处理任务的准备时长。从而降低处理任务的准备时长。从而降低处理任务的准备时长。


技术研发人员:李涵 邓磊 王冠睿 丁瑞强
受保护的技术使用者:北京灵汐科技有限公司
技术研发日:2022.01.28
技术公布日:2023/8/9
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐