CN108510066A - 一种应用于卷积神经网络的处理器 - Google Patents
一种应用于卷积神经网络的处理器 Download PDFInfo
- Publication number
- CN108510066A CN108510066A CN201810306605.1A CN201810306605A CN108510066A CN 108510066 A CN108510066 A CN 108510066A CN 201810306605 A CN201810306605 A CN 201810306605A CN 108510066 A CN108510066 A CN 108510066A
- Authority
- CN
- China
- Prior art keywords
- memory
- convolution
- storing
- index
- feature
- 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
- 238000013527 convolutional neural network Methods 0.000 title claims abstract description 43
- 230000015654 memory Effects 0.000 claims abstract description 160
- 238000012545 processing Methods 0.000 claims abstract description 72
- 238000003860 storage Methods 0.000 claims description 90
- 238000010586 diagram Methods 0.000 claims description 42
- 238000004364 calculation method Methods 0.000 description 12
- 238000000034 method Methods 0.000 description 12
- 239000011159 matrix material Substances 0.000 description 8
- 238000013528 artificial neural network Methods 0.000 description 6
- 230000000873 masking effect Effects 0.000 description 6
- 102100021568 B-cell scaffold protein with ankyrin repeats Human genes 0.000 description 4
- 101000971155 Homo sapiens B-cell scaffold protein with ankyrin repeats Proteins 0.000 description 4
- 230000001788 irregular Effects 0.000 description 3
- 210000004027 cell Anatomy 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008021 deposition Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000006386 neutralization reaction Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012549 training 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
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
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)
- 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
技术领域
本发明属于运算处理技术领域,更具体地,涉及一种应用于卷积神经网络的处理器。
背景技术
卷积神经网络(Convolutional Neural Network,CNN)是一种前馈神经网络,其人工神经元可以响应一部分覆盖范围内的周围单元,适用于对大型图像的处理。卷积神经网络广泛应用于图像识别、语音识别等领域,但计算量非常大。
由于卷积神经网络中的激活函数ReLU(Rectified linear unit,修正线性单元)会造成大量稀疏的(feature map);同时,采用剪枝等方法训练卷积神经网络会造成大量稀疏的权重数据(weight data)。利用和权重数据的稀疏性可以大幅提高卷积神经网络的计算效率。目前,已有很多方法基于卷积神经网络中和权重数据的稀疏性提高计算速度。这些方法大致可以分为两类,一类着眼于跳过0值。例如有的方法去除输入中的0值,从而减少输入为0的无效计算。另一类采取忽略零值的方法。例如有的方法在输入数据为0时,不执行乘法操作,从而减少运算。但这些方法都着眼于处理稀疏神经网络本身,假定神经网络稀疏是前提。然而实际上卷积神经网络中各层输出可能是稀疏的,可能是非稀疏的。而目前的处理器只能处理稀疏的卷积神经网络,无法同时处理稀疏和非稀疏的卷积神经网络。
发明内容
为克服上述现有技术无法同时处理稀疏和非稀疏的卷积神经网络的问题或者至少部分地解决上述问题,本发明提供了一种应用于卷积神经网络的处理器。
根据本发明的一方面,提供一种应用于卷积神经网络的处理器,包括:多个处理单元,各所述处理单元包括数据处理器和索引处理器;
其中,所述数据处理器用于对卷积神经网络中各层输出的各特征图和所述卷积神经网络中各卷积核进行卷积,获取卷积结果;
所述索引处理器用于根据各所述特征图的索引和各所述卷积核的索引获取所述卷积结果的索引;
当各所述特征图为稀疏状态时,各所述特征图的索引为各所述特征图中非零特征元素的索引;
当各所述卷积核为稀疏状态时,各所述卷积核的索引为各所述卷积核中非零权重元素的索引。
具体地,所述处理单元还包括特征数据屏蔽信号、权重数据屏蔽信号、处理单元屏蔽信号和与门;
其中,当各所述特征图为中间状态时,所述特征数据屏蔽信号打开;
当各所述特征图中的特征元素为0时,所述特征数据屏蔽信号为0;
当各所述卷积核为中间状态时,所述权重数据屏蔽信号打开;
当各所述卷积核中的权重元素为0时,所述权重数据屏蔽信号为0;
所述特征数据屏蔽信号和所述权重数据屏蔽信号通过所述与门输出处理单元屏蔽信号;
当所述特征数据屏蔽信号为0或所述权重数据屏蔽信号为0时,所述处理单元屏蔽信号为0,所述数据处理器和所述索引处理器不运行。
具体地,各所述处理单元还包括累加器;
其中,所述累加器用于存储各所述处理单元输出的卷积结果和所述卷积结果的索引;
多个所述处理单元共享所述累加器。
具体地,还包括冲突检测器;
其中,所述冲突检测器用于在根据任意相邻两个所述处理单元输出的卷积结果的索引,将所述卷积结果的索引对应的卷积结果路由到同一个所述累加器时,此次不将所述卷积结果的索引对应的卷积结果存储到所述累加器中。
具体地,还包括存储单元;
其中,所述存储单元包括第一存储模块、第二存储模块和第三存储模块;
所述第一存储模块用于存储各所述特征图;
所述第二存储模块用于存储各所述卷积核;
所述第三存储模块用于存储各所述特征图的位置,所述位置包括各所述特征图存储的起始地址和各所述特征图中非零元素的个数。
具体地,所述第一存储模块和所述第二存储模块分别包括多个存储器;
所述第一存储模块中的存储器通过外部控制信号和多路选择器进行重构,用于存储不同状态的所述特征图;
所述第二存储模块中的存储器通过外部控制信号和多路选择器进行重构,用于存储不同状态的所述卷积核。
具体地,所述第一存储模块中的存储器包括第一存储器、第二存储器和第三存储器;
当各所述特征图为稀疏状态时,所述第一存储器用于存储各所述特征图中的非零特征元素,所述第二存储器用于存储所述特征图中非零特征元素的索引,所述第三存储器关闭;
当各所述特征图为中间状态时,所述第一存储器和所述第二存储器用于存储各所述特征图中的所有特征元素,所述第三存储器打开,用于存储所述特征图中各特征元素的标识,所述标识用于标记特征元素0;
当各所述特征图为稠密状态时,所述第一存储器和所述第二存储器用于存储所述特征图中的所有特征元素,所述第三存储器关闭。
具体地,所述第二存储模块中的存储器包括第四存储器、第五存储器和第六存储器;
当各所述卷积核为稀疏状态时,所述第四存储器用于存储各所述卷积核中的非零权重元素,所述第五存储器用于存储所述卷积核中非零权重元素的索引,所述第六存储器关闭;
当各所述卷积核为中间状态时,所述第四存储器和所述第五存储器用于存储各所述卷积核中的所有权重元素,所述第六存储器打开,用于存储所述卷积核中各权重元素的标识,所述标识用于标记权重元素0;
当各所述卷积核为稠密状态时,所述第四存储器和所述第五存储器用于存储所述卷积核中的所有权重元素,所述第六存储器关闭。
具体地,各所述处理单元以阵列形式排列;
其中,每一列所述处理单元对应相同的特征元素;
每一行所述处理单元对应相同的权重元素。
具体地,所述第一存储模块中的存储器包括第一存储器和第二存储器,所述第二存储模块中的存储器包括第四存储器和第五存储器;
当各所述特征图为稀疏状态时,所述第一存储器用于存储各所述特征图中的非零特征元素,所述第二存储器用于存储所述特征图中非零特征元素的索引;
当各所述特征图为稠密状态时,所述第一存储器和所述第二存储器用于存储所述特征图中的所有特征元素;
当各所述卷积核为稀疏状态时,所述第四存储器用于存储各所述卷积核中的非零权重元素,所述第五存储器用于存储所述卷积核中非零权重元素的索引;
当各所述卷积核为稠密状态时,所述第四存储器和所述第五存储器用于存储所述卷积核中的所有权重元素。
本发明提供一种应用于卷积神经网络的处理器,该处理器通过数据处理器对卷积神经网络中各层输出的各特征图和卷积神经网络中的各卷积核进行卷积计算,通过索引处理器对特征图的索引和卷积核的索引进行计算,从而获取卷积结果和卷积结果的索引,当特征图或卷积核为稀疏状态时,仅对非零元素设置索引,从而减少存储空间和运算量,同时适用于稀疏状态和非稀疏状态的卷积神经网络的处理。
附图说明
图1为本发明实施例提供的应用于卷积神经网络的处理器整体结构示意图;
图2为本发明实施例提供的应用于卷积神经网络的处理器中存储单元整体结构示意图;
图3为本发明实施例提供的应用于卷积神经网络的处理器中处理单元排列架构示意图;
图4为本发明实施例提供的应用于卷积神经网络的处理器中访问量对比示意图;
图5为本发明实施例提供的应用于卷积神经网络的处理器中芯片面积对比示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
在本发明的一个实施例中提供一种应用于卷积神经网络的处理器,本发明实施例的卷积神经网络由三部分构成,第一部分为输入层,第二部分由卷积层层组成,其中每个卷积层后接一个池化层或不接池化层,第三部分由一个全连接的多层感知机分类器构成。由于卷积神经网络中卷积层的层数较多,且每一个卷积层对应有多个卷积核,从而导致卷积神经网络的计算量很大。本实施例采用多个处理单元对任一卷积层使用多个卷积核进行并行计算,从而提高卷积神经网络的计算速度。
图1为本发明实施例提供的应用于卷积神经网络的处理器整体结构示意图,包括:多个处理单元,各处理单元包括数据处理器和索引处理器;其中,
数据处理器用于将卷积神经网络中各层输出的各特征图和卷积神经网络中各卷积核进行卷积,获取卷积结果;
数据处理器用于根据卷积神经网络中各层输出的特征图(feature map)和卷积神经网络中的卷积核进行卷积,获取卷积结果。每个特征图与多个卷积核进行卷积,输出多个卷积结果,卷积结果也为特征图。
索引处理器用于根据各特征图的索引和各卷积核的索引获取卷积结果的索引;
索引处理器用于根据各特征图的索引和各卷积核的索引获取卷积结果的索引。特征图的索引是指对特征图中的各特征元素进行排序的一种存储结构,卷积核的索引是指对卷积核中的各权重元素进行排序的一种存储结构。卷积结果的索引是指对卷积结果进行排序的一种存储结构。通过特征图中各特征元素的排序和各权重元素的排序,获取各特征元素和各权重元素进行卷积后的卷积结果的排序,从而确定卷积结果中每个元素的位置。
当各特征图为稀疏状态时,各特征图的索引为各特征图中非零特征元素的索引;当各卷积核为稀疏状态时,各卷积核的索引为各卷积核中非零权重元素的索引。
本实施例中将特征图和卷积核分别分为两种状态,即稀疏状态和稠密状态。其中,稀疏状态是指矩阵中数值为0的元素数目远远多于非0元素的数目,稠密状态是指矩阵中非0元素的数目占大多数。定义矩阵中非0元素的数目与该矩阵中所有元素的总个数之间的比值为矩阵的稠密度。例如,一个矩阵中非0元素的个数为10,该矩阵中所有元素的总个数为100,则该矩阵的稠密度为0.1。当各特征图或卷积核的稠密度小于第一预设阈值时,则各特征图或卷积核为稀疏状态,当各特征图或卷积核的稠密度大于第二预设阈值时,则各特征图或卷积核为稠密状态。其中,第一预设阈值小于第二预设阈值。当各特征图为稀疏状态时,各特征图的索引为各特征图中非零特征元素的索引;当各卷积核为稀疏状态时,各卷积核的索引为各卷积核中非零权重元素的索引。在特征图或卷积核为稀疏状态时,特征图或卷积核的索引为预先存储,仅对非零元素进行存储和设置索引,减少了存储空间和计算量。在特征图或卷积核为稠密状态时,特征图或卷积核的索引为各特征图或卷积核中所有元素的索引,特征图或卷积核的索引直接在处理器的芯片上产生。
本实施例通过数据处理器对卷积神经网络中各层输出的各特征图和卷积神经网络中的各卷积核进行卷积计算,通过索引处理器对特征图的索引和卷积核的索引进行计算,从而获取卷积结果和卷积结果的索引,当特征图或卷积核为稀疏状态时,仅对非零元素设置索引,从而减少存储空间和运算量,同时适用于稀疏状态和非稀疏状态的卷积神经网络的处理。
在上述实施例的基础上,本实施例中所述处理单元还包括特征数据屏蔽信号、权重数据屏蔽信号、处理单元屏蔽信号和与门;其中,当各特征图为中间状态时,特征数据屏蔽信号打开;当各特征图中的特征元素为0时,特征数据屏蔽信号为0;当各卷积核为中间状态时,权重数据屏蔽信号打开;当各卷积核中的权重元素为0时,权重数据屏蔽信号为0;特征数据屏蔽信号和权重数据屏蔽信号通过与门输出处理单元屏蔽信号;当特征数据屏蔽信号为0或权重数据屏蔽信号为0时,处理单元屏蔽信号为0,数据处理器和索引处理器不运行。
具体地,当各特征图的稠密度大于或等于第一预设阈值,且小于或等于第二预设阈值时,则各特征图为中间状态。此时,打开特征数据屏蔽信号A-GUARD,所述特征数据屏蔽信号A-GUARD用于屏蔽特征图中为0的特征元素,即为0的特征元素不进行数据和索引计算。当各卷积核的稠密度大于或等于第一预设阈值,且小于或等于第二预设阈值时,则各卷积核为中间状态。此时,打开权重数据屏蔽信号W-GUARD,所述权重数据屏蔽信号W-GUARD用于屏蔽卷积核中为0的权重元素,即为0的权重元素不进行数据和索引计算。当各特征图中的特征元素为0时,特征数据屏蔽信号为0。当各卷积核中的权重元素为0时,权重数据屏蔽信号为0。当特征数据屏蔽信号为0或权重数据屏蔽信号为0时,处理单元屏蔽信号EN为0。处理单元屏蔽信号EN用于屏蔽处理单元的运行,当处理单元屏蔽信号为0时,处理单元中的数据处理器和索引处理器不运行,从而降低功耗,如图1所示。
本实施例中通过使用特征数据屏蔽信号、权重数据屏蔽信号、处理单元屏蔽信号和与门,在特征图或卷积核为中间状态时对特征图或卷积和中的0元素不进行运算,从而降低功耗。
在上述实施例的基础上,本实施例中各处理单元还包括累加器;其中,累加器用于存储各处理单元输出的卷积结果和卷积结果的索引;多个处理单元共享累加器。
具体地,各处理单元还包括累加器。累加器是一种寄存器,用来存储计算产生的中间结果。本实施例中累加器用于存储数据处理器输出的卷积结果和索引处理器输出的卷积结果的索引。若干处理单元可以共享累加器,从而减少每个累加器的大小,大幅减少处理器芯片的面积。图1中组相连的两个处理单元PE0和PE1共享累加器。
在上述实施例的基础上,本实施例中还包括冲突检测器;其中,冲突检测器用于在根据任意相邻两个处理单元输出的卷积结果的索引,将卷积结果的索引对应的卷积结果路由到同一个累加器时,此次不将卷积结果的索引对应的卷积结果存储到累加器中。
具体地,处理器还包括冲突检测器,冲突检测器用于处理相连的处理单元之间的冲突问题,当发生冲突时进行阻塞。根据处理单元输出的卷积结果的索引,该处理单元输出的卷积结果路由到该处理单元中的累加器或该处理单元临近的处理单元中的累加器。若任意相邻两个处理单元输出的卷积结果被路由到同一个累加器,则将两个处理单元输出的卷积结果阻塞一个周期,即不存储到累加器中。在后面的周期中至多需要两个周期将两个处理单元输出的卷积结果路由到累加器中,从而解决处理单元共享累加器引起的冲突问题。
在上述各实施例的基础上,本实施例中处理器还包括存储单元;其中,存储单元包括第一存储模块、第二存储模块和第三存储模块;第一存储模块用于存储各特征图;第二存储模块用于存储各卷积核;第三存储模块用于存储各特征图的位置,位置包括各特征图存储的起始地址和各特征图中非零元素的个数。
具体地,处理器还包括存储单元,存储单元包括三个底层存储模块,即第一存储模块、第二存储模块和第三存储模块。其中,第一存储模块用于存储各特征图,第二存储模块用于存储各卷积核。由于不同层输出达到特征图的大小不相同,稀疏状态的特征图和稠密状态的特征图存储的方式也不一样。因此通过第三存储模块用于存储各特征图的位置。位置包括各特征图存储的起始地址和各特征图中非零元素的个数,从而能准确从第一存储模块中获取到各特征图。
在上述实施例的基础上,本实施例中第一存储模块和第二存储模块分别包括多个存储器;第一存储模块中的存储器通过外部控制信号和多路选择器进行重构,用于存储不同状态的特征图;第二存储模块中的存储器通过外部控制信号和多路选择器进行重构,用于存储不同状态的卷积核。
具体地,根据特征图和卷积核的稠密度可以将特征图和卷积核划分为多个状态,本实施例不限于状态的个数。第一存储模块和第二存储模块分别包括多个存储器,所述存取器的个数根据特征图和卷积核的状态数目确定。第一存储模块中的存储器通过外部控制信号CTRL和多路选择器MUX进行重构,用于存储不同状态的特征图。第二存储模块中的存储器通过外部控制信号和多路选择器进行重构,用于存储不同状态的卷积核。通过重构将不同状态的特征图和卷积核进行不同形式的存储,从而在使用一个存储单元的情况下能进行不同状态的特征图和卷积核的存储,提高了存储的灵活性,减小存储单元的芯片面积。
现有技术在卷积神经网络的卷积核或者特征图是稀疏的情况下,处理比较高效,但在卷积核和特征图都是稀疏的情况下效率不高。这是因为卷积核和特征图都稀疏的情况下会造成输出数据的完全没有规律,而现有的集成电路中常用的静态随机存取存储器(Static Random-Access Memory,SRAM)的端口一般只有1到2个,无法实现卷积核和特征图均非规律化写入。虽然现有的哈希加多组存储的方法能实现卷积核和特征图都非规律化写入,但会引入很多存储器组,导致芯片面积过大。
在上述实施例的基础上,本实施例中第一存储模块中的存储器包括第一存储器、第二存储器和第三存储器;当各特征图为稀疏状态时,第一存储器用于存储各特征图中的非零特征元素,第二存储器用于存储特征图中非零特征元素的索引,第三存储器关闭;当各特征图为中间状态时,第一存储器和第二存储器用于存储各特征图中的所有特征元素,第三存储器打开,用于存储特征图中各特征元素的标识,标识用于标记特征元素0;当各特征图为稠密状态时,第一存储器和第二存储器用于存储特征图中的所有特征元素,第三存储器关闭。
具体地,本实施例中各特征图被分为稀疏状态、稠密状态和中间状态三种状态。使用三个存储器第一存储器BANK0、第二存储器BANK1和第三存储器ZERO GUARD BANK对三种状态的特征图进行存储。对于稀疏状态S的特征图,将特征图中的非零特征元素存储在BANK0中,BANK1用于存储特征图中非零特征元素的索引,ZERO GUARD BANK关闭。对于中间状态M的特征图,BANK0和BANK1均用于存储特征图中的特征元素,ZERO GUARD BANK打开,用于存储特征元素0的标识。对于稠密状态D的特征图,只打开BANK0和BANK1以存储特征图中的特征元素,如图2所示。
本实施例通过分别将第一存储模块中的多个存储器进行重构,从而将不同状态的特征图进行不同形式的存储,在使用一个存储单元的情况下能进行不同状态的特征图的存储,提高了存储的灵活性,减小存储单元的芯片面积。
在上述实施例的基础上,第二存储模块中的存储器包括第四存储器、第五存储器和第六存储器;当各卷积核为稀疏状态时,第四存储器用于存储各卷积核中的非零权重元素,第五存储器用于存储卷积核中非零权重元素的索引,第六存储器关闭;当各卷积核为中间状态时,第四存储器和第五存储器用于存储各卷积核中的所有权重元素,第六存储器打开,用于存储卷积核中各权重元素的标识,标识用于标记权重元素0;当各卷积核为稠密状态时,第四存储器和第五存储器用于存储卷积核中的所有权重元素,所述第六存储器关闭。
具体地,本实施例中各卷积核被分为稀疏状态、稠密状态和中间状态三种状态。使用三个存储器第四存储器、第五存储器和第六存储器对三种状态的卷积核进行存储。对于稀疏状态S的卷积核,将卷积核中的非零权重元素存储第四存储器中,第五存储器用于存储卷积核中非零权重元素的索引,第六存储器关闭。对于中间状态M的卷积核,第四存储器和第五存储器均用于存储卷积核中的特征元素,第六存储器打开,用于存储权重元素0的标识。对于稠密状态D的卷积核,只打开第四存储器和第五存储器以存储卷积核中的权重元素。
本实施例通过分别将第二存储模块中的多个存储器进行重构,从而将不同状态的卷积核进行不同形式的存储,在使用一个存储单元的情况下能进行不同状态的卷积核的存储,提高了存储的灵活性,减小存储单元的芯片面积。
在上述各实施例的基础上,本实施例中各处理单元以阵列形式排列;其中,每一列处理单元对应相同的特征元素;每一行处理单元对应相同的权重元素。
具体地,如图3所示,处理器中各处理单元以阵列形式进行排列。处理器还包括一个多模态层次化的存储单元。存储单元包括一个特征轨道组和一个权重轨道组,特征轨道组包括特征数据轨道、特征索引轨道和ZERO GUARD轨道,权重轨道组包括权重数据轨道、权重索引轨道和ZERO GUARD轨道。每一列处理单元PE共享特征数据;每一行处理单元共享权重数据。同时,每一行相邻的PE形成组相连结构。对于N2次计算,仅需读取N次存储单元,从而高效计算不同稀疏程度的卷积神经网络。
在上述实施例的基础上,本实施例中第一存储模块中的存储器包括第一存储器和第二存储器,第二存储模块中的存储器包括第四存储器和第五存储器;当各特征图为稀疏状态时,第一存储器用于存储各特征图中的非零特征元素,第二存储器用于存储特征图中非零特征元素的索引;当各特征图为稠密状态时,第一存储器和第二存储器用于存储特征图中的所有特征元素;当各卷积核为稀疏状态时,第四存储器用于存储各卷积核中的非零权重元素,第五存储器用于存储卷积核中非零权重元素的索引;当各卷积核为稠密状态时,第四存储器和第五存储器用于存储卷积核中的所有权重元素。
本实施例中各特征图和卷积核分别被分为稀疏状态和稠密状态两种状态。使用二个存储器对两种状态的特征图和卷积核进行存储。从而将不同状态的卷积核进行不同形式的存储,在使用一个存储单元的情况下能进行不同状态的卷积核的存储,提高了存储的灵活性,减小存储单元的芯片面积。
例如,采用台积电65nm工艺制作所述处理器的芯片,所述芯片的面积为3mm*4mm,运行频率为20-200MHz,功耗为20.5-248.4毫瓦。图4为本实施例与其他方案对存储的访问次数。访问次数越少,处理器的能量越低,能效越高。在稀疏状态S下,本实施例与零跳过方案一样采用稀疏的存储方案,相比于零关闭方案,大幅降低存储访问。在中间状态M下,本实施例采用零关闭方案,从而降低零跳过方案中索引数据对存储的访问。一个处理单元被关闭时,65%的能量将被节省。当处于稠密状态时,本实施例可以同时关闭零关闭和零跳过方案,从而节省存储访问。如图5所示,本实施例在卷积核和特征图均为稀疏状态下与传统的哈希存储方案相比,在相似性能的前提下减少91.9%的芯片面积,本实施例中的处理单元组相连与处理单元不组相连的情况相比可减少存储面积30.3%。
最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种应用于卷积神经网络的处理器,其特征在于,包括:多个处理单元,各所述处理单元包括数据处理器和索引处理器;
其中,所述数据处理器用于对卷积神经网络中各层输出的各特征图和所述卷积神经网络中各卷积核进行卷积,获取卷积结果;
所述索引处理器用于根据各所述特征图的索引和各所述卷积核的索引获取所述卷积结果的索引;
当各所述特征图为稀疏状态时,各所述特征图的索引为各所述特征图中非零特征元素的索引;
当各所述卷积核为稀疏状态时,各所述卷积核的索引为各所述卷积核中非零权重元素的索引。
2.根据权利要求1所述的处理器,其特征在于,所述处理单元还包括特征数据屏蔽信号、权重数据屏蔽信号、处理单元屏蔽信号和与门;
其中,当各所述特征图为中间状态时,所述特征数据屏蔽信号打开;
当各所述特征图中的特征元素为0时,所述特征数据屏蔽信号为0;
当各所述卷积核为中间状态时,所述权重数据屏蔽信号打开;
当各所述卷积核中的权重元素为0时,所述权重数据屏蔽信号为0;
所述特征数据屏蔽信号和所述权重数据屏蔽信号通过所述与门输出处理单元屏蔽信号;
当所述特征数据屏蔽信号为0或所述权重数据屏蔽信号为0时,所述处理单元屏蔽信号为0,所述数据处理器和所述索引处理器不运行。
3.根据权利要求1所述的处理器,其特征在于,各所述处理单元还包括累加器;
其中,所述累加器用于存储各所述处理单元输出的卷积结果和所述卷积结果的索引;
多个所述处理单元共享所述累加器。
4.根据权利要求3所述的处理器,其特征在于,还包括冲突检测器;
其中,所述冲突检测器用于在根据任意相邻两个所述处理单元输出的卷积结果的索引,将所述卷积结果的索引对应的卷积结果路由到同一个所述累加器时,此次不将所述卷积结果的索引对应的卷积结果存储到所述累加器中。
5.根据权利要求1-4任一所述的处理器,其特征在于,还包括存储单元;
其中,所述存储单元包括第一存储模块、第二存储模块和第三存储模块;
所述第一存储模块用于存储各所述特征图;
所述第二存储模块用于存储各所述卷积核;
所述第三存储模块用于存储各所述特征图的位置,所述位置包括各所述特征图存储的起始地址和各所述特征图中非零元素的个数。
6.根据权利要求5所述的处理器,其特征在于,所述第一存储模块和所述第二存储模块分别包括多个存储器;
所述第一存储模块中的存储器通过外部控制信号和多路选择器进行重构,用于存储不同状态的所述特征图;
所述第二存储模块中的存储器通过外部控制信号和多路选择器进行重构,用于存储不同状态的所述卷积核。
7.根据权利要求6所述的处理器,其特征在于,所述第一存储模块中的存储器包括第一存储器、第二存储器和第三存储器;
当各所述特征图为稀疏状态时,所述第一存储器用于存储各所述特征图中的非零特征元素,所述第二存储器用于存储所述特征图中非零特征元素的索引,所述第三存储器关闭;
当各所述特征图为中间状态时,所述第一存储器和所述第二存储器用于存储各所述特征图中的所有特征元素,所述第三存储器打开,用于存储所述特征图中各特征元素的标识,所述标识用于标记特征元素0;
当各所述特征图为稠密状态时,所述第一存储器和所述第二存储器用于存储所述特征图中的所有特征元素,所述第三存储器关闭。
8.根据权利要求6所述的处理器,其特征在于,所述第二存储模块中的存储器包括第四存储器、第五存储器和第六存储器;
当各所述卷积核为稀疏状态时,所述第四存储器用于存储各所述卷积核中的非零权重元素,所述第五存储器用于存储所述卷积核中非零权重元素的索引,所述第六存储器关闭;
当各所述卷积核为中间状态时,所述第四存储器和所述第五存储器用于存储各所述卷积核中的所有权重元素,所述第六存储器打开,用于存储所述卷积核中各权重元素的标识,所述标识用于标记权重元素0;
当各所述卷积核为稠密状态时,所述第四存储器和所述第五存储器用于存储所述卷积核中的所有权重元素,所述第六存储器关闭。
9.根据权利要求1-4任一所述的处理器,其特征在于,各所述处理单元以阵列形式排列;
其中,每一列所述处理单元对应相同的特征元素;
每一行所述处理单元对应相同的权重元素。
10.根据权利要求6所述的处理器,其特征在于,所述第一存储模块中的存储器包括第一存储器和第二存储器,所述第二存储模块中的存储器包括第四存储器和第五存储器;
当各所述特征图为稀疏状态时,所述第一存储器用于存储各所述特征图中的非零特征元素,所述第二存储器用于存储所述特征图中非零特征元素的索引;
当各所述特征图为稠密状态时,所述第一存储器和所述第二存储器用于存储所述特征图中的所有特征元素;
当各所述卷积核为稀疏状态时,所述第四存储器用于存储各所述卷积核中的非零权重元素,所述第五存储器用于存储所述卷积核中非零权重元素的索引;
当各所述卷积核为稠密状态时,所述第四存储器和所述第五存储器用于存储所述卷积核中的所有权重元素。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810306605.1A CN108510066B (zh) | 2018-04-08 | 2018-04-08 | 一种应用于卷积神经网络的处理器 |
PCT/CN2018/095364 WO2019196222A1 (zh) | 2018-04-08 | 2018-07-12 | 一种应用于卷积神经网络的处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810306605.1A CN108510066B (zh) | 2018-04-08 | 2018-04-08 | 一种应用于卷积神经网络的处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108510066A true CN108510066A (zh) | 2018-09-07 |
CN108510066B CN108510066B (zh) | 2020-05-12 |
Family
ID=63380723
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810306605.1A Active CN108510066B (zh) | 2018-04-08 | 2018-04-08 | 一种应用于卷积神经网络的处理器 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108510066B (zh) |
WO (1) | WO2019196222A1 (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109543815A (zh) * | 2018-10-17 | 2019-03-29 | 清华大学 | 神经网络的加速方法及装置 |
CN109543140A (zh) * | 2018-09-20 | 2019-03-29 | 中国科学院计算技术研究所 | 一种卷积神经网络加速器 |
CN109635940A (zh) * | 2019-01-28 | 2019-04-16 | 深兰人工智能芯片研究院(江苏)有限公司 | 一种基于卷积神经网络的图像处理方法及图像处理装置 |
CN109858575A (zh) * | 2019-03-19 | 2019-06-07 | 苏州市爱生生物技术有限公司 | 基于卷积神经网络的数据分类方法 |
CN110163340A (zh) * | 2019-03-08 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 使用卷积神经网络进行计算的方法、装置和计算机可读存储介质 |
CN110188209A (zh) * | 2019-05-13 | 2019-08-30 | 山东大学 | 基于层次标签的跨模态哈希模型构建方法、搜索方法及装置 |
WO2020047823A1 (en) * | 2018-09-07 | 2020-03-12 | Intel Corporation | Convolution over sparse and quantization neural networks |
CN111126569A (zh) * | 2019-12-18 | 2020-05-08 | 中电海康集团有限公司 | 一种支持剪枝稀疏化压缩的卷积神经网络装置和计算方法 |
CN111291230A (zh) * | 2020-02-06 | 2020-06-16 | 北京奇艺世纪科技有限公司 | 特征处理方法、装置、电子设备及计算机可读存储介质 |
CN111415004A (zh) * | 2020-03-17 | 2020-07-14 | 北京百度网讯科技有限公司 | 用于输出信息的方法和装置 |
CN112200295A (zh) * | 2020-07-31 | 2021-01-08 | 厦门星宸科技有限公司 | 稀疏化卷积神经网络的排序方法、运算方法、装置及设备 |
WO2022134688A1 (zh) * | 2020-12-25 | 2022-06-30 | 中科寒武纪科技股份有限公司 | 数据处理电路、数据处理方法及相关产品 |
CN116261736A (zh) * | 2020-06-12 | 2023-06-13 | 墨芯国际有限公司 | 用于双稀疏卷积处理和并行化的方法和系统 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11755683B2 (en) | 2019-12-23 | 2023-09-12 | Western Digital Technologies, Inc. | Flexible accelerator for sparse tensors (FAST) in machine learning |
CN111414993B (zh) * | 2020-03-03 | 2024-03-01 | 三星(中国)半导体有限公司 | 卷积神经网络的裁剪、卷积计算方法及装置 |
US11797830B2 (en) | 2020-03-25 | 2023-10-24 | Western Digital Technologies, Inc. | Flexible accelerator for sparse tensors in convolutional neural networks |
US11462003B2 (en) | 2020-03-25 | 2022-10-04 | Western Digital Technologies, Inc. | Flexible accelerator for sparse tensors in convolutional neural networks |
CN111898743A (zh) * | 2020-06-02 | 2020-11-06 | 深圳市九天睿芯科技有限公司 | 一种cnn加速方法及加速器 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017031630A1 (zh) * | 2015-08-21 | 2017-03-02 | 中国科学院自动化研究所 | 基于参数量化的深度卷积神经网络的加速与压缩方法 |
CN106650924A (zh) * | 2016-10-27 | 2017-05-10 | 中国科学院计算技术研究所 | 一种基于时间维和空间维数据流压缩的处理器、设计方法 |
CN106951961A (zh) * | 2017-02-24 | 2017-07-14 | 清华大学 | 一种粗粒度可重构的卷积神经网络加速器及系统 |
CN107239824A (zh) * | 2016-12-05 | 2017-10-10 | 北京深鉴智能科技有限公司 | 用于实现稀疏卷积神经网络加速器的装置和方法 |
CN107679622A (zh) * | 2017-09-06 | 2018-02-09 | 清华大学 | 一种面向神经网络算法的模拟感知计算架构 |
US10162794B1 (en) * | 2018-03-07 | 2018-12-25 | Apprente, Inc. | Hierarchical machine learning system for lifelong learning |
-
2018
- 2018-04-08 CN CN201810306605.1A patent/CN108510066B/zh active Active
- 2018-07-12 WO PCT/CN2018/095364 patent/WO2019196222A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017031630A1 (zh) * | 2015-08-21 | 2017-03-02 | 中国科学院自动化研究所 | 基于参数量化的深度卷积神经网络的加速与压缩方法 |
CN106650924A (zh) * | 2016-10-27 | 2017-05-10 | 中国科学院计算技术研究所 | 一种基于时间维和空间维数据流压缩的处理器、设计方法 |
CN107239824A (zh) * | 2016-12-05 | 2017-10-10 | 北京深鉴智能科技有限公司 | 用于实现稀疏卷积神经网络加速器的装置和方法 |
CN106951961A (zh) * | 2017-02-24 | 2017-07-14 | 清华大学 | 一种粗粒度可重构的卷积神经网络加速器及系统 |
CN107679622A (zh) * | 2017-09-06 | 2018-02-09 | 清华大学 | 一种面向神经网络算法的模拟感知计算架构 |
US10162794B1 (en) * | 2018-03-07 | 2018-12-25 | Apprente, Inc. | Hierarchical machine learning system for lifelong learning |
Non-Patent Citations (3)
Title |
---|
ALESSANDRO AIMAR 等: "NullHop: A Flexible Convolutional Neural Network Accelerator Based on Sparse Representations of Feature Maps", 《COMPUTER VISION AND PATTERN RECOGNITION (CS.CV)》 * |
JASON M. ALLRED 等: "Convolving over time via recurrent connections for sequential weight sharing in neural networks", 《2017 INTERNATIONAL JOINT CONFERENCE ON NEURAL NETWORKS (IJCNN)》 * |
周玉松: "基于深度学习算法的图像识别技术的应用研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020047823A1 (en) * | 2018-09-07 | 2020-03-12 | Intel Corporation | Convolution over sparse and quantization neural networks |
CN109543140B (zh) * | 2018-09-20 | 2020-07-10 | 中国科学院计算技术研究所 | 一种卷积神经网络加速器 |
CN109543140A (zh) * | 2018-09-20 | 2019-03-29 | 中国科学院计算技术研究所 | 一种卷积神经网络加速器 |
CN109543815A (zh) * | 2018-10-17 | 2019-03-29 | 清华大学 | 神经网络的加速方法及装置 |
CN109543815B (zh) * | 2018-10-17 | 2021-02-05 | 清华大学 | 神经网络的加速方法及装置 |
CN109635940A (zh) * | 2019-01-28 | 2019-04-16 | 深兰人工智能芯片研究院(江苏)有限公司 | 一种基于卷积神经网络的图像处理方法及图像处理装置 |
CN110163340A (zh) * | 2019-03-08 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 使用卷积神经网络进行计算的方法、装置和计算机可读存储介质 |
CN109858575A (zh) * | 2019-03-19 | 2019-06-07 | 苏州市爱生生物技术有限公司 | 基于卷积神经网络的数据分类方法 |
CN109858575B (zh) * | 2019-03-19 | 2024-01-05 | 苏州市爱生生物技术有限公司 | 基于卷积神经网络的数据分类方法 |
CN110188209A (zh) * | 2019-05-13 | 2019-08-30 | 山东大学 | 基于层次标签的跨模态哈希模型构建方法、搜索方法及装置 |
CN111126569A (zh) * | 2019-12-18 | 2020-05-08 | 中电海康集团有限公司 | 一种支持剪枝稀疏化压缩的卷积神经网络装置和计算方法 |
CN111291230A (zh) * | 2020-02-06 | 2020-06-16 | 北京奇艺世纪科技有限公司 | 特征处理方法、装置、电子设备及计算机可读存储介质 |
CN111291230B (zh) * | 2020-02-06 | 2023-09-15 | 北京奇艺世纪科技有限公司 | 特征处理方法、装置、电子设备及计算机可读存储介质 |
CN111415004A (zh) * | 2020-03-17 | 2020-07-14 | 北京百度网讯科技有限公司 | 用于输出信息的方法和装置 |
CN111415004B (zh) * | 2020-03-17 | 2023-11-03 | 阿波罗智联(北京)科技有限公司 | 用于输出信息的方法和装置 |
CN116261736A (zh) * | 2020-06-12 | 2023-06-13 | 墨芯国际有限公司 | 用于双稀疏卷积处理和并行化的方法和系统 |
CN116261736B (zh) * | 2020-06-12 | 2024-08-16 | 墨芯国际有限公司 | 用于双稀疏卷积处理和并行化的方法和系统 |
CN112200295B (zh) * | 2020-07-31 | 2023-07-18 | 星宸科技股份有限公司 | 稀疏化卷积神经网络的排序方法、运算方法、装置及设备 |
CN112200295A (zh) * | 2020-07-31 | 2021-01-08 | 厦门星宸科技有限公司 | 稀疏化卷积神经网络的排序方法、运算方法、装置及设备 |
WO2022134688A1 (zh) * | 2020-12-25 | 2022-06-30 | 中科寒武纪科技股份有限公司 | 数据处理电路、数据处理方法及相关产品 |
Also Published As
Publication number | Publication date |
---|---|
CN108510066B (zh) | 2020-05-12 |
WO2019196222A1 (zh) | 2019-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108510066B (zh) | 一种应用于卷积神经网络的处理器 | |
Sun et al. | Fully parallel RRAM synaptic array for implementing binary neural network with (+ 1,− 1) weights and (+ 1, 0) neurons | |
US11568200B2 (en) | Accelerating sparse matrix multiplication in storage class memory-based convolutional neural network inference | |
Wang et al. | A deep neural network accelerator based on tiled RRAM architecture | |
US11042795B2 (en) | Sparse neuromorphic processor | |
Bavandpour et al. | 3D-aCortex: An ultra-compact energy-efficient neurocomputing platform based on commercial 3D-NAND flash memories | |
Miyashita et al. | Time-domain neural network: A 48.5 TSOp/s/W neuromorphic chip optimized for deep learning and CMOS technology | |
CN108804973B (zh) | 基于深度学习的目标检测算法的硬件架构及其执行方法 | |
Dutta et al. | Hdnn-pim: Efficient in memory design of hyperdimensional computing with feature extraction | |
Houshmand et al. | Opportunities and limitations of emerging analog in-memory compute DNN architectures | |
US11625607B2 (en) | Method of structured network pruning and sparsity speed-up | |
US20230025068A1 (en) | Hybrid machine learning architecture with neural processing unit and compute-in-memory processing elements | |
CN113946310A (zh) | 一种用于卷积神经网络的内存计算eDRAM加速器 | |
Dbouk et al. | KeyRAM: A 0.34 uJ/decision 18 k decisions/s recurrent attention in-memory processor for keyword spotting | |
Tsai et al. | RePIM: Joint exploitation of activation and weight repetitions for in-ReRAM DNN acceleration | |
KR20240035492A (ko) | 메모리 내 디지털 컴퓨팅을 위한 폴딩 열 가산기 아키텍처 | |
Deguchi et al. | 3-D NAND flash value-aware SSD: error-tolerant SSD without ECCs for image recognition | |
Chen et al. | WRAP: Weight RemApping and processing in RRAM-based neural network accelerators considering thermal effect | |
Zhang et al. | On-chip learning of multilayer perceptron based on memristors with limited multilevel states | |
CN117474061A (zh) | 一种抗辐射低延迟神经网络推理加速芯片 | |
KR20240036594A (ko) | 인-메모리 연산을 위한 부분 합 관리 및 재구성가능 시스톨릭 플로우 아키텍처들 | |
US20230361081A1 (en) | In-memory computing circuit and fabrication method thereof | |
CN108804974B (zh) | 目标检测算法的硬件架构的资源估算、配置方法及系统 | |
Chen et al. | A novel memristor-based restricted Boltzmann machine for contrastive divergence | |
Kazemi et al. | A device non-ideality resilient approach for mapping neural networks to crossbar arrays |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20181129 Address after: Room 204B, 4th floor, Heuristic Building, Eco-Science Park, 1620 Zhongtian Avenue, Zhongsheng Eco-city, Binhai New Area, Tianjin, 300467 Applicant after: Meifang Science and Technology (Tianjin) Co., Ltd. Address before: 100084 Tsinghua Yuan, Beijing, Tsinghua Yuan, Beijing 100084-82 mailbox Applicant before: Tsinghua University |
|
GR01 | Patent grant | ||
GR01 | Patent grant |