任务处理芯片、方法、装置、计算机设备及存储介质与流程

文档序号:28120590发布日期:2021-12-22 15:12阅读:59来源:国知局
任务处理芯片、方法、装置、计算机设备及存储介质与流程

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.关于上述任务处理方法、装置、计算机设备、及计算机可读存储介质的效果描述参见上述任务处理芯片的说明,这里不再赘述。
49.为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
50.为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
51.图1示出了本公开实施例所提供的一种任务处理方法的流程图;
52.图2示出了本公开实施例所提供的任务处理方法中,将与第一计算单元对应的状态值更新为目标状态值的具体方法的流程图;
53.图3a示出了本公开实施例所提供的任务处理方法中,并行执行计算任务的第一计算单元组的示意图;
54.图3b示出了本公开实施例所提供的任务处理方法中,与运算器与目标寄存器连接
的示意图;
55.图4示出了本公开实施例所提供的任务处理方法中,一种确定第一计算单元组中各第一计算单元对应的状态值是否均为所述目标状态值的具体方法的流程图;
56.图5示出了本公开实施例所提供的任务处理方法中,另一种确定第一计算单元组中各第一计算单元对应的状态值是否均为所述目标状态值的具体方法的流程图;
57.图6示出了本公开实施例所提供的任务处理方法中,控制第二计算单元组中的各第二计算单元,并行执行与所述各第二计算单元对应的计算任务的具体方法的流程图;
58.图7示出了本公开实施例所提供的另一种任务处理方法的流程图;
59.图8示出了本公开实施例所提供的一种任务处理装置的示意图;
60.图9示出了本公开实施例所提供的一种计算机设备的结构示意图。
具体实施方式
61.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
62.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
63.本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括a、b、c中的至少一种,可以表示包括从a、b和c构成的集合中选择的任意一个或多个元素。
64.经研究发现,在对神经网络进行训练时,对于可以并行的计算任务,需要等待所有并行计算全部完成后,才能转入下一步计算,这就带来了并行运算的同步问题。所谓同步,即需要建立一种机制,使得下一步计算知道上一步的计算已经全部完成,如何解决神经网络训练中并行运算的同步问题,以提高神经网络训练效率成为了相关技术领域内亟待解决的问题。
65.基于上述研究,本公开提供了一种任务处理芯片、方法、装置、计算机设备及存储介质,通过响应于第一计算单元组中并行执行的任一第一计算单元完成计算任务,将与该第一计算单元对应的状态值更新为目标状态值;响应于所述第一计算单元组中各第一计算单元对应的状态值均为所述目标状态值,控制与所述第一计算单元组对应的顺序执行的第二计算单元组执行对应的计算任务。这样,通过确定第一计算单元组中各计算单元对应的状态值,即可直接确定第一计算单元组中各第一计算单元的计算状态,当基于状态值确定第一计算单元组中所有第一计算单元均完成任务后,再控制第二计算单元组开始并行计算,从而有效的解决了并行运算中的同步问题。
66.为便于对本实施例进行理解,首先对本公开实施例所公开的一种任务处理方法进
行详细介绍,本公开实施例所提供的任务处理方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为用户设备(user equipment,ue)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(personal digital assistant,pda)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该任务处理方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
67.参见图1所示,为本公开实施例提供的任务处理方法的流程图,所述方法包括步骤s101~s102,其中:
68.s101:响应于第一计算单元组中并行执行的任一第一计算单元完成计算任务,将与该第一计算单元对应的状态值更新为目标状态值。
69.s102:响应于所述第一计算单元组中各第一计算单元对应的状态值均为所述目标状态值,控制与所述第一计算单元组对应的顺序执行的第二计算单元组执行对应的计算任务。
70.以下是对上述步骤的详细介绍。
71.针对s101,所述第一计算单元组中的第一计算单元,可以是中央处理器(central processing unit,cpu)中的运算单元(运算器的运算器最小单元);或者,也可以是图形处理器(graphics processing unit,gpu)、嵌入式神经网络处理器(neural

network processing unit,npu)等处理器中的计算单元。
72.实际应用中,处理器包含有多个计算单元,在并行执行计算任务时,为了便于管理,可以将多个计算单元划分为一个计算单元组,同一计算单元组中的各个计算单元,在执行分配给该计算单元组的计算任务时,可以是并行执行的,同一计算单元组中的多个计算单元并行执行的计算任务可以是相同的,也可以是不同的。这样,通过对计算单元组的划分,可以将处理器所包含的多个计算单元划分为多个计算单元组,每个计算单元组可以用来并行执行不同的计算任务,从而可以提高处理器的任务处理能力。
73.一种可能的实施方式中,在确定计算单元组时,可以将并行执行神经网络训练任务的多个线程分别对应的计算单元,确定为一个计算单元组。
74.这里,为了提高神经网络的训练速度,通过会调用处理器的多个线程对神经网络进行训练,由于线程与计算单元之间是一一对应的关系,因此可以将执行神经网络训练任务的多个线程分别对应的计算单元,确定为一个计算单元组,以方便对所述神经网络训练任务进行管理。
75.具体的,可以将处理神经网络训练任务中,并行执行计算任务的多个线程分别对应的计算单元,划分为同一计算单元组。这样,在使用处理器执行神经网络训练任务时,可以根据神经网络在训练时部分计算任务可以并行执行的特点,对处理器的计算单元进行针对性的划分,使得划分的计算单元能够适应神经网络训练任务在执行时,部分计算任务可以并行执行的特点,以便提高神经网络的训练效率。
76.实际应用中,在划分好计算单元组之后,需要统一对所述计算单元组中的计算单元进行管理,因此可以针对每个所述计算单元组,设置一个对应的管理器件来表征计算单元组中各个计算单元的状态(状态可以是计算完成和计算未完成)。
77.示例性的,以所述处理器为cpu为例,所述管理器件可以是寄存器,在确定所述计
算单元组中的各个计算单元的状态时,如果直接依次查看计算单元组中各个计算单元的状态,由于计算单元所对应的内存中用于存放计算结果的数据位数较多,且内存中数据的读取方式较寄存器更为复杂,因此需要花费较多的时间,而在添加了寄存器(管理器件)之后,可以使用寄存器存放各个计算单元的状态,寄存器存放计算单元的状态的数据位数较少,且数据读取方式较为简单,从而通过读取计算单元组对应的寄存器中存放的各个计算单元的状态值确定各个计算单元是否完成计算任务,可以更为快速的确定计算单元组中各个计算单元的计算状态。
78.一种可能的实施方式中,如图2所示,可以通过以下步骤将与第一计算单元对应的状态值更新为目标状态值:
79.s201:确定与所述第一计算单元组对应的目标寄存器。
80.s202:将所述目标寄存器中,与该第一计算单元对应的数据存储位的状态值更新为所述目标状态值。
81.这里,所述目标寄存器中包含多个数据存储位,所述第一计算单元组中的第一计算单元与所述目标存储器的数据存储位一一对应。
82.具体的,所述数据存储位为所述目标寄存器中用来存储数据(或标识)的寄存器位,所述目标寄存器可以通过所述数据存储位的高电平(1)和低电平(0),存储所述第一计算单元组中各个第一计算单元的计算状态,其中,高电平(1)表示该数据存储位对应的第一计算单元的计算状态为计算完成,低电平(0)表示该数据存储位对应的第一计算单元的计算状态为计算未完成。
83.示例性的,在检测到所述第一计算单元组中的第一计算单元并行执行计算任务时,所述目标寄存器中的数据存储位的状态值全部置0,以表示此时各所述第一计算单元均在并行执行计算任务(也即计算未完成),当所述第一计算单元组中的任一第一计算单元完成计算任务后,将所述目标寄存器中与该第一计算单元对应的数据存储位的状态值从0更新为1(目标状态值),以表示此时该第一计算单元完成计算任务。
84.一种可能的实施方式中,在将所述目标寄存器中,与该第一计算单元对应的数据存储位的状态值更新为所述目标状态值时,可以是通过计算任务中的最后一条操作指令更新的。
85.示例性的,在创建分配至所述第一计算单元组的计算任务时,可以将分配给所述第一计算单元组中,各第一计算单元的计算任务的最后一条操作指令设置为:将与该第一计算单元对应的目标寄存器的数据存储位的状态值更新为目标状态值。
86.示例性的,并行执行计算任务的第一计算单元组的示意图可以如图3a所示,图3a中,第一计算单元组中包含有5个第一计算单元,与所述第一计算单元组对应的目标寄存器中也相应的包含有5个数据存储位,数据存储位与所述第一计算单元对应(图中实线表示对应关系),所述目标存储器的状态值由上到下依次为1、1、0、1、0,表示与所述目标存储器对应的第一计算单元组中,各个第一计算单元的状态由上到下依次为计算完成、计算完成、计算未完成、计算完成、计算未完成。
87.s102:响应于所述第一计算单元组中各第一计算单元对应的状态值均为所述目标状态值,控制与所述第一计算单元组对应的顺序执行的第二计算单元组执行对应的计算任务。
88.这里,当检测到所述第一计算单元组中各第一计算单元对应的状态值均为所述目标状态值时,即可确定分配至所述第一计算单元组的计算任务已经全部执行完成,此时可以根据实际计算需求,确定与所述第一计算单元组队员的顺序执行计算任务的第二计算单元组。
89.在一种可能的实施方式中,所述第二计算单元组可以是所述第一计算单元组,也即在当前的第一计算单元组完成计算任务后,将新的计算任务也分配给所述第一计算单元组进行执行;或者,所述第二计算单元组还可以是除所述第一计算单元组外的其他计算单元组,在所述第一计算单元组完成计算任务后,按照预设的计算任务执行顺序,确定当前需要执行计算任务的第二计算单元组。
90.一种可能的实施方式中,如图4所示,可以通过以下步骤确定所述第一计算单元组中各第一计算单元对应的状态值是否均为所述目标状态值:
91.s401:每隔预设时间间隔,读取所述目标寄存器的状态值。
92.s402:基于读取的状态值,确定所述第一计算单元组中各第一计算单元对应的状态值是否均为所述目标状态值。
93.这里,所述每隔预设时间间隔,读取所述目标寄存器的状态值,可以是每隔预设数量的时钟周期,读取所述目标寄存器的数据存储位的状态值。
94.示例性的,可以每隔100个时钟周期,读取一次所述目标寄存器的状态值。
95.一种可能的实施方式中,如图5所示,还可以通过以下步骤确定所述第一计算单元组中各第一计算单元对应的状态值是否均为所述目标状态值:
96.s501:将所述目标寄存器中存储的状态值输入至与运算器。
97.s502:基于所述与运算器的输出结果,确定所述第一计算单元组中各第一计算单元对应的状态值是否均为所述目标状态值。
98.这里,可以设置一个与运算器,并将所述与运算器与所述目标寄存器连接,使得所述目标寄存器中存储的状态值能够作为所述与运算器的输入。
99.具体的,在将所述目标寄存器中存储的状态值输入至所述与运算器时,由于所述目标寄存器与所述与运算器连接,因此所述目标寄存器中存储的状态值能够直接输入至所述与运算器,作为所述与运算器在进行与运算时的参数。
100.示例性的,与运算器与目标寄存器连接的示意图可以如图3b所示,图3b中,第一计算单元组中包含有5个第一计算单元,与所述第一计算单元组对应的目标寄存器中也相应的包含有5个数据存储位,与所述目标寄存器对应的与运算器的输入也有5位,所述目标存储器的状态值由上到下依次为1、1、0、1、0,根据与运算器的运算规则,得到所述与运算器的输出结果为0,则可以确定所述第一计算单元组中各第一计算单元对应的状态值不均为所述目标状态值。
101.示例性的,若图3b中的所述目标存储器的状态值由上到下依次为1、1、1、1、1,根据与运算器的运算规则,得到所述与运算器的输出结果为1,则可以确定所述第一计算单元组中各第一计算单元对应的状态值均为所述目标状态值。
102.实际应用中,在检测到所述第一计算单元组中各第一计算单元对应的状态值均为所述目标状态值后,可以生成中断指令,以指示将与第二计算单元组中各第二计算单元对应的计算任务,分配至对应的第二计算单元。
103.具体的,所述第二计算单元组中的各第二计算单元所并行执行的计算任务,可以是与所述第一计算单元组所执行的计算任务相关的计算任务,比如,需要使用第一计算单元所执行的计算任务的结算结果的计算任务;或者,也可以是与所述第一计算单元组所执行的计算任务不相关的计算任务,比如,计算优先级较第一计算单元所执行的计算任务较低,但具体计算时不需要使用第一计算单元所执行的计算任务的结算结果的计算任务。
104.一种可能的实施方式中,如图6所示,可以通过以下步骤控制所述第二计算单元组中的各第二计算单元,并行执行与所述各第二计算单元对应的计算任务:
105.s601:确定所述第一计算单元组中各第一计算单元的计算结果。
106.s602:控制所述第二计算单元组中各第二计算单元对所述计算结果进行并行运算。
107.这里,第二计算单元组在执行并行运算时,可以将所述第一计算单元组的计算结果作为并行运算时所使用的参数。
108.具体的,所述第一计算单元组中各第一计算单元均有对应的一个第一计算结果,在控制所述第二计算单元组中各第二计算单元对所述第一计算结果进行并行运算时,所述第二计算单元可以使用一个所述第一计算结果进行并行运算;或者,也可以使用多个所述第一计算结果进行并行运算。
109.示例性的,以所述第一计算单元组包含5个第一计算单元为例,各第一计算单元的计算结果依次为计算结果1、计算结果2、计算结果3、计算结果4、计算结果5,第二计算单元在进行并行运算时,可以是仅使用1个计算结果(比如计算结果1),或者也可以是同时使用多个计算结果(比如计算结果1和计算结果2),此外,多个第二计算单元也可以使用相同的计算结果(比如2个第二计算单元都仅使用计算结果1)。
110.下面,以并行执行的计算任务为神经网络训练任务为例,对本公开实施例提供的任务处理方法进行描述。
111.如图7所示,为本公开实施例提供的另一种任务处理方法的流程图,包括:
112.s701:将并行执行神经网络训练任务的多个线程分别对应的第一计算单元,确定为第一计算单元组。
113.s702:响应于第一计算单元组中的第一计算单元开始并行执行计算任务,将与所述第一计算单元组对应的目标寄存器的状态值更新为0。
114.s703:针对第一计算单元组中的任一第一计算单元,该第一计算单元按照分配的计算任务执行并行运算。
115.s704:针对第一计算单元组中的任一第一计算单元,判断该第一计算单元是否完成分配的计算任务。
116.具体的,当所述s704的判断结果为否,则返回执行所述s703继续执行并行运算。
117.s705:将所述目标寄存器中,与该第一计算单元对应的状态值更新为1。
118.s706:响应于所述第一计算单元组中各第一计算单元对应的状态值为1,确定第一计算单元组对应的计算任务处理完成。
119.具体的,上述各步骤的具体内容参照上文相关描述,在此不再展开说明。
120.本公开实施例提供的任务处理方法,通过响应于第一计算单元组中并行执行的任一第一计算单元完成计算任务,将与该第一计算单元对应的状态值更新为目标状态值;响
应于所述第一计算单元组中各第一计算单元对应的状态值均为所述目标状态值,控制与所述第一计算单元组对应的顺序执行的第二计算单元组执行对应的计算任务。这样,通过确定第一计算单元组中各计算单元对应的状态值,即可直接确定第一计算单元组中各第一计算单元的计算状态,当基于状态值确定第一计算单元组中所有第一计算单元均完成任务后,再控制第二计算单元组开始并行计算,从而有效的解决了并行运算中的同步问题。
121.本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
122.基于同一发明构思,本公开实施例中还提供了与任务处理方法对应的任务处理装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述任务处理方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
123.参照图8所示,为本公开实施例提供的一种任务处理装置的架构示意图,所述装置包括:更新模块801、确定模块802、控制模块803;其中,
124.更新模块801,用于响应于第一计算单元组中并行执行的任一第一计算单元完成计算任务,将与该第一计算单元对应的状态值更新为目标状态值;
125.控制模块802,用于响应于所述第一计算单元组中各第一计算单元对应的状态值均为所述目标状态值,控制与所述第一计算单元组对应的顺序执行的第二计算单元组执行对应的计算任务。
126.一种可能的实施方式中,所述控制模块802,在控制与所述第一计算单元组对应的顺序执行的第二计算单元组执行对应的计算任务时,用于:
127.确定所述第一计算单元组中各第一计算单元的计算结果;
128.控制所述第二计算单元组中各第二计算单元对所述计算结果进行并行运算。
129.一种可能的实施方式中,所述更新模块801,在将与该第一计算单元对应的状态值更新为目标状态值时,用于:
130.确定与所述第一计算单元组对应的目标寄存器;
131.将所述目标寄存器中,与该第一计算单元对应的数据存储位的状态值更新为所述目标状态值。
132.一种可能的实施方式中,所述控制模块802,还用于根据以下方法确定所述第一计算单元组中各第一计算单元对应的状态值是否均为所述目标状态值:
133.每隔预设时间间隔,读取所述目标寄存器的状态值;
134.基于读取的状态值,确定所述第一计算单元组中各第一计算单元对应的状态值是否均为所述目标状态值;或者
135.将所述目标寄存器中存储的状态值输入至与运算器;
136.基于所述与运算器的输出结果,确定所述第一计算单元组中各第一计算单元对应的状态值是否均为所述目标状态值。
137.一种可能的实施方式中,所述更新模块801,用于根据以下方法确定计算单元组:
138.将并行执行神经网络训练任务的多个线程分别对应的计算单元,确定为一个计算单元组。
139.本公开实施例提供的任务处理装置,通过响应于第一计算单元组中并行执行的任
一第一计算单元完成计算任务,将与该第一计算单元对应的状态值更新为目标状态值;响应于所述第一计算单元组中各第一计算单元对应的状态值均为所述目标状态值,控制与所述第一计算单元组对应的顺序执行的第二计算单元组执行对应的计算任务。这样,通过确定第一计算单元组中各计算单元对应的状态值,即可直接确定第一计算单元组中各第一计算单元的计算状态,当基于状态值确定第一计算单元组中所有第一计算单元均完成任务后,再控制第二计算单元组开始并行计算,从而有效的解决了并行运算中的同步问题。
140.关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
141.基于同一技术构思,本公开实施例还提供了一种计算机设备。参照图9所示,为本公开实施例提供的计算机设备900的结构示意图,包括处理器901、存储器902、和总线903。其中,存储器902用于存储执行指令,包括内存9021和外部存储器9022;这里的内存9021也称内存储器,用于暂时存放处理器901中的运算数据,以及与硬盘等外部存储器9022交换的数据,处理器901通过内存9021与外部存储器9022进行数据交换,当计算机设备900运行时,处理器901与存储器902之间通过总线903通信,使得处理器901在执行以下指令:
142.响应于第一计算单元组中并行执行的任一第一计算单元完成计算任务,将与该第一计算单元对应的状态值更新为目标状态值;
143.响应于所述第一计算单元组中各第一计算单元对应的状态值均为所述目标状态值,控制与所述第一计算单元组对应的顺序执行的第二计算单元组执行对应的计算任务。
144.一种可能的实施方式中,所述处理器901的指令中,所述控制与所述第一计算单元组对应的顺序执行的第二计算单元组执行对应的计算任务,包括:
145.确定所述第一计算单元组中各第一计算单元的计算结果;
146.控制所述第二计算单元组中各第二计算单元对所述计算结果进行并行运算。
147.一种可能的实施方式中,所述处理器901的指令中,所述将与该第一计算单元对应的状态值更新为目标状态值,包括:
148.确定与所述第一计算单元组对应的目标寄存器;
149.将所述目标寄存器中,与该第一计算单元对应的数据存储位的状态值更新为所述目标状态值。
150.一种可能的实施方式中,所述处理器901的指令中,还包括根据以下方法确定所述第一计算单元组中各第一计算单元对应的状态值是否均为所述目标状态值:
151.每隔预设时间间隔,读取所述目标寄存器的状态值;
152.基于读取的状态值,确定所述第一计算单元组中各第一计算单元对应的状态值是否均为所述目标状态值;或者
153.将所述目标寄存器中存储的状态值输入至与运算器;
154.基于所述与运算器的输出结果,确定所述第一计算单元组中各第一计算单元对应的状态值是否均为所述目标状态值。
155.一种可能的实施方式中,所述处理器901的指令中,根据以下方法确定计算单元组:
156.将并行执行神经网络训练任务的多个线程分别对应的计算单元,确定为一个计算单元组。
157.本公开实施例还提供一种任务处理芯片,包括:第一计算单元组和第二计算单元组;其中,所述第一计算单元组包括多个并行执行的第一计算单元,所述第二计算单元组包括多个并行执行的第二计算单元;所述第一计算单元组和所述第二计算单元组用于执行如本公开任一实施例所述的任务处理方法的步骤。
158.本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的任务处理方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
159.本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的任务处理方法的步骤,具体可参见上述方法实施例,在此不再赘述。
160.其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(software development kit,sdk)等等。
161.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
162.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
163.另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
164.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read

only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
165.最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员
在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1