CN111199273B - 卷积计算方法、装置、设备及存储介质 - Google Patents
卷积计算方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111199273B CN111199273B CN201911425674.5A CN201911425674A CN111199273B CN 111199273 B CN111199273 B CN 111199273B CN 201911425674 A CN201911425674 A CN 201911425674A CN 111199273 B CN111199273 B CN 111199273B
- Authority
- CN
- China
- Prior art keywords
- convolution
- data
- data block
- block set
- computing
- 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
- 238000004364 calculation method Methods 0.000 title claims abstract description 109
- 239000011159 matrix material Substances 0.000 claims abstract description 96
- 238000000034 method Methods 0.000 claims abstract description 37
- 238000013528 artificial neural network Methods 0.000 claims description 33
- 238000004590 computer program Methods 0.000 claims description 22
- 238000013500 data storage Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 13
- 238000010586 diagram Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 11
- 238000013527 convolutional neural network Methods 0.000 description 9
- 230000001133 acceleration Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
- Image Processing (AREA)
Abstract
本申请适用于计算机技术领域,提供了一种卷积计算方法、装置、设备及存储介质。方法包括将x个输入通道中每个输入通道的数据划分为y个数据块;将划分后的x个输入通道的相同位置的数据块组成一个数据块集,生成y个数据块集;将y个数据块集依次发送至所述多个卷积计算单元;多个卷积计算单元分别从权重矩阵中读取预设区域的卷积核,并基于读取到的卷积核对每个数据块集进行并行卷积计算,得到每个数据块集的运算结果;其中,每个卷积计算单元读取的卷积核不同;对y个数据块集的运算结果进行数据拼接,生成卷积结果。本申请提供的卷积计算方法,同时实现了输出通道中卷积核和待处理数据中数据块的复用,极大地提高了数据的复用率。
Description
技术领域
本申请属于计算机技术领域,尤其涉及一种卷积计算方法、装置、设备及存储介质。
背景技术
神经网络处理器是基于卷积神经网络算法设计的处理器,可以高效的执行卷积等计算,以实现卷积神经网络的加速。相比较传统的中央处理器,现场可编程门阵列FPGA(Field-Programmable Gate Array)作为硬件平台实现卷积神经网络的加速计算,具有成本低、功耗小、速度快、可灵活配置等优点,具有良好的应用前景。
在FPGA平台上对卷积神经网络进行硬件加速时,通常采用二维权重矩阵(具体为二维滤波器)进行运算,通过滤波器窗口滑动的方式依次将待处理数据包含的数据和权重矩阵中卷积核进行卷积,得到运算结果。
卷积神经网络涉及运算的计算量非常庞大,这对现场可编程门阵列(Field-Programmable Gate Array,FPGA)等可编程逻辑电路的片上存储空间和读写带宽要求极高,即使当前最先进的FGPA的资源量也无法满足要求。如何通过提高卷积运算中的数据复用率降低卷积运算对FGPA的硬件要求成为神经网络处理器进行实际应用时需要解决的一个重要问题。
发明内容
有鉴于此,本申请实施例提供了一种卷积计算方法、装置、设备及存储介质,以解决现有技术中神经网络处理器中卷积运算数据复用率低的技术问题。
第一方面,本申请实施例提供了一种卷积计算方法,适用于一种神经网络处理器,所述神经网络处理器包括多个卷积计算单元,所述待处理数据包含x个输入通道;
卷积计算方法包括:
将x个输入通道中每个输入通道的数据划分为y个数据块;
将划分后的x个输入通道的相同位置的数据块组成一个数据块集,生成y个数据块集;
将y个数据块集分批发送至所述多个卷积计算单元;
多个卷积计算单元分别读取权重矩阵中不同区域的卷积核,并基于读取到的卷积核对每个数据块集进行并行卷积计算,得到每个数据块集的运算结果;
对所述y个数据块集的运算结果进行数据拼接,生成卷积结果。
第二方面,本申请实施例提供了一种卷积计算装置,适用于一种神经网络处理器,神经网络处理器包括多个卷积计算单元,多个卷积计算单元并行处理用于进行待处理数据的加速计算,待处理数据包含x个输入通道;
卷积计算装置包括:
划分模块,用于将x个输入通道中每个输入通道的数据划分为y个数据块;
组合模块,用于将划分后的x个输入通道的相同位置的数据块组成一个数据块集,生成y个数据块集;
发送模块,用于将y个数据块集分批发送至所述多个卷积计算单元;
计算模块,用于通过多个卷积计算单元分别读取权重矩阵中不同区域的卷积核,并基于读取到的卷积核对每个数据块集进行并行卷积计算,得到每个数据块集的运算结果;
拼接模块,用于对y个数据块集的运算结果进行数据拼接,生成卷积结果。
第三方面,本申请实施例提供了一种卷积计算设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述第一方面任一项方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述第一方面任一项方法的步骤。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一项的方法。
本申请实施例提供的卷积计算方法,用于对包含x个输入通道的待处理数据进行卷积运算,该方法中将每个输入通道的数据划分得到y个数据块,并将划分后x个输入通道相同位置的数据块组成一个数据块集,得到y个数据块集,将y个数据块集分批加载至多个卷积计算单元,多个卷积计算单元分别读取权重矩阵中不同区域的卷积核,并基于读取到的卷积核对每个数据块集进行并行卷积计算,得到每个数据块集的运算结果。
一方面,在每个数据块集的卷积运算中,该数据块集可以由多个卷积计算单元读取权重矩阵中的不同区域的卷积核并行进行卷积处理,而不需要进行该数据块集的重复读写,实现了该数据块集在权重矩阵中不同区域之间的复用,提高了待处理数据中各数据块集的复用率;
另一方面,将x个输入通道相同位置的数据块组成一个数据块集,将y个数据块集分批发送,每个卷积计算单元在完成读取到的卷积核与当前批次数据块集的卷积计算后,即可以加载下一批的数据块集,而不需要进行卷积核的重复读写操作,实现了卷积核在多批次数据块集之间的复用,提高了卷积核数据的复用率。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的卷积计算方法的流程示意图;
图2是本申请一实施例提供的待处理数据的示意图;
图3是本申请一实施例提供的确定每个卷积计算单元的卷积核读取次数的流程示意图;
图4是本申请一实施例提供的权重矩阵示意图;
图5为本是申请一实施例提供的得到每个数据块集的运算结果的流程示意图;
图6是本申请一实施例提供的基于多个卷积单元进行矩阵乘的示意图;
图7是本申请一实施例提供的卷积计算装置的功能框图;
图8是本申请另一实施例提供的卷积计算装置的功能框图;
图9是本申请一实施例提供的卷积计算设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定***结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的***、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
卷积神经网络(convolutional neural network,CNN)在多种应用,尤其是图像、视频应用中被广泛采用。在终端应用领域,FGPA(Field-Programmable Gate Array)作为硬件平台加速卷积神经网络中的算法,具有成本低、功耗小、速度快、可灵活配置等优点,具有良好的应用前景。
本申请实施例提供的卷积计算方法适用于基于FGPA的神经网络处理器,神经网络处理器包括全局数据存储单元,控制单元以及多个卷积计算单元,其中,卷积计算单元可以为计算单元(processing element,PE),全局数据存储单元可以为DDR(Double Data RateSDRAM,双倍速率SDRAM),控制单元可以为(Direct Memory Access,DMA)控制器。
示例性的,假设神经网络处理器用于识别特征图中的人脸,则将采集到的图像进行预处理得到特征图矩阵,将该特征图矩阵作为待处理数据保存至DDR中;神经网络处理器的权重矩阵也预先保存至DDR中,DMA控制器将待处理数据从DDR中读出,并发送给多个计算单元PE进行缓存(保存至片上RAM),多个计算单元PE再将数据由RAM读出,同时从DDR中获得权重矩阵进行并行卷积运算,得到运算结果,运算结果暂存在片上RAM中,由DMA控制器将运算结果从RAM中读出,写入DDR中。
由于神经网络处理器中对于DDR的读写速度远远慢于并行计算单元的运算的速度,导致读写带宽成为限制卷积运算速度的瓶颈之一。且片上RAM的成本较高,目前的FPGA普遍不具备很大的片上RAM容量,因此,在保障卷积运算速度的前提下,如何通过提高卷积运算中的数据复用降低卷积运算对FGPA的硬件要求成为卷积神经网络进行实际应用时需要解决的一个重要问题。
其中,可以通过数据复用率描述数据在一次读取中的复用情况。数据复用率包括卷积核的复用率和待处理数据的复用率两个维度。例如,若一次读取的一个输入图像数据和若干数量的卷积核进行卷积运算,则此卷积核的数据量站全部卷积核数量的比例为复用率。
现有技术中,通常将卷积运算中的特征图数据按照输入通道的数量进行切割,以实现卷积核在多个输入通道上的并行复用。但在单个通道内的特征图数据仍然存在数据复用率低或者某些资源未能重复利用的技术问题,导致相同数据被多次读取带来的带宽瓶颈和卷积运算对片上存储空间的大量开销。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行示例性说明。值得说明的是,下文中列举的具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
图1为本申请一实施例提供的卷积计算方法的流程示意图,适用于一种神经网络处理器,神经网络处理器包括多个卷积计算单元,多个卷积计算单元并行处理用于进行待处理数据的加速计算,待处理数据包含x个输入通道;
方法包括:
S101、将x个输入通道中每个输入通道的数据划分为y个数据块。
待处理数据可以为图像、视频、音频、文字等各种计算机可读数据。
本实施例中,待处理数据可以为对图像进行预先拼接后的二维矩阵。
示例性的:采集获得64幅图像,且每个图像具有三个输入通道(对应RGB),将64幅图像进行拼接,获得一副具有三个输入通道的待处理图像,然后则将该待处理图像的三个输入通道图像数据进行拼接,得到一副二维图像数据,具体体现为一个二维矩阵。该二维矩阵中每一行数据,或者每多行数据均可以视为一个输入通道。
在一种实施方式中,将x个输入通道中每个输入通道的数据划分为y个数据块包括,将每个输入通道的数据划分为y个大小相同的数据块;其中,每个数据块的长度方向包含的数据个数与每个卷积计算单元的乘累加器个数相同。神经网络处理器中每个卷积计算单元的乘累加器个数相同。
示例性的,请一并参阅图2,图2是本申请一实施例提供的待处理数据的示意图,如图2所示,待处理数据为对多幅图像进行预处理后获得的待处理矩阵A。
首先,将待处理矩阵A的分割为x个输入通道,其中每个输入通道的尺寸为m×s,其中m为该输入通道的宽度方向上包含数据个数,s为该输入通道的长度方向包含的数据个数,
然后,将每个输入通道的数据沿长度方向划分为y个数据块;每个数据块的大小为m×r,其中,每个数据块长度方向包含的数据个数r与卷积计算单元的乘累加器个数相同。应理解的是,按照长度方向要求的数据个数对每个输入通道进行等分,使得前y-1个数据块大小相同,剩余的数据构成第y个数据块。
其中,卷积计算单元中每个乘累加器(Multiply Accumulate,MAC)用于进行一个数据点的点积运算,每个卷积计算单元的乘累加器MAC个数表征了该卷积单元在一个时钟周期可以同时处理的数据点的个数。本实施例中,通过将每个数据块的r与卷积计算单元的乘累加器MAC个数相同,使得在每个时钟周期的运算中卷积计算单元的乘累加器MAC达到百分百的应用。
在另一种实施方式中,神经网络处理器中每个卷积计算单元的乘累加器个数可以不同,故待处理数据的每个输入通道也可以不必平均划分,以神经网络处理器中每个卷积计算单元可以处理为宜,在此不做具体限定。
在又一种实施方式中,每个输入通道的宽度方向上包含的数据个数与划分得到的y个数据块宽度方向上包含的数据个数可以不同。例如,输入通道有28个,每个通道的包含的数据个数为8x8,则可以将每个通道划分为四个4x4的数据块。
本实施例中,在对每个输入通道的数据划分完成后,将划分后的x个输入通道的数据保存至神经网络处理器的全局数据存储单元。
待处理数据由控制单元通过FIFO(First In First Out)进行跨时钟域操作发送至给卷积计算单元的片上RAM,卷积计算单元再将数据由本地RAM中读出进行卷积运算。本实施例中将划分后的待处理数据排布方式保存至全局数据存储单元,每次进行数据下发时按照数据存储方式进行下发即可,便于在FIFO中实现数据的流水线操作,提高了数据吞吐效率。
S102、将划分后的x个输入通道的相同位置的数据块组成一个数据块集,生成y个数据块集。
请一并参阅图2,如图2所示,待处理数据为对多幅图像进行预处理后获得的待处理矩阵A。矩阵A包括x个输入通道,每个输入通道被切割为y个数据块,x个输入通道的相同位置的数据块即为矩阵A中每一列的数据块。
示例性的,请一并参阅图2,如图2所示的待处理矩阵A,矩阵A包括x个输入通道,每个输入通道被切割为y个数据块,则x个输入通道的每一列数据组成一批数据,则待处理矩阵A可以分y个批次发送至各卷积运算单元进行并行计算。
S103、将y个数据块集分批发送至多个卷积计算单元。
每批发送一个数据块集,将y个数据块集分y批发送至多个卷积计算单元,每次发送中将一个数据块集同时发送至多个卷积计算单元。
本实施例中,按照y个数据块集在图2中从左至右的顺序分批发送至多个卷积计算单元,
本实施例中,每批发送一个数据块集,一个数据块集中包括x个数据块,将一个数据块集发送至多个卷积计算单元可以为,按照x个输入通道的排布顺序依次将x个输入通道相同位置的数据块发送至多个卷积计算单元。
示例性的,请一并参阅图2,以图2中的第一列数据块为例,将第一列数据块作为一个批次的数据组,按照从上而下的顺序依次将x个数据块发送至多个卷积计算单元。
S104、多个卷积计算单元分别读取权重矩阵中不同区域的卷积核,并基于读取到的卷积核对每个数据块集进行并行卷积计算,得到每个数据块集的运算结果。
本实施例中,每个卷积计算单元读取的权重矩阵中的卷积核可以根据卷积计算单元的个数以及权重矩阵预先进行设置,以使得每个卷积计算单元需要读取的卷积核个数相似。在完成权重矩阵的预先划分后,将该权重矩阵的划分结果至神经网络处理器的全局数据存储单元。
权重矩阵为由多个卷积核构成,权重矩阵每一个行的卷积核可以对一个数据块集进行卷积运算,得到一个输出结果,因此权重矩阵每一行的卷积核与一个输出通道一一对应。在本实施例中,多个卷积计算单元分别读取权重矩阵中不同区域的卷积核,可以理解为多个卷积计算单元用于处理不同的输出通道。
本实施例中,若卷积计算单元足够多,此时每个卷积计算单元的缓冲空间足够大,则可以将每个卷积计算单元需读取的卷积核数据预先存储到该卷积计算单元的缓存,该卷积计算单元读取本地缓存中的卷积核,并执行该卷积核与每一批数据块集中所有数据块的卷积运算。通过多个卷积计算单元的并行运算实现了并行输出运算。
实际应用中,由于每个卷积计算单元的缓冲空间的限制,存在每个数据块集无法一次读取完毕,必须分批加载的请看,或者卷积计算单元需要读取的卷积核无法一次读取完毕,必须分批加载的情况。例如:以第一个数据块集为例,针对每个卷积计算单元,需要将第一个数据块集多次读入,或者将该卷积计算单元需读取的卷积核分批次读入,其中第一种方式实现了卷积核的复用,第二种方式实现了待处理数据的复用。
下面对第一种方式进行示例性说明,请一并参阅图2,划分后的x个输入通道的待处理数据存放在DDR中,控制单元将x个输入通道的第一个数据块集从DDR中读出,并广播给多个计算单元PE进行缓存(保存至片上RAM),其中,第一个数据块集为矩阵A中第一列数据块,卷积计算单元为计算单元PE。
针对每个计算单元PE,该计算单元PE读取权重矩阵对应区域的部分卷积核并保存至本地缓存,执行该卷积核与第一个数据块集中对应数据块的卷积,在完成当前的卷积核的卷积运算中;控制单元将x个输入通道的第二个数据块集从DDR中读出,并广播给该计算单元PE进行缓存(保存至片上RAM),该计算单元执行当前卷积核与第二个数据块集中对应数据块的卷积,重复上述过程直至该计算单元完成当前卷积核与待处理矩阵A中y个数据块集的卷积。由于计算单元PE缓存中预存的卷积核仅为该计算单元需处理的输出通道上的部分卷积核,需要对该计算单元PE中缓存的卷积核进行更新,具体表征为计算单元从全局数据存储单元读取对应区域的其他卷积核数据,完成该计算单元中缓存中卷积核的更新,并基于更新后的卷积完成与待处理矩阵A中y个数据块集的卷积,直至该计算单元PE完成其需读取的权重矩阵的区域中所有卷积核与待处理矩阵A中所有批次的数据块的卷积。
上述方法中,在每个计算单元进行执行当前卷积核与各批数据块中对应数据块的卷积时,实现了卷积核的复用。同时每个计算单元广播获得的待处理矩阵A的数据块相同,实现了多个计算单元的并行运算。
S105、对y个数据块集的运算结果进行数据拼接,生成卷积结果。
按照y个数据块集的计算顺序对每批数据块的输出结果进行拼接处理,生成卷积结果。
本实施例中,在获取待处理数据的卷积结果后,可以用于进行图像识别,语音识别等。
本申请实施例提供的卷积计算方法,用于对包含x个输入通道的待处理数据进行卷积运算,该方法中将每个输入通道的数据划分得到y个数据块,并将划分后x个输入通道相同位置的数据块组成一个数据块集,得到y个数据块集,将y个数据块集分批加载至多个卷积计算单元,多个卷积计算单元分别读取权重矩阵中不同区域的卷积核,并基于读取到的卷积核对每个数据块集进行并行卷积计算,得到每个数据块集的运算结果。
一方面,在每个数据块集的卷积运算中,该数据块集可以由多个卷积计算单元读取权重矩阵中的不同区域的卷积核并行进行卷积处理,而不需要进行该数据块集的重复读写,实现了该数据块集在权重矩阵中不同区域之间的复用,提高了待处理数据中各数据块集的复用率;
另一方面,将x个输入通道相同位置的数据块组成一个数据块集,将y个数据块集分批发送,每个卷积计算单元在完成读取到的卷积核与当前批次数据块集的卷积计算后,即可以加载下一批的数据块集,而不需要进行卷积核的重复读写操作,实现了卷积核在多批次数据块集之间的复用,提高了卷积核数据的复用率。
图3是本申请一实施例提供的确定每个卷积计算单元的卷积核读取次数的流程示意图,如图3所示,卷积计算方法还包括:
S301、根据神经网络处理器包含的卷积计算单元的个数,确定每个卷积计算单元需读取的卷积核的区域。
本实施例中,每个卷积计算单元需读取的卷积核的区域,可以为每个卷积计算单元需处理的权重矩阵的输出通道的个数。
其中,输出通道的总个数可以由权重矩阵预先得到,使得每个输出通道对应的卷积核已知。
请一并参阅图4,如图4所示,将权重矩阵B划分为nxm的矩阵块,权重矩阵B的输出通道为p,每个输出通道p对应的卷积核已知。应理解的是,实际应用中个,每个输出通道p还可以进行细分,本实施例中,为了清晰说明本方案,将每个输出通道的尺寸宽度大小设置为n。
示例性的,假设神经网络处理器包含有25个卷积计算单元,编号为B0至B24,权重矩阵中输出通道的个数为90,编号为channel0至channel99,则将输出通道进行平均划分,每个卷积计算单元的处理4个输出通道,B0号的卷积计算单元处理1、26、51、76四个卷积计算单元,B1号的卷积计算单元处理2、27、52和77号通道,即将每个卷积计算单元处理的输出通道按照卷积计算单元的个数间隔分布。
S302、根据每个卷积计算单元的数据存储能力以及需读取的卷积核的区域,确定每个卷积计算单元计算每个数据块集时的卷积核读取次数。
每个卷积计算单元的数据存储能力即为该卷积计算单元的缓存空间大小。
每个输出通道对应的卷积核已知,根据每个卷积计算单元的需读取的卷积核的区域可以确定每个卷积计算单元卷积计算中需要读取的卷积核的数据大小。
针对每个卷积计算单元,对该计算单元需要读取的卷积核的数据大小以及该卷积计算单元的缓存空间大小求商,确定每个卷积计算单元计算每批数据块的卷积核读取次数。
本实施例中,可以根据神经网络处理器包含的卷积计算单元的个数以及每个卷积计算单元的数据存储能力确定每个卷积计算单元计算每批数据块时的卷积核读取次数,进一步的可以根据卷积核读取次数确定卷积核复用或待处理数据块复用中数据复用率较高的策略,并将该策略作为优选方案。
示例性的,假设每个卷积计算单元的数据存储能力相同,确定每个卷积计算单元计算没批数据块的卷积核读取次数均为q。
请一并参数图2和图4,假设待处理数据为待处理矩阵A,权重矩阵为B,待处理矩阵A包含有x的输入通道,将每个输入通道划分为mxr的矩阵块,每个输入通道划分为y个数据块;将权重矩阵B切分为nxm的矩阵块,权重矩阵B的输出通道为p。
若采用卷积核复用策略,则根据步骤102中的说明可知,为了实现完整的卷积运算,即权重矩阵B左乘待处理矩阵A,每个计算单元中待处理矩阵A的读取次数为q与y的成绩,每次读取的数据量大小为矩阵A的一列数据块;每个计算单元卷积核的读取次数为q,每次读取的数据量大小可以为该计算单元的缓存空间大小。
若采用待处理数据块复用策略,为了实现完整的卷积运算,即权重矩阵B左乘待处理矩阵A,每个计算单元中待处理矩阵A读取次数为y,每次读取的数据量大小为矩阵A的一列数据块;每个计算单元卷积核的读取次数为q与y的成绩,每次读取的数据量大小可以为该计算单元的缓存空间大小。具体可参考图5所述实施例。
根据q,y,矩阵A的一列数据块的大小以及计算单元的缓存空间大小可以计算获得两种不同复用策略中读入数据量的大小,进而进行选择。
图5为本申请一实施例提供的对待处理数据进行划分的流程示意图,本实施例在图1实施例的基础上,对步骤102中如果得到每个数据块集的运算结果进行了示例性说明;如图5所示,多个卷积计算单元分别读取权重矩阵中不同区域的卷积核,并基于读取到的卷积核对每个数据块集进行并行卷积计算,得到每个数据块集的运算结果,包括:
S501、针对每个卷积计算单元,卷积计算单元按照预设顺序读取该卷积计算单元对应的预设区域的卷积核,并根据读取得到的卷积核计算当前数据块集的中间卷积结果;预设顺序根据该卷积计算单元的卷积读取次数确定。
卷积计算单元对应的预设区域的卷积核可以为中每个卷积计算单元需处理的权重矩阵的输出通道对应的卷积核。
本实施例中,如果卷积读取次数为1,即表示每个卷积计算单元可以在一次读取中获取将其处理的输出通道上的所有卷积核;如果卷积读取次数大于1,则表示每个卷积计算单元需要分多次读取对应的预设区域上的所有卷积核,具体地可以按照预设顺序读取,其中,预设顺序为权重矩阵中各输出通道的排布顺序。
本实施例中,若卷积读取次数为1,则可以将每个卷积计算单元处理的输出通道上的卷积核数据预先存储到该计算单元的缓存,该卷积计算单元读取本地缓存中的卷积核,并执行该卷积核与每一批数据块中所有数据块的卷积运算。通过多个卷积计算单元的并行运算实现了并行输出运算。
若卷积读取次数大于1,针对每个卷积计算单元,此时无法在通过数据块和卷积核的一次读取完成卷积运算,通过将该计算单元需要处理的输出通道上的卷积核分批次读入。即保持当前接收的数据块批次不动,直至该卷积计算单元完成本卷积计算单元对应的所有的卷积核对该批次数据块的卷积运算。
本实施例中,针对每个卷积计算单元,每批次数据块的卷积过程可以为按照x个输入通道的排布顺序依次接收每个批次的数据块,并在接收到每个数据块时进行卷积运算。
示例性,请一并参阅图2,在每一个数据块集发送中,按照从上到下的顺序依次进行发送,每个卷积计算单元每接收到一个数据块,即从缓存中读取卷积核数据,对当前的数据块进行卷积运算,得到一个中间数据,然后再对接收下一个数据块,读取对应的卷积核执行运算操作,依次类推,直至得到该计算单元对该批次数据块的卷积结果。
S502、对多个卷积计算单元的计算获得的中间卷积结果进行拼接处理,得到当前数据块集的运算结果。
按照卷积计算单元处理的区域位置,对每个卷积计算单元的卷积进行拼接处理,得到了当前批数据块的中间卷积结果。
在完成第一个数据块集的数据块卷积运算后,返回执行步骤501,直至获得y个数据块集的卷积结果。
为了更清晰的说明本实施例,下面通过图6所示的实施例进行示例性描述。图6是本申请一实施例提供的基于多个卷积单元进行矩阵乘的示意图。
待处理数据为待处理矩阵A,权重矩阵为B,卷积运算可以通过权重矩阵B左乘待处理矩阵A表示。
待处理矩阵A包含有x的输入通道,将每个输入通道划分为mxr的矩阵块,每个输入通道划分为y个数据块;将权重矩阵B切分为nxm的矩阵块,权重矩阵B的输出通道为p,卷积计算单元的个数为a,每个卷积计算单元用于处理四个输出通道,每个卷积计算单元一次只能加载一行的卷积核。并将划分后的待处理矩阵A和权重矩阵B保存在全局数据存储单元中。
将x个输入通道的每一列的数据块作为一个数据块集,则待处理矩阵A划分为y个数据块集。在进行BxA运算时,首先将待处理矩阵A的第一列数据发送至a个卷积计算单元。
执行步骤一:以第一个卷积计算单元为例,该卷积计算单元读取权重矩阵B中第一行的卷积核(对应第一输出通道),并执行该卷积核与待处理矩阵A中第一列数据(x个输入通道的第一批数据)的卷积运算,并对x个输入通道的计算结果进行累加,得到第一输出通道的卷积结果。然后该第一卷积计算单元从全局存储器中读取权重矩阵B中第1+a行的卷积核(对应第1+a输出通道),对第一卷积计算单元的本地缓存中的卷积核进行更新,然后执行当前卷积核与待处理矩阵A中第一列数据(第一个数据块集)的卷积运算,并对并对x个输入通道的计算结果进行累加,得到第1+a输出通道的卷积结果,继续从全局存储器中读取第一卷积计算单元需处理的输出通道对应的卷积核,重复该卷积核对第一批数据的卷积运算过程,直至第一卷积计算单元完成其需处理的4个输出通道对应的卷积核的卷积运算过程。即第一卷积计算单元完成当前数据块集的中间卷积结果。
执行步骤二:将a个卷积计算单元对当前数据块集的中间卷积结果进行拼接,即得到p个输出通道中当前数据块集的卷积结果。
然后,控制单元将待处理矩阵A的第二列数据发送至a个卷积计算单元,每个卷积计算重复执行步骤一,得到各卷积计算单元对当前数据块集的中间卷积结果。然后执行步骤二,得到p个输出通道中当前数据块集的卷积结果。
控制单元每下发一个数据块集,则重复执行步骤一和步骤二,直至完成y个数据块集的下发,将y个数据块集的卷积结果按照运算的先后顺序进行拼接,即得到了最终的卷积结果。
本申请实施例提供的卷积计算方法,在每个卷积计算单元接收到各数据块集时,按照预设顺序读取每个卷积计算单元对应的输出通道的卷积核,通过卷积核的多次加载,实现了每个数据块集的复用。同时每个计算单元广播获得的待处理矩阵A的数据块相同,实现了多个计算单元的并行运算。进一步地,每个计算单元可以同时处理多个输出通道,进一步加快了卷积运算的速度。
基于上述实施例所提供的卷积计算方法,本发明实施例进一步给出实现上述方法实施例的装置实施例。
图7为本申请一实施例提供的卷积计算装置的结构示意图。该卷积计算装置适用于一种神经网络处理器,神经网络处理器包括多个卷积计算单元,多个卷积计算单元并行处理用于进行待处理数据的加速计算,待处理数据包含x个输入通道。如图7所示,卷积计算装置70包括划分模块701、组合模块702、发送模块703、计算模块704以及拼接模块705。其中:
划分模块701,用于将x个输入通道中每个输入通道的数据划分为y个数据块。
组合模块702,用于将划分后的x个输入通道的相同位置的数据块组成一个数据块集,生成y个数据块集。
发送模块703,用于将y个数据块集分批发送至所述多个卷积计算单元;
计算模块704,用于通过多个卷积计算单元分别读取权重矩阵中不同区域的卷积核,并基于读取到的卷积核对每个数据块集进行并行卷积计算,得到每个数据块集的运算结果;
拼接模块705,用于对y个数据块集的运算结果进行数据拼接,生成卷积结果。
在一种实施方式中,划分模块701,具体用于:
将每个输入通道的数据划分为y个大小相同的数据块;其中,每个数据块的长度方向包含的数据个数与每个卷积计算单元的乘累加器个数相同。
发送模块703,具体用于:
针对每个数据块集,按照所述x个输入通道的排布顺序依次将所述数据块集中的x个数据块发送至所述多个卷积计算单元。
计算模块704,具体用于:
针对每个卷积计算单元,卷积计算单元按照预设顺序读取该卷积计算单元对应的预设区域的卷积核,并根据读取得到的卷积核计算当前数据块集的中间卷积结果;预设顺序根据卷积计算单元的卷积读取次数确定;
对多个卷积计算单元的计算获得的中间卷积结果进行拼接处理,得到当前数据块集的运算结果。
拼接模块705,具体用于按照所述y个数据块集的运算顺序进行拼接处理,生成卷积结果。
本申请实施例提供的卷积计算装置,用于对包含x个输入通道的待处理数据进行卷积运算,该方法中将每个输入通道的数据划分得到y个数据块,并将划分后x个输入通道相同位置的数据块组成一个数据块集,得到y个数据块集,将y个数据块集分批加载至多个卷积计算单元,多个卷积计算单元分别读取权重矩阵中不同区域的卷积核,并基于读取到的卷积核对每个数据块集进行并行卷积计算,得到每个数据块集的运算结果。
一方面,在每个数据块集的卷积运算中,该数据块集可以由多个卷积计算单元读取权重矩阵中的不同区域的卷积核并行进行卷积处理,而不需要进行该数据块集的重复读写,实现了该数据块集在权重矩阵中不同区域之间的复用,提高了待处理数据中各数据块集的复用率;
另一方面,将x个输入通道相同位置的数据块组成一个数据块集,将y个数据块集分批发送,每个卷积计算单元在完成读取到的卷积核与当前批次数据块集的卷积计算后,即可以加载下一批的数据块集,而不需要进行卷积核的重复读写操作,实现了卷积核在多批次数据块集之间的复用,提高了卷积核数据的复用率。
图8为本申请另一实施例提供的卷积计算装置的结构示意图。神经网络处理器还包括全局数据存储单元。如图8所示,卷积计算装置70还包括确定模块706和存储模块707,其中,
确定模块706,用于根据神经网络处理器包含的卷积计算单元的个数,确定每个卷积计算单元需读取的卷积核的区域;根据每个卷积计算单元的数据存储能力以及需读取的卷积核的区域,确定每个卷积计算单元计算所述每个数据块集的卷积核读取次数。
存储模块707,用于将划分后的x个输入通道的待处理数据保存至全局数据存储单元。
图7和图8所示实施例提供的卷积计算装置,可用于执行上述方法实施例中的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述***中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
图9是本申请一实施例提供的卷积计算设备的示意图。如图9所示,该实施例的卷积计算设备90包括:至少一个处理器901、存储器902以及存储在所述存储器902中并可在所述处理器901上运行的计算机程序。卷积计算设备还可以包括通信部件903。
处理器901执行所述计算机程序时实现上述各个卷积计算方法实施例中的步骤,例如图1所示实施例中的步骤S101至步骤S105。或者,处理器901执行计算机程序时实现上述各装置实施例中各模块/单元的功能,例如图7所示模块701至705的功能。
示例性的,计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器902中,并由处理器901执行,以完成本申请。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在所述卷积计算设备90中的执行过程。
本领域技术人员可以理解,图9仅仅是卷积计算设备的示例,并不构成对卷积计算设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如输入输出设备、网络接入设备、总线等。
所称处理器901可以是数字信号处理器(Digital Signal Processor,DSP)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
存储器902可以是卷积计算设备的内部存储单元,也可以是卷积计算设备的外部存储设备。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时实现可实现上述各个方法实施例中的步骤。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种卷积计算方法,其特征在于,适用于一种神经网络处理器,所述神经网络处理器包括多个卷积计算单元,待处理数据包含x个输入通道;
所述方法包括:
将所述x个输入通道中每个输入通道的数据划分为y个数据块;
将划分后的x个输入通道的相同位置的数据块组成一个数据块集,生成y个数据块集;
将所述y个数据块集分批发送至所述多个卷积计算单元;
所述多个卷积计算单元分别读取权重矩阵中不同区域的卷积核,并基于读取到的卷积核对每个数据块集进行并行卷积计算,得到每个数据块集的运算结果;
对所述y个数据块集的运算结果进行数据拼接,生成卷积结果。
2.如权利要求1所述的卷积计算方法,其特征在于,所述将所述x个输入通道中每个输入通道的数据划分为y个数据块,包括:
将每个输入通道的数据划分为y个大小相同的数据块;其中,每个数据块的长度方向包含的数据个数与每个卷积计算单元的乘累加器个数相同。
3.如权利要求1所述的卷积计算方法,其特征在于,所述方法还包括:
根据所述神经网络处理器包含的卷积计算单元的个数,确定每个卷积计算单元需读取的卷积核的区域;
根据每个卷积计算单元的数据存储能力以及需读取的卷积核的区域,确定每个卷积计算单元计算所述每个数据块集的卷积核读取次数。
4.如权利要求3所述的卷积计算方法,其特征在于,所述多个卷积计算单元分别读取权重矩阵中不同区域的卷积核,并基于读取到的卷积核对每个数据块集进行并行卷积计算,得到每个数据块集的运算结果,包括:
针对每个卷积计算单元,所述卷积计算单元按照预设顺序读取该卷积计算单元对应的预设区域的卷积核,并根据读取得到的卷积核计算当前数据块集的中间卷积结果;所述预设顺序根据所述卷积计算单元的卷积读取次数确定;
对所述多个卷积计算单元的计算获得的中间卷积结果进行拼接处理,得到当前数据块集的运算结果。
5.如权利要求1所述的卷积计算方法,其特征在于,所述将所述y个数据块集分批发送至所述多个卷积计算单元,包括:
针对每个数据块集,按照所述x个输入通道的排布顺序依次将所述数据块集中的x个数据块发送至所述多个卷积计算单元。
6.如权利要求1所述的卷积计算方法,其特征在于,所述对所述y个数据块集的运算结果进行数据拼接,生成卷积结果,包括:
按照所述y个数据块集的运算顺序进行拼接处理,生成卷积结果。
7.如权利要求1所述的卷积计算方法,其特征在于,所述神经网络处理器还包括全局数据存储单元;
所述方法还包括:
将划分后的x个输入通道的待处理数据保存至所述全局数据存储单元。
8.一种卷积计算装置,其特征在于,适用于一种神经网络处理器,所述神经网络处理器包括多个卷积计算单元,待处理数据包含x个输入通道;
所述装置包括:
划分模块,用于将所述x个输入通道中每个输入通道的数据划分为y个数据块;
组合模块,用于将划分后的x个输入通道的相同位置的数据块组成一个数据块集,生成y个数据块集;
发送模块,用于将所述y个数据块集分批发送至所述多个卷积计算单元;
计算模块,用于通过所述多个卷积计算单元分别读取权重矩阵中不同区域的卷积核,并基于读取到的卷积核对每个数据块集进行并行卷积计算,得到每个数据块集的运算结果;
拼接模块,用于对所述y个数据块集的运算结果进行数据拼接,生成卷积结果。
9.一种卷积计算设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911425674.5A CN111199273B (zh) | 2019-12-31 | 2019-12-31 | 卷积计算方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911425674.5A CN111199273B (zh) | 2019-12-31 | 2019-12-31 | 卷积计算方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111199273A CN111199273A (zh) | 2020-05-26 |
CN111199273B true CN111199273B (zh) | 2024-03-26 |
Family
ID=70746525
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911425674.5A Active CN111199273B (zh) | 2019-12-31 | 2019-12-31 | 卷积计算方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111199273B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111767243A (zh) * | 2020-06-09 | 2020-10-13 | 上海寒武纪信息科技有限公司 | 数据处理方法、相关设备及计算机可读介质 |
CN111898081B (zh) * | 2020-07-09 | 2024-02-27 | 上海兆芯集成电路股份有限公司 | 卷积运算方法及卷积运算装置 |
CN111857999B (zh) * | 2020-07-10 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种数据调度方法、装置、设备及计算机可读存储介质 |
CN114065905A (zh) * | 2020-08-07 | 2022-02-18 | 深圳先进技术研究院 | 数据批处理方法及其批处理装置、存储介质和计算机设备 |
CN111950713A (zh) * | 2020-08-23 | 2020-11-17 | 云知声智能科技股份有限公司 | 提升通道随机混合操作运行速度的方法及装置 |
CN112085167A (zh) * | 2020-09-11 | 2020-12-15 | 中国航空工业集团公司雷华电子技术研究所 | 一种卷积处理方法、装置及多核dsp平台、可读存储介质 |
CN111932437B (zh) * | 2020-10-10 | 2021-03-05 | 深圳云天励飞技术股份有限公司 | 图像处理方法、装置、电子设备及计算机可读存储介质 |
CN113094118B (zh) * | 2021-04-26 | 2023-05-30 | 深圳思谋信息科技有限公司 | 数据处理***、方法、装置、计算机设备和存储介质 |
CN113543045B (zh) * | 2021-05-28 | 2022-04-26 | 平头哥(上海)半导体技术有限公司 | 处理单元、相关装置和张量运算方法 |
CN113706366B (zh) * | 2021-07-30 | 2024-02-27 | 浪潮电子信息产业股份有限公司 | 一种图像特征数据的提取方法、***及相关装置 |
CN113449852B (zh) * | 2021-08-05 | 2023-02-03 | 安谋科技(中国)有限公司 | 卷积神经网络的计算方法、片上***和电子设备 |
CN113870091A (zh) * | 2021-08-27 | 2021-12-31 | 深圳云天励飞技术股份有限公司 | 卷积计算方法、***、设备及存储介质 |
CN114528526B (zh) * | 2022-04-24 | 2022-08-02 | 深圳思谋信息科技有限公司 | 卷积数据处理方法、装置、卷积运算加速器和存储介质 |
CN115952388B (zh) * | 2023-03-13 | 2023-05-30 | 南京砺算科技有限公司 | 基于图像数据处理的卷积运算方法、装置、处理器及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107832841A (zh) * | 2017-11-14 | 2018-03-23 | 福州瑞芯微电子股份有限公司 | 一种神经网络芯片的功耗优化方法及电路 |
CN108241890A (zh) * | 2018-01-29 | 2018-07-03 | 清华大学 | 一种可重构神经网络加速方法及架构 |
CN108573305A (zh) * | 2017-03-15 | 2018-09-25 | 杭州海康威视数字技术股份有限公司 | 一种数据处理方法、设备及装置 |
CN109754062A (zh) * | 2017-11-07 | 2019-05-14 | 上海寒武纪信息科技有限公司 | 卷积扩展指令的执行方法以及相关产品 |
CN110210610A (zh) * | 2018-03-27 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 卷积计算加速器、卷积计算方法及卷积计算设备 |
-
2019
- 2019-12-31 CN CN201911425674.5A patent/CN111199273B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108573305A (zh) * | 2017-03-15 | 2018-09-25 | 杭州海康威视数字技术股份有限公司 | 一种数据处理方法、设备及装置 |
CN109754062A (zh) * | 2017-11-07 | 2019-05-14 | 上海寒武纪信息科技有限公司 | 卷积扩展指令的执行方法以及相关产品 |
CN107832841A (zh) * | 2017-11-14 | 2018-03-23 | 福州瑞芯微电子股份有限公司 | 一种神经网络芯片的功耗优化方法及电路 |
CN108241890A (zh) * | 2018-01-29 | 2018-07-03 | 清华大学 | 一种可重构神经网络加速方法及架构 |
CN110210610A (zh) * | 2018-03-27 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 卷积计算加速器、卷积计算方法及卷积计算设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111199273A (zh) | 2020-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111199273B (zh) | 卷积计算方法、装置、设备及存储介质 | |
US20220012593A1 (en) | Neural network accelerator and neural network acceleration method based on structured pruning and low-bit quantization | |
US11960566B1 (en) | Reducing computations for data including padding | |
CN111242277B (zh) | 一种基于fpga设计的支持稀疏剪枝的卷积神经网络加速器 | |
CN109409511B (zh) | 一种用于动态可重构阵列的卷积运算数据流调度方法 | |
CN110210610B (zh) | 卷积计算加速器、卷积计算方法及卷积计算设备 | |
CN111931918B (zh) | 神经网络加速器 | |
US11210586B1 (en) | Weight value decoder of neural network inference circuit | |
CN106846235B (zh) | 一种利用NVIDIA Kepler GPU汇编指令加速的卷积优化方法及*** | |
CN104077233A (zh) | 单通道卷积层及多通道卷积层处理方法和装置 | |
EP2799989A2 (en) | Apparatus and method of parallel processing execution | |
US20200134435A1 (en) | Computation apparatus, circuit and relevant method for neural network | |
CN112199636B (zh) | 适用于微处理器的快速卷积方法及装置 | |
EP4071619A1 (en) | Address generation method, related device and storage medium | |
CN112668708A (zh) | 一种提高数据利用率的卷积运算装置 | |
CN111523652A (zh) | 处理器及其数据处理方法、摄像装置 | |
US20210201122A1 (en) | Data processing methods, apparatuses, devices, storage media and program products | |
US11640444B2 (en) | Device and method for accelerating matrix multiply operations | |
US11568227B1 (en) | Neural network inference circuit read controller with multiple operational modes | |
CN111210004B (zh) | 卷积计算方法、卷积计算装置及终端设备 | |
US20220253668A1 (en) | Data processing method and device, storage medium and electronic device | |
CN114764615A (zh) | 卷积运算的实现方法、数据处理方法及装置 | |
CN110490308B (zh) | 加速库的设计方法、终端设备及存储介质 | |
CN110414672B (zh) | 卷积运算方法、装置及*** | |
US10902087B2 (en) | Device and method for accelerating matrix multiply operations as a sum of outer products |
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 |