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

多任务程序编译方法及装置、多核芯片与流程

2022-06-01 13:29:47 来源:中国专利 TAG:


1.本公开属于程序编译技术领域,具体涉及一种多任务程序编译方法及装置、多核芯片。


背景技术:

2.整体同步并行计算模型(bulk synchronous parallel computing model,bsp计算模型)是一种并行计算模型,它可以用于系统级应用中,例如多服务器组成的计算机群进行并行计算,也可以用于芯片级应用中,例如多(众)核芯片进行并行计算。
3.在进行神经网络计算时,使用bsp机制的多(众)核芯片有其独特的应用优势,这种多(众)核芯片,主要由以下三部分电路实现bsp计算:
4.1.一组具有局部内存,可独立运行的核;
5.2.核间通信的总线或者片上网络(noc);
6.3.实现核间同步的电路。
7.整个bsp任务中,一共有n个核工作,每一个核均有自己的存储电路和运算及控制电路,能独立运行,完成一定的工作。所有核在同步信号的同步下开始工作。先后两个同步信号的时间跨度,通常称为一个超步(superstep)。整个bsp计算,是以超步为单位,流水向前推进,工作过程如图1所示。工作流程如下:
8.1.当同步信号到来,也就代表着一个超步的开始,所有的核同时开始计算;
9.2.各个核计算完毕,进入通信阶段,将需要传输的数据发送出去,同时也会收到需要接收的数据;
10.3.各核完成本核的计算和通信后,进入等待状态;
11.任务中所有核都完成了计算和通信,代表本次超步的结束,可以开始下一个超步,即新的同步信号到来,开启下一次计算和传输。
12.在整个芯片中,按bsp任务,将所有的核分为m个组(group)。每一个组有一个同步信号生成器core_ctrl,统一管理本组所有核的同步信号的生成,此时,每一组中的所有的核,都共用同一个同步信号,不同组的同步信号不一定相同;核通过网络(或者总线)发送同步请求消息给core_ctrl;core_ctrl根据收到的消息,生成相应的同步信号,以消息的方式发送给各个核;core_ctrl通常是核或者专门的电路。这里的网络是各核之间传输数据的网络。整个bsp计算系统示意如图2所示。
13.一个group的一个完整的bsp任务工作流程如下:
14.1.core_ctrl_g1给group 1中所有的核发送同步信号消息,开始第一个超步,让此组中所有的核启动开始运行自身的程序段;
15.2.所有的核开始运行本时间段内的程序段,直到程序段运行完毕;
16.3.如果某一个核core_1_i程序段运行完毕,此核根据任务开始发送计算结果数据,直到所有的数据发送完毕;
17.4.数据发送完毕,此核发送消息给core_ctrl_g1,告诉core_ctrl_g1本核在本次
超步中的运行和通信均已完成,可以进入下一个超步,然后此核进入等待下一次同步信号的状态;
18.5.core_ctrl_g1收到的消息后,会检查所有其他的核是不是也都已经完成运算和通信。如果core_ctrl_g1发现有部分核没有发送消息通知自己运算和通信完成,则等待;如果core_ctrl_g1发现所有的核均已经发送消息通知之间运算和通信完成,则发送下一个同步信号sync_x,进入下一个超步。
19.这种机制中,本组中的各核在运行完自身的程序段并将计算结果数据全部发送完毕后,才开始执行自身的程序段中插入的专门同步指令,通过片上网络(noc)或者总线(bus),通知同步信号生成器core_ctrl_g1,由同步信号生成器生成所有核共用的同步信号。
20.但是,上述现有方案有如下缺点:
21.1.同一组中的核,只能完成一个任务;
22.2.同一任务的程序中,是基于数据相关度来插入同步指令。即本同步时间段内,某个核需要完成一个完整的任务程序段,得到本时间段内需要发送给其他核的所有数据后,才插入同步指令。但是因为各个核得到所有的数据,所需要运行的时间差异可能很大,很不平衡,从而降低整个芯片或者系统的效率。


技术实现要素:

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.根据所述计算核的算力,将属于所述不同任务的所述初始程序段分配给同一个所述计算核。
52.在一些可选地实施方式中,所述分配模块,用于根据所述计算核组中每个计算核的算力以及每个所述初始程序段所需的计算量,将所有所述初始程序段重新分配给每个所述计算核,包括:
53.所述分配模块,具体用于:
54.根据所述计算核的算力,将其中一个所述任务的多个所述初始程序段分配给同一个所述计算核。
55.在一些可选地实施方式中,所述分配模块,用于根据所述计算核组中每个计算核的算力以及每个所述初始程序段所需的计算量,将所有所述初始程序段重新分配给每个所
述计算核,包括:
56.所述分配模块,具体用于:
57.根据所述计算核的算力,将其中至少一个所述任务的至少一个所述初始程序段拆分为多个子初始程序段,将所述拆分的所述子初始程序段分配给不同的所述计算核。
58.在一些可选地实施方式中,所述任务为神经网络,所述确定模块,用于分别确定每个任务的初始同步指令插入点,包括:
59.所述确定模块,具体用于根据每个所述神经网络中的数据流,分别确定每个所述神经网络的所述初始同步指令插入点。
60.本公开的另一个方面,提供一种多核芯片,包括至少一个计算核组,至少一个所述计算核组用于执行前文记载的所述的方法;或,
61.至少一个所述计算核组包括前文记载的所述的装置。
62.本公开的另一个方面,提供一种电子设备,包括:
63.一个或多个处理器;
64.存储单元,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,能使得所述一个或多个处理器实现根据前文记载的所述的方法。
65.本公开的另一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时能实现根据前文记载的所述的方法。
66.本公开的多任务程序编译方法及装置、多核芯片,可以在同一计算核组中运行多个任务,这样能够节省多任务系统中的芯片数量,降低成本。另外,还能优化计算核的算力资源,最大限度地发挥各计算核的有效算力,进而发挥芯片的总算力,从而加速任务完成,节省功耗。最后,整个同步插入的过程可以由自动编译器自动完成,大大降低用户的编程难度。
附图说明
67.图1为相关技术中bsp计算的工作流程示意图;
68.图2为相关技术中整个bsp计算系统的示意图;
69.图3为本公开一实施例的电子设备的组成示意框图;
70.图4为本公开另一实施例的多任务程序编译方法的流程图;
71.图5为本公开另一实施例的多任务程序编译方法的流程图;
72.图6为本公开另一实施例的芯片架构图;
73.图7为本公开另一实施例的神经网络的结构和各层所需的计算量的示意图;
74.图8a为本公开另一实施例的初始同步插入点的分布示意图;
75.图8b为本公开另一实施例的各初始程序段的分布示意图;
76.图9a为本公开另一实施例的各初始程序段的分配示意图;
77.图9b为本公开另一实施例的最终的各初始程序段和最终同步指令插入点的分布示意图;
78.图10为图9b所示的两个cnn计算流水在时域上的示意图;
79.图11为本公开另一实施例的多任务程序编译装置的结构示意图。
具体实施方式
80.为使本领域技术人员更好地理解本公开的技术方案,下面结合附图和具体实施方式对本公开作进一步详细描述。
81.首先,参照图3来描述用于实现本公开实施例的装置及方法的示例电子设备。
82.如图3所示,电子设备200包括一个或多个处理器210、一个或多个存储装置220、一个或多个输入装置230、一个或多个输出装置240等,这些组件通过总线系统250和/或其他形式的连接机构互连。应当注意,图3所示的电子设备的组件和结构只是示例性的,而非限制性的,根据需要,电子设备也可以具有其他组件和结构。
83.处理器210可以是由多(众)核架构的芯片组成的神经网络处理器,也可以是单独的中央处理单元(cpu),或者,也可以是中央处理单元 多核神经网络处理器阵列或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备200中的其他组件以执行期望的功能。
84.存储装置220可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器可以运行所述程序指令,以实现下文所述的本公开实施例中(由处理器实现)的客户端功能以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如,所述应用程序使用和/或产生的各种数据等。
85.输入装置230可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。
86.输出装置240可以向外部(例如用户)输出各种信息(例如图像或声音),并且可以包括显示器、扬声器等中的一个或多个。
87.下面,将参考图4描述根据本公开一实施例的多任务程序编译方法。
88.示例性的,如图4所示,一种多任务程序编译方法s100,包括:
89.s110、分别确定每个任务的初始同步指令插入点。
90.具体地,可以一并结合图5,在本步骤中,任务可以为神经网络nn,也即每个任务代表一个神经网络,当然,除此以外,任务也可以为其他一些网络结构,本实施例对此并不限制。在任务为神经网络时,可以根据每个神经网络的数据流,确定该神经网络的初始同步指令插入点,即神经网络的某一层的完整的结果数据输出点,是初始同步指令插入点,如图5所示,n个神经网络(nn1至nnn),可以得到n组独立的初始同步指令插入点。
91.s120、对应每个所述初始同步指令插入点,分别生成各同步段内的初始程序段。
92.具体地,在本步骤中,一并结合图5,对每个神经网络,根据该神经网络的初始同步指令插入点,划分多个初始同步段,并生成每个初始同步段内的程序段作为初始程序段;当有n个神经网络时,可以得到对应的n组独立的初始程序段。当然,也可以采用其他方式分别生成各同步段内的初始程序段,本实施例对此并不限制。
93.s130、分别计算每个所述初始程序段所需的计算量。
94.具体地,在本步骤中,一并结合图5,当有n个神经网络时,分别计算每个神经网络
中的每个所述初始程序段所需的计算量,可以将各个初始程序段所需的计算量以表格的形式作出,得到n组对应的初始程序段所需计算量表。当然,本领域技术人员也可以采用其他方式表达得到的所需计算量,本实施例对此并不限制。
95.s140、根据每个所述初始程序段所需的计算量,将所有所述初始程序段在计算核组的各个计算核中重新分配,使得各个所述计算核执行相同的计算量,基于重新分配的结果生成每个所述计算核的新程序段和最终同步指令插入点。
96.具体地,在本步骤中,可以一并结合图5,从多个计算核中找出多个空闲计算核,拿出部分或者全部空闲的计算核,组成一个计算核组,同一个计算核组内的计算核将共用同一个同步信号。此时,根据每个所述初始程序段所需的计算量,可以采用对同一任务的各初始程序段进行合并或者拆分等的方式,将各初始程序段在计算核组中重新分配;也可以采用对不同任务的各初始程序段进行组合等的方式,将各初始程序段在计算核组中重新分配,本实施例对此并不限制。通过前述重新分配,可以使计算核组中每个计算核执行相同的计算量。根据重新分配得到的分配方案,可以生成每个计算核的新程序段和最终同步指令插入点。
97.s150、根据每个所述最终同步指令插入点,分别在对应的所述新程序段中插入同步指令,生成所述计算核组的最终程序段。
98.具体地,在本步骤中,如上述步骤s140,在对每个初始程序段进行重新分配以后,可能会删除一些初始同步指令插入点,或者合并一些初始同步指令插入点,或者增加一些新的同步指令插入点,从而可以获得最终同步指令插入点,为各个新程序段插入同步指令,并在同步指令插入后,对各个新程序段进行更新优化,从而生成计算核组的最终程序段。
99.本实施例的多任务程序编译方法,可以在同一计算核组中运行多个任务,从而能够节省多任务系统中的芯片数量,降低成本。另外,本实施例能够优化计算核的算力资源,最大限度地发挥各计算核的有效算力,进而发挥芯片的总算力,从而加速任务的完成,节省功耗。同时,整个多任务程序段的生成过程可以由自动编译器自动完成,大大降低了用户的编程难度。
100.在一些可选地实施方式中,所述根据每个所述初始程序段所需的计算量,将所有所述初始程序段分别在计算核组中重新分配,包括:
101.根据所述计算核组中每个计算核的算力以及每个所述初始程序段所需的计算量,将所有所述初始程序段重新分配给每个所述计算核。
102.示例性的,假设有两个算力均为4to(tera operations)的计算核,分别为第一计算核和第二计算核,需要完成两个任务,每个任务均包括两个初始程序段,第一个任务中的两个初始程序段所需的计算量分别为1to和4to,另一个任务中的两个初始程序段所需的计算量为分别为1to和2to,那么,可以将第一个任务中所需计算量为1to的初始程序段、第二个任务中所需计算量为1to以及第二个任务中所需计算量为2to均分配给第一计算核,将第一个任务中所需计算量为4to的初始程序段分配给第二计算核,以使得第一计算核和第二计算核的计算量均为4to,从而实现两个计算核的算力均衡。
103.在一些可选地实施方式中,所述根据所述计算核组中每个计算核的算力以及每个所述初始程序段所需的计算量,将所有所述初始程序段重新分配给每个所述计算核,包括:
104.根据所述计算核的算力,将属于所述不同任务的所述初始程序段分配给同一个所
述计算核,从而可以合并一些初始同步指令插入点。或者,也可以根据所述计算核的算力,将其中一个所述任务的多个所述初始程序段分配给同一个所述计算核,从而会删除一些初始同步指令插入点。再或者,也可以根据所述计算核的算力,将其中至少一个所述任务的至少一个所述初始程序段拆分,分配给不同的所述计算核,从而会增加一些新的同步指令插入点等等。
105.为了详细说明上述分配过程,下文以一具体示例进行说明。
106.以一个包含6个1tops(tera operations per second)算力的计算核的芯片,在只有3个计算核空闲的情况下,计算两个三层的神经网络为例。
107.如图6所示,所述芯片包含c1至c6共6个计算核,其中,c1、c2和c3三个计算核处于空闲可用状态,且它们在同一组,有共同的同步信号生成电路core_ctrl_g1。c4、c5和c6三个计算核处于忙碌不可用状态,属于另外一组。
108.需要计算的神经网络cnn1和cnn2都分别是三层,其结构和各层所需的计算量如图7所示。其中,对于cnn1的三层,每一层分别需要的计算量为1to、1to和2to;对于cnn 2的三层,每一层分别需要的计算量为1to、1to和3to。
109.多任务程序编译的过程如下:
110.如图8a所示,对每个神经网络,根据其中的数据流,分别确定初始同步指令插入点,由于本例中有两个神经网络,所以得到两组独立的初始同步指令插入点,第一组分别为sp
1_0
、sp
1_1
、sp
1_2
和sp
1_3
,第二组分别为sp
2_0
、sp
2_1
、sp
2_2
和sp
2_3
,其示意图如图8a所示。
111.如图8b所示,对每个神经网络,根据每个初始同步指令插入点,分别生成位于两个初始同步指令插入点之间的各同步段内的初始程序段,由于本例中有两个神经网络,所以得到两组独立的初始程序段,第一组初始程序段分别为p
1_1
、p
1_2
和p
1_3
,第二组初始程序段分别为p
2_1
、p
2_2
和p
2_3
,其示意图如图8b所示。
112.分别计算两组初始程序段中每个初始程序段所需的计算量。其中,第一组各初始程序段所需的计算量如下表1所示:
113.表1
114.cnn1所需的计算量(to)p
11
1p
12
1p
132115.第二组各初始程序段所需的计算量如下表2所示:
116.表2
117.cnn2所需的计算量(to)p
21
1p
22
1p
233118.根据每个初始程序段所需的计算量,将每个神经网络的各初始程序段分别在计算核组的各个计算核中重新分配。在进行分配时,尽量将一个完整的初始程序段放在一个计算核上,避免数据和程序段的分拆。重新分配的方式可以有多种,在本例中,首先从各初始程序段中,找到所需计算量最大的初始程序段,此例中即为cnn2的第三个初始程序段p
2_3

该初始程序段p
2_3
所需的计算量最大,为3to,所以,可以将该初始程序段p
2_3
分配给一个计算核,如c3,其余的初始程序段可以有多种组合方式,例如,可以将cnn1的p
1_1
和p
1_2
与cnn2的p
2_1
分配给计算核c1,将cnn1的p
1_3
和cnn2的p
2_2
分配给计算核c2,最终的分配结果如下表3所示:
119.表3
120.计算核初始程序段c1p
11
,p
12
,p
21
c2p
13
,p
22
c3p
23
121.这样,每个计算核都有3to的负载,从而能够使得计算核组中的每个计算核执行相同的计算量,取得芯片最好的算力利用率。此时,各计算核上的初始程序段的分配示意图如图9a所示。
122.由于cnn1的p
1_1
和p
1_2
都分配给了计算核c1,所以,p
1_1
和p
1_2
之间的数据传递可以在同一个同步段中进行,初始同步指令插入点sp
1_1
可以删除。初始同步指令插入点sp
1_0
和sp
2_0
可以合并成最终同步指令插入点sp0,初始同步指令插入点sp
1_2
和sp
2_1
可以合并成最终同步指令插入点sp1,初始同步指令插入点sp
1_3
和sp
2_2
可以合并成最终同步指令插入点sp2,初始同步指令插入点sp
2_3
则变成最终同步指令插入点sp3。据此,如图9b所示,可以得到最终的计算核分配方案。根据该分配方案,可以生成新程序段和最终同步指令插入点。根据每个最终同步指令插入点,可以为各个新程序段插入同步指令,并在同步指令插入后,对各个新程序段进行更新优化,从而生成计算核组的最终程序段。
123.如图9b所示,cnn1的结果out1将由计算核c2输出,cnn2的结果out2将由计算核c3输出。两个cnn的计算流水在时域上的示意如图10所示。由图10可以看到,所有的核都是满载运行,从而能够大大提升芯片的有效算力。
124.本公开的另一个方面,如图11所示,提供一种多任务程序编译装置100。该装置100可以应用于前文记载的方法,下述装置中未提及的具体内容可以参考前文相关记载,在此不作赘述。所述装置100包括:
125.确定模块110,用于分别确定每个任务的初始同步指令插入点;
126.生成模块120,用于对应每个所述初始同步指令插入点,分别生成各同步段内的初始程序段;
127.计算模块130,用于分别计算每个所述初始程序段所需的计算量;
128.分配模块140,用于根据每个所述初始程序段所需的计算量,将所有所述初始程序段分别在计算核组的各个计算核中重新分配,使得各个所述计算核执行相同的计算量,基于重新分配的结果生成每个所述计算核的新程序段和最终同步指令插入点;
129.插入模块150,用于根据每个所述最终同步指令插入点,分别在对应的所述新程序段中插入同步指令,生成所述计算核组的最终程序段。
130.本公开实施例的多任务程序编译装置,可以在同一计算核组中运行多个任务,从而能够节省多任务系统中的芯片数量,降低成本。另外,本实施例能够优化计算核的算力资源,最大限度地发挥各计算核的有效算力,进而发挥芯片的总算力,从而加速任务的完成,节省功耗。同时,整个多任务程序段的生成过程可以由自动编译器自动完成,大大降低了用
户的编程难度。
131.在一些可选地实施方式中,所述根据每个所述初始程序段所需的计算量,将所有所述初始程序段分别在计算核组中重新分配,包括:
132.所述分配模块140,具体用于:
133.根据所述计算核组中每个计算核的算力以及每个所述初始程序段所需的计算量,将所有所述初始程序段重新分配给每个所述计算核。
134.在一些可选地实施方式中,所述根据所述计算核组中每个计算核的算力以及每个所述初始程序段所需的计算量,将所有所述初始程序段重新分配给每个所述计算核,包括:
135.所述分配模块140,具体用于:
136.根据所述计算核的算力,将属于所述不同任务的所述初始程序段分配给同一个所述计算核。
137.在一些可选地实施方式中,所述根据所述计算核组中每个计算核的算力以及每个所述初始程序段所需的计算量,将所有所述初始程序段重新分配给每个所述计算核,包括:
138.所述分配模块140,具体用于:
139.根据所述计算核的算力,将其中一个所述任务的多个所述初始程序段分配给同一个所述计算核。
140.在一些可选地实施方式中,所述根据所述计算核组中每个计算核的算力以及每个所述初始程序段所需的计算量,将所有所述初始程序段重新分配给每个所述计算核,包括:
141.所述分配模块140,具体用于:
142.根据所述计算核的算力,将其中至少一个所述任务的至少一个所述初始程序段拆分为多个子初始程序段,将所述拆分的所述子初始程序段分配给不同的所述计算核。
143.在一些可选地实施方式中,所述任务为神经网络,所述确定模块110,用于分别确定每个任务的初始同步指令插入点,包括:
144.所述确定模块110,具体用于根据每个所述神经网络中的数据流,分别确定每个所述神经网络的所述初始同步指令插入点。
145.本公开的另一个方面,提供一种多核芯片,包括至少一个计算核组,所述芯片用于执行前文记载的所述的方法。
146.本实施例的多核芯片,可以用于执行前文记载的方法,可以节省多任务系统中的芯片数量,降低成本,优化计算核的算力资源,最大限度地发挥各计算核的有效算力,加速任务完成,节省功耗,同时大大降低用户的编程难度。
147.本公开的另一个方面,提供一种电子设备,包括:
148.一个或多个处理器;
149.存储单元,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,能使得所述一个或多个处理器实现根据前文记载的所述的方法。
150.本公开的另一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时能实现根据前文记载的所述的方法。
151.其中,计算机可读存储介质可以是本公开的装置、设备中所包含的,也可以是单独存在。
152.其中,计算机可读存储介质可以是任何包含或存储程序的有形介质,其可以是电、
磁、光、电磁、红外线、半导体的系统、装置、设备,更具体的例子包括但不限于:具有一个或多个导线的相连、便携式计算机磁盘、硬盘、光纤、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件,或它们任意合适的组合。
153.其中,计算机可读存储介质也可以包括在基带中或作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码,其具体的例子包括但不限于电磁信号、光信号,或它们任意合适的组合。
154.可以理解的是,以上实施方式仅仅是为了说明本公开的原理而采用的示例性实施方式,然而本公开并不局限于此。对于本领域内的普通技术人员而言,在不脱离本公开的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本公开的保护范围。
再多了解一些

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

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

相关文献