CN113419702B - 一种数据累加方法、处理器、电子设备及可读介质 - Google Patents
一种数据累加方法、处理器、电子设备及可读介质 Download PDFInfo
- Publication number
- CN113419702B CN113419702B CN202110684941.1A CN202110684941A CN113419702B CN 113419702 B CN113419702 B CN 113419702B CN 202110684941 A CN202110684941 A CN 202110684941A CN 113419702 B CN113419702 B CN 113419702B
- Authority
- CN
- China
- Prior art keywords
- round
- data
- accumulation
- unit
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Abstract
本申请涉及数据处理领域,公开了一种数据累加方法、处理器、电子设备及可读介质。其中,数据累加方法应用于处理器,处理器包括累加单元、存储器和控制单元;并且方法包括:累加单元将第N‑1轮累加得到的累加数据与第N轮累加所需的第一计算数据进行累加,并将得到的第N轮累加数据存入存储器中;控制单元在存储器获取到第N轮累加数据之后,从存储器获取第N轮累加数据并发送至累加单元;累加单元将接收到的第N轮累加数据与第N+1轮累加所需的第二计算数据进行累加,并将得到的第N+1轮累加数据存入存储器中;本申请提供的数据累加方法能够有效避免计算单元有很长一段时间处于等待状态的情况;能够有效加快计算速度,提高总体计算效率。
Description
技术领域
本申请涉及数据处理技术领域,特别涉及一种数据累加方法、处理器、电子设备及可读介质。
背景技术
目前,卷积神经网络作为深度学习中的重要算法已经应用于人工智能领域中,例如语音识别、图像处理及信号处理领域等。
对于当前人工智能应用中的卷积神经网络中的卷积计算,输入数据通常包括多个通道,需要对多通道的输入数据进行累加操作以实现输入数据的卷积计算。
现有技术有些方案中,采用多个计算单元对多通道输入数据中每个通道的数据进行并行计算。例如对于图1所示的具有两个通道的输入图像数据,需要采用两个计算单元对输入图像数据的两个通道的数据进行卷积计算。具体地,采用一个计算单元对图1所示的两个通道图像数据的其中一个通道的数据进行计算,采用另一个计算单元对图1所示的两个通道图像数据的另一个通道的对应数据进行计算;最后将数据累加在一起;该方法运算复杂且需要多个计算单元,即占用较多的硬件资源,难以应用于硬件资源和存储空间有限的电子设备上。
发明内容
本申请实施例提供了一种数据累加方法、处理器、电子设备及可读介质。
第一方面,本申请实施例提供了一种数据累加方法,所述方法应用于处理器,所述处理器包括累加单元、存储器和控制单元;并且
所述方法包括:
所述累加单元将累加得到的累加数据与第N轮累加所需的第一计算数据进行累加得到第N轮累加数据,并将第N轮累加数据存入所述存储器中;
所述控制单元在所述存储器获取到所述第N轮累加数据之后,从所述存储器获取所述第N轮累加数据并发送至所述累加单元;
所述累加单元将接收到的所述第N轮累加数据与第N+1轮累加所需的第二计算数据进行累加,并将得到的第N+1轮累加数据存入所述存储器中;
其中,N是正整数。
本申请实施例中,可以理解,第N轮可以为当前轮次,第N-1轮可以为当前轮的前一轮次,第N+1轮可以为当前轮次的下一轮次。第一计算数据可以为当前轮次的计算数据,第二数据可以为当前轮次的下一轮次的计算数据。
在上述第一方面的一种可能的实现中,所述处理器还包括计算单元上述方法还包括:
在所述控制单元从所述存储器获取所述第N轮累加数据并发送至所述累加单元步骤的之后或同时,所述计算单元将所述第N+1轮累加所需的第二计算数据发送至所述累加单元。
本申请实施例提供的数据累加方法,能够在新一轮次计算单元输出计算数据之前,通过控制单元预先获取先前轮次的累加数据,并在计算单元输出计算数据之前通过控制单元将前一轮次的累加数据发送至累加单元,使得在计算单元输出数据的时候,前一轮次的累加数据已经位于累加单元中,在计算单元输出数据的同时或之前通过累加单元获取到先前轮次的累加数据,使得计算单元不用在输出计算数据后等待累加单元获取先前轮次的累加数据,有效避免计算单元有很长一段时间处于等待状态的情况;能够有效加快计算速度,提高总体计算效率。
在上述第一方面的一种可能的实现中,所述计算单元包括加法器和乘法器。在上述第一方面的一种可能的实现中,所述累加单元包括缓冲器;并且
所述控制单元在所述存储器获取到所述第N轮累加数据之后,从所述存储器获取所述第N轮累加数据并发送至所述累加单元,包括
所述控制单元在所述存储器获取到所述第N轮累加数据之后,从所述存储器获取所述第N轮累加数据,并将所述第N轮第一累加数据发送至所述累加单元的缓冲器中。
在上述第一方面的一种可能的实现中,所述累加单元还包括加法器;并且
所述累加单元将接收到的所述第N轮累加数据与第N+1轮累加所需的第二计算数据进行累加,并将得到的第N+1轮累加数据存入所述存储器中,包括:
所述加法器从所述缓冲器中获取所述第N轮累加数据,并将所述第N轮累加数据与第N+1轮累加所需的第二计算数据进行累加,并将得到的第N+1轮累加数据存入所述存储器中。
本申请实施例中,可以在计算单元输出第N+1轮累加所需的第二计算数据的同时或之前通过加法器获取缓冲器中存储的先前轮次的累加数据,使得计算单元不用在输出计算数据后等待累加单元获取先前轮次的累加数据。
在上述第一方面的一种可能的实现中,所述存储器为随机存取存储器。
第二方面,本申请实施例提供了一种处理器,用于执行所述数据累加方法,所述处理器包括累加单元、存储器和控制单元;
所述累加单元用于将第N-1轮累加得到的累加数据与第N轮累加所需的第一计算数据进行累加,将得到的第N轮累加数据存入所述存储器中;
所述控制单元用于在所述存储器获取到所述第N轮累加数据之后,从所述存储器获取所述第N轮累加数据并发送至所述累加单元;
所述累加单元还用于将接收到的所述第N轮累加数据与第N+1轮累加所需的第二计算数据进行累加,并将得到的第N+1轮累加数据存入所述存储器中;
其中,N是正整数。
在上述第二方面的一种可能的实现中,所述处理器还包括计算单元;
所述计算单元用于在所述控制单元从所述存储器获取所述第N轮累加数据并发送至所述累加单元步骤的之后或同时,将所述第N+1轮累加所需的第二计算数据发送至所述累加单元。
在上述第二方面的一种可能的实现中,所述计算单元包括加法器和乘法器。在上述第二方面的一种可能的实现中,所述累加单元包括缓冲器;并且
所述控制单元用于在所述存储器获取到所述第N轮累加数据之后,从所述存储器获取所述第N轮累加数据,并将所述第N轮第一累加数据发送至所述累加单元的缓冲器中。
在上述第二方面的一种可能的实现中,所述累加单元还包括加法器;并且
所述加法器用于从所述缓冲器中获取所述第N轮累加数据,并将所述第N轮累加数据与第N+1轮累加所需的第二计算数据进行累加,并将得到的第N+1轮累加数据存入所述存储器中。
在上述第二方面的一种可能的实现中,所述存储器为随机存取存储器。
本申请实施例第三方面提供一种电子设备,包括所述处理器。
本申请实施例第四方面提供一种机器可读介质,所述机器可读介质上存储有指令,所述指令在机器上执行时使机器执行所述数据累加方法。
附图说明
图1根据本申请的一些实施例,示出了一种卷积计算的过程示意图;
图2根据本申请的一些实施例,示出了一种电子设备的结构示意图;
图3根据本申请的一些实施例,示出了一种处理器的结构示意图;
图4根据本申请的一些实施例,示出了一种数据累加方法的流程图;
图5根据本申请的一些实施例,示出了一种数据累加方法的过程示意图;
图6根据本申请的一些实施例,示出了一种处理器的结构示意图;
图7根据本申请的一些实施例,示出了一种数据累加方法的流程图;
图8根据本申请的一些实施例,示出了一种数据累加方法的过程示意图;
图9根据本申请的一些实施例,示出了一种电子设备的框图。
具体实施方式
本申请的说明性实施例包括但不限于一种数据处理方法、处理器、电子设备及可读介质。
可以理解,如本文所使用的,术语“模块”可以指代或者包括专用集成电路(ASIC)、电子电路、执行一个或多个软件或固件程序的处理器(共享、专用、或群组)和/或存储器、组合逻辑电路、和/或提供所描述的功能的其他适当硬件组件,或者可以作为这些硬件组件的一部分。
可以理解,在本申请各实施例中,处理器可以是微处理器、数字信号处理器、微控制器等,和/或其任何组合。根据另一个方面,所述处理器可以是单核处理器,多核处理器等,和/或其任何组合。
下面将结合附图对本申请的实施例作进一步地详细描述。本申请实施例提供的数据累加方法可以应用于各种需要执行多轮次数据累加计算的处理器中。在一些实施例中,本申请实施例提供的数据累加方法可以用于能够执行卷积计算的处理器中,例如图像处理器、信号处理器及嵌入式神经网络处理器等;具体的,卷积计算中的数据累加计算可以采用本申请实施例提供的数据累加方法。
图1(a)根据本申请的一些实施例,示出了一种在处理器中进行卷积计算的过程示意图,如图1(a)所示,将图像输入神经网络模型100,神经网络模型100可以对输入的图像进行卷积计算,从而实现对输入图像的处理功能,例如,图像识别及边缘提取等功能。如图1(a)所示,该神经网络模型可以包括输入层101、卷积层102和输出层103,其中,输入层101可以用于获取待处理图像的图像数据,卷积层102可以用于对待处理图像的图像数据进行卷积计算,得到待处理图像的卷积计算结果,即特征图;输出层103输出卷积计算的结果。
通常神经网络模型中的输入层101获取的待处理的输入图像数据具有多个通道,当卷积层102对输入图像数据进行卷积计算时,若输入图像数据含多个通道,一般会在卷积层102构造一个输入通道数与输入图像数据的通道数相同的卷积核,从而能够与多通道的输入图像数据进行卷积运算。
例如,如图1(a)所示,若输入图像数据的通道数为2个,则卷积层102会通过构建一个含2个通道的卷积核104对含2个通道的输入图像数据进行卷积计算。如图1所示,将输入通道的数据分成两个通道分别进行计算,然后将两个通道的计算结果相加。具体的计算方法如下所述:
首先将输入图像数据中的一个通道的部分数据块,例如图1中输入图像数据中第一通道最左方的标有数字的一个2*2的数据块1021(图中虚线框内数据块)与卷积核中对应通道的数据块1041进行卷积运算,计算数据为1*1+2*2+4*3+5*4;然后将输入图像数据中的另一个通道的部分数据块,例如图1(a)中输入图像数据中第二通道中最左方标有数字的一个2*2的数据块1022与卷积核中对应通道的数据块1042进行卷积运算,计算数据为0*0+1*1+3*2+4*3;然后将两个通道的计算数据进行累加,得到累加结果(1*1+2*2+4*3+5*4)+(0*0+1*1+3*2+4*3)=56,即上述输入图像数据的部分数据块的最终计算结果为56,若输入通道数据包括三个通道,则上述数据块的最终计算结果还要加上第三通道的计算数据。
在卷积运算中,输入图像数据的卷积窗口105从输入数组的最左上方开始,按从左往右、从上往下的顺序,依次在输入图像数据上滑动。例如,以第一通道为例,上述图1(a)中示出的为卷积窗口105初始位置位于第一通道的数据块1021,当卷积窗口105继续滑动到其他数据位置时,卷积窗口105中的数据块与对应的卷积核104按元素相乘并求和,得到计算数据。例如,如图1(b)所示,卷积窗口105继续向右滑动一个格子到第一通道的数据块1023位置时,卷积窗口中的数据块1023与对应的卷积核1041按元素相乘并求和,计算数据为1*0+4*2+0*1+3*3。第二通道中卷积窗口105滑动后的计算数据的计算方法与第一通道类相同,此处不再详述。
从上述内容可以看出,输入图像数据的每个通道中参与计算的数据都是各个通道中与卷积核的尺寸相同的各个数据块,将每个通道中位置相同的一个数据块与卷积核中相应通道中的数据进行乘加运算后的结果进行累加,得到输出特征图中的一个数值。
现有技术有些方案中,为了实现对图1所示的具有两个通道的输入图像数据的卷积运算,通常需要采用两个计算单元对输入图像数据的两个通道的数据进行卷积计算。具体地,采用一个计算单元对图1所示的第一通道的图像数据进行卷积计算,采用另一个计算单元对图1所示的第二通道的图像数据进行卷积计算,然后再将第一通道和第二通道各自的卷积计算结果进行累加,得到最终的卷积计算结果。也即,输入图像数据的通道数和实现卷积计算的计算单元的个数相同,从而在需要对多个通道的输入图像数据进行卷积运算时,需要使用多个计算单元分别对相应通道的输入图像数据进行卷积计算,然后将各个通道的卷积计算结果进行累加,得到最终的卷积计算结果。运算过程复杂且需要占用较多的硬件资源,难以应用于硬件资源和存储空间有限的电子设备上。
为了解决上述技术问题,本申请实施例提供一种数据累加方法,通过将输入图像数据的卷积计算按照通道数分成多轮次来进行累加计算,其中,计算所需轮次与通道数的数量相一致;每一轮计算均用卷积核的一个通道和输入数据中相应的一个通道的数据块进行卷积运算并与前一轮次的累加数据进行累加获取当前轮的累加数据,直至累加完整个输入图像数据所有通道对应的数据块,获取相应数据块的最终计算结果。
例如,若本申请实施例提供的计算方法用于计算图1中所示的数据块时,在第一轮次时,将卷积核的第一通道和输入数据中第一通道的数据块进行卷积运算,获取第一轮次的计算数据;在第二轮次时,将卷积核的第二通道和输入数据中第二通道的数据块进行卷积运算,获取第二轮次的计算数据,并将第二轮次的计算数据与第一轮次的计算数据累加,获取第二轮次的累加数据,因为图1中所示的只有两个通道,所以第二轮次的累加数据就是数据块的最终计算结果,将最终的计算结果输出进行后续处理。
若输入图像数据包括三个通道,则在第三轮次时,可以计算将卷积核的通道3和输入数据中通道3的对应数据块进行卷积运算,获取第三轮次的计算数据,并将第三轮次的计算数据与第二轮次的累加数据累加,获取第三轮次的累加数据,在输入图像数据具有三个通道的时候,第三轮次的累加数据就是数据块的最终计算结果,将最终的计算结果输出进行后续处理。若输入图像数据具有更多通道,则按照上述方法进行多轮次计算。采用这种流水线式的方法只需一个硬件系统即可完成整个输入图像数据的计算,能够有效节省硬件资源,节约成本,增大应用的广泛性。
可以理解,本申请提供的数据累加方法适用于各种可以执行乘加计算的电子设备,例如,包括但不限于,膝上型计算机、台式计算机、平板计算机、智能手机、服务器、可穿戴设备、头戴式显示器、移动电子邮件设备、便携式游戏机、便携式音乐播放器、阅读器设备、其中嵌入或耦接有一个或多个处理器的电视机、或具有计算功能的其他电子设备。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请的实施例作进一步地详细描述。
为了便于说明,首先对图2所示的能够执行本申请提供的数据累加方法的电子设备1400进行介绍。
如图2所示,在一些实施例中,电子设备1400可以包括一个或多个处理器1404,与处理器1404中的至少一个连接的系统控制逻辑1408,与系统控制逻辑1408连接的系统内存1412,与系统控制逻辑1408连接的非易失性存储器(NVM)1416,以及与系统控制逻辑1408连接的网络接口1420。
在一些实施例中,处理器1404可以包括一个或多个单核或多核处理器。在一些实施例中,处理器1404可以包括通用处理器和专用处理器(例如,图形处理器,应用处理器,基带处理器等)的任意组合。在电子设备1400采用eNB(Evolved Node B,增强型基站)101或RAN(Radio Access Network,无线接入网)控制器的实施例中,处理器1404可以被配置为执行各种适用于本申请技术方案的实施例,例如,如图3-7所示的多个实施例中的一个或多个。在本申请的一些实施例中,处理器1404中的数据累加方法可以采用本申请公开的技术方案实现,下文将进行详细的描述。
在一些实施例中,处理器1404的结构如图3所示,包括计算单元201、累加单元202、存储器203和处理单元204。其中,
计算单元201可以为处理器1404中的算术逻辑单元,即是处理器1404的执行单元,是处理器1404的核心组成部分,由及闸和或闸构成的算数逻辑单元,主要功能是进行二进制的算术运算,如加减乘(不包括整数除法)。具体的,可以为处理器中的乘法器或加法器等。
累加单元202可以包括加法器和缓存器;其中缓冲器又称缓冲寄存器,具体的,可以包括输入缓冲器和输出缓冲器。输入缓冲器能够用于数据的暂时存储,以便处理器或其他单元能够从输入缓冲器中获取暂时存储的数据;输出缓冲器能够用于暂时存储处理器送往外部的数据。
存储器203,具体的可以为处理器中的随机存取存储器(Random Access Memory,RAM)或寄存器,其中,寄存器是有限存贮容量的高速存贮部件,可用来暂存指令、数据和位址。
处理单元204,可以设于处理器中的主芯片中,能够用于对累加单元202发送的数据进行后续处理。
在一些实施例中,系统控制逻辑1408可以包括任意合适的接口控制器,以向处理器1404中的至少一个和/或与系统控制逻辑1408通信的任意合适的设备或组件提供任意合适的接口。
在一些实施例中,系统控制逻辑1408可以包括一个或多个存储器控制器,以提供连接到系统内存1412的接口。系统内存1412可以用于加载以及存储数据和/或指令。在一些实施例中电子设备1400的内存1412可以包括任意合适的易失性存储器,例如合适的动态随机存取存储器(DRAM)。可实施的,系统控制逻辑1408可以包括用于对数据累加运算过程进行控制的的控制器,该控制器可以向其他部件发送对应的控制指令。
NVM/存储器1416可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性的计算机可读介质。在一些实施例中,NVM/存储器2031416可以包括闪存等任意合适的非易失性存储器203和/或任意合适的非易失性存储设备,例如HDD(Hard Disk Drive,硬盘驱动器),CD(Compact Disc,光盘)驱动器,DVD(Digital Versatile Disc,数字通用光盘)驱动器中的至少一个。可实施的,NVM/存储器1416可以包括系统控制逻辑1408可以包括用于存储上述累加运算控制指令的计算机可读介质。
NVM/存储器1416可以包括电子设备1400上的一部分存储资源,或者它可以由设备访问,但不一定是设备的一部分。例如,可以经由网络接口1420通过网络访问NVM/存储1416。
特别地,系统内存1412和NVM/存储器2031416可以分别包括:指令1424的暂时副本和永久副本。指令1424可以包括:由处理器1404中的至少一个执行时导致电子设备1400实施如图4-7所示的方法的指令。在一些实施例中,指令1424、硬件、固件和/或其软件组件可另外地/替代地置于系统控制逻辑1408,网络接口1420和/或处理器1404中。
网络接口1420可以包括收发器,用于为电子设备1400提供无线电接口,进而通过一个或多个网络与任意其他合适的设备(如前端模块,天线等)进行通信。在一些实施例中,网络接口1420可以集成于电子设备1400的其他组件。例如,网络接口1420可以集成于处理器1404,系统内存1412,NVM/存储器1416,和具有指令的固件设备(未示出)中的至少一种。
网络接口1420可以进一步包括任意合适的硬件和/或固件,以提供多输入多输出无线电接口。例如,网络接口1420可以是网络适配器,无线网络适配器,电话调制解调器和/或无线调制解调器。
在一个实施例中,处理器1404中的至少一个可以与用于系统控制逻辑1408的一个或多个控制器的逻辑封装在一起,以形成系统封装。在一个实施例中,处理器1404中的至少一个可以与用于系统控制逻辑1408的一个或多个控制器的逻辑集成在同一管芯上,以形成片上系统。
电子设备1400可以进一步包括:输入/输出(I/O)设备1432。I/O设备1432可以包括用户界面,使得用户能够与电子设备1400进行交互;外围组件接口的设计使得外围组件也能够与电子设备1400交互。在一些实施例中,电子设备1400还包括传感器,用于确定与电子设备1400相关的环境条件和位置信息的至少一种。
在一些实施例中,用户界面可包括但不限于显示器(例如,液晶显示器,触摸屏显示器等),扬声器,麦克风,一个或多个相机(例如,静止图像照相机和/或摄像机),手电筒(例如,发光二极管闪光灯)和键盘。
在一些实施例中,外围组件接口可以包括但不限于非易失性存储器203端口、音频插孔和电源接口。
在一些实施例中,传感器可包括但不限于陀螺仪传感器,加速度计,近程传感器,环境光线传感器和定位单元。定位单元还可以是网络接口1420的一部分或与网络接口1420交互,以与定位网络的组件(例如,全球定位系统(GPS)卫星)进行通信。
下面结合处理器1404的具体结构说明本申请实施例的其中一种数据累加方法。首先对执行本申请的其中一种数据累加方法的一示例处理器的结构进行详述,如图3所示:
该处理器1404可以包括计算单元201、累加单元202、存储器203和处理单元204;
可以理解,图3中仅示出了处理器1404中仅具有1个计算单元201、1个累加单元202、1个存储器203和1个处理单元204,但是此处计算单元201、累加单元202、存储器203和处理单元204的数量仅仅是示例性的,在此不做限制,处理器1404可以包括任意数量的计算单元201、累加单元202、存储器203和处理单元204。
其中,在每一轮次中,计算单元201均用卷积核的一个通道和输入数据中相应的一个通道的数据块进行卷积运算获取计算数据;且计算单元201可以用于将当前轮次的计算数据发送至累加单元202中,可实施的,计算单元201可以用于将当前轮次的计算数据发送至累加单元202中的加法器中。其中,当前轮次的计算数据在此可以定义为进行卷积计算的当前计算轮次获得的计算数据,例如,若当前轮次为第一轮次,则当前轮次的计算数据为用卷积核的第一通道和输入数据中相应的第一通道的数据块进行卷积运算获取当然计算数据;
累加单元202可以用于当接收到计算单元201输出的当前轮次的计算数据后从存储器203中获取前一轮次的累加数据;
可实施的,累加单元202可以包括加法器,其中,加法器可以用于当接收到计算单元201输出的当前轮次的计算数据后从存储器203中获取前一轮次的累加数据,并将计算单元201输出的当前轮次的计算数据与从存储器203中前一轮次的累加数据进行加和计算,获取当前轮次的累加数据。
可实施的,累加单元202还可以包括缓冲器,缓冲器可以用于在获取前一轮次的累加数据之前临时存储计算单元201输出的当前轮次的计算数据。
可实施的,处理器1404还可以包括控制器,控制器可以用于判断当前轮次是否为最终轮次,若当前轮次为最终轮次,向累加单元202发送控制指令,控制累加单元202将当前轮次的累加数据发送至处理单元204;若当前轮次非最终轮次,向累加单元202发送控制指令,控制累加单元202将当前轮次的累加数据发送至存储器203。
处理单元204可以用于根据最终轮次的累加数据进行后续的处理,例如若处理器1404为信号处理器,则处理单元204可以用于根据最终轮次的累加数据进行滤波分析处理等,若处理器为图像处理器,则处理单元204可以用于根据最终轮次的累加数据进行图像特征提取处理等。
存储器203可以用于存储累加单元202输出的每一轮次的累加数据。可实施的,存储器203可以为随机存取存储器(Random Access Memory,RAM)。
基于上面的描述,下面结合本申请实施例提供的上述处理器1404具体介绍本申请实施例其中一种数据累加方法的实施方案,该实施方案可以采用上述处理器进行实施。
本申请实施例提供的数据累加方法通过将输入图像数据的对应数据块的卷积计算分成几轮来完成,每一轮计算输入图像数据中的其中一个通道的对应数据块并与前一轮次的累加数据进行累加,直至累加完整个输入图像数据所有通道对应的数据块,获取相应数据块的最终计算结果。图4为本申请实施例一种数据累加方法的流程示意图,其中,如图4所示,该数据累加方法可以包括:
S401:计算单元201将当前轮次计算数据发送至累加单元202。
例如,在第一轮次中,通过计算单元201将第一轮次的计算数据发送至累加单元202;其中,第一轮次的计算数据可以为如图1中所示的第一通道的对应数据块的计算数据,假设第一轮次的计算数据可以为A1;
在第二轮次中,计算单元201将第二轮次的计算数据发送至累加单元202;其中,第二轮次的计算数据可以为如图1中所示的第二通道的对应数据块的计算数据,假设第二轮次的计算数据可以为A2。
可实施的,计算单元201可以将当前轮次计算数据A1发送至累加单元202的加法器中。可实施的,当前轮次的计算数据可以包括计算的对应数据块的控制信息,例如大小、位置等。
S402:累加单元202从存储器203获取前一轮次的累加数据。
下面对前一轮次的累加数据进行举例介绍:
若当前轮次为第一轮次,则前一轮次为第零轮次,前一轮次不存在累加数据,则可以定义前一轮次的累加数据为0;
若当前轮次为第二轮次,即前一轮次为第一轮次,前一轮次累加数据为第一轮次的累加数据A1+0;
若当前轮次为第三轮次,即前一轮次为第二轮次,前一轮次累加数据为第二轮次的累加数据A1+0+A2。
S403:累加单元202将步骤S401中的获取的当前轮次计算数据与步骤S402中获取的前一轮次累加数据进行累加,获取当前轮次累加数据;可实施的,可以通过累加单元202中的加法器将当前轮次计算数据与前一轮次累加数据进行累加。
S404:判断当前轮次是否为最终轮次,若是,则执行S405;若否,则执行S406。
本申请实施例中,可以通过控制器判断当前轮次是否为最终轮次,若是最终轮次,则可以控制累加单元202将当前轮次累加数据发送至处理单元204,若不是最终轮次数据,则控制累加单元202将当前轮次累加数据发送至存储器203进行临时存储,进行下一轮次。具体的,控制器可以通过检测当前轮次是否与输入图像数据的总通道数相对应来判断当前轮次是否为最终轮次,若当前轮次与输入图像数据的总通道数相对应,则判断当前轮次是最终轮次;若当前轮次与输入图像数据的总通道数不对应,则判断当前轮次非最终轮次;例如,若输入图像数据的总通道数为三通道,而当前轮次为第三轮次,则判断当前轮次为最终轮次。
S405:累加单元202将当前轮次累加数据发送至处理单元204。
S406:累加单元202将当前轮次累加数据发送至存储器203。然后继续进行下一轮次,执行步骤S401。
下面举例说明本申请实施例中一种数据累加方法的具体实施过程,如图5所示:
在第一轮次中,如图5(a)中第(1)步骤所示,通过计算单元201将第一轮次的计算数据发送至累加单元202;其中,第一轮次的计算数据可以为输入图像的第一通道的对应数据块的计算数据,假设可以为A1;
如图5(a)中第(2)步骤所示,通过累加单元202从存储器203获取第零轮次的累加数据,并将第一轮次的计算数据与第零轮次的计算计算数据相加,获取第一轮次的累加数据。
因前一轮次为第零轮次,前一轮次不存在累加数据,则可以定义前一轮次的累加数据为0。第一轮次的累加数据为A1+0。
因第一轮次非最终轮次,则如图5(a)中第(3)步骤所示,通过累加单元202将当前轮次累加数据发送至存储器203。
然后进行第二轮次的计算:
在第二轮次中,如图5(b)中第(1)步骤所示,通过计算单元201将第二轮次的计算数据A2发送至累加单元202;其中,第二轮次的的计算数据可以为输入图像的第二通道的对应数据块的计算数据,通过计算单元201将第二轮次的计算数据A2发送至累加单元202;;
如图5(b)中第(2)步骤所示,通过累加单元202从存储器203获取第一轮次的累加数据A1+0,并将第二轮次的计算数据A2与第一轮次的累加数据相加A1+0,获取第二轮次的累加数据A1+0+A2。
若输入图像数据不只有两个通道,则第二轮次非最终轮次,则如图5(b)中第(3)步骤所示,通过累加单元202将第二轮次的累加数据A1+0+A2发送至存储器203。若输入图像只有两个通道,则第二轮次为最终轮次,通过累加单元202将第二轮次累加数据A1+0+A2发送至存储器203。
本申请实施例提供的数据累加方法能够通过采用这种多轮次流水线式的数据计算方法完成整个输入图像数据的计算,能够有效节省硬件资源,节约成本,增大应用的广泛性。但是,这种数据累加方法在计算过程中,累加单元202并不具备当前的数据块的控制信息,例如大小及位置等;因此,需要等待计算单元201将当前轮次的计算数据发送至累加单元202后,累加单元202才能从存储器203中获取前一轮次的累加数据;而在累加单元202从存储器203中获取前一轮次的累加数据的过程中,计算单元201将处于等待进程;因此,计算效率相对较低。
进一步地,为了进一步提高计算效率,本申请实施例提供另一种数据累加方法。以下首先详述执行本申请的另一种数据累加方法的一示例处理器的结构。
如图6所示,该处理器1404可以包括计算单元201、累加单元202、存储器203、处理单元204和控制单元205;其中,累加单元202可以包括加法器和缓冲器。
可以理解,图6中仅示出了处理器1404中仅具有1个计算单元201、1个累加单元202、1个存储器203、1个处理单元204和1个控制单元205,但是此处计算单元201、累加单元202、存储器203、控制单元205和处理单元204的数量仅仅是示例性的,在此不做限制,处理器1404可以包括任意数量的计算单元201、累加单元202、存储器203、处理单元204和控制单元205。
其中,在每一轮次中,控制单元205可以用于获取存储器203存储的前一轮次的累加数据,并在计算单元201输出当前轮次的计算数据之前将前一轮次的累加数据发送至累加单元202中,可实施的,控制单元205可以将前一轮次的累加数据发送至累加单元202的缓冲器中。
计算单元201可以用于将当前轮次的计算数据发送至累加单元202中,可实施的,计算单元201可以用于将当前轮次的计算数据发送至累加单元202中的加法器中;
累加单元202可以包括加法器和缓冲器;其中,加法器能够用于将计算单元201输出的当前轮次的计算数据与控制单元205输出的前一轮次的累加数据进行加和计算,获取当前轮次的累加数据;可实施的,控制单元205可以将前一轮次的累加数据发送至累加单元202的缓冲器中,加法器可以用于从缓冲器中获取前一轮次的累加数据。
可实施的,控制单元205还可以用于判断当前轮次是否为最终轮次,若当前轮次为最终轮次,向累加单元202发送控制指令,控制累加单元202将当前轮次的累加数据发送至处理单元204;若当前轮次非最终轮次,向累加单元202发送控制指令,控制累加单元202将当前轮次的累加数据发送至存储器203。
处理单元204可以用于根据最终轮次的累加数据进行后续的处理,例如若处理器1404应用于信号领域,处理单元204可以用于根据最终轮次的累加数据进行滤波分析处理等,若处理器1404应用于图像处理领域,则处理单元204可以用于根据最终轮次的累加数据进行图像特征提取处理等。
存储器203可以用于存储累加单元202输出的每一轮次的累加数据。可实施的,存储器203可以为临时存储器203。
本申请实施例提供的处理器1404能够通过控制单元205实现在新一轮次的计算单元201输出计算数据之前,获取先前轮次的累加数据,并在计算单元201输出计算数据之前或与计算单元201输出数据的同时将先前轮次的累加数据发送至累加单元202的加法器中。因为能够预先获取先前轮次的累加数据,计算单元201不用在输出计算数据后等待累加单元202获取先前轮次的累加数据,能够有效提高计算效率。
基于图6中处理器1404的实施方案,下面具体介绍应用于上述处理器1404的数据累加方法的实施方案,该实施方案可以采用上述处理器1404进行实施;图7为本申请实施例另一种数据累加方法的流程示意图,需要说明的是,图7中所示数据累加方法中所提及的前一轮次的累加数据、当前轮次计算数据等概念均与前文所述保持一致,此处不再详述。如图7所示,该数据累加方法可以包括:
S701:控制单元205从存储器203获取前一轮次的累加数据;
S702:在计算单元201输出当前轮次计算数据之前可以通过控制单元205将前一轮次累加数据从控制单元205发送至累加单元202。
可实施的,在计算单元201输出当前轮次计算数据之前可以将前一轮次累加数据从控制单元205发送至累加单元202的缓冲器。
S703:计算单元201将当前轮次计算数据发送至累加单元202;
可实施的,可以通过计算单元201将当前轮次计算数据发送至累加单元202的加法器中;本申请实施例中,在计算单元201将当前轮次计算数据发送至累加单元202的加法器的同时,可以通过加法器从缓冲器中获取前一轮次的累加数据。
S704:累加单元202将当前轮次计算数据与前一轮次累加数据进行累加,获取当前轮次累加数据;可实施的,可以通过累加单元202中的加法器将当前轮次计算数据与前一轮次累加数据进行累加。
S705:判断当前轮次是否为最终轮次,若是,则执行S706;若否,则执行S707。
本申请实施例中,可以通过控制单元205判断当前轮次是否为最终轮次,若是最终轮次,则可以控制累加单元202将当前轮次累加数据发送至处理单元204,若不是最终轮次数据,则控制累加单元202将当前轮次累加数据发送至存储器203进行临时存储,进行下一轮次的数据累加计算。具体的,控制单元205可以通过检测当前轮次是否与输入图像数据的总通道数相对应判断当前轮次是否为最终轮次,若当前轮次与输入图像数据的总通道数相对应,则判断当前轮次是最终轮次;若当前轮次与输入图像数据的总通道数不对应,则判断当前轮次非最终轮次;例如,若输入图像数据的总通道数为三通道,而当前轮次为第三轮次,则判断当前轮次为最终轮次。
S706:累加单元202将当前轮次累加数据发送至处理单元204。
S707:累加单元202将当前轮次累加数据发送至存储器203;然后继续进行下一轮次,执行步骤S4701。
下面举例说明本申请实施例中图7中所示数据累加方法的具体实施过程,此处假设输入图像数据大于两个输入通道,即计算轮次大于两轮,如图8所示:
在第一轮次中:
如图8(a)中第(1)步骤所示,通过控制单元205从存储器203获取前一轮次的累加数据;因前一轮次为第零轮次,前一轮次不存在累加数据,则可以定义前一轮次的累加数据为0。
如图8(a)中第(2)步骤所示,通过控制单元205将第一轮次累加数据0从控制单元205发送至累加单元202的缓冲器中;
如图8(a)中第(3)步骤所示,通过计算单元201将第一轮次的计算数据发送至累加单元202;
其中,第一轮次的计算数据可以为输入图像的第一通道的对应数据块的计算数据,假设第一轮次的计算数据可以为A1;
在计算单元201将第一轮次的计算数据当前轮计算数据A1发送至累加单元202的加法器的同时或之前,可以通过加法器从缓冲器中获取前一轮次即第零轮次的累加数据0,并将当前轮次计算数据A1与前一轮次的累加数据0进行累加获取第一轮次的累加数据A1+0。
因第一轮次非最终轮次,则如图8(b)中第(4)步骤所示,通过累加单元202将第一轮次累加数据发送至存储器203。
然后进行第二轮次的计算:
在第二轮次中,
如图8(b)中第(1)步骤所示,通过控制单元205从存储器203获取第一轮次的累加数据A1+0。
如图8(b)中第(2)步骤所示,通过控制单元205将第一轮次累加数据A1+0从控制单元205发送至累加单元202的缓冲器中;
如图8(b)中第(3)步骤所示,通过计算单元201将第二轮次的计算数据A2发送至累加单元202;其中,第二轮次的计算数据可以为输入图像的第二通道的对应数据块的计算数据,假设为A2;
在计算单元201将第二轮次计算数据A1发送至累加单元202的加法器的同时或之前,可以通过加法器从缓冲器中获取第一轮次的累加数据A1+0,并将第二轮次计算数据A2与第一轮次的累加数据A1+0进行累加获取第二轮次的累加数据A1+0+A2。
因第二轮次非最终轮次,则如图8(b)中第(4)步骤所示,通过累加单元202将第一轮次累加数据发送至存储器203。然后按照上述步骤进行后续轮次的计算。
本申请实施例提供的第二种数据累加方法,能够在新一轮次计算单元201输出计算数据之前,通过控制单元205预先获取先前轮次的累加数据,并在计算单元201输出计算数据之前通过控制单元205将前一轮次的累加数据发送至累加单元202的缓冲器,使得在计算单元201输出数据的时候,前一轮次的累加数据已经位于累加单元202的缓冲器中,在计算单元201输出数据的同时或之前通过加法器获取缓冲器中存储的先前轮次的累加数据,使得计算单元201不用在输出计算数据后等待累加单元202获取先前轮次的累加数据,有效避免本申请实施例提供的第一种数据累加方法中计算单元201有很长一段时间处于等待状态的情况;能够进一步有效加快计算速度,提高总体计算效率。
可以理解,本申请实施例上述提及的卷积计算中的数据累加方法是以单次处理一个通道为例进行说明,在一些实施例中,也可以对一组多数量的通道进行同时累加计算。例如,如图1中所示的第一轮次的计算数据为第一通道的对应数据块的计算数据;第二轮次的计算数据为第二通道的对应数据块的计算数据。在一些实施例中,第一轮次的计算数据可以为也可以是第一组通道的对应数据块的计算数据,第二轮次的计算数据为第二组通道的对应数据块的计算数据。
图9为本申请实施例一种电子设备900的结构示意图,可实施的,电子设备900包括但不限于,膝上型计算机、台式计算机、平板计算机、智能手机、服务器、可穿戴设备、头戴式显示器、移动电子邮件设备、便携式游戏机、便携式音乐播放器、阅读器设备、其中嵌入或耦接有一个或多个处理器1404的电视机、或具有计算功能的其他电子设备900。
其中电子设备900可以包括处理器1404、电源模块940、移动通信模块930、无线通信模块920、传感器模块990、音频模块950、摄像头970、接口模块960、按键901以及显示屏902等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备900的具体限定。在本申请另一些实施例中,电子设备900可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器1404可以为中央处理器CPU(Central Processing Unit)、图像处理器GPU(Graphics Processing Unit)、数字信号处理器DSP、微处理器MCU(Micro-programmedControl Unit)、AI(Artificial Intelligence,人工智能)处理器等;能够用于执行图4或图7所示的数据累加方法。
电源模块940可以包括电源、电源管理部件等。电源可以为电池。电源管理部件用于管理电源的充电和电源向其他模块的供电。在一些实施例中,电源管理部件包括充电管理模块和电源管理模块。充电管理模块用于从充电器接收充电输入;电源管理模块用于连接电源,充电管理模块与处理器1404。电源管理模块接收电源和/或充电管理模块的输入,为处理器1404,显示屏902,摄像头970,及无线通信模块920等供电。
移动通信模块930可以包括但不限于天线、功率放大器、滤波器、LNA(Low noiseamplify,低噪声放大器)等。移动通信模块930可以提供应用在电子设备900上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块930可以由天线接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块930还可以对经调制解调处理器调制后的信号放大,经天线转为电磁波辐射出去。在一些实施例中,移动通信模块930的至少部分功能模块可以被设置于处理器1404中。在一些实施例中,移动通信模块930至少部分功能模块可以与处理器1404的至少部分模块被设置在同一个器件中。无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivisionmultiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),无线局域网(wireless local areanetworks,WLAN),近距离无线通信技术(near field communication,NFC),调频(frequency modulation,FM)和/或field communication,NFC),红外技术(infrared,IR)技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(globalnavigation satellite system,GLONASS),北斗卫星导航系统(beidounavigationsatellite system,BDS),准天顶卫星系统(quasi-zenith satellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
无线通信模块920可以包括天线,并经由天线实现对电磁波的收发。无线通信模块920可以提供应用在电子设备900上的包括无线局域网(wireless localarea networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。电子设备900可以通过无线通信技术与网络以及其他设备进行通信。
在一些实施例中,电子设备900的移动通信模块930和无线通信模块920也可以位于同一模块中。
显示屏902用于显示人机交互界面、图像、视频等。显示屏902包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organiclight-emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,AMOLED),柔性发光二极管(flexlight-emitting diode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot light emitting diodes,QLED)等。
传感器模块990可以包括接近光传感器、压力传感器,陀螺仪传感器,气压传感器,磁传感器,加速度传感器,距离传感器,指纹传感器,温度传感器,触摸传感器,环境光传感器,骨传导传感器等。
音频模块950用于将数字音频信息转换成模拟音频信号输出,或者将模拟音频输入转换为数字音频信号。音频模块950还可以用于对音频信号编码和解码。在一些实施例中,音频模块950可以设置于处理器1404中,或将音频模块950的部分功能模块设置于处理器1404中。在一些实施例中,音频模块950可以包括扬声器、听筒、麦克风以及耳机接口。
摄像头970用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件把光信号转换成电信号,之后将电信号传递给ISP(Image SignalProcessing,图像信号处理)转换成数字图像信号。电子设备900可以通过ISP,摄像头970,视频编解码器,GPU(Graphic Processing Unit,图形处理器1404),显示屏902以及应用处理器1404等实现拍摄功能。
接口模块960包括外部存储器接口、通用串行总线(universal serial bus,USB)接口及用户标识模块(subscriber identification module,SIM)卡接口等。其中外部存储器接口可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备900的存储能力。外部存储卡通过外部存储器接口与处理器1404通信,实现数据存储功能。通用串行总线接口用于电子设备900和其他电子设备进行通信。用户标识模块卡接口用于与安装至电子设备900的SIM卡进行通信,例如读取SIM卡中存储的电话号码,或将电话号码写入SIM卡中。
在一些实施例中,电子设备900还包括按键901、马达以及指示器等。其中,按键901可以包括音量键、开/关机键等。马达用于使电子设备900产生振动效果,例如在用户的电子设备900被呼叫的时候产生振动,以提示用户接听电子设备900来电。指示器可以包括激光指示器、射频指示器、LED指示器等。
本申请公开的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本申请的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器1404、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
可将程序代码应用于输入指令,以执行本申请描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如例如数字信号处理器1404(DSP)、微控制器、专用集成电路(ASIC)或微处理器1404之类的处理器1404的任何系统。
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本申请中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器1404读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(CD-ROMs)、磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
需要说明的是,本申请各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本申请所提出的技术问题的关键。此外,为了突出本申请的创新部分,本申请上述各设备实施例并没有将与解决本申请所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
需要说明的是,在本专利的示例和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
虽然通过参照本申请的某些优选实施例,已经对本申请进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。
Claims (13)
1.一种数据累加方法,其特征在于,所述方法应用于处理器,所述处理器包括累加单元、存储器、计算单元和控制单元;并且
所述方法包括:
所述累加单元将从所述控制单元接收到的来自所述存储器的第N-1轮累加数据与来自所述计算单元的第N轮累加所需的第一计算数据进行累加得到第N轮累加数据,并将所述第N轮累加数据存入所述存储器中;
所述控制单元在所述计算单元将第N+1轮累加所需的第二计算数据输出至所述累加单元之前或同时,从所述存储器获取所述第N轮累加数据并发送至所述累加单元;
所述计算单元将所述第N+1轮累加所需的第二计算数据发送至所述累加单元;
所述累加单元将从所述控制单元接收到的来自所述存储器的所述第N轮累加数据与来自所述计算单元的所述第N+1轮累加所需的第二计算数据进行累加,并将得到的第N+1轮累加数据存入所述存储器中;
其中,N是正整数。
2. 根据权利要求1所述的数据累加方法,其特征在于,所述计算单元包括加法器和乘法器。
3.根据权利要求1所述的数据累加方法,其特征在于,所述累加单元包括缓冲器;并且
所述控制单元在所述存储器获取到所述第N轮累加数据之后,从所述存储器获取所述第N轮累加数据并发送至所述累加单元,包括
所述控制单元在所述存储器获取到所述第N轮累加数据之后,从所述存储器获取所述第N轮累加数据,并将所述第N轮累加数据发送至所述累加单元的缓冲器中。
4.根据权利要求3所述的数据累加方法,其特征在于,所述累加单元还包括加法器;并且
所述累加单元将接收到的所述第N轮累加数据与第N+1轮累加所需的第二计算数据进行累加,并将得到的第N+1轮累加数据存入所述存储器中,包括:
所述加法器从所述缓冲器中获取所述第N轮累加数据,并将所述第N轮累加数据与第N+1轮累加所需的第二计算数据进行累加,并将得到的第N+1轮累加数据存入所述存储器中。
5.根据权利要求1所述的数据累加方法,其特征在于,所述存储器为随机存取存储器。
6.一种处理器,其特征在于,用于执行权利要求1-5任一项所述数据累加方法,所述处理器包括累加单元、存储器和控制单元;
所述累加单元用于将第N-1轮累加得到的累加数据与第N轮累加所需的第一计算数据进行累加,将得到的第N轮累加数据存入所述存储器中;
所述控制单元用于在所述存储器获取到所述第N轮累加数据之后,从所述存储器获取所述第N轮累加数据并发送至所述累加单元;
所述累加单元还用于将接收到的所述第N轮累加数据与第N+1轮累加所需的第二计算数据进行累加,并将得到的第N+1轮累加数据存入所述存储器中;
其中,N是正整数。
7.根据权利要求6所述的处理器,其特征在于,所述处理器还包括计算单元;
所述计算单元用于在所述控制单元从所述存储器获取所述第N轮累加数据并发送至所述累加单元步骤的之后或同时,将所述第N+1轮累加所需的第二计算数据发送至所述累加单元。
8.根据权利要求7所述的处理器,其特征在于,所述计算单元包括加法器和乘法器。
9.根据权利要求6所述的处理器,其特征在于,所述累加单元包括缓冲器;并且
所述控制单元用于在所述存储器获取到所述第N轮累加数据之后,从所述存储器获取所述第N轮累加数据,并将所述第N轮累加数据发送至所述累加单元的缓冲器中。
10.根据权利要求9所述的处理器,其特征在于,所述累加单元还包括加法器;并且
所述加法器用于从所述缓冲器中获取所述第N轮累加数据,并将所述第N轮累加数据与第N+1轮累加所需的第二计算数据进行累加,并将得到的第N+1轮累加数据存入所述存储器中。
11.根据权利要求6所述的处理器,其特征在于,所述存储器为随机存取存储器。
12.一种电子设备,其特征在于,包括权利要求7-11任一项所述处理器。
13.一种机器可读介质,其特征在于,所述机器可读介质上存储有指令,所述指令在机器上执行时使机器执行权利要求1至5中任一项所述的数据累加方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110684941.1A CN113419702B (zh) | 2021-06-21 | 2021-06-21 | 一种数据累加方法、处理器、电子设备及可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110684941.1A CN113419702B (zh) | 2021-06-21 | 2021-06-21 | 一种数据累加方法、处理器、电子设备及可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113419702A CN113419702A (zh) | 2021-09-21 |
CN113419702B true CN113419702B (zh) | 2022-11-22 |
Family
ID=77789489
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110684941.1A Active CN113419702B (zh) | 2021-06-21 | 2021-06-21 | 一种数据累加方法、处理器、电子设备及可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113419702B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6731294B1 (en) * | 2000-04-21 | 2004-05-04 | Ati International Srl | Vector engine with pre-accumulation buffer and method therefore |
CN106875012A (zh) * | 2017-02-09 | 2017-06-20 | 武汉魅瞳科技有限公司 | 一种基于fpga的深度卷积神经网络的流水化加速系统 |
CN107516131A (zh) * | 2017-07-04 | 2017-12-26 | 算丰科技(北京)有限公司 | 卷积计算的加速方法和装置、电子设备和存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019104695A1 (zh) * | 2017-11-30 | 2019-06-06 | 深圳市大疆创新科技有限公司 | 用于神经网络的运算装置、芯片、设备及相关方法 |
CN111694767B (zh) * | 2019-05-16 | 2021-03-19 | 时擎智能科技(上海)有限公司 | 累加缓存装置 |
US11385864B2 (en) * | 2019-07-02 | 2022-07-12 | Facebook Technologies, Llc | Counter based multiply-and-accumulate circuit for neural network |
CN111191780B (zh) * | 2020-01-03 | 2024-03-19 | 珠海亿智电子科技有限公司 | 均值池化累加电路、装置以及方法 |
CN112051981B (zh) * | 2020-09-15 | 2023-09-01 | 厦门壹普智慧科技有限公司 | 一种数据流水线计算路径结构及单线程数据流水线系统 |
-
2021
- 2021-06-21 CN CN202110684941.1A patent/CN113419702B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6731294B1 (en) * | 2000-04-21 | 2004-05-04 | Ati International Srl | Vector engine with pre-accumulation buffer and method therefore |
CN106875012A (zh) * | 2017-02-09 | 2017-06-20 | 武汉魅瞳科技有限公司 | 一种基于fpga的深度卷积神经网络的流水化加速系统 |
CN107516131A (zh) * | 2017-07-04 | 2017-12-26 | 算丰科技(北京)有限公司 | 卷积计算的加速方法和装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113419702A (zh) | 2021-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110045960B (zh) | 基于芯片的指令集处理方法、装置及存储介质 | |
US20140358535A1 (en) | Method of executing voice recognition of electronic device and electronic device using the same | |
US11012070B2 (en) | Electronic device and method thereof for grip recognition | |
CN110392298B (zh) | 一种音量调节方法、装置、设备及介质 | |
US10656279B2 (en) | Electronic device and method for measuring position information of electronic device | |
CN111050370A (zh) | 网络切换方法、装置、存储介质及电子设备 | |
US10302763B2 (en) | Method for detecting proximity of object and electronic device using the same | |
US10636122B2 (en) | Method, device and nonvolatile computer-readable medium for image composition | |
CN111045732B (zh) | 数据处理方法、芯片、设备及存储介质 | |
CN109726726B (zh) | 视频中的事件检测方法及装置 | |
CN113419702B (zh) | 一种数据累加方法、处理器、电子设备及可读介质 | |
US10031734B2 (en) | Device and method for generating application package | |
CN115098262B (zh) | 一种多神经网络任务处理方法及装置 | |
CN112416294B (zh) | 处理器及其二进制累加方法和计算机可读介质 | |
EP4050523A1 (en) | Method and apparatus for optimizing deep learning operator, device and storage medium | |
CN113469322B (zh) | 确定模型的可执行程序的方法、装置、设备及存储介质 | |
US20180004380A1 (en) | Screen display method and electronic device supporting the same | |
CN115099393B (zh) | 神经网络结构搜索方法及相关装置 | |
CN115268834A (zh) | 乘法运算共用的执行方法、片上系统、电子设备及介质 | |
CN114611009B (zh) | 资源推荐方法、装置、电子设备及存储介质 | |
CN116881194B (zh) | 处理器、数据处理方法及计算机设备 | |
CN111382335B (zh) | 一种数据拉取方法、装置及存储介质 | |
CN111181599B (zh) | 用于小区检测的装置及方法 | |
CN110168314B (zh) | 电子设备和利用其的基于位置的信息服务方法 | |
CN113869500A (zh) | 模型的运行方法、数据处理方法、电子设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |