CN106875011A - 二值权重卷积神经网络加速器的硬件架构及其计算流程 - Google Patents
二值权重卷积神经网络加速器的硬件架构及其计算流程 Download PDFInfo
- Publication number
- CN106875011A CN106875011A CN201710032864.5A CN201710032864A CN106875011A CN 106875011 A CN106875011 A CN 106875011A CN 201710032864 A CN201710032864 A CN 201710032864A CN 106875011 A CN106875011 A CN 106875011A
- Authority
- CN
- China
- Prior art keywords
- input
- convolution
- row
- data
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000008569 process Effects 0.000 title claims abstract description 49
- 238000004364 calculation method Methods 0.000 title claims abstract description 46
- 238000013527 convolutional neural network Methods 0.000 title claims abstract description 28
- 238000012545 processing Methods 0.000 claims abstract description 42
- 210000002364 input neuron Anatomy 0.000 claims abstract description 30
- 210000004205 output neuron Anatomy 0.000 claims abstract description 15
- 230000001186 cumulative effect Effects 0.000 claims abstract description 12
- 238000013507 mapping Methods 0.000 claims abstract description 9
- 210000004027 cell Anatomy 0.000 claims description 19
- 210000002569 neuron Anatomy 0.000 claims description 19
- 238000009825 accumulation Methods 0.000 claims description 4
- 238000007792 addition Methods 0.000 claims description 4
- 238000003491 array Methods 0.000 claims 1
- 239000000839 emulsion Substances 0.000 claims 1
- 239000013598 vector Substances 0.000 abstract description 4
- 238000013461 design Methods 0.000 abstract description 3
- 241000023308 Acca Species 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 239000000047 product Substances 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000007935 neutral effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000003638 chemical reducing agent Substances 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 210000005036 nerve Anatomy 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000004148 unit process 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/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)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种用于二值权重卷积神经网络加速器的硬件架构及其计算流程。其中,硬件架构包含以下部分:三个双端片上静态随机存储器,分别用于缓存输入神经元以及一个卷积层的二值权重;四个卷积处理单元,能够根据计算流程控制其中的运算部件完成主要的卷积计算操作;一个特征映射累积单元以及一个卷积累加阵列,用于进一步处理卷积处理单元的运算结果,以得到最终正确的输出神经元的值。整个设计通过动态随机存储器接口与片外存储器交换数据。除了硬件架构以外,本发明还包含了一个对该硬件架构优化了的,以四行输入特征映射为一次完整计算单位的详细计算流程。本发明最大化的复用了输入数据,尽可能的消除了片外存储器的访问,能够有效降低进行深度二值卷积神经网络计算的功耗,且能够支持深层网络,是一种可用于视觉应用的嵌入式系统的合理方案。
Description
技术领域
本发明设计计算机及电子信息技术领域,特别涉及一种二值权重卷积神经网络专用加速器的硬件架构及其计算流程。
背景技术
深度卷积神经网络模型在诸多领域譬如图像分类、动作检测、语音识别以及其他大数据分析的任务中取得了极大的突破和成功。一方面,随着卷积神经网络的效果变得越来越好,其本身拓扑结构也在不断加深,参数数量也达到了10的6次方及以上级别,这带来了计算复杂度的极大提升,所需的计算能力爆炸性增长。另一方面,嵌入式系统仅能够提供有限的资源,其功耗也受限在一定范围内,现有常用的使用大规模GPU的解决方案虽然有较高的吞吐率,但其功耗过高(约250W),难以应用于嵌入式系统中。
二值权重卷积神经网络是一种简化的卷积神经网络模型,其最早由加拿大蒙特利尔大学的Matthieu Courbariaux等人提出,后又经过Itay hubara、Mohammad Rasteg等人的改进。此模型通过特别的训练方式将卷积神经网络的权重训练为二值的+1和-1,这使得模型的计算复杂度大大降低,模型的大小也能够被压缩达到32倍。
然而尽管如此,对于深度卷积神经网络,即使参数二值化能够使得复杂度有所降低,其仍然需要大量的计算,直接应用于嵌入式系统中很难满足实时性的要求。因此设计一款二值权重卷积神经网络加速器是进一步推动深度神经网络应用于嵌入式系统的理想解决方案之一。目前尚未出现理想的二值权重卷积神经网络加速器。Andri R,Cavigelli L,Rossi D,et al.YodaNN:An Ultra-Low Power Convolutional Neural NetworkAccelerator Based on Binary Weights[J].2016:236-241.中提出了一种二值权重卷积神经网络加速器,其能耗比远超现有的高精度权重神经网络的加速器。然而此架构由于大量的访问片外的主存储器,在400MHz的频率下IO的功耗需要大约328毫瓦,甚至比片上计算的功耗还高。因此,针对降低访问片外主存(动态随机存储器)的IO功耗的计算流程和对应架构亟待提出。
发明内容
本发明旨在解决卷积神经网络应用于功耗受限的嵌入式系统的技术问题,或至少提出一种有用的商业选择。为此,本发明的目的在于提出一种针对二值卷积神经网络优化的硬件加速器架构和计算流程,最大化数据复用的同时,尽可能的降低访问片外随机存储器的带宽和功耗,将大量的数据访问限制在片上访问功耗最低的寄存器上。同时本发明能够适应深度网络的需求,能够适应具有最好分类精度之一的VGG-16Net、VGG-19Net等网络拓扑的二值化版本。另外,由于二值卷积神经网络的全连接层主要为IO密集型需求,卷积计算是计算密集型需求,因此本发明着眼于二值权重卷积神经网络的卷积层的加速。
本发明主要包含两部分,一部分是整体的硬件架构,另一部分是优化的计算流程。
硬件架构包含以下部分:
1.两个用于存储卷积层输入的双端静态随机存储器,即输入神经元缓存器IMEM1,IMEM2,其容量分别能够存储该网络每一层输入的所有通道中的2行,共计4行,此行数的设置能应用于卷积核大小为3×3的二值卷积神经网络。
2.一个用于保存二值权重卷积神经网络权重的静态随机存储器,即卷积核缓存器FMEM,其容量大小能够将任意一层卷积层的所有二值权重缓存下来,期中每个权重占用1比特;其有益效果是能够显著降低片外动态随机存储器的访问,降低功耗。计算到每一层的权重都只需要从动态随机存储器中读取一次。
3.四个卷积处理单元PU1~PU4。用于输入神经元以及卷积核的缓冲存储,初步的卷积操作。每个卷积处理单元处理一个输入通道的某4行输入神经元。
4.一个连接于四个卷积处理单元之后的特征映射累积单元ISU,能够进一步处理四个卷积处理单元的计算结果。
5.一个卷积累加阵列ACCA。由于深度卷积神经网络每个卷积层往往都有极多通道,因此只能以部分并行方式进行累加求和处理,最终通过卷积累加阵列对之前计算的数据进行串行组合。
其中,卷积处理单元为本硬件架构的主要计算单元,其中包括:
1.四个针对对应行的数据缓冲单元DBF,其中包括两列寄存器,每列寄存器可保存4个输入数据,数据可在两列寄存器中流动。
2.一个卷积核缓冲单元Kernel Buffer,由512个移位寄存器组成,每个移位寄存器为9比特,可保存一个3×3的卷积核,因此卷积核缓冲单元可缓存针对所有输出通道的某一输入通道的卷积核。卷积核缓冲单元可以将缓冲的卷积核同时送至任意入多出滤波器。
3.用于卷积计算中乘累加计算的多入多出滤波器MFIR,其中第一第四输入行有1×32个MFIR,第二第三行有2×32个MFIR,每行的MFIR的输入共用对应行数据缓冲单元DBF中的输入神经元。
4.将卷积处理单元前3行及后三行对应输出神经元累加的快速加法单元FAU。
上述硬件架构为配合本发明的计算流程所涉及的计算流程,其有益效果是进行高效的卷积计算,尽可能的提高数据复用和降低片外动态存储器的访问。
本发明的计算流程,包含以下步骤:
步骤一,从动态随机存储器中读取待处理的所有输入通道的4行数据,缓存进IMEM中,每个IMEM缓存2行。除此之外,从动态随机存储器中读取该卷积层的所有权重保存进FMEM中。
步骤二,将4个输入通道的4行,每行4个输入神经元分别读取进卷积处理单元的数据缓冲单元DBF里的寄存器中,同时将对应输入通道的二值权重读入卷积处理单元的卷积核缓冲单元中。
步骤三,从卷积核缓冲单元的寄存器中取出对应32个输出通道的卷积核分别送入对应的MFIR中,每个MFIR完成一行的卷积计算,并通过FAU进行累加。每个卷积处理单元的FAU输出再通过特征映射累加单元进行累加后,再在卷积累加阵列中与旧有累加结果进行相加。
步骤四,重复步骤三,改变送入各个MFIR的卷积核,直到所有输出通道被处理,共需要n/32次迭代,其中n为总的输出通道数。与此同时,继续从IMEM中读取下一次迭代需要的每行的接下来4个输入神经元进入对应DBF中的未在卷积中使用的一列寄存器。
步骤五,由于步骤四中已经将接下来4个输入神经元读入,因此可以对这些输入神经元进行卷积。重复步骤三、四,直到当前的4个输入通道的4行全部处理完毕。
步骤六,更换接下来4个输入通道,重复步骤二、三、四、五,直到所有输入通道都被处理完毕,此时在卷积累加阵列中的输出神经元就已经计算完全,也即已经得到了所有输出通道的2行输出。
步骤七,重复步骤一到步骤六,直到完成整个卷积层的所有输入行的计算,得到所有输出,并保存回动态随机存储器,等待下一次读取进行下一层卷积层的计算。其中步骤一中的读取权重的过程可以跳过,因为此过程仅需一次。
补充说明:在上述的步骤五和步骤六的处理过程中,同时还从动态随机存储器中预读取接下来的两行数据进入IMEM中,以覆盖当前处理的4行中的前两行已被处理过的输入神经元。具体预读取和替换的时序为:一旦当前处理的4行中的前两行某个数据被读入卷积处理单元的数据缓冲单元后,即从片外动态随机存储器中读入对应的数据覆盖片上静态随机存储器IMEM中的该数据。
本发明上述的硬件架构配合计算流程,有益效果如下:
首先,由于二值卷积神经网络权重的二值化,因此每个权重可以使用1比特保存,因此相比高精度权重的卷积神经网络,其模型大大缩小。将一个深度网络的某一层的所有参数存入片上不会消耗太多存储容量和面积,而权重却是会被大量访问的数据,因此可以大大减少片外存储器的访问,降低功耗需求。预设的FMEM大小为295KB左右,实验证明对于现有的常用的深度模型都可以有效容纳其中的最大一层的权重。
其次,在卷积处理单元中每一行的数据缓冲单元有两列寄存器,在其中一列寄存器作为数据缓冲器参与卷积计算时,可以同时从IMEM中读取下一次迭代的数据进入另一列寄存器进行准备,时序重叠,提高效率。下一次迭代时可将准备好的数据直接向用于卷积的数据缓冲器进行移位,同时继续下一轮的重叠读取。
第三,卷积处理单元中每一行所有的32个MFIR共用相同的输入神经元,提高了数据复用性,而计算流程的步骤三四,将这部分数据需要的所有计算都在最小的时间范围内处理完毕,使这部分输入神经元不会需要再次从IMEM读入卷积处理单元中,仅有读取寄存器的功耗。而众所周知访问寄存器的功耗远低于访问动态随机存储器和静态随机存储器,此种访存方式和计算流程将大大降低功耗。除此之外,每个MFIR同时使用4个数据,加大了并行度,提高系统吞吐率。
其四,整个计算流程以所有输入通道的四行为处理单位,将之读入片上的IMEM中,而不像常用卷积神经网络架构计算流程中将部分输入通道的所有行读入,相较之下此四行数据读入并处理后即不再需要,这也可以降低再次将他们从片外随机存储器读到片上的功耗。另外,由于是以四行为单位,降低了需要的片上存储容量与输入图像的尺寸大小的依赖性。
最后,数据处理和数据预读的重叠,可以使计算流程在完成一个阶段后无需等待新的数据,提高了吞吐率,也降低了瞬时带宽的需求。
附图说明
本发明的具体实施办法及上述方面的优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明的顶层硬件架构图。
图2是卷积处理单元的内部结构图。
图3是本发明中以4行为处理单位的计算流程的示例,其中为了简化,仅绘出只有一个输入通道一个输出通道的情况。
图4是本发明的计算流程的数据流动时序图,每一行标识了某个存储单元或数据处理单元当前正在使用的数据,用以更加形象的说明计算流程。
具体实施方式
下面详述本发明的实施例,所述实施例的示例在附图中示出。首先介绍必要的硬件整体架构,其次介绍以此硬件架构为基础的优化的计算流程。下面通过参考附图描述的实施是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
在本发明的描述中,需要理解的是,术语“上”、“下”、“左”、“右”、“竖直”、“水平”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明的简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,术语“第一行”、“第二行”……等指示顺序的仅用于描述附图中的处理顺序,而不能理解为指示或暗示实际的某一特定行。由此,限定有“第一行”、“第二行”……的特征可以明示或隐含地指代更多相似情况的相对顺序。
首先介绍本发明的硬件架构部分。
图1为本发明的顶层硬件架构图,数据由片外动态随机存储器(DRAM)从上到下流动,待计算完毕后将输出神经元通过DRAM的接口存回DRAM。其中各个单元介绍如下:
1.IMEM是片上双端静态随机存储器。每一个IMEM作为cache用于保存输入特征映射(input feature map)的一部分,确切的说,是每一个通道(channel)的两行。
2.FMEM也是片上的随机存储器。FMEM用于缓存一整个卷积层的所有权重。FMEM的容量应该要能够存储运行在硬件架构上的网络模型的最大一层卷积层的权重。
3.卷积处理单元PU1~PU4是进行卷积计算的主要单元,每个卷积处理单元处理一个输入通道,每个通道一次处理四行,每行一次并行的处理四个输入神经元,并计算出32个输出通道的两行,每行四个输出神经元。且四个卷积处理单元的输出结果最后需要在特征映射累积单元(ISU)中组合累加。
4.特征映射累积单元(ISU)将上述4个卷积处理单元同时输出的32个输出通道的两行,每行4个对应神经元相累加。
5.卷积累加阵列ACCA。深度卷积神经网络每个卷积层往往都有很多输入通道(如64、128、256、512),而要算出一个输出神经元,就需要该神经元对应的3×3区域所有输入通道的输入神经元进行加权累加。只能以部分并行方式进行累加求和处理,最终通过卷积累加阵列对在卷积处理单元中计算所得的数据进行串行组合。此处的“部分并行”,指的是有此架构中有4个卷积处理单元,因此是4个输入通道的部分并行。最后需要把每4个通道的计算结果通过卷积累加阵列进行串行累加。
图2为一个卷积处理单元PU的示意图。包含了四个数据缓冲单元DBF,每个对应一个输入的行。每个数据缓冲单元后连接有32个多入多出滤波器MFIR,以及对应2个输出行的快速加法单元(FAU)。除此之外还有一个卷积核缓冲单元。各个单元详解如下:
1.数据缓冲单元DBF:由一个多路选择器Mux和两列寄存器LR和RR组成,LR和RR各自可以存储4个输入神经元。每个DBF可以从IMEM中读取输入神经元,通过多路选择器读入LR。而LR的数据可以移位到RR,MFIR可以直接从RR中读取输入数据。在MFIR处理RR中的数据的同时,可以继续从IMEM读取下一次计算需要的数据进入LR。
2.各行的MFIR对任意一个输入神经元,执行的计算可以描述如下:
其中y(n)是该行的一个输出,x(n)是该行输入,k(i)是卷积核中该行的一个权重值,为+1或-1。win为卷积核大小,本架构中win=3。因此该计算可以使用一个有限冲击响应滤波器实现。而每个MFIR同时处理4个输入神经元,也即可以形式的表示为:同时计算出的输出为y(n-1),y(n),y(n+1),y(n+2)。所需使用的输入神经元为x(n-2),x(n-1),x(n),x(n+1),x(n+2),x(n+3)。其中x(n)……x(n+3)是在DBF中的RR中。x(n-2),x(n-1)为上一轮计算中RR中的输入神经元的缓存值。每一行有1×32或2×32个MFIR。其中第二和第三行输入对应的是2×32个MFIR,这是因为第二和第三行的输入神经元为两个输出行所共用,但权重不同。每1×32个MFIR对应一个输出行,他们共用相同的DBF中的LR中的输入神经元,而卷积时各自使用的卷积核权重不同,从而产生32个输出通道的中间结果。另外,由于二值卷积神经网络的权重都为+1或者-1,因此乘法就变成了加法和减法。在本系统中使用补码形式表示数据,因此上述公式中的二值乘法使用求补码单元+多路选择器的实现形式,以降低功耗。
3.对于3×3的卷积核的实现,需要将输入4行的的第一二三行对应输出神经元的结果相加,同理对第二三四行也是。因此需要进行行累加的快速累加单元FAU。FAU可直接使用普通加法器实现,也可使用压缩器(compressor)加加法器的实现。
4.卷积核缓冲单元Kernel Buffer,由512个移位寄存器组成,每个移位寄存器为9比特,可保存一个3×3的卷积核,因此卷积核缓冲单元可缓存针对所有输出通道的某一输入通道的卷积核。卷积核缓冲单元可以将缓冲的不同的卷积核同时送至所有多入多出滤波器。
以下部分内容用于说明以本发明的硬件架构为基础的优化计算流程。
这里首先进行计算流程在较高层次上的介绍,如图3所示。图3中的正方形表示一个通道上的一个输入神经元,不同颜色代表了其被不同迭代阶段所处理。每一行部分神经元需要在一次迭代后缓存下来(使用MFIR中的寄存器)以参与下一次迭代的计算,这部分神经元以含有虚线的正方形所表示。黄色的3×3网格表示当前使用的卷积核。简略起见,图3仅绘出了一个输入通道,一个输出通道,但实际情况下往往会有多个输入、输出通道。概略的计算流程如下:
1.初始化阶段,4行输入神经元中每一行的4个神经元(如图中粉红色)以及两个预读取(缓存)的神经元(以绿色带斜线方块所示)将用于卷积计算。而使用这些神经元和对应的卷积核计算后,将会得到两行的输出(图3中右侧粉红色方块表示)的8个输出神经元。它们是对应输出通道中神经元的计算中间结果(仅使用了部分输入通道的卷积结果)。
2.上述过程将会迭代地应用于所有输出通道,于是每一个输出通道的输出神经元都得到了一部分的计算中间结果。
3.开始下一轮迭代前,每行在上一次迭代中最右的两个输入神经元(以粉红带斜线的方块表示)被缓存。于是在下一轮迭代开始时,可使用图3中蓝色方块及粉红带斜线方块所示的输入神经元进行计算。
4.重复上述过程(1~3),直到当前输入通道的4行所有神经元已用于计算,也即说明4行所有输出通道的输出神经元都已得到了对应当前输入通道的计算中间结果。
5.改变输入通道,重复上述过程(1~4),直到遍历所有输入通道。此时,所有输出通道的输出神经元已获得所有所需的计算中间结果,且经过累加,已得到了最终正确的输出值。于是4行输入神经元全部处理完毕,可以接着以相同方式处理余下所有行的数据,直到得到整个卷积层的所有输出神经元。
其次结合上述硬件架构详细说明计算流程,除了包含上述对于输入神经元处理的顺序外,还详细说明了数据在硬件架构中流动情况,以及数据预读与卷积计算的重叠方式。详细的关于处理顺序及重叠处理的时序如图4中表示。图4以输入特征映射的宽度为224为例。为了清晰起见,以x(m,n,c)表示一个输入神经元,其中m,n,c分别是输入的行、列、输入通道的索引。以Ki,j表示对应于输出通道j的第i个卷积核,也即用于卷积第i个输入通道的卷积核。另外,win表示输入特征映射的宽度,Cin、Cout分别表示输入输出通道数量。计算流程如下:
步骤一,从动态随机存储器中读取待处理的所有输入通道的4行数据,缓存进IMEM中,每个IMEM缓存2行。也就是说,m=1,2,3,4,n=1,2,…,win,c=1,2,…,Cin的输入神经元被缓存进IMEM。除此之外,从动态随机存储器中读取该卷积层的所有权重保存进FMEM中。
步骤二,将4个输入通道的4行,每行4个输入神经元分别读取进卷积处理单元的数据缓冲单元DBF里的寄存器LR中,同时将对应输入通道的二值权重从FMEM中读入卷积处理单元的卷积核缓冲单元PU中。换句话说,对应于卷积核Ki,j,i=1,2,3,4以及j=1,2,…,Cout被缓存进PU中的kernel buffer里,每个PU对应一个i。当上述读取过程完成后,将LR中输入神经元移位到RR中,并在下一步骤进行卷积计算的过程中再次读取每行的接下来四个输入神经元。如图4中第二行第二个黄色框所示。
步骤三,从卷积核缓冲单元的寄存器中取出对应32个输出通道的卷积核,分别送入对应的MFIR中,每个MFIR完成一行的卷积计算,并通过FAU进行累加。每个卷积处理单元的FAU输出是对应该PU的输入通道的计算中间结果,通过特征映射累加单元与其他输出通道的结果进行累加后得到的4个输入通道计算中间结果之和,再在卷积累加阵列中与旧有累加结果进行相加。当第一次迭代时,旧有的累加结果为0,或可以是卷积层的偏置项。
步骤四,重复步骤三,改变送入各个MFIR的卷积核(可通过图2中kernel buffer里的多路选择器阵列),直到所有输出通道得到计算的中间结果。换句话说,对于Ki,j,(i=1,2,3,4),此重复步骤即为将j从1改变到Cout。由于每个输出行有32个MFIR并行,因此共需要[Cout/32]次迭代。与此同时,继续从IMEM中读取下一次迭代需要的每行的接下来4个输入神经元进入对应DBF中的未在卷积中使用的一列寄存器。
步骤五,由于步骤四中已经将接下来4个输入神经元读入LR,因此将它们从LR移位到RR后可以对这些输入神经元进行卷积。重复步骤三、四,直到当前的4个输入通道的4行全部处理完毕。
步骤六,更换接下来4个输入通道,重复步骤二、三、四、五,直到所有输入通道都被处理完毕,此时在卷积累加阵列中的输出神经元就已经计算完全,也即已经得到了所有输出通道的2行输出,并保存在ACCA中的缓冲器里。
步骤七,重复步骤一到步骤六,直到完成整个卷积层的所有输入行的计算,得到所有输出,并保存回动态随机存储器,等待下一次读取进行下一层卷积层的计算。其中步骤一中的读取权重的过程可以跳过,因为此过程仅需一次。
补充说明:在上述的步骤五和步骤六的处理过程中,同时还从动态随机存储器中预读取接下来的两行数据进入IMEM中,以覆盖当前处理的4行中的前两行已被处理过的输入神经元。具体预读取和替换的时序为:一旦当前处理的4行中的前两行某个数据被读入卷积处理单元的数据缓冲单元后,即从片外动态随机存储器中读入对应的数据覆盖片上静态随机存储器IMEM中的该数据。
通过本发明实施例的上述硬件架构和计算流程,可以最大化输入数据的复用,降低访问高能耗存储器(SRAM、DRAM)的次数,显著降低功耗,提高系统的吞吐率。而硬件架构中的PU、ISU、ACCA主要给出了功能说明,具体实现这些部分的功能的方法和途径很多。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中为明确的各组成部分均可用现有技术加以实现。
Claims (4)
1.一种二值权重卷积神经网络加速器的硬件架构及计算流程,其特征在于,硬件架构部分包括:
11.两个用于存储卷积层输入的双端静态随机存储器,即输入神经元缓存器IMEM,其容量分别能够存储该网络每一层输入的所有通道中的2行,共计4行,此行数所针对的卷积核大小为3×3;
12.一个用于保存二值权重卷积神经网络权重的静态随机存储器,即卷积核缓存器FMEM,其容量大小能够将任意一层卷积层的所有二值权重缓存下来,期中每个权重占用1比特;
13.四个卷积处理单元,主要根据计算流程完成卷积处理计算;
14.一个特征映射累加单元;
15.一个卷积累加阵列。
2.权利要求1所述的卷积处理单元,其特征在于,包括:
21. 4个针对对应行的数据缓冲单元DBF,其中包括两列寄存器,每列寄存器可保存4个输入数据,数据可在两列寄存器中流动;
22.一个卷积核缓冲单元kernel buffer,由512个移位寄存器组成,每个移位寄存器为9比特,可保存一个3×3的卷积核,因此卷积核缓冲单元可缓存对应于所有输出通道的某一输入通道的卷积核;
23.用于卷积计算中乘累加计算的多入多出滤波器MFIR,每一行有32个MFIR,这32个MFIR的输入共用对应行数据缓冲单元DBF中的输入神经元;
24.将卷积处理单元前3行及后三行对应输出神经元累加的快速加法单元FAU。
3.二值权重卷积神经网络加速器硬件架构及计算流程,其特征在于,卷积计算流程部分包括以下步骤(其中的英文缩写的指代意义如权利要求1、2中所述):
步骤一,从动态随机存储器中读取待处理的所有输入通道的4行数据,缓存进IMEM中,每个IMEM缓存2行;除此之外,从动态随机存储器中读取该卷积层的所有权重保存进如权利要求1所述的FMEM中;
步骤二,将4个输入通道的的4行,每行4个输入神经元分别读取进卷积处理单元的数据缓冲单元DBF里的寄存器中,同时将对应输入通道的二值权重读入卷积处理单元的卷积核缓冲单元中;
步骤三,从卷积核缓冲单元的寄存器中取出对应32个输出通道的卷积核分别送入对应的MFIR中,每个MFIR完成一行的卷积计算,并通过FAU进行累加;每个卷积处理单元的FAU输出再通过如权利要求1所述的特征映射累加单元进行累加后,再在卷积累加阵列中与旧有累加结果进行相加;
步骤四,重复步骤三,直到所有输出通道被处理,共需要n/32次迭代,其中n为总的输出通道数;与此同时,继续从IMEM中读取下一次迭代需要的每行的接下来4个输入神经元进入对应DBF中的未在卷积中使用的一列寄存器;
步骤五,由于步骤四中已经将接下来4个输入神经元读入,因此可以对这些输入神经元进行卷积。重复步骤三、四,直到当前的4个输入通道的4行全部处理完毕;
步骤六,更换接下来4个输入通道,重复步骤二、三、四、五,直到所有输入通道都被处理完毕,此时在卷积累加阵列中的输出神经元就已经计算完全,也即已经得到了所有输出通道的2行输出;
步骤七,重复步骤一到六,直到完成整个卷积层的所有输入行的计算,得到所有输出,并保存回动态随机存储器,等待下一次读取进行下一层卷积层的计算;其中步骤一中的读取权重的过程可以跳过,因为此过程仅需一次。
4.如权利要求3所述的卷积计算流程,其中步骤五和步骤六的处理过程中,同时还从动态随机存储器中预读取接下来的两行数据进入IMEM中,以覆盖当前处理的4行中的前两行已被处理过的输入神经元;具体预读取和替换的时序为:一旦当前处理的4行中的前两行某个数据被读入卷积处理单元的数据缓冲单元后,即从片外动态随机存储器中读入对应的数据覆盖片上静态随机存储器IMEM中的该数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710032864.5A CN106875011B (zh) | 2017-01-12 | 2017-01-12 | 二值权重卷积神经网络加速器的硬件架构及其计算流程 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710032864.5A CN106875011B (zh) | 2017-01-12 | 2017-01-12 | 二值权重卷积神经网络加速器的硬件架构及其计算流程 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106875011A true CN106875011A (zh) | 2017-06-20 |
CN106875011B CN106875011B (zh) | 2020-04-17 |
Family
ID=59158502
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710032864.5A Active CN106875011B (zh) | 2017-01-12 | 2017-01-12 | 二值权重卷积神经网络加速器的硬件架构及其计算流程 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106875011B (zh) |
Cited By (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107220702A (zh) * | 2017-06-21 | 2017-09-29 | 北京图森未来科技有限公司 | 一种神经网络优化方法及装置 |
CN107862378A (zh) * | 2017-12-06 | 2018-03-30 | 芯原微电子(上海)有限公司 | 基于多核的卷积神经网络加速方法及系统、存储介质及终端 |
CN108171317A (zh) * | 2017-11-27 | 2018-06-15 | 北京时代民芯科技有限公司 | 一种基于soc的数据复用卷积神经网络加速器 |
CN108182471A (zh) * | 2018-01-24 | 2018-06-19 | 上海岳芯电子科技有限公司 | 一种卷积神经网络推理加速器及方法 |
CN108256644A (zh) * | 2018-01-05 | 2018-07-06 | 上海兆芯集成电路有限公司 | 微处理器电路以及执行神经网络运算的方法 |
CN108388537A (zh) * | 2018-03-06 | 2018-08-10 | 上海熠知电子科技有限公司 | 一种卷积神经网络加速装置和方法 |
CN108647773A (zh) * | 2018-04-20 | 2018-10-12 | 复旦大学 | 一种可重构卷积神经网络的硬件互连架构 |
CN108647155A (zh) * | 2018-05-14 | 2018-10-12 | 福州瑞芯微电子股份有限公司 | 一种基于深度学习的多级cache共享的方法和装置 |
CN108665063A (zh) * | 2018-05-18 | 2018-10-16 | 南京大学 | 用于bnn硬件加速器的双向并行处理卷积加速系统 |
CN108701015A (zh) * | 2017-11-30 | 2018-10-23 | 深圳市大疆创新科技有限公司 | 用于神经网络的运算装置、芯片、设备及相关方法 |
CN108805267A (zh) * | 2018-05-28 | 2018-11-13 | 重庆大学 | 用于卷积神经网络硬件加速的数据处理方法 |
CN108805274A (zh) * | 2018-05-28 | 2018-11-13 | 重庆大学 | 基于FPGA的Tiny-yolo卷积神经网络硬件加速方法及系统 |
CN108830379A (zh) * | 2018-05-23 | 2018-11-16 | 电子科技大学 | 一种基于参数量化共享的神经形态处理器 |
CN108875919A (zh) * | 2017-07-21 | 2018-11-23 | 北京旷视科技有限公司 | 数据处理装置、数据处理方法和存储介质产品 |
CN108960414A (zh) * | 2018-07-20 | 2018-12-07 | 中国人民解放军国防科技大学 | 一种基于深度学习加速器实现单广播多运算的方法 |
CN108984426A (zh) * | 2018-08-03 | 2018-12-11 | 北京字节跳动网络技术有限公司 | 用于处理数据的方法和装置 |
CN109145314A (zh) * | 2017-08-03 | 2019-01-04 | 海青智盈技术公司 | 使用基于cnn的集成电路的自然语言处理 |
CN109165728A (zh) * | 2018-08-06 | 2019-01-08 | 济南浪潮高新科技投资发展有限公司 | 一种卷积神经网络的基本计算单元及计算方法 |
CN109359735A (zh) * | 2018-11-23 | 2019-02-19 | 浙江大学 | 深度神经网络硬件加速的数据输入装置与方法 |
CN109389214A (zh) * | 2017-08-11 | 2019-02-26 | 谷歌有限责任公司 | 具有驻留在芯片上的参数的神经网络加速器 |
WO2019051658A1 (en) * | 2017-09-13 | 2019-03-21 | Intel Corporation | INCREMENTAL NETWORK QUANTIFICATION |
CN109740732A (zh) * | 2018-12-27 | 2019-05-10 | 深圳云天励飞技术有限公司 | 神经网络处理器、卷积神经网络数据复用方法及相关设备 |
CN109784488A (zh) * | 2019-01-15 | 2019-05-21 | 福州大学 | 一种适用于嵌入式平台的二值化卷积神经网络的构建方法 |
CN109844774A (zh) * | 2018-08-28 | 2019-06-04 | 深圳鲲云信息科技有限公司 | 一种并行反卷积计算方法、单引擎计算方法及相关产品 |
CN109858622A (zh) * | 2019-01-31 | 2019-06-07 | 福州瑞芯微电子股份有限公司 | 深度学习神经网络的数据搬运电路和方法 |
WO2019136747A1 (zh) * | 2018-01-15 | 2019-07-18 | 深圳鲲云信息科技有限公司 | 反卷积器及其所应用的人工智能处理装置 |
CN110033086A (zh) * | 2019-04-15 | 2019-07-19 | 北京异构智能科技有限公司 | 用于神经网络卷积运算的硬件加速器 |
CN110069444A (zh) * | 2019-06-03 | 2019-07-30 | 南京宁麒智能计算芯片研究院有限公司 | 一种计算单元、阵列、模块、硬件系统及实现方法 |
CN110070186A (zh) * | 2018-12-05 | 2019-07-30 | 海青智盈技术公司 | 通过二维符号进行机器学习 |
CN110261394A (zh) * | 2019-06-24 | 2019-09-20 | 内蒙古工业大学 | 在线风机叶片损伤实时诊断系统和方法 |
CN110321997A (zh) * | 2018-03-31 | 2019-10-11 | 北京深鉴智能科技有限公司 | 高并行度计算平台、系统及计算实现方法 |
CN110321816A (zh) * | 2019-06-19 | 2019-10-11 | 北京清微智能科技有限公司 | 图像识别方法及装置 |
CN110555512A (zh) * | 2019-07-30 | 2019-12-10 | 北京航空航天大学 | 一种二值卷积神经网络数据重用方法及装置 |
CN110716751A (zh) * | 2018-07-12 | 2020-01-21 | 赛灵思公司 | 高并行度计算平台、系统及计算实现方法 |
CN110780923A (zh) * | 2019-10-31 | 2020-02-11 | 合肥工业大学 | 应用于二值化卷积神经网络的硬件加速器及其数据处理方法 |
CN110826707A (zh) * | 2018-08-10 | 2020-02-21 | 北京百度网讯科技有限公司 | 应用于卷积神经网络的加速方法和硬件加速器 |
CN110989920A (zh) * | 2018-10-03 | 2020-04-10 | 马克西姆综合产品公司 | 能量高效的存储器系统和方法 |
CN111126579A (zh) * | 2019-11-05 | 2020-05-08 | 复旦大学 | 一种适用于二值卷积神经网络计算的存内计算装置 |
CN111144545A (zh) * | 2018-11-02 | 2020-05-12 | 深圳云天励飞技术有限公司 | 用于实现卷积运算的处理元件、装置和方法 |
CN111191775A (zh) * | 2018-11-15 | 2020-05-22 | 南京博芯电子技术有限公司 | 一种“三明治”结构的加速卷积神经网络的存储器 |
CN111275162A (zh) * | 2018-12-05 | 2020-06-12 | 意法半导体(鲁塞)公司 | 用于通过神经网络处理数据的方法和设备 |
CN111832718A (zh) * | 2020-06-24 | 2020-10-27 | 上海西井信息科技有限公司 | 芯片架构 |
CN111931925A (zh) * | 2020-08-10 | 2020-11-13 | 西安电子科技大学 | 基于fpga的二值化神经网络的加速系统 |
CN112070204A (zh) * | 2020-07-24 | 2020-12-11 | 中国科学院计算技术研究所 | 一种基于阻变存储器的神经网络映射方法、加速器 |
CN112308217A (zh) * | 2019-07-31 | 2021-02-02 | 北京欣奕华科技有限公司 | 一种卷积神经网络加速方法及系统 |
CN112906886A (zh) * | 2021-02-08 | 2021-06-04 | 合肥工业大学 | 结果复用的可重构bnn硬件加速器及图像处理方法 |
CN114723031A (zh) * | 2022-05-06 | 2022-07-08 | 北京宽温微电子科技有限公司 | 一种计算装置 |
US11436168B2 (en) | 2020-10-14 | 2022-09-06 | Samsung Electronics Co., Ltd. | Accelerator and electronic device including the same |
CN110210610B (zh) * | 2018-03-27 | 2023-06-20 | 腾讯科技(深圳)有限公司 | 卷积计算加速器、卷积计算方法及卷积计算设备 |
US11915118B2 (en) | 2019-03-13 | 2024-02-27 | Samsung Electronics Co., Ltd. | Method and apparatus for processing computation of zero value in processing of layers in neural network |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210150313A1 (en) * | 2019-11-15 | 2021-05-20 | Samsung Electronics Co., Ltd. | Electronic device and method for inference binary and ternary neural networks |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101414478A (zh) * | 2008-11-13 | 2009-04-22 | 戴葵 | 一种嵌入式动态随机存储器结构 |
US20140219279A1 (en) * | 2013-02-07 | 2014-08-07 | The Royal Institution For The Advancement Of Learning / Mcgill University | Methods and systems for network address lookup engines |
CN104915322A (zh) * | 2015-06-09 | 2015-09-16 | 中国人民解放军国防科学技术大学 | 一种卷积神经网络硬件加速方法及其axi总线ip核 |
CN106228240A (zh) * | 2016-07-30 | 2016-12-14 | 复旦大学 | 基于fpga的深度卷积神经网络实现方法 |
-
2017
- 2017-01-12 CN CN201710032864.5A patent/CN106875011B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101414478A (zh) * | 2008-11-13 | 2009-04-22 | 戴葵 | 一种嵌入式动态随机存储器结构 |
US20140219279A1 (en) * | 2013-02-07 | 2014-08-07 | The Royal Institution For The Advancement Of Learning / Mcgill University | Methods and systems for network address lookup engines |
CN104915322A (zh) * | 2015-06-09 | 2015-09-16 | 中国人民解放军国防科学技术大学 | 一种卷积神经网络硬件加速方法及其axi总线ip核 |
CN106228240A (zh) * | 2016-07-30 | 2016-12-14 | 复旦大学 | 基于fpga的深度卷积神经网络实现方法 |
Non-Patent Citations (1)
Title |
---|
RENZO ANDRI ET AL.: "YodaNN: An Ultra-Low Power Convolutional Neural Network Accelerator Based on Binary Weights", 《IEEE》 * |
Cited By (83)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107220702A (zh) * | 2017-06-21 | 2017-09-29 | 北京图森未来科技有限公司 | 一种神经网络优化方法及装置 |
CN107220702B (zh) * | 2017-06-21 | 2020-11-24 | 北京图森智途科技有限公司 | 一种低计算能力处理设备的计算机视觉处理方法及装置 |
CN108875919A (zh) * | 2017-07-21 | 2018-11-23 | 北京旷视科技有限公司 | 数据处理装置、数据处理方法和存储介质产品 |
CN108875919B (zh) * | 2017-07-21 | 2021-04-02 | 北京旷视科技有限公司 | 数据处理装置、数据处理方法和存储介质产品 |
CN109145314A (zh) * | 2017-08-03 | 2019-01-04 | 海青智盈技术公司 | 使用基于cnn的集成电路的自然语言处理 |
US11727259B2 (en) | 2017-08-11 | 2023-08-15 | Google Llc | Neural network accelerator with parameters resident on chip |
US11501144B2 (en) | 2017-08-11 | 2022-11-15 | Google Llc | Neural network accelerator with parameters resident on chip |
CN109389214A (zh) * | 2017-08-11 | 2019-02-26 | 谷歌有限责任公司 | 具有驻留在芯片上的参数的神经网络加速器 |
WO2019051658A1 (en) * | 2017-09-13 | 2019-03-21 | Intel Corporation | INCREMENTAL NETWORK QUANTIFICATION |
CN108171317B (zh) * | 2017-11-27 | 2020-08-04 | 北京时代民芯科技有限公司 | 一种基于soc的数据复用卷积神经网络加速器 |
CN108171317A (zh) * | 2017-11-27 | 2018-06-15 | 北京时代民芯科技有限公司 | 一种基于soc的数据复用卷积神经网络加速器 |
CN108701015A (zh) * | 2017-11-30 | 2018-10-23 | 深圳市大疆创新科技有限公司 | 用于神经网络的运算装置、芯片、设备及相关方法 |
CN107862378B (zh) * | 2017-12-06 | 2020-04-24 | 芯原微电子(上海)股份有限公司 | 基于多核的卷积神经网络加速方法及系统、存储介质及终端 |
CN107862378A (zh) * | 2017-12-06 | 2018-03-30 | 芯原微电子(上海)有限公司 | 基于多核的卷积神经网络加速方法及系统、存储介质及终端 |
CN108256644A (zh) * | 2018-01-05 | 2018-07-06 | 上海兆芯集成电路有限公司 | 微处理器电路以及执行神经网络运算的方法 |
CN110178146A (zh) * | 2018-01-15 | 2019-08-27 | 深圳鲲云信息科技有限公司 | 反卷积器及其所应用的人工智能处理装置 |
CN110178146B (zh) * | 2018-01-15 | 2023-05-12 | 深圳鲲云信息科技有限公司 | 反卷积器及其所应用的人工智能处理装置 |
WO2019136747A1 (zh) * | 2018-01-15 | 2019-07-18 | 深圳鲲云信息科技有限公司 | 反卷积器及其所应用的人工智能处理装置 |
CN108182471A (zh) * | 2018-01-24 | 2018-06-19 | 上海岳芯电子科技有限公司 | 一种卷积神经网络推理加速器及方法 |
CN108388537A (zh) * | 2018-03-06 | 2018-08-10 | 上海熠知电子科技有限公司 | 一种卷积神经网络加速装置和方法 |
CN110210610B (zh) * | 2018-03-27 | 2023-06-20 | 腾讯科技(深圳)有限公司 | 卷积计算加速器、卷积计算方法及卷积计算设备 |
CN110321997A (zh) * | 2018-03-31 | 2019-10-11 | 北京深鉴智能科技有限公司 | 高并行度计算平台、系统及计算实现方法 |
CN110321997B (zh) * | 2018-03-31 | 2021-10-19 | 赛灵思公司 | 高并行度计算平台、系统及计算实现方法 |
CN108647773A (zh) * | 2018-04-20 | 2018-10-12 | 复旦大学 | 一种可重构卷积神经网络的硬件互连架构 |
CN108647773B (zh) * | 2018-04-20 | 2021-07-23 | 复旦大学 | 一种可重构卷积神经网络的硬件互连系统 |
CN108647155A (zh) * | 2018-05-14 | 2018-10-12 | 福州瑞芯微电子股份有限公司 | 一种基于深度学习的多级cache共享的方法和装置 |
CN108647155B (zh) * | 2018-05-14 | 2020-08-21 | 瑞芯微电子股份有限公司 | 一种基于深度学习的多级cache共享的方法和装置 |
CN108665063B (zh) * | 2018-05-18 | 2022-03-18 | 南京大学 | 用于bnn硬件加速器的双向并行处理卷积加速系统 |
CN108665063A (zh) * | 2018-05-18 | 2018-10-16 | 南京大学 | 用于bnn硬件加速器的双向并行处理卷积加速系统 |
CN108830379B (zh) * | 2018-05-23 | 2021-12-17 | 电子科技大学 | 一种基于参数量化共享的神经形态处理器 |
CN108830379A (zh) * | 2018-05-23 | 2018-11-16 | 电子科技大学 | 一种基于参数量化共享的神经形态处理器 |
CN108805274B (zh) * | 2018-05-28 | 2022-02-18 | 重庆大学 | 基于FPGA的Tiny-yolo卷积神经网络硬件加速方法及系统 |
CN108805267A (zh) * | 2018-05-28 | 2018-11-13 | 重庆大学 | 用于卷积神经网络硬件加速的数据处理方法 |
CN108805274A (zh) * | 2018-05-28 | 2018-11-13 | 重庆大学 | 基于FPGA的Tiny-yolo卷积神经网络硬件加速方法及系统 |
CN108805267B (zh) * | 2018-05-28 | 2021-09-10 | 重庆大学 | 用于卷积神经网络硬件加速的数据处理方法 |
CN110716751A (zh) * | 2018-07-12 | 2020-01-21 | 赛灵思公司 | 高并行度计算平台、系统及计算实现方法 |
CN108960414A (zh) * | 2018-07-20 | 2018-12-07 | 中国人民解放军国防科技大学 | 一种基于深度学习加速器实现单广播多运算的方法 |
CN108960414B (zh) * | 2018-07-20 | 2022-06-07 | 中国人民解放军国防科技大学 | 一种基于深度学习加速器实现单广播多运算的方法 |
CN108984426B (zh) * | 2018-08-03 | 2021-01-26 | 北京字节跳动网络技术有限公司 | 用于处理数据的方法和装置 |
CN108984426A (zh) * | 2018-08-03 | 2018-12-11 | 北京字节跳动网络技术有限公司 | 用于处理数据的方法和装置 |
CN109165728A (zh) * | 2018-08-06 | 2019-01-08 | 济南浪潮高新科技投资发展有限公司 | 一种卷积神经网络的基本计算单元及计算方法 |
CN110826707B (zh) * | 2018-08-10 | 2023-10-31 | 北京百度网讯科技有限公司 | 应用于卷积神经网络的加速方法和硬件加速器 |
CN110826707A (zh) * | 2018-08-10 | 2020-02-21 | 北京百度网讯科技有限公司 | 应用于卷积神经网络的加速方法和硬件加速器 |
CN109844774B (zh) * | 2018-08-28 | 2023-01-24 | 深圳鲲云信息科技有限公司 | 一种并行反卷积计算方法、单引擎计算方法及相关产品 |
CN109844774A (zh) * | 2018-08-28 | 2019-06-04 | 深圳鲲云信息科技有限公司 | 一种并行反卷积计算方法、单引擎计算方法及相关产品 |
CN110989920A (zh) * | 2018-10-03 | 2020-04-10 | 马克西姆综合产品公司 | 能量高效的存储器系统和方法 |
CN110989920B (zh) * | 2018-10-03 | 2024-02-06 | 马克西姆综合产品公司 | 能量高效的存储器系统和方法 |
CN111144545A (zh) * | 2018-11-02 | 2020-05-12 | 深圳云天励飞技术有限公司 | 用于实现卷积运算的处理元件、装置和方法 |
CN111191775A (zh) * | 2018-11-15 | 2020-05-22 | 南京博芯电子技术有限公司 | 一种“三明治”结构的加速卷积神经网络的存储器 |
CN111191775B (zh) * | 2018-11-15 | 2023-10-27 | 南京博芯电子技术有限公司 | 一种“三明治”结构的加速卷积神经网络的存储器 |
CN109359735A (zh) * | 2018-11-23 | 2019-02-19 | 浙江大学 | 深度神经网络硬件加速的数据输入装置与方法 |
CN109359735B (zh) * | 2018-11-23 | 2020-12-04 | 浙江大学 | 深度神经网络硬件加速的数据输入装置与方法 |
US11645519B2 (en) | 2018-12-05 | 2023-05-09 | Stmicroelectronics (Rousset) Sas | Filtering data in orthogonal directions through a convolutional neural network |
CN110070186A (zh) * | 2018-12-05 | 2019-07-30 | 海青智盈技术公司 | 通过二维符号进行机器学习 |
CN111275162B (zh) * | 2018-12-05 | 2024-01-23 | 意法半导体(鲁塞)公司 | 用于通过神经网络处理数据的方法和设备 |
CN111275162A (zh) * | 2018-12-05 | 2020-06-12 | 意法半导体(鲁塞)公司 | 用于通过神经网络处理数据的方法和设备 |
CN109740732A (zh) * | 2018-12-27 | 2019-05-10 | 深圳云天励飞技术有限公司 | 神经网络处理器、卷积神经网络数据复用方法及相关设备 |
CN109784488A (zh) * | 2019-01-15 | 2019-05-21 | 福州大学 | 一种适用于嵌入式平台的二值化卷积神经网络的构建方法 |
CN109784488B (zh) * | 2019-01-15 | 2022-08-12 | 福州大学 | 一种适用于嵌入式平台的二值化卷积神经网络的构建方法 |
CN109858622A (zh) * | 2019-01-31 | 2019-06-07 | 福州瑞芯微电子股份有限公司 | 深度学习神经网络的数据搬运电路和方法 |
US11915118B2 (en) | 2019-03-13 | 2024-02-27 | Samsung Electronics Co., Ltd. | Method and apparatus for processing computation of zero value in processing of layers in neural network |
CN110033086A (zh) * | 2019-04-15 | 2019-07-19 | 北京异构智能科技有限公司 | 用于神经网络卷积运算的硬件加速器 |
CN110069444A (zh) * | 2019-06-03 | 2019-07-30 | 南京宁麒智能计算芯片研究院有限公司 | 一种计算单元、阵列、模块、硬件系统及实现方法 |
CN110321816B (zh) * | 2019-06-19 | 2021-04-09 | 北京清微智能科技有限公司 | 图像识别方法及装置 |
CN110321816A (zh) * | 2019-06-19 | 2019-10-11 | 北京清微智能科技有限公司 | 图像识别方法及装置 |
CN110261394A (zh) * | 2019-06-24 | 2019-09-20 | 内蒙古工业大学 | 在线风机叶片损伤实时诊断系统和方法 |
CN110555512B (zh) * | 2019-07-30 | 2021-12-03 | 北京航空航天大学 | 一种二值卷积神经网络数据重用方法及装置 |
CN110555512A (zh) * | 2019-07-30 | 2019-12-10 | 北京航空航天大学 | 一种二值卷积神经网络数据重用方法及装置 |
CN112308217A (zh) * | 2019-07-31 | 2021-02-02 | 北京欣奕华科技有限公司 | 一种卷积神经网络加速方法及系统 |
CN110780923A (zh) * | 2019-10-31 | 2020-02-11 | 合肥工业大学 | 应用于二值化卷积神经网络的硬件加速器及其数据处理方法 |
CN111126579A (zh) * | 2019-11-05 | 2020-05-08 | 复旦大学 | 一种适用于二值卷积神经网络计算的存内计算装置 |
CN111126579B (zh) * | 2019-11-05 | 2023-06-27 | 复旦大学 | 一种适用于二值卷积神经网络计算的存内计算装置 |
CN111832718A (zh) * | 2020-06-24 | 2020-10-27 | 上海西井信息科技有限公司 | 芯片架构 |
CN111832718B (zh) * | 2020-06-24 | 2021-08-03 | 上海西井信息科技有限公司 | 芯片架构 |
CN112070204B (zh) * | 2020-07-24 | 2023-01-20 | 中国科学院计算技术研究所 | 一种基于阻变存储器的神经网络映射方法、加速器 |
CN112070204A (zh) * | 2020-07-24 | 2020-12-11 | 中国科学院计算技术研究所 | 一种基于阻变存储器的神经网络映射方法、加速器 |
CN111931925A (zh) * | 2020-08-10 | 2020-11-13 | 西安电子科技大学 | 基于fpga的二值化神经网络的加速系统 |
CN111931925B (zh) * | 2020-08-10 | 2024-02-09 | 西安电子科技大学 | 基于fpga的二值化神经网络的加速系统 |
US11436168B2 (en) | 2020-10-14 | 2022-09-06 | Samsung Electronics Co., Ltd. | Accelerator and electronic device including the same |
US11966344B2 (en) | 2020-10-14 | 2024-04-23 | Samsung Electronics Co., Ltd. | Accelerator and electronic device including the same |
CN112906886A (zh) * | 2021-02-08 | 2021-06-04 | 合肥工业大学 | 结果复用的可重构bnn硬件加速器及图像处理方法 |
CN114723031B (zh) * | 2022-05-06 | 2023-10-20 | 苏州宽温电子科技有限公司 | 一种计算装置 |
CN114723031A (zh) * | 2022-05-06 | 2022-07-08 | 北京宽温微电子科技有限公司 | 一种计算装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106875011B (zh) | 2020-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106875011A (zh) | 二值权重卷积神经网络加速器的硬件架构及其计算流程 | |
CN107169563B (zh) | 应用于二值权重卷积网络的处理系统及方法 | |
CN107578095B (zh) | 神经网络计算装置及包含该计算装置的处理器 | |
CN107918794A (zh) | 基于计算阵列的神经网络处理器 | |
CN106951395A (zh) | 面向压缩卷积神经网络的并行卷积运算方法及装置 | |
CN107844322A (zh) | 用于执行人工神经网络正向运算的装置和方法 | |
CN108665063B (zh) | 用于bnn硬件加速器的双向并行处理卷积加速系统 | |
CN108416437A (zh) | 用于乘加运算的人工神经网络的处理系统及方法 | |
CN107239824A (zh) | 用于实现稀疏卷积神经网络加速器的装置和方法 | |
CN107578098A (zh) | 基于脉动阵列的神经网络处理器 | |
CN107066239A (zh) | 一种实现卷积神经网络前向计算的硬件结构 | |
CN107437110A (zh) | 卷积神经网络的分块卷积优化方法及装置 | |
CN110334799A (zh) | 基于存算一体的神经网络推理与训练加速器及其运行方法 | |
CN108629406B (zh) | 用于卷积神经网络的运算装置 | |
CN110222818A (zh) | 一种用于卷积神经网络数据存储的多bank行列交织读写方法 | |
CN108229671A (zh) | 一种降低加速器外部数据存储带宽需求的系统和方法 | |
CN110766127B (zh) | 神经网络计算专用电路及其相关计算平台与实现方法 | |
CN110321997A (zh) | 高并行度计算平台、系统及计算实现方法 | |
CN107203808A (zh) | 一种二值卷积装置及相应的二值卷积神经网络处理器 | |
CN110163338A (zh) | 具有运算阵列的芯片运算方法、装置、终端及芯片 | |
CN111048135A (zh) | 一种基于忆阻器内存计算的cnn处理装置及其工作方法 | |
CN110009644B (zh) | 一种特征图行像素分段的方法和装置 | |
CN115423081A (zh) | 一种基于fpga的cnn_lstm算法的神经网络加速器 | |
CN110414672B (zh) | 卷积运算方法、装置及系统 | |
CN110009103B (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20190428 Address after: Room 816, Block B, Software Building 9 Xinghuo Road, Jiangbei New District, Nanjing, Jiangsu Province Applicant after: Nanjing Fengxing Technology Co., Ltd. Address before: 210023 Xianlin Avenue 163 Nanjing University Electronic Building 229, Qixia District, Nanjing City, Jiangsu Province Applicant before: Nanjing University |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |