基于神经网络的数据计算方法及装置、多核架构芯片与流程

文档序号:26938224发布日期:2021-10-12 13:27阅读:86来源:国知局
基于神经网络的数据计算方法及装置、多核架构芯片与流程

1.本发明属于数据计算技术领域,具体涉及一种基于神经网络的数据计算方法、一种基于神经网络的数据计算装置以及一种多核架构芯片。


背景技术:

2.传统地,如图1所示,在神经网络中,如卷积神经网络(cnn,convolutional neural network),其一般包括多个层,如输入层、卷积层、激活函数、池化层、全连接层等。在卷积神经网络中,数据是在各层之间单向流动,也就是说,如图1所示,输入数据input依次经历第一层layer1、第二层layer1直至第n层layern,最终数据经由全连接层fc全连接后得到输出数据output。在每一层中都可以包含多次各种神经网络的运算操作,例如卷积(convolution)、池化(pooling)等。对于cnn而言,随着层数的增加,通常特征图尺寸会改变,每一层的数据和参数也会改变,而对算力的要求也不同。
3.为了实现神经网络各层的数据计算,一般采用多(众)核架构的芯片执行数据计算。在多(众)核架构的芯片中,每一个核除了有一定的计算能力外,还会带有比较大的核内存储空间,存储空间一般>128kb。这些存储空间用于存储自身的程序、数据和权重。为了最大效率的发挥芯片的算力,加速计算,节省功耗,多(众)核架构的芯片通常会使用片上存储区间或者核内存储区间存储部分或者所有的层的程序、数据和权重,减少芯片和外部存储器(如双倍速率同步动态随机存储器(ddrsdram,double data rate synchronous dynamic random access memory))的数据交互。由于核内存储空间的限制,所以一个核通常存不下某一层的权重和数据,完成此层网络的运算,需要使用多个核一起配合,完成整层的运算。
4.相关技术中,一般会按照当前层权重和所有的数据的大小,分配相关的核数,也就是说,如图2所示,每一层由多个核进行计算,数据保持在层间的单向传输。这样,整个神经网络的计算过程,会按层划分为多层,然后以流水的方式一层层计算,如图3所示。
5.在图3中,t1,t2

表示按流水级分配的时间段,在每一个时间段会有输入数据input输入到第一层的多个核core_l1;每一个时间段,每一层会完成相关的计算,且将计算结果发往下一层;箭头表示的是层间数据的流动;当数据经过所有的层,由最后一层的多个核core_lm输出,得到最终结果(output1、output2)。
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.图1为相关技术中数据在神经网络中单向流动的结构示意图;
46.图2为相关技术中神经网络中计算核的分布示意图;
47.图3为相关技术中神经网络中计算核的计算流水示意图;
48.图4为本发明提供的一种电子设备的结构示意图;
49.图5为本发明提供的一种基于神经网络的数据计算方法的流程图;
50.图6为本发明提供的计算核组示意图;
51.图7a为相关技术计算核的分布示意图;
52.图7b为本发明提供的计算核的分布示意图;
53.图8a为图7a所示的计算核的计算流水示意图;
54.图8b为图7b所示的计算核的计算流水示意图;
55.图9为本发明提供的一种基于神经网络的数据计算装置的结构示意图。
具体实施方式
56.为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。
57.首先,参照图4来描述用于实现本发明实施例的装置及方法的示例电子设备。
58.如图4所示,电子设备200包括一个或多个处理器210、一个或多个存储装置220、一个或多个输入装置230、一个或多个输出装置240等,这些组件通过总线系统250和/或其他形式的连接机构互连。应当注意,图4所示的电子设备的组件和结构只是示例性的,而非限制性的,根据需要,电子设备也可以具有其他组件和结构。
59.处理器210可以是由多(众)核架构的芯片组成的神经网络处理器,也可以是单独的中央处理单元(cpu)、或者,也可以是中央处理单元+多核神经网络处理器阵列或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备200中的其他组件以执行期望的功能。
60.存储装置220可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器可以运行所述程序指令,以实现下文所述的本发明实施例中(由处理器实现)的客户端功能以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如,所述应用程序使用和/或产生的各种数据等。
61.输入装置230可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。
62.输出装置240可以向外部(例如用户)输出各种信息(例如图像或声音),并且可以包括显示器、扬声器等中的一个或多个。
63.下面,将参考图5描述根据本发明实施例的基于神经网络的数据计算方法。所述神经网络包括多个计算层,如卷积神经网络,其一般包括输入层、卷积层、激活函数、池化层、全连接层等。每个所述计算层对应至少一个计算核,如背景技术部分记载,由于计算核内存储空间的限制,所以一个计算核通常存不下某一层的权重和数据,完成此层网络的运算,需要使用多个计算核一起配合,完成整层的运算。
64.示例性的,如图5所示,一种基于神经网络的数据计算方法s100,包括:
65.s110、确定每个所述计算层的计算量。
66.具体地,在本步骤中,每个计算层的计算量,一般取决于该计算层的输入数据、中间数据、输出数据、参数(如权重参数以及一些其他参数)、运算类型以及运算次数等,因此,可以通过这些数据确定每个计算层的计算量。当然,除此以外,本领域技术人员还可以通过其他一些方式来确定每个计算层的计算量,本实施例对此并不具体限制。
67.s120、根据每个所述计算层的计算量,划分至少一个计算核组,所述计算核组包括位于至少两个计算层的多个计算核。
68.示例性的,如图6所示,根据每个所述计算层的计算量,划分为以下计算核组:
69.计算核组(g_l1_l3)、计算核组(g_l2_l4)

计算核组(g_li_lj)、计算核组(g_lk_
l(j-1))

计算核组(g_lo_lp)。
70.其中,在上述各计算核组中,每一个计算核组中的计算核均来自两个计算层中,如计算核组(g_l1_l3)中的计算核来自第一计算层和第三计算层的计算核。
71.需要说明的是,计算核组中的计算核可以包括三个或三个以上的计算层,如第一计算核组可以包括第一计算层、第三计算层和第五计算层的计算核等等,本实施例对此并不限制。
72.s130、重新分配所述至少两个计算层的计算量,以使得所述至少两个计算层中的所述多个计算核的计算量均衡。
73.具体地,在本步骤中,对于如何重新分配所述至少两个计算层的计算量并没有作出具体限定,只要能够使得该至少两个计算层中的所述多个计算核的计算量均衡即可。计算量均衡例如可以表征为计算时间相等,也就是说,在该至少两个计算层中,其中一个计算层完成计算的耗费时间与另外一个计算层完成计算的耗费时间相等。此时,例如可以另该至少两个计算层中的所述多个计算核中每个计算核的计算时间相等。当然也可以为同一层中的个处理核设置不同的处理时间,只要各层的计算时间相等,即达到计算量均衡。
74.示例性的,假设其中一个计算层的计算量大于另外一个计算层的计算量,此时,可以将该其中一个计算层的计算量的一部分分配至该另外一个计算层的计算核中,从而可以使得该两个计算层中计算核的计算量均衡。当然,除此以外,本领域技术人员还可以采用其他的一些分配方式,本实施例对此并不限制。
75.s140、由所述计算核组执行对应的所述计算层的计算。
76.示例性的,如图6所示,每一个计算核组,均会混合计算本计算核组对应的整个神经网络中的某几个计算层,如计算核组(g_l1_l3),其会计算第一计算层和第三计算层的数据,计算核组(g_l2_l4),其会计算第二计算层和第四计算层的数据。在执行具体计算时,计算核组(g_l1_l3)首先进行第一计算层的计算,并将第一计算层的计算结果发送给计算核组(g_l2_l4),计算核组(g_l2_l4)根据第一计算层的计算结果进行第二计算层的计算,然后将第二计算层的计算结果重新发送给计算核组(g_l1_l3),计算核组(g_l1_l3)根据第二计算层的计算结果进行第三计算层的计算,然后将第三计算层的计算结果重新发送给计算核组(g_l2_l4),计算核组(g_l2_l4)根据第三计算层的计算结果进行第四计算层的计算,并将第四计算层的计算结果发送给包含第五计算层的计算核组进行后面的计算;以此类推,后面的融合采用相似的规则,但是并不一定只有两层融合,也可能是三层及更多层的融合。数据流会经过所有的计算核组,从而完成整个神经网络各层的计算,直至最后得到最终结果。
77.本实施例的基于神经网络的数据计算方法,首先确定每个所述计算层的计算量,之后,根据每个所述计算层的计算量,划分至少一个计算核组,所述计算核组包括至少两个计算层的多个计算核。再之后,重新分配所述至少两个计算层的计算量,以使得所述至少两个计算层中的所述多个计算核的计算量均衡。因此,本实施例的方法,可以有效平衡多(众)核芯片各计算核的计算负载,充分发挥整个芯片的算力,加速了神经网络计算任务的计算。此外,还可以有效合理利用各计算核的存储区间,有效降低使用计算核的数量而不降低任务的计算能力,并且,还能够有效降低芯片访问外部存储,节省带宽,提升性能,降低功耗。
78.在一些可选地实施方式中,所述重新分配所述至少两个计算层的计算量,包括:
79.将所述至少两个计算层中的其中一个所述计算层的计算量拆分成与所述至少两个计算层的层数相等份数的子计算量;
80.根据所述至少两个计算层的计算量,将所述子计算量分别分配至所述至少两个计算层中除所述其中一个所述计算层之外的所述计算层的所述计算核中。
81.示例性的,以计算核组包括两个计算层中的多个计算核为例进行说明,如计算核组(g_l1_l3):
82.结合图6,在计算核组(g_l1_l3)中,假设第一计算层的计算量为1m,第三计算层的计算量为500k,显然,第一计算层的计算量要大于第三计算层的计算量,为了使得该两层计算层中的计算核的计算量均衡,则将第一计算层的计算量拆分成两份子计算量,分别为第一子计算量750k,第二子计算量250k。此时,将第二子计算量分配至第三计算层的计算核上,从而使得第三计算层的计算量为750k,即第三计算层中的计算核不仅执行原有的计算,还要执行第一计算层的计算,这样,第一计算层和第三计算层的计算量均为750k,从而可以使得第一计算层和第三计算层的计算核的计算量均衡,使得计算时间也得到均衡,各个层之间的计算无需更多的等待。
83.示例性的,以计算核组包括三个计算层中的多个计算核为例进行说明,如计算核组(g_l1_l3 l5):
84.在计算核组(g_l1_l3 l5)中,假设第一计算层的计算量仍为1m,第三计算层的计算量为500k,第五计算层的计算量为300k,显然,第一计算层的计算量要大于第三计算层和第五计算层的计算量,为了使得该三层计算层中的计算核的计算量均衡,则将第一计算层的计算量拆分成三份子计算量,分别为第一子计算量600k,第二子计算量100k,第三子计算量300k。此时,将第二子计算量分配至第三计算层的计算核上,将第三子计算量分配至第五计算层上,从而可以使得第一计算层、第三计算层以及第五计算层中的计算核的计算量均衡。
85.在一些可选地实施方式中,所述重新分配所述至少两个计算层的计算量,包括:
86.将所述至少两个计算层中的每个计算层的计算任务量平均拆分成与所述至少两个计算层的层数相等份数的子计算量;
87.将所述子计算量中分别分配至所述至少两个计算层的所述计算核中。
88.示例性的,以计算核组包括两个计算层中的多个计算核为例进行说明,如计算核组(g_l1_l3):
89.结合图6,在计算核组(g_l1_l3)中,假设第一计算层的计算量为1m,第三计算层的计算量为500k,则将第一计算层的计算量平均拆分成两份子计算量,分别为第一子计算量500k,第二子计算量500k。将第三计算层的计算量平均拆分成两份子计算量,分别为第三子计算量250k和第四子计算量250k。此时,将第一子计算量和第三子计算量分配至第一计算层的计算核中,而将第二子计算量和第四子计算量分配至第三计算层的计算核中。这样,由于第三计算层的计算量增加,就不用因为计算量少提前计算完毕而等待第一计算层的计算,所以第一计算层和第三计算层的处理时间得到均衡,算力也得到均衡。
90.在一些可选地实施方式中,所述计算量包括计算数据量和计算参数量,所述重新分配所述至少两个计算层的计算量,包括重新分配所述至少两个计算层中所述多个计算核的所述计算参数量。
91.示例性的,以计算核组包括两个计算层中的多个计算核为例进行说明,如计算核组(g_l1_l3):
92.如图6所示,在计算核组(g_l1_l3)中,将第一计算层和第三计算层的参数(如权重参数以及其他一些参数等)进行平均拆分,而对计算数据并不需要进行拆分。也就是说,在该种分配方式中,每个计算核需要接收完整的输入数据以及拆分后的参数。此时,每一个计算核的输出是总输出的一部分,只需要将各部分输出合并到一起就得到完整的输出。
93.此外,在一些可选地实施方式中,所述重新分配所述至少两个计算层的计算量,还包括重新分配所述至少两个计算层中所述多个计算核的所述计算数据量和计算参数量。
94.示例性的,仍以计算核组包括两个计算层中的多个计算核为例进行说明,如计算核组(g_l1_l3):
95.如图6所示,在计算核组(g_l1_l3)中,将第一计算层和第三计算层的输入数据和参数(如权重参数以及其他一些参数等)均进行平均拆分。也就是说,在该种分配方式中,每个计算核需要接收拆分后的输入数据和拆分后的参数。此时,每一个计算核的输出是总输出的一部分,只需要将各部分输出合并到一起就得到完整的输出。
96.在一些可选地实施方式中,不同计算核组对应不同的所述计算层。
97.示例性的,如图6所示,计算核组(g_l1_l3)对应的计算层为第一计算层和第三计算层。计算核组(g_l2_l4)对应的计算层为第二计算层和第四计算层。计算核组(g_li_lj)对应的计算层为第i计算层和第j计算层。计算核组(g_lk_l(j-1)对应的计算层为第k计算层和第j-1计算层。计算核组(g_lo_lp)对应的计算层为第o计算层和第p计算层。
98.下文将以一个简单的两层网络运行在一个由两个核组成的多核芯片上为例。
99.如图7a和7b所示,假如每一个计算核都有512kb的内部存储区域。神经网络的第一计算层的所有数据(包括输入数据、中间数据和第一层的输出数据)和参数(包括权重参数和其他参数)为128kb,完成此计算层的计算需要花费的时间为1m个时钟数;第二计算层的所有数据和参数为512kb,完成此计算层的计算需要花费的时间为500k个时钟数。
100.在图7a中,传统的数据计算方式中,每一计算层在单独的一个计算核中。在图7b中,本发明的数据计算方式中,将两层融合在一起,将存储和计算都平均分配在两个计算核中计算,融合后的两个计算核之间,可能会存在数据的交互,因为在神经网络的某些运算中,前一层计算的部分或全部结果可能会被后一层在两个计算核中的部分都使用,所以在图7b中的两个核之间有虚线表示数据的路径。
101.在本发明中,在进行计算层的融合前,需要确定融合的方案,不同的融合方案,分配给两个计算核的参数可能不同,输入数据和中间数据也可能不同。例如有的融合方案,只需要把参数进行平分,而每个计算核需要接受完整的输入数据,每一个计算核的输出是总输出的一部分,只需要将两个部分输出合到一起就得到完整的输出;有的融合方案,需要将数据和参数都进行平分,每一个计算核只接受部分输入,每一个计算核的输出也只是总输出的一部分,只有将两个部分输出求和,才能得到完整的输出。
102.无论那种融合方案,最终都能提升所有计算核的利用率,新旧方案的计算流水对比如图8a和图8b所示:
103.如图8a所述,传统方案中,计算核core_2会有长时间的空闲时间处于等待计算核core_1的工作完成,所以每一级流水的时钟数为1m个,也就是当任务流水起来后,相当于1m
个clk得到一个输出。
104.如图8b所示,本发明中,计算核core_1和计算核core_2被划分为一个计算核组,在该计算核组中,计算核core_1和计算核core_2的存储和计算都重新进行了安排,两个计算核都会有较平均的计算量,相当于把总的计算量平均分配给了每一个计算核,没有计算核会有空闲的等待时间,所以每一级流水的时钟数clk为750k个,也就是当任务流水起来后,相当于750k个clk得到一个输出,大大加速了任务的完成。
105.本发明的另一个方面,如图9所示,提供一种基于神经网络的数据计算装置100,所述神经网络包括多个计算层,每个所述计算层对应至少一个计算核。该装置100可以应用于前文记载的方法,下述装置中未提及的具体内容可以参考前文相关记载,在此不作赘述。所述装置100包括:
106.计算模块110,用于确定每个所述计算层的计算量;
107.划分模块120,用于根据每个所述计算层的计算量,划分至少一个计算核组,所述计算核组包括至少两个计算层的多个计算核;
108.分配模块130,用于重新分配所述至少两个计算层的计算量,以使得所述至少两个计算层中的所述多个计算核的计算量均衡;
109.所述计算模块110,还用于由所述计算核组执行对应的所述计算层的计算。
110.本实施例的基于神经网络的数据计算装置,首先确定每个所述计算层的计算量,之后,根据每个所述计算层的计算量,划分至少一个计算核组,所述计算核组包括至少两个计算层的多个计算核。再之后,重新分配所述至少两个计算层的计算量,以使得所述至少两个计算层中的所述多个计算核的计算量均衡。因此,本实施例的装置,可以有效平衡多(众)核芯片各计算核的计算负载,充分发挥整个芯片的算力,加速了神经网络计算任务的计算。此外,还可以有效合理利用各计算核的存储区间,有效降低使用计算核的数量而不降低任务的计算能力,并且,还能够有效降低芯片访问外部存储,节省带宽,提升性能,降低功耗。
111.在一些可选地实施方式中,所述重新分配所述至少两个计算层的计算量,包括:
112.所述分配模块130,具体用于:
113.将所述至少两个计算层中的其中一个计算层的计算量拆分成与所述至少两个计算层的层数相等份数的子计算量;
114.根据所述至少两个计算层的计算量,将所述子计算量分别分配至所述至少两个计算层中除所述其中一个所述计算层之外的所述计算层的所述计算核中。
115.在一些可选地实施方式中,所述重新分配所述至少两个计算层的计算量,包括:
116.所述分配模块130,具体用于:
117.将所述至少两个计算层中的每个计算层的计算量平均拆分成与所述至少两个计算层的层数相等份数的子计算量;
118.将所述子计算量分别分配至所述至少两个计算层的所述计算核中。
119.在一些可选地实施方式中,所述计算量包括计算数据量和计算参数量,所述重新分配所述至少两个计算层的计算量,包括:
120.所述分配模块130,用于重新分配所述至少两个计算层中所述多个计算核的所述计算数据量和/或计算参数量。
121.在一些可选地实施方式中,不同所述计算核组对应不同的所述计算层。
122.本发明的另一个方面,提供一种多核架构芯片,包括多个计算核,所述芯片用于执行前文记载的所述的方法。
123.本实施例的多核架构芯片,可以用于执行前文记载的方法,可以有效平衡多(众)核芯片各计算核的计算负载,充分发挥整个芯片的算力,加速了神经网络计算任务的计算。此外,还可以有效合理利用各计算核的存储区间,有效降低使用计算核的数量而不降低任务的计算能力,并且,还能够有效降低芯片访问外部存储,节省带宽,提升性能,降低功耗。
124.本发明的另一个方面,提供一种电子设备,包括:
125.一个或多个处理器;
126.存储单元,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,能使得所述一个或多个处理器实现根据前文记载的所述的方法。
127.本发明的另一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时能实现根据前文记载的所述的方法。
128.其中,计算机可读介质可以是本发明的装置、设备、系统中所包含的,也可以是单独存在。
129.其中,计算机可读存储介质可是任何包含或存储程序的有形介质,其可以是电、磁、光、电磁、红外线、半导体的系统、装置、设备,更具体的例子包括但不限于:具有一个或多个导线的相连、便携式计算机磁盘、硬盘、光纤、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件,或它们任意合适的组合。
130.其中,计算机可读存储介质也可包括在基带中或作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码,其具体的例子包括但不限于电磁信号、光信号,或它们任意合适的组合。
131.本发明的另一个方面,提供一种计算机程序,所述计算机程序被处理器执行时能实现根据前文记载的所述的方法。
132.可以理解的是,计算机程序可以存储于计算机存储介质中,如前文记载的随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd-rom)等等。
133.可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1