CN110705687B - 卷积神经网络硬件计算装置及方法 - Google Patents
卷积神经网络硬件计算装置及方法 Download PDFInfo
- Publication number
- CN110705687B CN110705687B CN201910835944.3A CN201910835944A CN110705687B CN 110705687 B CN110705687 B CN 110705687B CN 201910835944 A CN201910835944 A CN 201910835944A CN 110705687 B CN110705687 B CN 110705687B
- Authority
- CN
- China
- Prior art keywords
- convolution
- input
- windows
- channel
- rows
- 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
- 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)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
Abstract
本发明涉及一种卷积神经网络硬件计算装置及方法,用于实现高效的卷积计算。所述装置包括:卷积窗提取电路,用于加载输入特征图数据以及提取卷积窗;以及处理元件阵列,用于对从卷积窗提取电路接收的卷积窗与对应的权重核进行乘累加运算。卷积窗提取电路包括C个提取单元,用于并行加载和提取C个输入通道。处理元件阵列具有M行×N列个处理元件。处理元件阵列的每一列处理一个输出通道。处理元件阵列同一列的M个处理元件并行处理M个C通道K×K卷积窗。
Description
技术领域
本发明涉及卷积神经网络的加速计算领域,具体涉及卷积神经网络硬件计算装置及方法。
背景技术
人工智能技术近来得到广泛的发展和应用,各种神经网络技术的研究和应用成为技术热点。例如,在自动驾驶技术中,深度神经网络(DNN)或卷积神经网络(CNN)广泛应用于车辆、行人、交通灯检测等感知计算。卷积计算约占DNN或CNN中90%的计算复杂度,因此,设计高效的卷积计算方案成为神经网络技术的重要研究领域。
发明内容
本发明涉及一种卷积神经网络硬件计算装置及方法,用于实现高效的卷积计算。
根据本发明的一方面,提供了一种卷积神经网络硬件计算装置,包括:卷积窗提取电路,用于加载输入特征图数据以及提取卷积窗;以及处理元件阵列,用于对从所述卷积窗提取电路接收的卷积窗与对应的权重核进行乘累加运算。其中,所述卷积窗提取电路包括C个提取单元,用于并行加载和提取C个输入通道,C≥1,每个提取单元每个时钟周期提取一个输入通道的M个K×K卷积窗以输出给所述处理元件阵列,同一时钟周期提取的M个K×K卷积窗对应所述一个输入通道的输入特征图的相同K列沿列方向以纵向滑动步长S1滑动的M个K×K位置,其中M≥1,K为卷积窗尺寸。所述处理元件阵列具有M行×N列个处理元件,其中,N为输出通道数。所述处理元件阵列的每一列处理一个输出通道。所述处理元件阵列同一列的M个处理元件并行处理M个C通道K×K卷积窗,每个处理元件并行处理由所述C个输入通道的各一个卷积窗组成的C个卷积窗,且每个处理元件并行处理的C个卷积窗对应所述C个输入通道的输入特征图的相同K×K大小的位置。
根据本发明的另一方面,提供了一种一种卷积神经网络硬件计算方法,包括:由处理元件阵列接收N个C路K×K权重核,其中N为输出通道数,C为卷积窗提取电路每个时钟周期提取的输入通道数,C≥1,K为卷积窗尺寸;由所述处理元件阵列接收所述卷积窗提取电路提取的M个C通道K×K卷积窗;以及由所述处理元件阵列的M行×N列个处理元件对从所述卷积窗提取电路接收的卷积窗与对应的权重核进行乘累加运算。其中,所述卷积窗提取电路包括C个提取单元,用于并行加载和提取C个输入通道,C≥1,每个提取单元每个时钟周期提取一个输入通道的M个K×K卷积窗以输出给所述处理元件阵列,同一时钟周期提取的M个K×K卷积窗对应所述一个输入通道的输入特征图的相同K列沿列方向以纵向滑动步长S1滑动的M个K×K位置,其中M≥1,所述处理元件阵列的每一列处理一个输出通道,以及所述处理元件阵列同一列的M个处理元件并行处理M个C通道K×K卷积窗,每个处理元件并行处理由所述C个输入通道的各一个卷积窗组成的C个卷积窗,且每个处理元件并行处理的C个卷积窗对应所述C个输入通道的输入特征图的相同K×K大小的位置。
根据本发明的上述方面,可以实现并行计算,减少计算时间,并且可以充分利用数据复用和权重复用,避免在计算中从存储器频繁读取数据,减少存储带宽需要,降低计算延迟。
可选的,所述处理元件阵列的每个处理元件包括乘加树、FIFO存储器以及加法器;所述乘加树用于将每个时钟周期输入的C个输入通道的C个卷积窗与对应的权重核进行点乘;以及所述FIFO存储器用于与所述加法器一起将所有输入通道的输入特征图的相同位置的点乘结果进行累加。
根据该实施例,通过在处理元件PE中引入FIFO存储器,避免中间卷积结果存储到缓冲器,减少了存储通道的占用和额外的延迟。
可选的,所述卷积窗提取电路的提取单元为寄存器单元;每个寄存器单元具有B行用于寄存一个输入通道的B行输入特征图数据,B=K+S1×(M-1);并且每个寄存器单元在每个时钟周期中基于寄存的B行K列输入特征图数据提取M个卷积窗以分别输出至所述处理元件阵列的M行处理元件。
根据该实施例,即将提取的卷积窗数据可以预先寄存在寄存器单元中,从而可以节约在卷积计算过程中加载数据所需要的时间。
进一步可选的,每个寄存器单元在每个时钟周期中在行方向上提取第一侧K列的输入特征图数据,并在完成一个时钟周期的卷积窗提取后在行方向上向第一侧移动S2列,S2为横向滑动步长。
根据该实施例,对寄存器单元因移位而空余的位置加载新的输入数据可以与寄存器单元提取卷积窗并行进行,从而可以节省额外的加载时间。
附图说明
通过下面结合附图对实施例的描述,本发明的这些和/或其他方面、特征和优点将变得更加清楚和容易理解,其中:
图1示出卷积神经网络中卷积计算的基本原理的示例示意图;
图2示出根据本发明实施例的卷积神经网络硬件计算装置的示意图;
图3示出根据本发明另一实施例的卷积神经网络硬件计算装置的示意图;
图4示出根据本发明实施例的一列处理元件的计算示例示意图;
图5示出根据本发明实施例的处理元件的结构示意图;
图6示出根据本发明另一实施例的处理元件的结构示意图;
图7示出根据本发明实施例的提取单元提取卷积窗的示例示意图;
图8示出根据本发明另一实施例的提取单元提取卷积窗的示例示意图;
图9示出根据本发明实施例的卷积窗提取电路的寄存器单元的示意图;
图10示出根据本发明另一实施例的卷积窗提取电路的寄存器单元的示意图;
图11示出根据本发明实施例的卷积神经网络硬件计算方法的流程图。
具体实施方式
下面将参考本发明的示例性实施例对本发明进行详细描述。然而,本发明不限于这里所描述的实施例,其可以以许多不同的形式来实施。所描述的实施例仅用于使本公开彻底和完整,并全面地向本领域的技术人员传递本发明的构思。所描述的各个实施例的特征可以互相组合或替换,除非明确排除或根据上下文应当排除。
卷积计算是卷积神经网络(CNN)的核心计算内容。本发明所称的CNN包括采用卷积计算的DNN。卷积神经网络中的卷积计算是将输入特征图与权重核进行卷积计算以得到输出特征图。下面参照图1说明卷积神经网络中卷积计算的基本原理的示例。在图1的示例中,左侧为各个输入通道的输入特征图,中间为用于卷积的权重核,左侧为各个输出通道的输入特征图。在示例中,输入通道数为c_i,图中在竖向上显示出第1输入通道至第c_i个输入通道的输入特征图。每个输入通道的输入特征图的尺寸为w_i×h_i,其中w_i为宽度,即列数,h_i为高度,即行数。在具有c_i个输入通道的情况下,权重核同样具有c_i个通道,每个权重通道对应一个输入通道,即用于与一个输入通道的输入特征图进行卷积计算。此外,用于卷积计算的权重核可以有多个,以产生多个输出通道。图1的中间示例地示出了N个权重核,分别标记为第1权重核至第N权重核(第1权重核用实线表示,第N权重核用虚线表示),每个权重核具有c_i个通道以与c_i个输入通道对应,每个权重通道是K×K的矩阵。对于第1权重核,位于第1输入通道的输入特征图左侧的标记为“第1权重核”的K×K矩阵(实线矩阵)为第1权重核用于与第1输入通道的特征图进行卷积计算的权重通道,位于第c_i输入通道的输入特征图右侧的标记为“第1权重核”的K×K矩阵(实线矩阵)为第1权重核用于与第c_i输入通道的特征图进行卷积计算的权重通道。对于第N权重核,位于第1输入通道的输入特征图左侧的标记为“第N权重核”的K×K矩阵(虚线矩阵)为第N权重核用于与第1输入通道的特征图进行卷积计算的权重通道,位于第c_i输入通道的输入特征图右侧的标记为“第N权重核”的K×K矩阵(虚线矩阵)为第N权重核用于与第c_i输入通道的特征图进行卷积计算的权重通道。在卷积计算中,一个权重核的每个通道与一个输入通道的输入特征图进行滑动点乘,并将所有输入通道相同位置的点乘结果相加,以获得一个输出通道的输出特征图。对N个卷积核分别计算后即可得到N个输出通道的输出特征图。例如,在图1的示例中,第1个输出通道的输出特征图的左上角的点(图中用加粗的方框示出)的值可以如下获得:将第1权重核对应于第1输入通道的K×K矩阵(图1中最上侧的K×K矩阵)与第1个输出通道的输入特征图的左上角的K×K卷积窗进行点乘;将第1权重核对应于第2输入通道的K×K矩阵与第2个输出通道的输入特征图的左上角的K×K卷积窗进行点乘;以此方式对所有输入通道的对应位置的卷积窗进行点乘,并将上所有输入通道的点乘结果相加而得到第1输出通道的输出特征图的左上角的点的值。对于第1输出通道的输出特征图的第1行的左侧第2个点(即紧挨在图中用加粗的方框示出的左上角的点右侧的点)的计算,将输入特征图上的K×K卷积窗相对于计算左上角的点的位置在行方向上向右滑动S2位,S2为横向滑动步长,S2的取值可以为1、2等,并将各输入通道的移动后的卷积窗与第1权重核的对应通道的K×K矩阵进行点乘,继而将点乘结果相加即可。对于第1输出通道的输出特征图的第1列上侧第2个点(即紧挨在图中用加粗的方框示出的左上角的点下方的点)的计算,将输入特征图上的K×K卷积窗相对于计算左上角的点的位置在列方向上向下滑动S1位,S1为纵向滑动步长,S1的取值可以为1、2等,并将各输入通道的移动后的卷积窗与第1权重核的对应通道的K×K矩阵进行点乘,继而将点乘结果相加即可。由此通过滑动卷积窗对输入特征图中的所有位置都进行计算后则可以得到对应于第1权重核的第1输出通道的输出特征图,即图1中右侧上方的输出特征图。输出特征图的尺寸为w_o×h_o,其中w_o为输出特征图的宽度,h_o为输出特征图的高度。通过对所有N个卷积核进行上述计算,则可以得到N个输出通道的输出特征图。
在卷积神经网络的计算中,卷积计算占据绝大多数的计算复杂度,不仅计算量巨大,而且对存储带宽敏感。此外,卷积窗提取对内存不友好,需要进行非连续物理地址的访问,访存颠簸带来低效率高延迟,例如,在Caffe深度学习框架中,使用Blob存储和传输数据,在4D Blob中,卷积窗中的数据存储在不连续的物理地址中,因此,在卷积计算中需要访问不连续的物理地址位置,产生访存性能损失。针对卷积神经网络计算中的上述一个或多个问题,本发明提出基于硬件的高效卷积计算装置和方法。
图2示出了根据本发明实施例的卷积神经网络硬件计算装置200的示意图。卷积神经网络硬件计算装置200包括卷积窗提取电路201,用于加载输入特征图数据以及提取卷积窗;以及处理元件阵列202,用于对从所述卷积窗提取电路201接收的卷积窗与对应的权重核进行乘累加运算。根据本发明的卷积神经网络硬件计算装置200的整体或各个部件可以采用各种硬件技术实现,例如,FPGA(现场可编程门阵列),或者专用芯片ASIC(专用集成电路)或SoC(片上系统)。
卷积窗提取电路201可以从存储输入特征图数据的存储器中加载输入特征图数据,并从加载的输入特征图数据提取卷积窗输出至处理元件(PE)阵列202。处理元件阵列202可以从存储权重核的存储器接收用于与卷积窗进行卷积运算的权重核。上述存储输入特征图的存储器例如可以是DDR存储器或特征图缓冲器;存储权重核的存储器例如可以是DDR存储器或权重缓冲器。
图3示出了根据本发明实施例的包括特征图缓冲器303和权重缓冲器304的卷积神经网络硬件计算装置300的示意图。图3中的卷积神经网络硬件计算装置300除了具有分别与卷积窗提取电路201和处理元件阵列202对应的卷积窗提取电路301和处理元件阵列302,还包括用于缓存输入特征图数据的特征图缓冲器303和用于缓存权重核的权重缓冲器304。由于缓冲器的读取逻辑更简单,从而可以提高读取输入特征图数据和权重核的速度,以实现高效的卷积计算。需要说明的是,在本发明的实施例中,图3中的特征图缓冲器303和权重缓冲器304两者可以仅具有一个,即可以仅包括特征图缓冲器303或权重缓冲器304。
下面基于图2具体说明根据本发明实施例的卷积神经网络硬件计算装置200,除另有说明外,基于图2的说明同样适用于图3的卷积神经网络硬件计算装置300。
如图2所示,卷积窗提取电路201包括C个提取单元,用于并行加载和提取C个输入通道,C≥1,例如C≥2。每个提取单元每个时钟周期提取一个输入通道的M个K×K卷积窗以输出给处理元件阵列202。同一时钟周期提取的M个K×K卷积窗对应所述一个输入通道的输入特征图的相同K列沿列方向以纵向滑动步长S1滑动的M个K×K位置,其中M≥1,例如M≥2,K为卷积窗尺寸。相应地,图3中的特征图缓冲器303可以包括C个缓冲单元,每个缓冲单元用于缓存一个输入通道的输入特征图以向卷积窗提取电路301的一个提取单元提供输入特征图数据。特征图缓冲器303例如可以是SRAM缓冲器等缓冲存储器。在图3的实施例中,C个缓冲单元可以并行地向C个提取单元加载输入特征图数据,从而可以提高整体运算效率。
处理元件阵列202具有M行×N列个处理元件,其中,N为输出通道数。处理元件阵列202的每一列处理一个输出通道。处理元件阵列202的同一列的M个处理元件并行处理M个C通道K×K卷积窗,每个处理元件并行处理由所述C个输入通道的各一个卷积窗组成的C个卷积窗,且每个处理元件并行处理的C个卷积窗对应所述C个输入通道的输入特征图的相同K×K大小的位置。在本发明中,C通道K×K卷积窗对应所述C个输入通道的输入特征图的相同K×K大小的位置的C*K*K的元素。
在根据本发明实施例的卷积神经网络硬件计算装置200中,处理元件阵列202同一个列上的M个处理元件可以共享相同的权重核,处理相同输入通道的不同卷积窗;同一行上的N个处理元件可以共享相同的卷积窗,处理对应不同输出通道的不同权重核。因此,处理元件阵列202的N列可以并行计算N个权重核以得到N个输出通道的输出特征图。存储权重核的存储器(例如权重缓冲器304)可以将用于N个输出通道的N个权重核分别发送到对应的PE列用于每一个PE列计算一个输出通道的特征图。由于各个PE列的计算过程是类似的,下面参照图4示例地说明根据本发明实施例的卷积神经网络硬件计算装置200的一个PE列的计算过程。
在图4的示例中,卷积窗提取电路201具有的提取单元数C为2,即卷积窗提取电路201每个时钟周期提取和输出给处理元件阵列202的输入通道数为2;每个输入通道在一个时钟周期中提取的卷积窗数M为3;卷积窗的尺寸为K×K=3×3,纵向滑动步长S1为1。图4示出了第1输入通道和第2输出通道的输入特征图。对于第1输入通道的输入特征图,在一个时钟周期中,对左侧3列数据从上之下提取3个卷积窗M11至M13,每个卷积窗在列方向上的间隔为纵向滑动步长S1,即,这3个卷积窗对应于第1输入通道的输入特征图的相同K列沿列方向以纵向滑动步长S1滑动的M个K×K位置。卷积窗M11至M13分别提供给该PE列的处理元件PE1至PE3。类似地,对于第2输入通道2,同样提取3个卷积窗M21至M23分别提供给PE1至PE3。并且,PE1至PE3接收到第1通道和第2通道的各个卷积窗之后,分别将所接收的卷积窗与对应的权重核进行点乘。例如,PE1将M11和M21与W1和W2进行点乘,即,PE1将M11和M21的所有元素与W1和W2的所有元素对应相乘,并将所有元素的相乘结果相加,即得到M11和M21与W1和W2的点乘结果。类似地,PE2将M12和M22与W1和W2进行点乘,PE3将M13和M23与W1和W2进行点乘。
由此可见,根据本发明的实施例,处理元件阵列202同一列的M个处理元件并行处理M个C通道K×K卷积窗,在图4的示例中,并行处理3×2个卷积窗。每个处理元件并行处理由所述C个输入通道的各一个卷积窗组成的C个卷积窗,在图4的示例中,PE1并行处理2个输入通道的M11和M21两个卷积窗,PE2并行处理2个输入通道的M12和M22两个卷积窗,PE3并行处理2个输入通道的M13和M23两个卷积窗。每个处理元件并行处理的C个卷积窗对应所述C个输入通道的输入特征图的相同K×K大小的位置,在图4的示例中,PE1并行处理的M11和M21两个卷积窗对应于第1输入通道和第2输入通道的第0-2行、第0-2列的3×3位置,PE2并行处理的M12和M23两个卷积窗对应于第1输入通道的和第2输入通道的第1-3行、第0-2列的3×3位置,PE3并行处理的M13和M23两个卷积窗对应于第1输入通道的和第2输入通道的第2-4行、第0-2列的3×3位置。
对于其它列的PE,可以进行上述相同的计算,仅将权重核替换为对应于其它输入通道的权重核即可,由此可以并行计算N个输出通道。
根据本发明的上述实施例,一方面可以实现并行计算,减少计算时间,另一方面可以充分利用数据复用和权重复用,避免在计算中从存储器频繁读取数据,减少存储带宽需要,降低计算延迟。例如,对于输入特征数据,在M≥2的情况下,每个时钟周期并行输入M个卷积窗,这些卷积窗间的重叠行可复用,无需多次从存储器读入;此外,采用N列PE阵列并行计算N个不同通道的输出特征图,可以避免对同一卷积窗多次提取,从而可以减少存储器的读取次数。对于权重核,由于M行PE阵列可以并行计算输出特征图的M个点,因此,可以减少权重核的读取次数。
图5示出了根据本发明实施例的处理元件PE 500的结构示意图。在本实施例中,处理元件PE500包括乘加树501、FIFO存储器502以及加法器503。乘加树501用于将每个时钟周期输入的C个输入通道的C个卷积窗与对应权重核进行点乘,即将所有C个卷积窗的所有元素值与对应权重核的所有元素值对应相乘,并将所有元素的相乘结果相加。FIFO存储器502用于与加法器503一起将所有c_i个输入通道的输入特征图的相同位置的点乘结果进行累加。例如,当乘加树501完成起初C个通道的点乘运算后,将结果压入FIFO存储器502,当下C个通道相同位置的点乘运算完成后,从FIFO存储器502中压出之前该位置的点乘结果,通过加法器503将从FIFO存储器502中压出的值与当前点乘结果累加,并将累加结果压入FIFO存储器502。重复上述过程,直到遍历所有c_i个输入通道,最后累加的结果即为输出特征图相应位置的值。
根据本实施例,通过在处理元件PE中引入FIFO存储器,避免中间卷积结果存储到缓冲器,减少了存储通道的占用和额外的延迟。在本发明的实施例中,无需将每个输入通道的点乘结果存储到缓冲器中,再从缓冲器中读取这些点乘结果进行累加,而是可以利用FIFO存储器502暂存累加结果,在计算输出特征图的各个位置的值过程中都不需要将中间结果存储到缓冲器,因而节约了缓冲器,并节约了对缓冲器写入和读出的时钟周期。
进一步,根据本发明的另一实施例,处理元件PE还可以包括但不限于定点处理单元用于定标值调整和溢出处理等、激活层计算单元用于激活层计算、和/或BN层计算单元用于BN层计算。图6示出了根据本发明实施例的处理元件PE 600的结构示意图。如图6所示,处理元件PE 600除了具有分别对应于乘加树501、FIFO存储器502和加法器503的乘加树601、FIFO存储器602和加法器603,还包括定点处理单元604、激活层计算单元605、BN层计算单元606以及选择器607。如上所述,当完成所有输入通道的点乘累加之后,可以得到卷积层的输出特征图相应位置的值。在卷积神经网络中,对卷积层的输出特征图还可以进行定标值调整和溢出处理、激活层处理和/或BN(批量归一化)层处理,定点处理单元604、激活层计算单元605和BN层计算单元606分别用于定点化计算、激活层的相应计算和BN层的相应计算。定点处理单元604、激活层计算单元605和BN层计算单元606仅在卷积层的最终累加结果算出后才进行相应的计算,例如,仅在卷积层的最终累加结果算出后加法器603的结果才送入上述单元,或者虽然加法器603的结果一直被送入上述单元,但仅在卷积层的最终累加结果算出后上述单元在进行相应计算。选择器607用于仅在卷积层的最终累加结果算出后,才选择将经定点处理单元604、激活层计算单元605和/或BN层计算单元606处理的结果压入FIFO存储器602。根据本实施例,可以避免将在进行激活层和/或BN层的计算之前将卷积结果存入缓冲器,从而可以避免在进行激活层和/或BN层的计算时再读取缓冲器,节约了总体计算时间。在本发明的实施例中,定点处理单元的处理、激活层和/或BN层的计算可以采用任何现有或将来开发的合适计算或处理方法。
如上所述,根据本发明的实施例,每列PE可以并行计算C个输入通道以及每个输入通道的输入特征图行方向上的M个卷积窗。在完成了输入特征图列方向上M个卷积窗的计算后,根据一个实施例,可以在行方向上滑动卷积窗,以计算下M个卷积窗,直至对应行的所有列都完成计算。通常情况下,总输入通道数c_i可以大于C,输入特征图的总行数h_i在列方向上对应的总卷积窗数也可以大于M。在此情况下,在完成C个输入通道的各M个卷积窗对应行的计算之后需要考虑进一步的卷积窗提取方案。根据本发明的实施例,可以采用以下两种方案。
在第一方案中,卷积窗提取电路的每个提取单元在将当前输入通道的所有卷积窗提取完后再进行下个输入通道的卷积窗提取。在该方案中,每个提取单元优先提取同一输入通道的所有输入数据,在一个输入通道的所有数据都提取完成后再切换到下一个输入通道的数据的提取。从卷积窗提取电路整体的角度,卷积窗提取电路在提取完C个输入通道的所有数据后,再进入下C个输入通道的数据的提取,每个提取单元提取的下一个输入通道是下C个输入通道之一。
图7示出了根据本发明实施例的提取单元根据第一方案提取卷积窗的示例示意图。在图7的示例中,一个输入通道的输入特征图具有w_i列和h_i行,卷积窗尺寸K=3,滑动步长S1=1、S2=1,每个时钟周期提取的卷积窗数M=3。每个提取单元首先对其需要提取的第1输入通道进行卷积窗提取,在完成第1输入通道的全部提取后,再进行其需要提取的第2输入通道的提取。具体地,对于第1输入通道,一个提取单元(例如,第1提取单元)在一个时钟周期中对该输入特征图的左3列(0至2列)上5行(0至4行)提取3个卷积窗M1-M3,接着,在下个时钟周期中,在行方向上滑动卷积窗步长S2,提取对应输入特征图1至3列、0至4行的3个卷积窗,以此遍列完对应0至4行的所有列;之后,第1提取单元提取后续行的卷积窗,具体的,第1提取单元按上述方法依次提取3至7行、6至10行等的卷积窗,直至所有行都提取完成。在完成所有行的提取之后,第1输入通道的所有卷积窗都提取完成,第1提取单元对其需要提取的下一个输入通道(第2输入通道)的输入特征图进行上述相同过程的提取。卷积窗提取电路的每个提取单元对不同的输入通道进行上述提取过程,直至所有输入通道都提取完成。需要说明的是,在图7的示例中,对于第i提取单元,所有输入通道的第i输入通道称为该第i提取单元要提取的第1通道,第C+i通道称为该第i提取单元要提取的第2通道。
根据第一方案,在进行一组C个输入通道的输入特征图的整个卷积计算过程中都不需要更新权重核,即权重核的对应权重只需要加载一次,节约了从权重缓冲器加载权重的时间。
可选的,在第二方案中,卷积窗提取电路的每个提取单元在当前输入通道中与当前M个卷积窗对应的行的所有卷积窗提取完成之后,进行下个输入通道中与当前M个卷积窗对应的行的卷积窗的提取,直至所有输入通道中与当前M个卷积窗对应的行的卷积窗都被所述卷积窗提取电路提取完成,再进行各个输入通道后续行的M个卷积窗的提取。每个提取单元提取的下个输入通道是卷积窗提取电路并行提取的下C个输入通道之一。在第二方案中,首先对每个输入通道的部分行(即M个卷积窗对应的行)进行卷积窗提取,待所有输入通道的这些行都提取完成后,再进行各个输入通道后续行的提取。
图8示出了根据本发明实施例的提取单元根据第二方案提取卷积窗的示例示意图。在图8的示例中,一个输入通道的输入特征图具有w_i列和h_i行,卷积窗尺寸K=3,滑动步长S1=1,S2=1,每个时钟周期提取的卷积窗数M=3。一个提取单元(例如,第1提取单元)首先在一个时钟周期中对第1输入通道的输入特征图的左3列(0至2列)上5行(0至4行)提取3个卷积窗M1至M3,接着在行方向上滑动卷积窗步长S2,提取对应输入特征图的1至3列、0至4行的3个卷积窗,以此遍列完对应0至4行的所有列;之后,第1提取单元对第2输入通道的输入特征图进行上述同样的提取过程。卷积窗提取电路的每个提取单元对不同的输入通道进行上述提取过程,直至所有输入通道的上述5行都提取完成。继而,每个提取单元对各个输入通道进行后续行的提取。在图8的示例中,第1提取单元接着提取各个输入通道的3至7行,直至卷积窗提取电路完成所有输入通道的第3至7行的提取。重复上述过程直至所有输入通道的所有行都提取完成。需要说明的是,在图8的示例中,对于第i提取单元,所有输入通道的第i输入通道称为该第i提取单元要提取的第1通道,第C+i通道称为该第i提取单元要提取的第2通道。
根据第二方案,可以先对所有输入通道的一些行的所有输入数据完成卷积窗提取和卷积计算,从而先生成输出特征图的部分行的值。当这些行的值计算完成后可以先行输出到缓冲器,而不需要继续占用FIFO存储器,因而FIFO存储器可以给后续的行复用,因而可以减少FIFO存储器的单位元素数量。FIFO存储器的一个单位元素数量用于累加和暂存输出特征图的一个点的值。例如,一个输出通道的输出特征图的尺寸为w_o×h_o,因此,一个输出通道需要暂存的总FIFO单位元素数量为w_o×h_o。根据本发明的实施例,列方向上有M个处理元件PE并行处理M个卷积窗,即并行处理输出特征图在列方向上的M个点,因此,每个处理元件PE的FIFO存储器应需要w_o×h_o/M个单位元素。然而,在上述第二方案中,由于处理元件PE的FIFO存储器不需要同时暂存不同行的输出数据,每个处理元件PE的FIFO存储器仅需要暂存一行输出数据,即仅需要w_o个单位元素,因此,第二方案可以节约FIFO存储器的单位元素数量。另一方面,在第二方案中,处理元件阵列的每一列每完成C个输入通道的M个卷积窗对应的行的计算时就需要更新权重核为下C个输入通道的权重核,因此权重核的更新比第一方案频繁。
根据本发明的实施例,卷积窗提取电路的每个提取单元可以是寄存器单元。卷积窗提取电路具有C个寄存器单元分别用于C个输入通道的输入数据。每个寄存器单元具有B行用于寄存一个输入通道的B行输入特征图数据,B=K+S1×(M-1)。每个寄存器单元在每个时钟周期中基于寄存的B行K列输入特征图数据提取M个卷积窗以分别输出至所述处理元件阵列的M行处理元件。根据本实施例,即将提取的卷积窗数据可以预先寄存在寄存器单元中,从而可以节约在卷积计算过程中加载数据所需要的时间。
图9示出了根据本发明实施例的卷积窗提取电路的一个寄存器单元的示意图。在图9的示例中,卷积窗尺寸K=3,滑动步长S1=1,S2=1,寄存器单元每个时钟周期提取的卷积窗数M=3,寄存器单元的行数B=5。寄存器单元的列数L可以根据需要设置,但L不小于卷积窗的尺寸K,最大例如可以为输入特征图的宽度w_i。寄存器单元可以根据上文所述提取卷积窗的方案加载输入特征图数据。例如,根据上述第一方案,寄存器单元先加载一个输入通道的第0至4行、第0至L-1列,接着加载第0至4行的后续列,直至所有第0至4行的所有列都加载完毕;然后,加载当前输入通道的第3至7行、第0至L-1列,接着加载第3至7行的后续列,直至所有第3至7行的所有列都加载完毕;以此完成当前输入通道的所有行的加载。在当前输入通道的所有数据都加载完成后再切换到下一个输入通道的数据的加载,直至所有输入通道都加载完毕。根据上述第二方案,寄存器单元先加载一个输入通道的第0至4行、第0至L-1列,接着加载第0至4行的后续列,直至所有第0至4行的所有列都加载完毕;然后,加载下一输入通道的第0至4行、第0至L-1列,接着加载第0至4行的后续列,直至所有第0至4行的所有列都加载完毕;以此完成所有输入通道的第0至4行的加载。然后,进行各个输入通道的第3至7行、第6至10行等的加载,直至各个通道的所有行都加载完毕。
图9示出了加载了数据的寄存器单元对卷积窗的提取。如图9所示,在第1时钟周期t0中,寄存器单元从其左侧的3列(0至2列)数据中提取M=3个卷积窗。寄存器的第0至2行形成的卷积窗被传送至第一行处理元件PE,寄存器的第1至3行形成的卷积窗被传送至第二行处理元件PE,寄存器的第2至4行形成的卷积窗被传送至第三行处理元件PE。在完成0-2列的提取后,根据本发明的一个实施例,在下一时钟周期t1中,寄存器单元从其第1-3列数据中提取M=3个卷积窗,以此类推完成寄存器单元中所有列数据的提取。当寄存器单元中的数据提取完成后从存储输入特征图的外部存储器或缓冲器加载新的输入特征图数据。在本实施例中,寄存器单元的尺寸越大,越可以减少从外部存储器或缓冲器加载数据的次数和时间。
根据本发明的另一实施例,上述寄存器单元可以是移位寄存器单元。每个寄存器单元在每个时钟周期中在行方向上提取第一侧K列的输入数据,并在完成一个时钟周期的卷积窗提取后在行方向上向第一侧移动S2列。图10示出了根据本发明另一实施例的卷积窗提取电路的一个寄存器单元的示意图。类似于图9的示例,寄存器单元在第1时钟周期t0中首先提取第0至2列的数据。在提取完第0至2列的数据后,寄存器单元向左移动1列,即原第0列的数据丢弃,现在的第0列数据为原第1列数据,现在的第1列数据为原第2列数据,以此类推。继而,寄存器单元在下一时钟周期t1中提取新的第0-2列数据。根据本实施例,寄存器单元与处理元件阵列之间的连接关系相对简单,仅需要寄存器单元的第0至2列与处理元件阵列存在连接即可。此外,根据本实施例,当寄存器单元向左移位之后,寄存器单元右边空出的位置可以加载新的输入数据。对寄存器单元右边空余位置加载新的输入数据可以与寄存器单元提取卷积窗并行进行,从而可以节省额外的加载时间。并且,在本实施例中,输入特征图的数据在行方向上不需要重复加载,更好地实现了输入数据的复用。
根据本发明的实施例,为了促进输入数据的加载,根据本发明实施例的卷积神经网络硬件计算装置还可以包括特征图缓冲器,如图3所示。特征图缓冲器的每个缓冲单元可以将一个输入通道的输入特征图缓存在其中,从而可以加快卷积窗提取电路加载输入数据。特别的,在提取单元为移位寄存器的情况下,通过特征图缓冲器可以快速向移位寄存器中补充数据,使得卷积窗的提取不受移位寄存器补充数据耗时的影响。
图11示出了根据本发明实施例的卷积神经网络硬件计算方法1100的流程图。卷积神经网络硬件计算方法1100包括步骤S1101、S1102和S1103。在S1101中,处理元件阵列接收N个C路K×K权重核,其中N为输出通道数,C为卷积窗提取电路每个时钟周期提取的输入通道数,C≥1,K为卷积窗尺寸。在S1102中,所述处理元件阵列接收所述卷积窗提取电路提取的M个C通道K×K卷积窗。在S1103中,所述处理元件阵列的M行×N列个处理元件对从所述卷积窗提取电路接收的卷积窗与对应的权重核进行乘累加运算。
在卷积神经网络硬件计算方法1100中,所述卷积窗提取电路包括C个提取单元,用于并行加载和提取C个输入通道,C≥1,每个提取单元每个时钟周期提取一个输入通道的M个K×K卷积窗以输出给所述处理元件阵列,同一时钟周期提取的M个K×K卷积窗对应所述一个输入通道的输入特征图的相同K列沿列方向以纵向滑动步长S1滑动的M个K×K位置,其中M≥1。所述处理元件阵列的每一列处理一个输出通道。所述处理元件阵列同一列的M个处理元件并行处理M个C通道K×K卷积窗,每个处理元件并行处理由所述C个输入通道的各一个卷积窗组成的C个卷积窗,且每个处理元件并行处理的C个卷积窗对应所述C个输入通道的输入特征图的相同K×K大小的位置。
需要说明的是,上述针对卷积神经网络硬件计算装置的说明同样适用于卷积神经网络硬件计算方法1100。根据本发明实施例的卷积神经网络硬件计算方法1100可以实现高效的卷积神经网络的卷积计算。
根据本发明实施例的卷积神经网络硬件计算装置和方法通过硬件架构能够保证卷积的遍历,实现完整的卷积计算,并且可以实现以下一个或多个技术效果:(一)通过M×N的处理元件阵列可以实现数据在列、行和跨权重核的复用以及权重复用,从而减少对存储器或缓冲器的访问,提高吞吐率以及卷积计算效率;(二)采用FIFO存储器进行点乘结果的累加,避免将中间卷积结果存储到缓冲器,减少了存储通道的占用和额外的延迟;(三)可以选择两种不同的调度策略,以便实现高程度的权重复用或降低FIFO存储器的尺寸;(四)可以在处理元件中提供功能扩展,例如BN,激活层等的计算,避免在进行激活层和/或BN层的计算时再读取缓冲器,以便节约总体计算时间。
在本发明中,行、列的表述为逻辑上的概念,在物理排布上,行可以排布在横向或竖向上,列也可以排布在竖向或横向上,甚至可以在物理上不排布成行和列的形式,只要逻辑上能形成行和列即可。例如,M行×N列的处理元件可以在物理上排列为一排或多排,只要在信号连接关系上体现为实现本发明目的的行列形式即可。
本发明所描述的硬件计算装置的整体或其部件可以通过各种合适的硬件手段实现,包括但不限于FPGA、ASIC、SoC、离散门或晶体管逻辑、离散的硬件组件、或它们之间的任意组合。
本发明中涉及的电路、器件、装置、设备、系统的方框图仅作为示例性的例子并不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些电路、器件、装置、设备、系统,只要能够实现所期望的目的即可。
本领域技术人员应该理解,上述的具体实施例仅是例子而非限制,可以根据设计需求和其它因素对本发明的实施例进行各种修改、组合、部分组合和替换,只要它们在所附权利要求或其等同的范围内,即属于本发明所要保护的权利范围。
Claims (10)
1.一种卷积神经网络硬件计算装置,包括:
卷积窗提取电路,用于加载输入特征图数据以及提取卷积窗;以及
处理元件阵列,用于对从所述卷积窗提取电路接收的卷积窗与对应的权重核进行乘累加运算,
其中,所述卷积窗提取电路包括C个提取单元,用于并行加载和提取C个输入通道,C≥1,每个提取单元每个时钟周期提取一个输入通道的M个K×K卷积窗以输出给所述处理元件阵列,同一时钟周期提取的M个K×K卷积窗对应所述一个输入通道的输入特征图的相同K列沿列方向以纵向滑动步长S1滑动的M个K×K位置,其中M≥1,K为卷积窗尺寸,
所述处理元件阵列具有M行×N列个处理元件,其中,N为输出通道数,
所述处理元件阵列的每一列处理一个输出通道,以及
所述处理元件阵列同一列的M个处理元件并行处理M个C通道K×K卷积窗,每个处理元件并行处理由所述C个输入通道的各一个卷积窗组成的C个卷积窗,且每个处理元件并行处理的C个卷积窗对应所述C个输入通道的输入特征图的相同K×K大小的位置。
2.如权利要求1所述的卷积神经网络硬件计算装置,其中
所述处理元件阵列的每个处理元件包括乘加树、FIFO存储器以及加法器;
所述乘加树用于将每个时钟周期输入的C个输入通道的C个卷积窗与对应的权重核进行点乘;以及
所述FIFO存储器用于与所述加法器一起将所有输入通道的输入特征图的相同位置的点乘结果进行累加。
3.如权利要求2所述的卷积神经网络硬件计算装置,其中
所述处理元件阵列中的每个处理元件还包括定点处理单元用于定标值调整和溢出处理、激活层计算单元用于激活层计算和/或批量归一化层计算单元用于批量归一化层计算。
4.如权利要求1所述的卷积神经网络硬件计算装置,其中
所述卷积窗提取电路的每个提取单元在将当前输入通道的所有卷积窗提取完后再进行下个输入通道的卷积窗提取。
5.如权利要求1所述的卷积神经网络硬件计算装置,其中
所述卷积窗提取电路的每个提取单元在当前输入通道中与当前M个卷积窗对应的行的所有卷积窗提取完成之后,进行下个输入通道中与当前M个卷积窗对应的行的卷积窗的提取,直至所有输入通道中与当前M个卷积窗对应的行的卷积窗都被所述卷积窗提取电路提取完成,再进行各个输入通道后续行的M个卷积窗的提取。
6.如权利要求1所述的卷积神经网络硬件计算装置,其中
所述卷积窗提取电路的提取单元为寄存器单元;
每个寄存器单元具有B行,用于寄存一个输入通道的B行输入特征图数据,B=K+S1×(M-1);并且
每个寄存器单元在每个时钟周期中基于寄存的B行K列输入特征图数据提取M个卷积窗以分别输出至所述处理元件阵列的M行处理元件。
7.如权利要求6所述的卷积神经网络硬件计算装置,其中
每个寄存器单元在每个时钟周期中在行方向上提取第一侧K列的输入特征图数据,并在完成一个时钟周期的卷积窗提取后在行方向上向第一侧移动S2列,S2为横向滑动步长。
8.如权利要求1所述的卷积神经网络硬件计算装置,还包括:
特征图缓冲器,包括C个缓冲单元,每个缓冲单元用于缓存一个输入通道的输入特征图以向所述卷积窗提取电路的一个提取单元提供输入特征图数据。
9.如权利要求1所述的卷积神经网络硬件计算装置,还包括:
权重缓冲器,用于缓存权重核。
10.一种卷积神经网络硬件计算方法,包括:
由处理元件阵列接收N个C路K×K权重核,其中N为输出通道数,C为卷积窗提取电路每个时钟周期提取的输入通道数,C≥1,K为卷积窗尺寸;
由所述处理元件阵列接收所述卷积窗提取电路提取的M个C通道K×K卷积窗;以及
由所述处理元件阵列的M行×N列个处理元件对从所述卷积窗提取电路接收的卷积窗与对应的权重核进行乘累加运算,
其中,所述卷积窗提取电路包括C个提取单元,用于并行加载和提取C个输入通道,C≥1,每个提取单元每个时钟周期提取一个输入通道的M个K×K卷积窗以输出给所述处理元件阵列,同一时钟周期提取的M个K×K卷积窗对应所述一个输入通道的输入特征图的相同K列沿列方向以纵向滑动步长S1滑动的M个K×K位置,其中M≥1,
所述处理元件阵列的每一列处理一个输出通道,以及
所述处理元件阵列同一列的M个处理元件并行处理M个C通道K×K卷积窗,每个处理元件并行处理由所述C个输入通道的各一个卷积窗组成的C个卷积窗,且每个处理元件并行处理的C个卷积窗对应所述C个输入通道的输入特征图的相同K×K大小的位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910835944.3A CN110705687B (zh) | 2019-09-05 | 2019-09-05 | 卷积神经网络硬件计算装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910835944.3A CN110705687B (zh) | 2019-09-05 | 2019-09-05 | 卷积神经网络硬件计算装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110705687A CN110705687A (zh) | 2020-01-17 |
CN110705687B true CN110705687B (zh) | 2020-11-03 |
Family
ID=69194233
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910835944.3A Active CN110705687B (zh) | 2019-09-05 | 2019-09-05 | 卷积神经网络硬件计算装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110705687B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11537865B2 (en) * | 2020-02-18 | 2022-12-27 | Meta Platforms, Inc. | Mapping convolution to a channel convolution engine |
US11216375B2 (en) | 2020-02-26 | 2022-01-04 | Hangzhou Zhicun Intelligent Technology Co., Ltd. | Data caching |
CN113313228B (zh) * | 2020-02-26 | 2022-10-14 | 杭州知存智能科技有限公司 | 数据缓存电路和方法 |
CN111340224B (zh) * | 2020-02-27 | 2023-11-21 | 浙江芯劢微电子股份有限公司 | 适用于低资源嵌入式芯片的cnn网络的加速设计方法 |
US11520853B2 (en) * | 2020-02-28 | 2022-12-06 | Meta Platforms, Inc. | Mapping convolution to a partition channel convolution engine |
CN113379046B (zh) * | 2020-03-09 | 2023-07-11 | 中国科学院深圳先进技术研究院 | 卷积神经网络的加速计算方法、存储介质和计算机设备 |
CN113536220A (zh) * | 2020-04-21 | 2021-10-22 | 中科寒武纪科技股份有限公司 | 运算方法、处理器及相关产品 |
CN113807506B (zh) * | 2020-06-11 | 2023-03-24 | 杭州知存智能科技有限公司 | 数据加载电路和方法 |
US11977969B2 (en) | 2020-06-11 | 2024-05-07 | Hangzhou Zhicun Intelligent Technology Co., Ltd. | Data loading |
CN111738424B (zh) * | 2020-06-29 | 2023-12-26 | 湖南国科微电子股份有限公司 | 神经网络处理方法、装置、电子设备及存储介质 |
CN113919477A (zh) * | 2020-07-08 | 2022-01-11 | 嘉楠明芯(北京)科技有限公司 | 一种卷积神经网络的加速方法及装置 |
WO2022027172A1 (zh) * | 2020-08-03 | 2022-02-10 | 深圳市大疆创新科技有限公司 | 数据处理装置、方法和系统以及神经网络加速器 |
CN112927125B (zh) * | 2021-01-31 | 2023-06-23 | 成都商汤科技有限公司 | 一种数据处理方法、装置、计算机设备及存储介质 |
CN112966729B (zh) * | 2021-02-26 | 2023-01-31 | 成都商汤科技有限公司 | 一种数据处理方法、装置、计算机设备及存储介质 |
CN112992248A (zh) * | 2021-03-12 | 2021-06-18 | 西安交通大学深圳研究院 | 一种基于fifo的可变长循环移位寄存器的pe计算单元结构 |
CN113298241B (zh) * | 2021-07-27 | 2021-10-22 | 北京大学深圳研究生院 | 一种深度可分离卷积神经网络加速方法和加速器 |
CN116306823B (zh) * | 2023-04-27 | 2023-08-04 | 北京爱芯科技有限公司 | 为mac阵列提供数据的方法、装置和芯片 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108805267A (zh) * | 2018-05-28 | 2018-11-13 | 重庆大学 | 用于卷积神经网络硬件加速的数据处理方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160379109A1 (en) * | 2015-06-29 | 2016-12-29 | Microsoft Technology Licensing, Llc | Convolutional neural networks on hardware accelerators |
CN106250103A (zh) * | 2016-08-04 | 2016-12-21 | 东南大学 | 一种卷积神经网络循环卷积计算数据重用的系统 |
CN107633297B (zh) * | 2017-03-10 | 2021-04-06 | 南京风兴科技有限公司 | 一种基于并行快速fir滤波器算法的卷积神经网络硬件加速器 |
EP3596660A1 (en) * | 2017-03-24 | 2020-01-22 | Huawei Technologies Co., Ltd. | Neural network data processing apparatus and method |
CN108229671B (zh) * | 2018-01-16 | 2022-03-04 | 华南理工大学 | 一种降低加速器外部数据存储带宽需求的系统和方法 |
CN109359735B (zh) * | 2018-11-23 | 2020-12-04 | 浙江大学 | 深度神经网络硬件加速的数据输入装置与方法 |
CN109598338B (zh) * | 2018-12-07 | 2023-05-19 | 东南大学 | 一种基于fpga的计算优化的卷积神经网络加速器 |
-
2019
- 2019-09-05 CN CN201910835944.3A patent/CN110705687B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108805267A (zh) * | 2018-05-28 | 2018-11-13 | 重庆大学 | 用于卷积神经网络硬件加速的数据处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110705687A (zh) | 2020-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110705687B (zh) | 卷积神经网络硬件计算装置及方法 | |
CN110705703B (zh) | 基于脉动阵列的稀疏神经网络处理器 | |
CN110807170B (zh) | 多样本多通道卷积神经网络Same卷积向量化实现方法 | |
CN108073549B (zh) | 卷积运算装置及方法 | |
CN109858622B (zh) | 深度学习神经网络的数据搬运电路和方法 | |
CN110580519A (zh) | 一种卷积运算结构及其方法 | |
US5021987A (en) | Chain-serial matrix multipliers | |
KR20230081697A (ko) | 팽창 컨볼루션 계산 가속화 방법 및 장치 | |
CN115394336A (zh) | 一种存算fpga架构 | |
CN110766136B (zh) | 一种稀疏矩阵与向量的压缩方法 | |
CN112183732A (zh) | 卷积神经网络加速方法、装置和计算机设备 | |
CN112712457A (zh) | 数据处理方法以及人工智能处理器 | |
EP0544012A1 (en) | Serial access memory | |
CN109800867B (zh) | 一种基于fpga片外存储器的数据调用方法 | |
CN112639836A (zh) | 数据处理装置、电子设备和数据处理方法 | |
JP2022518640A (ja) | データ処理方法、装置、機器、記憶媒体及びプログラム製品 | |
CN110914909B (zh) | 行进存储器和计算机系统 | |
EP3620911A1 (en) | Multiply-accumulate operation device, multiply-accumulate operation methods, and systems | |
US20230025068A1 (en) | Hybrid machine learning architecture with neural processing unit and compute-in-memory processing elements | |
JPH09259115A (ja) | ビット−シリアルマトリックス転置のための超大規模集積回路 | |
KR20240036594A (ko) | 인-메모리 연산을 위한 부분 합 관리 및 재구성가능 시스톨릭 플로우 아키텍처들 | |
US11977969B2 (en) | Data loading | |
US20220172032A1 (en) | Neural network circuit | |
CN113627587A (zh) | 一种多通道式卷积神经网络加速方法及装置 | |
CN113313228B (zh) | 数据缓存电路和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |