CN111860800A - 神经网络加速设备及其操作方法 - Google Patents
神经网络加速设备及其操作方法 Download PDFInfo
- Publication number
- CN111860800A CN111860800A CN201911216207.1A CN201911216207A CN111860800A CN 111860800 A CN111860800 A CN 111860800A CN 201911216207 A CN201911216207 A CN 201911216207A CN 111860800 A CN111860800 A CN 111860800A
- Authority
- CN
- China
- Prior art keywords
- zero
- value
- weights
- input
- neural network
- 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.)
- Withdrawn
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 35
- 238000000034 method Methods 0.000 title claims abstract description 35
- 230000001133 acceleration Effects 0.000 title claims abstract description 32
- 239000013598 vector Substances 0.000 claims description 26
- 238000001914 filtration Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 claims description 6
- 230000006870 function Effects 0.000 claims description 5
- 238000011176 pooling Methods 0.000 claims description 5
- 230000005284 excitation Effects 0.000 claims description 4
- 238000007792 addition Methods 0.000 description 10
- 230000008859 change Effects 0.000 description 4
- 238000013527 convolutional neural network Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- AAOVKJBEBIDNHE-UHFFFAOYSA-N diazepam Chemical compound N=1CC(=O)N(C)C2=CC=C(Cl)C=C2C=1C1=CC=CC=C1 AAOVKJBEBIDNHE-UHFFFAOYSA-N 0.000 description 3
- 238000000605 extraction Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
-
- 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
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 Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Complex Calculations (AREA)
Abstract
本申请涉及一种神经网络加速设备以及其操作方法。该神经网络加速设备包括:零值过滤器,被配置成通过将权重施加到输入特征来过滤零(0)值,并且通过将包括相对坐标和组边界信息的索引信息与输入特征的数据元素进行匹配生成压缩数据包;乘法器,被配置成通过对压缩数据包的输入特征和权重执行乘法运算来生成结果数据;以及特征图提取器,被配置成对基于从乘法器传送的结果数据的相对坐标和组边界信息的相乘结果数据执行加法运算,并且通过重排加法运算的结果值来生成输出特征图。
Description
相关申请的交叉引用
本申请要求于2019年4月26日向韩国知识产权局提交的申请号为10-2019-0049176的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
各个实施例总体可以涉及一种半导体装置,并且更特别地,涉及一种神经网络加速设备以及该神经网络加速设备的操作方法。
背景技术
卷积神经网络(CNN)应用可以是主要用于图像识别和分析的神经网络应用。这些应用可能需要使用特定过滤器从图像中提取特征的卷积运算过滤器。执行乘法运算和加法运算的矩阵乘法单元可以用于卷积运算。当卷积系数中的0(零)分布较少时,例如,当系数的稀疏度(等于零的分数)较小时,矩阵乘法单元可以高效地用于处理稠密(即低稀疏度)图像和过滤器。但是,由于CNN应用中所使用的多数图像和过滤器的稀疏度约为30%至70%,因此可能包括大量的零(0)值。零值可能在执行卷积运算时产生不必要的延迟和功耗。
因此,需要有在CNN应用中高效执行卷积运算的方法。
发明内容
实施例提供了一种具有改进的操作性能的神经网络加速设备以及其操作方法。
在本公开的实施例中,一种神经网络加速设备可以包括:零值过滤器,被配置成通过将权重施加到包括多个数据元素的输入特征来过滤零(0)值,并通过将包括相对坐标和组边界信息的索引信息与输入特征的数据元素进行匹配生成压缩数据包;乘法器,被配置成通过对压缩数据包的输入特征和权重执行乘法运算来生成结果数据;以及特征图提取器,被配置成对基于相对坐标和组边界信息的结果数据执行加法运算,并通过以原始输入特征形式重排加法运算的结果值来生成输出特征图。
在本公开的实施例中,一种神经网络加速设备的操作方法可包括:接收输入特征和权重,输入特征包括多个数据元素;通过将权重施加到输入特征来过滤零(0)值,并通过将包括相对坐标和组边界信息的索引信息与输入特征的数据元素进行匹配来生成压缩数据包;通过对压缩数据包的输入特征和权重执行乘法运算生成结果数据;对基于结果数据的相对坐标和组边界信息的相乘的结果数据执行加法运算,并通过以原始输入特征形式重排加法运算的结果值来生成输出特征图;并且将激励函数应用于输出特征图,将输出特征图改变为非线性值,并通过执行池化处理生成最终输出特征图。
根据本公开的实施例,由于略过输入特征的零值和权重是根据步长值来支持的,因此神经网络加速设备的操作性能的改善是可以预期的。
根据本公开的实施例,可以减少不必要的延迟和功耗。
这些和其它特征、方面和实施例将在以下标题为“具体实施方式”的部分中进行阐述说明。
附图说明
从结合附图的以下详细描述,将更清楚地理解本公开的主题的上述信息和其它方面、特征和优点,其中:
图1示出根据本公开的实施例的神经网络加速设备的配置。
图2示出根据本公开的实施例的对输入特征的数据元素(例如,像素)进行分组的方法。
图3和图4示出根据本公开的实施例的数据包的示例。
图5示出根据本公开的实施例的检测输入特征的零值的方法。
图6示出根据本公开的实施例的检测权重的零值的方法。
图7、图8、图9和图10示出根据本公开的实施例的通过对输入特征施加权重来检测非零值的方法。
图11是根据本公开的实施例的神经网络加速设备的操作方法的流程图。
图12是生成图11中压缩数据包的更详细地方法的流程图。
具体实施方式
将参照附图更详细地描述本发明的各个实施例。附图是各个实施例(和中间结构)的示意图。因此,例如,由于制造技术和/或误差所导致的示例的配置和形状的变型都是可预料的。因此,所描述的实施例不应解释为仅限于本文示出的特定配置和形状,而是包括在不脱离所附权利要求书所限定的本发明范围内的配置和形状上的偏差。
本文参照本发明实施例的示例来描述本发明。然而,本发明的实施例不应被解释为受限于本发明构思。虽然将示出并描述本发明的一些实施例,但是本领域普通技术人员将理解的是,可以在不脱离本发明的原理的情况下对这些实施例进行改变。
图1是示出根据实施例的神经网络加速设备的配置的示图。
在下文中,将参照图2至图10描述神经网络加速设备以及神经网络加速设备的操作方法。图2示出根据实施例的对输入特征的数据元素(例如,像素)进行分组的方法,图3和图4示出根据实施例的数据包的示例,图5示出根据实施例的检测输入特征的零值的方法,图6示出根据实施例的检测权重的零值的方法,以及图7至图10示出根据实施例的通过对输入特征施加权重来检测非零值的方法。
参照图1,根据实施例的神经网络加速设备10可以包括第一存储器100、零值过滤器200、第二存储器300、乘法器400、特征图提取器500和输出特征图生成器600。
第一存储器100可以存储与神经网络加速设备10相关的包括特征和权重的信息,并且将存储的特征和权重传送到零值过滤器200。该特征可能是图像数据或语音数据,但是在本文提供的说明性示例中,该特征被假设为由像素组成的图像数据。权重可以是用于从特征中过滤零值的过滤器。第一存储器100可以利用动态随机存取存储器(DRAM)来实施,但是实施例并不限于此。
零值过滤器200可以通过将权重施加到输入特征来过滤零(0)值,并且可以通过将包括相对坐标和组边界信息的索引信息与未过滤的输入特征的像素进行匹配来生成压缩数据包。输入特征和权重可以由第一存储器100生成。
零值过滤器200可以利用输入特征和权重的零值位置以及步长值来执行零值滤波。步长值可以指应用过滤器的区间值。参照图7,步长值为过滤器(权重)b-2相对于输入特征a-2在滑动窗口中的移动区间。
零值过滤器200可以根据预设标准对输入特征的像素进行分组,生成多个组之间的相对坐标,并且将相对坐标与每组的像素进行匹配。
参照图2,零值过滤器200可以将输入特征的像素分组为组1、组2、组3和组4(参见图2中的b),生成指示相同坐标相对于组的相同位置的相对坐标,并且将相对坐标与每个组内的像素进行匹配。输入特征的原始坐标(请参见图2中的(a))可能是1、2、3、4、……、15和16,而每组输入特征的坐标(请参见图2中的(b))可能是0、1、2和3。例如,分组的输入特征的坐标可以为组1的1、2和3;组2的0、1、2和3;组3的0、1、2和3;以及组4的0、1、2和3。通过生成组与组之间的相对坐标,可以减小待存储的索引值的大小。
此处,每个像素具有表达组边界信息的边界指示,并且输出特征图生成器600可以使用组边界信息来确定是否传送新像素组。组边界信息可以指用于划分多个组的1位信息。
图3和图4示出压缩数据包的示例。参照图3,压缩数据包包括组边界信息“边界指示符”、指示所有相应的像素数据是否都具有零(0)值的零标志“全0标志”以及像素数据的坐标“坐标信息”和像素数据“数据”。组边界信息和零标志可以分别用1位例如值1或0表示。当新像素组传送开始时,边界信息的值1或0可以被反转为值0或1。例如,在实施例中,零值过滤器200输出像素组1的所有压缩数据包,然后输出带有设置成“0”的组边界信息的针对像素组2的第一压缩数据包以指示像素组2的开始,然后输出带有设置成“1”的针对像素组2的剩余压缩数据包以指示它们在相同组中。一旦像素组2的压缩数据包全部被输出,则零值过滤器200输出带有设置成“0”的组边界信息的针对像素组3的第一压缩数据包以指示像素组3的开始,并以此类推。
图4(a)示出非零数据包的示例,以及图4(b)示出像素组中的所有像素数据均为零(0)的数据包的示例。当从零值过滤器200传送的数据包的零标志值为“1”时,乘法器400可以跳过针对相应数据包的像素组的像素数据的所有乘法运算。例如,如果在上面的示例中,像素组3的第一压缩数据包具有设置为1的零标志值,则乘法器将不使用像素组3中的像素执行乘法运算。在这种情况下,具有设置为1的零标志值的像素组3的第一压缩数据包可以是像素组3的唯一数据包输出,下一数据包将是像素组4的数据包。
例如,零值过滤器200可以通过去除在预先输入到乘法器400中的输入值之中、预期引起不必要运算的值(例如,包括零(0)值的组合)来预先禁止乘法器400的不必要运算。例如,在图2和图5至图8所示的示例中,如在图8的整合边界(d)中的它们各自位中的0所指示,像素组1的像素1和2(对应于图2的(a)中的像素2和5)是不必要的。因此,零值过滤器200仅将组1的像素0和3的压缩数据包传送到第二存储器300,并且乘法器400使用组1的像素0和像素3的数据来执行运算,而不使用组1的像素0或像素3的数据来执行运算。
因此,可以减少由于乘法器400的不必要运算而引起的不必要延迟和功耗。乘法器400是笛卡尔积模块,即将其处理的每个像素的数据乘以过滤器(权重)中的每个系数(或至少每个非零系数)的乘法器,但实施例并不限于此。
零值过滤器200可以将输入特征和权重转换为一维(1D)矢量,并且通过对输入特征和权重执行按位OR运算即按位或运算来过滤输入特征和权重的非零值位置。以该方式,具有零数据值的像素和将不与任何非零过滤器系数相乘的像素两者被过滤掉。
参照图5,零值过滤器200可以根据过滤器(权重)的大小将4×4输入特征a布置到1D矢量a-1(例如,1,5,0,6,3,0,4,8,0,13,10,14,11,15,12,0),并且通过对1D矢量的输入特征a-1的每个像素执行按位或运算以提取输入特征a的非零值位置来产生值a-2(例如,1,1,0,1,1,0,1,1,0,1,1,1,1,1,1,0)。
参照图6,零值过滤器200可以将2×2权重b布置在1D矢量b-1(例如,10,0,0,11)中,并且通过对1D矢量的权重b-1执行按位或运算以提取权重(过滤器)的非零值位置来产生值b-2(例如,1,0,0,1)。因此,零值过滤器200可以识别输入特征的非零值位置,并且可以识别权重的非零值位置。
零值过滤器200可以通过对输入特征和权重的经过滤的非零位置执行按位AND运算即按位与运算,根据边界顺序的权重位置来产生非零位置值。对于输入特征中的在权重中没有相应位的位,按位与运算输出0。
边界顺序可以与1D矢量的权重相对于1D矢量形式的输入特征进行滑动窗口的顺序相同。
参照图7和图8,零值过滤器200可以定位以1D矢量形式过滤的输入特征a-2和权重b-2的非零位置值,以使非零位置值彼此对齐,并对该非零值执行按位与运算的同时相对于输入特征滑动权重的窗口(移位)。步长值可以是用于创建1D权重b-2的2D过滤器列宽(即列数)的倍数。
在2×2过滤器的情况下,列宽可以为2,因此,当步长=1时,过滤器可能会移位列宽的倍数(=2×1),而当步长为2时,可能会移位列宽的倍数(=2×2)。
参照图8,零值过滤器200可以根据权重b-2的滑动窗口来产生多个目标边界c,例如,第一目标边界至第七目标边界。当权重b-2未移位时,第一目标边界可以对应于输入特征a-2和权重b-2的按位与运算的结果;当权重b-2移位一个列宽(步长=1)时,第二目标边界可以对应于输入特征a-2和权重b-2的按位与运算的结果;当权重b-2移位两个列宽时,第三目标边界可以对应于输入特征a-2和权重b-2的按位与运算结果,依此类推。
零值过滤器200可以通过对目标边界的非零位置值执行按位或运算产生整合边界信息。
参照图8,零值过滤器200可以通过对第一目标边界至第七目标边界的非零位置值c-1(例如1,0,0,0,0,0)执行按位或运算来产生整合边界信息d-1。零值过滤器200可以通过对第一目标边界至第七目标边界的非零位置值c-2至c-16重复执行按位或运算,来产生整合边界信息d-2至d-16,因此,可以产生最终整合边界信息d。
当产生整合边界信息时,零值过滤器200可以根据步长值来改变待被执行按位或运算的目标边界。
当步长值不为“1”时,零值过滤器200可以通过选择性地使用根据在图8中步长值为“1”的情况下的步长值的目标边界来确定整合边界信息中的非零位置值。
例如,参照图9,当步长值为“2”(步长=2)时,零值过滤器200可以在执行产生整合边界信息的按位或运算时通过不使用在图8的步长=1的情况下使用的偶数目标边界信息(第二目标边界、第四目标边界等)来提取非零位置值时执行。
参照图10,零值过滤器200可以基于选择的第一、第三、第五和第七目标边界信息,通过对非零位置值执行按位或运算来产生整合边界信息。
即使在步长=3的情况下,零值过滤器200也可以通过跳过在图8的步长=1的情况下的奇数目标边界信息来产生整合边界信息。零值过滤器200可以跳过除第一边界信息以外的奇数边界信息。
在步长值不为“1”的情况下提取非零值位置的操作可能具有与针对2D矢量特征移位过滤器时提取非零值位置的方法相同的效果。然而,提取操作可以利用1D矢量来实施,因此可简化用于提取操作的逻辑。当在非零值位置提取非零位置值之后执行笛卡尔积运算时,可以通过跳过不必要运算来减少延迟和功耗。
第二存储器300可以存储包括从零值过滤器200传送的索引信息的数据包。压缩数据包通常仅包括用于整合边界信息中的相应位为1时的像素的数据包(如下所述,除了由零值过滤器200将组中的所有像素滤出的情况以外)。第二存储器300可以存储包括从输出特征图生成器600传送的最终输出特征图、与神经网络加速设备10有关的信息。第二存储器300可以利用静态随机存取存储器(SRAM)来实施,但实施例并不限于此。第二存储器300由于SRAM的特性而每周期读出一个数据包,因此可能需要多个周期来读取数据包。因此,与读取数据包同时执行的零值跳过操作可能是周期的负担。然而,在实施例中,由于存储了通过零值滤波已预先处理过的多位的输入特征图,因此可以减少上述周期的负担。也就是说,本实施例可以相对减少访问第二存储器300以读取数据包的次数。
作为笛卡尔积模块的乘法器400可以通过对如在第二存储器300中存储的压缩数据包中表示的输入特征和权重执行乘法运算来产生结果数据。
乘法器400可以参考执行乘法运算的索引信息跳过对经零值过滤的数据包的乘法运算。
特征图提取器500可以基于从乘法器400传送的结果数据的相对坐标和边界信息对相乘的结果数据执行加法运算,并且通过以原始输入特征形式重排加法运算的结果值来生成输出特征图。例如,特征图提取器500可以基于相对坐标和边界信息以像素在像素分组之前的形式(参照图2)重排相加的结果值。
输出特征图生成器600可通过将激励函数应用于输出特征图来将输出特征图改变为非线性值,通过对非线性值执行池化处理来生成最终输出特征图,并且将最终输出特征图传送到第一存储器100、第二存储器300和零值过滤器200中的至少一个。
图11是说明根据实施例的神经网络加速设备的操作方法的流程图。
参照图11,神经网络加速设备10的零值过滤器200可以接收输入特征和权重(S101)。
参照图1,零值过滤器200可以从第一存储器100接收预存储的输入特征和权重。
然后,零值过滤器200通过将权重施加到输入特征来从输入特征中过滤零(0)值,并且通过将包括相对坐标和组边界信息的索引信息与输入特征的像素进行匹配生成压缩数据包(S103)。
例如,零值过滤器200可以利用输入特征和权重的零值位置以及步长值来执行零值滤波。
此外,零值过滤器200可以根据预设标准将输入特征的像素进行分组,生成多个组之间的相对坐标,并且将相对坐标与每组的像素进行匹配。
神经网络加速设备10的乘法器400可以通过对由零值过滤器传送的压缩数据包的输入特征和权重执行乘法运算生成结果数据(S105)。乘法器400可能不直接从零值过滤器200接收压缩数据包,而是可从第二存储器300接收压缩数据包。
参照图3和图4,压缩数据包可包括组边界信息“边界指示”、指示所有相应的像素数据是否都具有零(0)值的零标志“全0标志”、像素数据的坐标“坐标信息”和像素数据“数据”。组边界信息可以是通过零值过滤器200对边界顺序的非零位置值执行按位或运算获取的整合边界信息。
参照图8,零值过滤器200可以通过对第一目标边界至第七目标边界的非零位置值c-1(例如,1,0,0,0,0,0)执行按位或运算来生成整合边界信息d-1。然后,整合边界信息用于确定零值过滤器200将为哪些像素生成压缩数据包。
当执行乘法运算时,乘法器400可以参照索引信息跳过对经过滤的数据包的乘法运算。例如,当从零值过滤器200传送的数据包的零标志值为“1”时,乘法器400可以跳过对像素组的与数据包对应的像素数据的所有乘法运算。在该示例中,去除了零值的数据包被存储在第二存储器300中,因此可以在之前的阶段中为乘法器400移除不必要数据。全零跳过操作可能是不为由零值过滤器200过滤出的像素存储数据包的通常情况的例外数据包。
在实施例中,乘法器400对第二存储器300中的压缩数据包逐个处理。当数据包的零标志值为“0”时,乘法器400将数据包中的像素数据乘以过滤器的非零系数中的至少一个来为每个非零滤波系数生成一个乘法结果,并且输出该数据包的包括组边界信息、零标记值、数据包的相对坐标以及乘法结果的结果。当数据包的零标志值为“1”时,乘法器400仅输出该数据包的包括分组的组边界信息、零标记值和数据包(零)的相对坐标的结果,在一些实施例中,乘法结果为零。因此,可以减少由于乘法器400的不必要运算而引起的不必要延迟和功耗。
然后,特征图提取器500可以对基于结果数据的相对坐标和组边界信息的相乘的结果数据执行加法运算,并通过以原始输入特征形式重排加法运算的结果值来生成输出特征图(S107)。例如,在实施例中,对于与乘法器400的数据包对应的每个输出,特征图提取器500可以确定输出特征图中的哪些像素使用输出中的相乘结果中的每一个,并且可以将该相乘结果累加到该像素中。
输出特征图生成器600可以通过将激励函数应用于输出特征图来将输出特征图改变为非线性值,并通过执行池化处理来生成最终输出特征图(S109)。
图12是更详细地说明生成图11中压缩数据包的方法S103的示图。
参照图12,神经网络加速设备10的零值过滤器200可以将输入特征和权重转换为1D矢量,并且通过对输入特征的像素和权重系数执行按位或运算来对输入特征和权重的非零值位置进行过滤(S201)。
参照图5,零值过滤器200可以根据过滤器(权重)的大小将4×4输入特征a布置到1D矢量a-1(例如,1,5,0、6,3,0,4,8,0,13,10,14,11,15,12,0),并且通过对1D矢量的输入特征a-1执行按位或运算,以提取输入特征a的非零值位置来产生值a-2(例如,1,1,0、1,1,0,1,1,0,1,1,1,1,1,1,0)。
参照图6,零值过滤器200可以将2×2权重b布置在1D矢量b-1(例如,10,0,0,11)中,并且通过对1D矢量的权重b-1执行按位或运算,以提取权重(过滤器)的非零值位置,来产生值b-2(例如,1,0,0,1)。因此,零值过滤器200可以识别特征(在a-2中以1’表示)和权重(在b-2中以1’表示)的非零值位置。
零值过滤器200可以通过对输入特征和权重的经滤波的非零位置执行按位与运算,根据边界顺序的权重位置来产生非零位置值(S203)。
边界顺序可以与利用1D矢量形式的权重将1D矢量形式的输入特征进行滑动窗口的顺序相同。
参照图7和图8,零值过滤器200可以定位以1D矢量形式过滤的输入特征a-2和权重b-2的非零位置值,以使非零位置值彼此对齐,并对该非零值执行按位与运算同时相对于输入特征滑动权重的窗口(移位)。步长值即每次移动滑动窗口所移位的量是与权重相对应的2D过滤器的列宽的倍数。
参照图8,零值过滤器200可以产生与权重b-2的滑动窗口的位置相对应的多个目标边界c,例如,第一目标边界至第七目标边界。
然后,零值过滤器200可以通过对目标边界的非零位置值执行按位或运算来产生整合边界信息(S205)。在上述操作S103中,整合边界信息包括在索引信息的边界信息中。
参照图8,零值过滤器200可以通过对第一目标边界至第七目标边界的非零位置值c-1(例如,1,0,0,0,0,0)执行按位或运算来产生整合边界信息d-1。零值过滤器200可以通过对第一目标边界至第七目标边界的非零位置值c-2至c-16重复执行按位或运算,来产生整合边界信息d-2至d-16,因此,可以产生最终整合边界信息d。
当在操作S205中产生整合边界信息时,零值过滤器200可以根据步长值来改变待被执行按位或运算的目标边界信息。
本发明的上述实施例旨在说明而不是限制本发明。各种替代方案和等同方案都是有可能的。本发明不受本文描述的实施方案的限制。本发明也不限于任何特定类型的半导体装置。鉴于本公开其他增加,减少或修改是显而易见的,并将落入所附权利要求书的范围内。
Claims (17)
1.一种神经网络加速设备,包括:
零值过滤器,通过将权重施加到包括多个数据元素的输入特征来过滤零值即0值,并且通过将包括相对坐标和组边界信息的索引信息与所述输入特征的数据元素进行匹配生成压缩数据包;
乘法器,通过对所述压缩数据包的输入特征和权重执行乘法运算来生成结果数据;以及
特征图提取器,对基于所述相对坐标和所述组边界信息的所述结果数据执行加法运算,并且通过以原始输入特征形式重排加法运算的结果值来生成输出特征图。
2.根据权利要求1所述的神经网络加速设备,进一步包括输出特征图生成器,所述输出特征图生成器通过将激励函数应用于所述输出特征图来将所述输出特征图改变为非线性值,通过执行池化处理来生成最终输出特征图,并且将所述最终输出特征图传送至第一存储器、第二存储器和零值过滤器中的任意一个。
3.根据权利要求1所述的神经网络加速设备,其中所述零值过滤器使用所述输入特征的零值位置、所述权重的零值位置和步长值执行所述零值过滤。
4.根据权利要求1所述的神经网络加速设备,其中所述零值过滤器根据预设标准对所述输入特征的数据元素进行分组,生成多个组之间的相对坐标,并且将所述相对坐标与每组的数据元素进行匹配。
5.根据权利要求4所述的神经网络加速设备,其中所述组边界信息是用于对所述多个组进行划分的1位信息。
6.根据权利要求1所述的神经网络加速设备,其中所述零值过滤器将所述输入特征和所述权重转换为一维矢量即1D矢量,通过对所述输入特征和所述权重执行按位OR运算即按位或运算来过滤所述输入特征和所述权重的非零值位置,并且通过对所述输入特征和所述权重的经过滤非零位置值执行按位AND运算即按位与运算,根据目标边界的权重位置来产生非零位置值。
7.根据权利要求6所述的神经网络加速设备,其中所述零值过滤器通过对所述目标边界的所述非零位置值执行按位或运算来产生整合边界信息。
8.根据权利要求7所述的神经网络加速设备,其中所述零值过滤器在产生所述整合边界信息时根据步长值改变待被执行按位或运算的所述目标边界。
9.根据权利要求6所述的神经网络加速设备,其中每个目标边界对应于滑动窗口的相应位置,转换为所述1D矢量的权重通过所述滑动窗口被施加到转换为所述1D矢量的所述输入特征。
10.根据权利要求1所述的神经网络加速设备,其中所述乘法器在执行所述乘法运算时参照所述索引信息跳过对经过滤的零值压缩数据包的乘法运算。
11.根据权利要求1所述的神经网络加速设备,进一步包括:
第一存储器,存储所述输入特征和所述权重;以及
第二存储器,存储从所述零值过滤器传送的包括所述索引信息的压缩数据包。
12.一种神经网络加速设备的操作方法,所述操作方法包括:
接收输入特征和权重,所述输入特征包括多个数据元素;
通过将所述权重施加到所述输入特征来过滤零值即0值,并且通过将包括相对坐标和组边界信息的索引信息与所述输入特征的数据元素进行匹配来生成压缩数据包;
通过对所述压缩数据包的输入特征和权重执行乘法运算生成结果数据;
对基于所述结果数据的所述相对坐标和所述组边界信息的相乘的结果数据执行加法运算,并且通过以原始输入特征形式重排所述加法运算的结果值来生成输出特征图;并且
通过将激励函数应用于所述输出特征图,将所述输出特征图改变为非线性值,并且通过执行池化处理生成最终输出特征图。
13.根据权利要求12所述的方法,其中生成所述压缩数据包包括使用所述输入特征的零值位置、所述权重的零值位置和步长值来执行零值过滤。
14.根据权利要求12所述的方法,其中生成所述压缩数据包包括根据预设标准对所述输入特征的数据元素进行分组,生成多个组之间的相对坐标,并且将所述相对坐标与每组的数据元素进行匹配。
15.根据权利要求12所述的方法,其中生成所述压缩包数据包括:
将所述输入特征和所述权重转换为一维矢量即1D矢量,并且通过对所述输入特征和所述权重执行按位或运算来过滤所述输入特征和所述权重的非零值位置;
通过对所述输入特征和所述权重的经过滤非零位置值执行按位与运算,根据目标边界的权重位置来生成非零位置值;并且
通过对所述目标边界的非零位置值执行按位或运算生成整合边界信息。
16.根据权利要求15所述的方法,其中产生所述整合边界信息包括根据步长值改变待被执行按位或运算的所述目标边界。
17.根据权利要求15所述的方法,其中每个目标边界对应于滑动窗口的相应位置,转换为所述1D矢量的权重通过所述滑动窗口被施加到转换为所述1D矢量的所述输入特征。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190049176A KR20200125212A (ko) | 2019-04-26 | 2019-04-26 | 신경망 가속 장치 및 그것의 동작 방법 |
KR10-2019-0049176 | 2019-04-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111860800A true CN111860800A (zh) | 2020-10-30 |
Family
ID=72917272
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911216207.1A Withdrawn CN111860800A (zh) | 2019-04-26 | 2019-12-02 | 神经网络加速设备及其操作方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20200342294A1 (zh) |
JP (1) | JP2020184309A (zh) |
KR (1) | KR20200125212A (zh) |
CN (1) | CN111860800A (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11222092B2 (en) | 2019-07-16 | 2022-01-11 | Facebook Technologies, Llc | Optimization for deconvolution |
US11714998B2 (en) * | 2020-05-05 | 2023-08-01 | Intel Corporation | Accelerating neural networks with low precision-based multiplication and exploiting sparsity in higher order bits |
KR102658283B1 (ko) | 2020-09-25 | 2024-04-18 | 주식회사 경동나비엔 | 가습된 공기를 제공받는 물 가열기 |
US20220383121A1 (en) * | 2021-05-25 | 2022-12-01 | Applied Materials, Inc. | Dynamic activation sparsity in neural networks |
CN115759212A (zh) * | 2021-09-03 | 2023-03-07 | Oppo广东移动通信有限公司 | 卷积运算电路及方法、神经网络加速器和电子设备 |
WO2024043696A1 (ko) * | 2022-08-23 | 2024-02-29 | 삼성전자 주식회사 | 인공지능 모델을 이용하여 연산을 수행하는 전자 장치 및 전자 장치의 동작 방법 |
US20240106782A1 (en) * | 2022-09-28 | 2024-03-28 | Advanced Micro Devices, Inc. | Filtered Responses of Memory Operation Messages |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102930061A (zh) * | 2012-11-28 | 2013-02-13 | 安徽水天信息科技有限公司 | 一种基于运动目标检测的视频摘要方法及*** |
CN107168927A (zh) * | 2017-04-26 | 2017-09-15 | 北京理工大学 | 一种基于流水反馈滤波结构的稀疏傅里叶变换实现方法 |
US20180046900A1 (en) * | 2016-08-11 | 2018-02-15 | Nvidia Corporation | Sparse convolutional neural network accelerator |
CN108932548A (zh) * | 2018-05-22 | 2018-12-04 | 中国科学技术大学苏州研究院 | 一种基于fpga的稀疏度神经网络加速*** |
US20190114547A1 (en) * | 2017-10-16 | 2019-04-18 | Illumina, Inc. | Deep Learning-Based Splice Site Classification |
US20190115933A1 (en) * | 2017-10-12 | 2019-04-18 | British Cayman Islands Intelligo Technology Inc. | Apparatus and method for accelerating multiplication with non-zero packets in artificial neuron |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018126073A1 (en) * | 2016-12-30 | 2018-07-05 | Lau Horace H | Deep learning hardware |
US11295200B1 (en) * | 2018-04-20 | 2022-04-05 | Perceive Corporation | Time-multiplexed dot products for neural network inference circuit |
-
2019
- 2019-04-26 KR KR1020190049176A patent/KR20200125212A/ko active Search and Examination
- 2019-11-26 US US16/696,717 patent/US20200342294A1/en not_active Abandoned
- 2019-12-02 CN CN201911216207.1A patent/CN111860800A/zh not_active Withdrawn
-
2020
- 2020-02-18 JP JP2020024919A patent/JP2020184309A/ja not_active Withdrawn
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102930061A (zh) * | 2012-11-28 | 2013-02-13 | 安徽水天信息科技有限公司 | 一种基于运动目标检测的视频摘要方法及*** |
US20180046900A1 (en) * | 2016-08-11 | 2018-02-15 | Nvidia Corporation | Sparse convolutional neural network accelerator |
CN107168927A (zh) * | 2017-04-26 | 2017-09-15 | 北京理工大学 | 一种基于流水反馈滤波结构的稀疏傅里叶变换实现方法 |
US20190115933A1 (en) * | 2017-10-12 | 2019-04-18 | British Cayman Islands Intelligo Technology Inc. | Apparatus and method for accelerating multiplication with non-zero packets in artificial neuron |
US20190114547A1 (en) * | 2017-10-16 | 2019-04-18 | Illumina, Inc. | Deep Learning-Based Splice Site Classification |
CN108932548A (zh) * | 2018-05-22 | 2018-12-04 | 中国科学技术大学苏州研究院 | 一种基于fpga的稀疏度神经网络加速*** |
Non-Patent Citations (2)
Title |
---|
JORGE ALBERICIO ET AL: "Cnvlutin: Ineffectual-Neuron-Free Deep Neural Network Computing", 《ACM SIGARCH COMPUTER ARCHITECTURE NEWS》, pages 3 * |
JUNG-WOO CHANG ET AL: "An Energy-Efficient FPGA-based Deconvolutional Neural Networks Accelerator for Single Image Super-Resolution", 《IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY》, pages 6 * |
Also Published As
Publication number | Publication date |
---|---|
JP2020184309A (ja) | 2020-11-12 |
KR20200125212A (ko) | 2020-11-04 |
US20200342294A1 (en) | 2020-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111860800A (zh) | 神经网络加速设备及其操作方法 | |
US20190205780A1 (en) | Operation processing circuit and recognition system | |
JP2021100247A (ja) | 歪んだドキュメント画像の矯正方法及び装置 | |
US20190311249A1 (en) | Image processing method, image processing apparatus, and computer-readable storage medium | |
US8723989B2 (en) | Image distortion processing apparatus, and method of operating an image distortion processing apparatus | |
CN110781923B (zh) | 特征提取方法及装置 | |
CN109784372B (zh) | 一种基于卷积神经网络的目标分类方法 | |
EP3093757B1 (en) | Multi-dimensional sliding window operation for a vector processor | |
CN111428189B (zh) | 一种用于反卷积运算的数据预处理方法及装置 | |
JP2016115248A (ja) | 演算処理装置 | |
CN109102069A (zh) | 一种基于查找表的快速图像卷积运算实现方法 | |
EP3154022A1 (en) | A method of compressive sensing-based image filtering and reconstruction, and a device for carrying out said method | |
US10555009B2 (en) | Encoding device, encoding method, decoding device, decoding method, and generation method | |
CN116010313A (zh) | 一种通用、可配置的图像滤波计算多行输出***和方法 | |
CN111831207B (zh) | 一种数据处理方法、装置及其设备 | |
CN112950638B (zh) | 图像分割方法、装置、电子设备及计算机可读存储介质 | |
CN104020449B (zh) | 一种合成孔径雷达干涉相位图滤波方法和设备 | |
CN115735224A (zh) | 非抽取的图像处理方法及装置 | |
CN113496228A (zh) | 一种基于Res2Net、TransUNet和协同注意力的人体语义分割方法 | |
CN113077389A (zh) | 一种基于信息蒸馏结构的红外热成像方法 | |
CN113486781B (zh) | 一种基于深度学习模型的电力巡检方法及装置 | |
JP6361195B2 (ja) | 画像処理装置、画像処理方法、画像処理プログラム及び記録媒体 | |
JP7373751B2 (ja) | 演算処理システムおよび畳み込み演算方法 | |
KR102428033B1 (ko) | 트랜스포즈드 콘볼루션 하드웨어 가속장치 | |
Misra et al. | A memory efficient method for fast transposing run-length encoded images |
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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20201030 |
|
WW01 | Invention patent application withdrawn after publication |