一种数据处理装置及方法与流程

文档序号:29205919发布日期:2022-03-12 00:41阅读:102来源:国知局
一种数据处理装置及方法与流程

1.本发明涉及到数据处理领域、处理核领域,尤其是涉及一种数据处理装置及方法。


背景技术:

2.随着科学技术的发展,人类社会正在快速进入智能时代。智能时代的重要特点,就是人们获得数据的种类越来越多,获得数据的量越来越大,而对处理数据的速度要求越来越高。
3.芯片是数据处理的基石,它从根本上决定了人们处理数据的能力。从应用领域来看,芯片主要有两条路线:一条是通用芯片路线,例如中央处理器(central processing unit,cpu)等,它们能提供极大的灵活性,但是在处理特定领域算法时有效算力比较低;另一条是专用芯片路线,例如tpu等,它们在某些特定领域,能发挥较高的有效算力,但是面对灵活多变的比较通用的领域,它们处理能力比较差甚至无法处理。
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.图1是一种数据处理装置的结构示意图;
30.图2是本发明一实施方式提供的数据处理装置的结构示意图;
31.图3是本发明一实施方式提供的第一矩阵和第一位图矩阵的关系示意图;
32.图4是本发明一实施方式提供的第一矩阵和第二矩阵执行运算的示意图;
33.图5a是本发明一实施方式提供的第一矩阵和第二矩阵运算的第一步的示意图;
34.图5b是本发明一实施方式提供的第一矩阵和第二矩阵运算的第二步的示意图;
35.图5c是本发明一实施方式提供的第一矩阵和第二矩阵运算的第三步的示意图;
36.图6是本发明一实施方式提供的数据处理方法的流程示意图。
具体实施方式
37.为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
38.显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
39.在本发明的描述中,需要说明的是,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
40.此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
41.在详细说明技术方案之前,先简单介绍一下矩阵运算。第一矩阵m1和第二矩阵m2做乘法运算,得到结果矩阵m。
[0042][0043]
其中,结果矩阵m中任意一个元素c
in
=∑(a
ij
×bjn
),也就是结果矩阵的第i行第n列的元素的值为,第一矩阵的i行元素分别与第二矩阵的第n列元素的乘积的和。
[0044]
在神经网络运算中,矩阵乘运算(包括卷积运算,因为卷积运算可以转换成矩阵运算)占了总运算量的大部分。要提高神经网络任务中的吞吐量,降低延时,同时降低功耗,其重点在于提升矩阵乘运算的速度和降低运算电路的功耗。
[0045]
因此,为了更好的提升矩阵计算的速度,提升数据利用的效率,很多时候会用计算单元阵列来实现矩阵的运算。
[0046]
图1是一种数据处理装置的结构示意图。
[0047]
如图1所示,该数据处理装置包括计算单元阵列,计算单元阵列中,包括m行n列计算单元,通过计算单元阵列,能够使得数据得到充分的利用,m1是输入的第一矩阵,m2是输入的第二矩阵,m是输出矩阵。
[0048]
m1中的每列的m个元素会一一对应的传输至每列计算单元中,即m1第1列的第1行元素会分别传输至每列计算单元的第1行的计算单元中,m1第1列最后一行的元素会传输至每列计算单元的最后一行的计算单元中。m2中的每行的n个元素会一一对应的传输至每行计算单元中,即m2的第1行第1列的元素会传输至每行计算单元的第1列计算单元中,m2中的第1行的最后一列的元素会分别传输至每行计算单元的最后一列计算单元中。然后计算单元可以将收到m1的元素和m2的元素做乘法,得到本次计算结果。也就是每次可以完成m1的一列元素和m2的一行元素的计算。最后每个计算单元将k次计算的计算结果累加,得到最后的输出矩阵的每个元素。
[0049]
但是上述数据处理装置存在如下的缺陷:
[0050]
通常在神经网络的计算中,数据矩阵和/或参数矩阵可能是0元素比较多的稀疏矩阵,而如果采用上述数据处理装置对稀疏矩阵进行运算时,计算单元会将0元素当成正常的元素参与计算,导致浪费芯片的功耗,增加芯片的工作温度,导致板级设计中散热设计的难度和成本增加。
[0051]
图2是本发明一实施方式提供的数据处理装置的结构示意图。
[0052]
如图2所示,该数据处理装置(execution unit,eu)包括数据读取模块和执行模块。
[0053]
其中,数据读取模块,用于读取第一矩阵m1、第二矩阵m2和与所述第一矩阵对应的第一位图矩阵m1_map,m1_map的每个元素为m1对应元素的第一运算标记。
[0054]
执行模块,包括计算单元阵列,计算单元阵列包括m行n列的计算单元pu,即pu
1,1-pu
m,n

[0055]
执行模块用于根据所述第一运算标记确定对所述第一矩阵中的元素执行运算的计算单元是否执行运算。
[0056]
图3是本发明一实施方式提供的m1与m1_map的关系示意图。
[0057]
在如图3所示的例子中,m1为2*3的矩阵,为m1建立一个m1_map,m1_map的维度与m1的维度相同,即两个矩阵具有相同的行数和相同的列数,而且m1_map中的元素与m1的元素在位置上一一对应。
[0058]
如果m1中的数据为0,则m1_map相应的数据用0表示,如果m1中的数据不为0,则m1_map相应的数据用1表示。
[0059]
如图3所示,m1的第0行第0列的元素为1,m1_map第0行第0列的元素为1,m1_map的该元素表示m1的第一行第一列的元素为非零元素;m1的第1行第2列的元素为2,m1_map第1行第2列的元素为1,m1_map的该元素表示m1的第1行第2列的元素为非0元素;而对于m1其他位置上的0元素,m1_map对应的位置也为0。这样,m1_map的每个元素可以作为m1相应位置的元素的运算标记。
[0060]
需要说明的是,m1_map是根据m1生成的,可以根据m1中的各个元素是否为0,生成m1_map相应的元素,即,将m1中不为0的元素改为1,就得到m1_map。
[0061]
可选的,在执行运算之前,将m1、m2、m1_map等矩阵存入外部的存储模块中。
[0062]
本发明上述实施方式提供的数据处理装置中,执行模块根据第一运算标记确定对第一矩阵中的元素执行运算的计算单元是否执行运算,能有效的降低矩阵运算中的能耗以及装置的工作温度,进而降低装置散热设计的难度和成本,节省了能源。
[0063]
在一个实施例中,数据读取模块可以包括第一数据读取单元ld_m1和第二数据读取单元ld_m2。其中,ld_m1用于读取m1和m1_map,ld_m2用于读取m2。
[0064]
可选的,数据读取模块可以是一次读取m1的多列元素进行缓存,或者数据读取模块也可以每次只读取m1的一列元素、与m1的一列元素对应的m1_map的列元素以及和m1的一列元素对应的一行m2的元素,在计算单元阵列执行完本次运算后,再进行下一次读取。
[0065]
在一个实施例中,第一运算标记为第一标记时,所述计算单元不执行计算;所述运算标记为第二标记时,所述计算单元执行计算。
[0066]
可选的,当第一标记例如是0,第二标记例如是1。m1_map中的数据0作为第一运算标记,表示对该数据对应的m1的元素不执行运算;m1_map中的数据1作为第二运算标记,表示对该数据对应的m1的元素执行运算。
[0067]
在本实施例中,第一运算标记为第一标记时,说明与第一标记对应的m1中的元素为0,此时,执行模块确定对第一标记对应的m1的元素执行运算的计算单元不执行计算,本次计算结果默认为0,可以节省计算单元的功耗,减少装置的热量。
[0068]
可以理解的是,第一标记还可以是1,第二标记可以是0,或者第一标记可以是其他数值或符号,只要第一标记和第二标记不同即可。
[0069]
在一个实施例中,数据读取模块,用于每次按列发送所述第一矩阵m1的元素do1、按列发送所述第一位图矩阵m1_map的元素ca和按行发送所述第二矩阵的元素do2。计算单元阵列中的列计算单元用于按列接收所述第一矩阵的列元素和第一位图矩阵的列元素,所述计算单元阵列中的行计算单元用于按行接收第二矩阵的行元素。所述计算单元,用于当接收的所述第一运算标记为所述第一标记时,不执行运算。
[0070]
具体地,数据读取模块,在读取了整个m1之后,每次按列将m1的元素发送给计算单元阵列的列计算单元,使得每列计算单元中每个计算单元接收的元素分别与m1的该列元素一一对应。在读取了m1_map之后,每次按列将m1_map的元素发送给计算单元阵列的列计算单元,使得每列计算单元接收的元素与m1_map的该列元素一一对应,在读取了m2之后,每次按行发送m2的元素,使得每行计算单元中每个计算单元接收的元素分别与m2的该行元素一一对应,从而使得每个计算单元分别接收到一个m1的元素,一个m2的元素和一个m1_map的元素。
[0071]
每个计算单元,根据接收的m1_map的元素确定是否需要执行本次运算,当接收的m1_map的元素为第一标记时,表示此次参与运算的m1中的数据为0,因此,本次不执行运算,本次的运算结果直接为0。
[0072]
可选的,数据读取模块,每次按列读取m1的元素并发送给计算单元阵列的列计算单元,每次按列读取m1_map的元素并发送给计算单元阵列的列计算单元,每次按行读取m2的元素并发送给计算单元阵列的行计算单元。
[0073]
在一个实施例中,计算单元,还用于当第一运算标记为第二标记时,对接收到的第一矩阵的元素和第二矩阵的元素执行计算得到本次运算结果。
[0074]
当计算单元接收的m1_map的元素为第二标记时,表示此次参与运算的m1的数据不为0,因此,本次正常执行运算。
[0075]
可选的,执行的计算为乘法。
[0076]
在本实施例中,计算单元还用于将每次的乘运算的结果进行累加,得到输出矩阵
的最终结果。
[0077]
在一个实施例中,数据读取模块,还用于读取与第二矩阵m2对应的第二位图矩阵m2_map,m2_map的每个元素为m2对应元素的第二运算标记。执行模块,还用于根据第二运算标记确定对m2中的元素执行运算的计算单元是否执行运算。
[0078]
结合上述实施例,执行模块根据第一运算标记确定对与第一运算标记对应的m1的元素的计算单元是否执行运算,根据第二运算标记确定对与第二运算标记对应的m2的元素执行运算的计算单元是否执行运算,当m1和m2都是稀疏矩阵时,能够显著节省计算单元的功耗,降低芯片的工作温度。
[0079]
在一个实施例中,数据读取模块,还用于每次按行发送第二位图矩阵的元素。计算单元阵列中的行计算单元用于按行接收第二矩阵的行元素和第二位图矩阵的行元素。每个计算单元,用于当第二运算标记为第一标记时,确定本次计算单元不执行运算。
[0080]
具体地,在本实施例中,可以预先为m2建立对应的m2_map,数据读取模块可以每次按行从外部的memory中读取m2和m2_map,并发送至执行模块的行计算单元中,以使行计算单元中每个计算单元根据m2_map判断m2中对应的元素是否需要执行计算。
[0081]
需要说明的是,为m2建立对应的m2_map的方法同前述为m1建立对应的m1_map的方法,在此不做赘述。
[0082]
可选的,计算单元,还用于当第一运算标记和第二运算标记均为第二标记时,对第一矩阵的元素和第二矩阵的元素执行计算得到本次运算结果。
[0083]
在本实施例中,当计算单元接收的第一运算标记和第二运算标记均为第二标记时,说明m1的元素和m2的元素都不是0,计算单元可以执行运算,换言之,当计算单元接收的第一运算标记和第二运算标记有一个是第一标记时,计算单元都无需对m1和m2执行运算,这样能够显著节省计算单元的功耗。
[0084]
可选的,对第一矩阵的元素和第二矩阵的元素执行的运算为乘运算。
[0085]
在本实施例中,计算单元,还用于将每次的乘运算的结果进行累加,得到输出矩阵的最终的结果。
[0086]
在一个实施例中,上述数据处理装置还用于接收外部的指令解码单元id发送的控制信号,根据控制信号从外部的memory中读取m1、m2、m1_map和/或m2_map。
[0087]
本发明又一实施方式提供了一种处理核,包括指令解码单元和一个或多个上述第一实施方式提供的数据处理装置。
[0088]
其中指令解码单元id用于解析接收的指令i,并生成控制信号,控制信号用于指示数据处理装置eu从外部的memory中读取m1、m1_map和m2并进行运算。
[0089]
下面将结合具体的实施例和附图详细说明本发明第一实施方式提供的数据处理装置。
[0090]
图4是本发明一实施方式提供的第一矩阵和第二矩阵执行运算的示意图。
[0091]
如图4所示,在本实施例中,数据处理装置的数据读取模块包括第一数据读取单元ld_m1和第二数据读取单元ld_m2,计算单元阵列包括有4个计算单元。其中,ld_m1会将m1的列元素分次发送给每列计算单元阵列,ld_m2会将m2的行元素分次发送给每行计算单元阵列。
[0092]
在本实施例中,m1和m2相乘的结果m应该为
[0093]
eu接收到控制信号,指示ld_m1读取m1和m1_map,指示ld_m2读取m2。
[0094]
其中
[0095]
对m1和m2执行矩阵乘计算,得到最终的计算结果m。
[0096]
图5a是本发明一实施方式提供的第一矩阵和第二矩阵运算的第一步的示意图。
[0097]
ld_m1将m1的第0列的两个元素1和0分别发送给位于计算单元阵列的两列计算单元,将m1_map的第0列的两个元素分别发送给计算单元阵列的两列计算单元。ld_m2将m2的第0行的两个元素1和2分别发送给位于计算单元阵列两行计算单元。
[0098]
需要说明的是,上述m1的第0列是图5a中从左至右的首列,m1的第1列是图5a中从左至右的第二列,m1的第2列是图5a中从左至右的第二列,计算单元被标注为灰度表示计算单元本次不执行运算。
[0099]
具体地,将ld_m1将m1的第0列第0行元素1发送给的第0行的两个计算单元pu
0,0
和pu
0,1
,将m1的第0列的第1行元素0发送给第一行的两个计算单元pu
1,0
和pu
1,1
,将m1_map的第0列第0行元素1发送给第0行的两个计算单元pu
0,0
和pu
0,1
,将m1_map的第0列的第1行的元素0发送给第1行的两个计算单元pu
1,0
和pu
1,1
。ld_m2将m2的第0行第0列的元素1发给第0列的两个计算单元pu
0,0
和pu
1,0
,ld_m2将m2的第0行第1列的元素2发给第1列的两个计算单元pu
0,1
和pu
1,1

[0100]
如图5a所示,第0行第0列的计算单元pu
0,0
接收的是m1的1,m2的1,m1_map的1。pu
0,0
根据接收的m1_map为1,将m1的元素和m2的元素执行乘法运算,得到本次结果为1。
[0101]
第0行第1列的计算单元pu
0,1
接收的是m1的元素为1,m2的元素为2,m1_map的元素为1。该pu
0,1
根据接收的m1_map为1,将m1的元素和m2的元素执行乘法运算,得到pu
0,1
本次结果为2。
[0102]
第1行第0列的计算单元pu
1,0
接收的m1的元素为0,m2的元素为1,m1_map的元素为0。该pu
1,0
根据接收的m1_map为0,不执行运算,默认本次结果为0。第1行第1列的计算单元pu
1,1
接收的m1的元素为0,m2的元素为2,m1_map的元素为0。该pu
1,1
根据接收的m1_map为0,不执行运算,本次结果为0。
[0103]
因此,第一次运算的结果矩阵m_temp为
[0104]
图5b是本发明一实施方式提供的第一矩阵和第二矩阵运算的第二步的示意图。
[0105]
如图5b所示,ld_m1将m1的第1列第0行元素0分别发送给位于计算单元阵列的两个计算单元pu
0,0
和pu
0,1
,将第1列第1行的元素0分别发送给计算单元阵列的两个计算单元pu
1,0
和pu
1,1

[0106]
将m1_map的第1列第0行元素0分别发送给位于计算单元阵列的两个计算单元pu
0,0
和pu
0,1
,将第1列第1行的元素0分别发送给计算单元阵列的两个计算单元pu
1,0
和pu
1,1
。ld_m2将m2的第1行的第0列元素1分别发送给位于计算单元阵列行计算单元pu
0,0
和pu
1,0
,ld_m2
将m2的第1行的第1列元素2分别发送给位于计算单元阵列行计算单元pu
0,1
和pu
1,1

[0107]
具体地,第0行第0列的计算单元pu
0,0
接收的是m1的元素为0,m2的元素为1,m1_map的元素为0。pu
0,0
根据接收的m1_map为0,不执行运算,得到本次结果为0。
[0108]
第0行第1列的计算单元pu
0,1
接收的是m1的元素为0,m2的元素为2,m1_map的元素为0。该计算单元根据接收的m1_map为0,不执行运算,得到本次结果为0。
[0109]
第1行第0列的计算单元pu
1,0
接收的m1的元素为0,m2的元素为1,m1_map的元素为0。该计算单元根据接收的m1_map为0,不执行运算,得到本次结果为0。
[0110]
第1行第1列的计算单元pu
1,1
接收的m1的元素为0,m2的元素为2,m1_map的元素为0。该计算单元根据接收的m1_map为0,不执行运算,得到本次结果为0。
[0111]
因此,第二次运算的中间结果矩阵为将第一次运算的中间结果矩阵和第二次运算的中间结果矩阵累加,得到的矩阵为
[0112]
图5c是本发明一实施方式提供的第一矩阵和第二矩阵运算的第三步的示意图。
[0113]
如图5c所示,ld_m1将m1的第2列的第0行元素0分别发送给计算单元阵列的两个计算单元pu
0,0
和pu
0,1
,将m1的第2列的第1行元素2分别发送给位于计算单元阵列的两个计算单元pu
1,0
和pu
1,1
,将m1_map的第2列第0行元素0分别发送给计算单元阵列的两列计算单元pu
0,0
和pu
0,1
,将m1_map的第2列的第1行元素1分别发送给计算单元阵列的两列计算单元pu
1,0
和pu
1,1

[0114]
ld_m2将m2的第2行的第0列元素1分别发送给计算单元阵列的计算单元pu
0,0
和pu
1,0
,ld_m2将m2的第2行的第1列元素2分别发送给计算单元阵列的计算单元pu
0,1
和pu
1,1

[0115]
第0行第0列的计算单元pu
0,0
接收的是m1的元素为0,m2的元素为1,m1_map的元素为0。该pu
0,0
根据接收的m1_map为0,不执行运算,得到本次结果为0。
[0116]
第0行第1列的计算单元pu
0,1
接收的是m1的元素为0,m2的元素为2,m1_map的元素为0。该计算单元根据接收的m1_map为0,不执行运算,得到本次结果为0。
[0117]
第1行第0列的计算单元pu
1,0
接收的m1的元素为2,m2的元素为1,m1_map的元素为1。该pu
1,0
根据接收的m1_map为1,执行运算,得到本次结果为2。
[0118]
第1行第1列的计算单元pu
1,1
接收的m1的元素为2,m2的元素为2,m1_map的元素为1。该pu
1,1
根据接收的m1_map为1,执行运算,得到本次结果为4。
[0119]
因此,第三次运算的结果矩阵为
[0120]
最后,每个计算单元将三次的运算结果累加,得到的输出矩阵m为
[0121]
本发明的一个实施方式提供了一种芯片,包括一个或多个上述实施例提供的处理核。
[0122]
本发明的一个实施方式提供了一种卡板,包括一个或多个上述实施例提供的芯片。
[0123]
本发明的一个实施方式提供了一种电子设备,包括一个或多个上述实施例提供的芯片。
[0124]
图6是本发明又一实施方式提供的数据处理方法的流程示意图。
[0125]
如图6所示,该一种数据处理方法,包括:
[0126]
步骤s101,读取第一矩阵、第二矩阵和与所述第一矩阵对应的第一位图矩阵,所述第一位图矩阵的每个元素为所述第一矩阵对应元素的第一运算标记。
[0127]
步骤s102,根据所述第一运算标记确定对所述第一矩阵中的元素执行运算的计算单元是否执行运算。
[0128]
具体地,当第一运算标记为第一标记时,确定计算单元不执行计算;确定运算标记为第二标记时,计算单元执行计算。
[0129]
在一个实施例中,在步骤s101之后,在步骤s102之前,还包括:
[0130]
每次按列发送第一矩阵的元素、按列发送第一位图矩阵的元素和按行所述第二矩阵的元素。
[0131]
其中根据所述第一运算标记确定对所述第一矩阵中的元素执行运算的计算单元是否执行运算包括:当接收的所述第一运算标记为所述第一标记时,不执行运算,即本次的运算结果直接为0。当接收的第一运算标记为所述第二标记时,对接收到的第一矩阵的元素和第二矩阵的元素执行计算得到本次运算结果。
[0132]
在一个实施例中,方法还包括:步骤s103,读取与第二矩阵对应的第二位图矩阵,所述第二位图矩阵的每个元素为所述第二矩阵对应元素的第二运算标记。并每次按行发送所述第二位图矩阵的元素。
[0133]
步骤s104,根据所述第二运算标记确定对所述第二矩阵中的元素执行运算的计算单元是否执行运算。
[0134]
具体地的,当所述第二运算标记为为第一标记时,确定本次所述计算单元不执行运算。当所述第一运算标记和第二运算标记均为第二标记时,对第一矩阵的元素和第二矩阵的元素执行计算得到本次运算结果。
[0135]
在一个具体的实施例中,对第一矩阵的元素和所述第二矩阵的元素执行的运算为乘运算。
[0136]
在一个具体的实施例中,方法还包括步骤s105,将每次的乘运算的结果进行累加,得到输出矩阵的最终的结果。
[0137]
本发明的一个实施方式提供了一种计算机存储介质,计算机存储介质上存储有计算机程序,程序被处理器执行时实现上述实施例的数据处理方法。
[0138]
本发明的一个实施方式提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现上述实施例的数据处理方法。
[0139]
本发明的一个实施方式提供了一种计算机程序产品,其中,包括计算机指令,当计算机指令被计算设备执行时,计算设备可以执行上述实施例的数据处理方法。
[0140]
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨
在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1