A processor for a convolutional neural network is provided, which comprises: a plurality of processing units, each of which comprises a data processor and an index processor, wherein the data processor is used for each characteristic graph output from each layer of the convolutional neural network and in the convolutional neural network. Each convolution core is convoluted to obtain the convolution result; the index processor is used to obtain the index of the convolution result according to the index of each characteristic graph and the index of each convolution core; when each characteristic graph is in a sparse state, the index of each characteristic graph is the index of non-zero feature elements in each characteristic graph; When each convolution kernel is in a sparse state, the indexes of each convolution kernel are indexes of non-zero weight elements in each convolution kernel. The invention reduces storage space and computation, and is suitable for processing convolutional neural networks in sparse and dense states.
【技术实现步骤摘要】
一种应用于卷积神经网络的处理器
本专利技术属于运算处理
,更具体地,涉及一种应用于卷积神经网络的处理器。
技术介绍
卷积神经网络(ConvolutionalNeuralNetwork,CNN)是一种前馈神经网络,其人工神经元可以响应一部分覆盖范围内的周围单元,适用于对大型图像的处理。卷积神经网络广泛应用于图像识别、语音识别等领域,但计算量非常大。由于卷积神经网络中的激活函数ReLU(Rectifiedlinearunit,修正线性单元)会造成大量稀疏的(featuremap);同时,采用剪枝等方法训练卷积神经网络会造成大量稀疏的权重数据(weightdata)。利用和权重数据的稀疏性可以大幅提高卷积神经网络的计算效率。目前,已有很多方法基于卷积神经网络中和权重数据的稀疏性提高计算速度。这些方法大致可以分为两类,一类着眼于跳过0值。例如有的方法去除输入中的0值,从而减少输入为0的无效计算。另一类采取忽略零值的方法。例如有的方法在输入数据为0时,不执行乘法操作,从而减少运算。但这些方法都着眼于处理稀疏神经网络本身,假定神经网络稀疏是前提。然而实际上卷积神经网络中各层输出可能是稀疏的,可能是非稀疏的。而目前的处理器只能处理稀疏的卷积神经网络,无法同时处理稀疏和非稀疏的卷积神经网络。
技术实现思路
为克服上述现有技术无法同时处理稀疏和非稀疏的卷积神经网络的问题或者至少部分地解决上述问题,本专利技术提供了一种应用于卷积神经网络的处理器。根据本专利技术的一方面,提供一种应用于卷积神经网络的处理器,包括:多个处理单元,各所述处理单元包括数据处理器和索引处理器;其中,所 ...
【技术保护点】
1.一种应用于卷积神经网络的处理器,其特征在于,包括:多个处理单元,各所述处理单元包括数据处理器和索引处理器;其中,所述数据处理器用于对卷积神经网络中各层输出的各特征图和所述卷积神经网络中各卷积核进行卷积,获取卷积结果;所述索引处理器用于根据各所述特征图的索引和各所述卷积核的索引获取所述卷积结果的索引;当各所述特征图为稀疏状态时,各所述特征图的索引为各所述特征图中非零特征元素的索引;当各所述卷积核为稀疏状态时,各所述卷积核的索引为各所述卷积核中非零权重元素的索引。
【技术特征摘要】
1.一种应用于卷积神经网络的处理器,其特征在于,包括:多个处理单元,各所述处理单元包括数据处理器和索引处理器;其中,所述数据处理器用于对卷积神经网络中各层输出的各特征图和所述卷积神经网络中各卷积核进行卷积,获取卷积结果;所述索引处理器用于根据各所述特征图的索引和各所述卷积核的索引获取所述卷积结果的索引;当各所述特征图为稀疏状态时,各所述特征图的索引为各所述特征图中非零特征元素的索引;当各所述卷积核为稀疏状态时,各所述卷积核的索引为各所述卷积核中非零权重元素的索引。2.根据权利要求1所述的处理器,其特征在于,所述处理单元还包括特征数据屏蔽信号、权重数据屏蔽信号、处理单元屏蔽信号和与门;其中,当各所述特征图为中间状态时,所述特征数据屏蔽信号打开;当各所述特征图中的特征元素为0时,所述特征数据屏蔽信号为0;当各所述卷积核为中间状态时,所述权重数据屏蔽信号打开;当各所述卷积核中的权重元素为0时,所述权重数据屏蔽信号为0;所述特征数据屏蔽信号和所述权重数据屏蔽信号通过所述与门输出处理单元屏蔽信号;当所述特征数据屏蔽信号为0或所述权重数据屏蔽信号为0时,所述处理单元屏蔽信号为0,所述数据处理器和所述索引处理器不运行。3.根据权利要求1所述的处理器,其特征在于,各所述处理单元还包括累加器;其中,所述累加器用于存储各所述处理单元输出的卷积结果和所述卷积结果的索引;多个所述处理单元共享所述累加器。4.根据权利要求3所述的处理器,其特征在于,还包括冲突检测器;其中,所述冲突检测器用于在根据任意相邻两个所述处理单元输出的卷积结果的索引,将所述卷积结果的索引对应的卷积结果路由到同一个所述累加器时,此次不将所述卷积结果的索引对应的卷积结果存储到所述累加器中。5.根据权利要求1-4任一所述的处理器,其特征在于,还包括存储单元;其中,所述存储单元包括第一存储模块、第二存储模块和第三存储模块;所述第一存储模块用于存储各所述特征图;所述第二存储模块用于存储各所述卷积核;所述第三存储模块用于存储各所述特征图的位置,所述位置包括各所述特征图存储的起始地址和各所述特征图中非零元素的个数。6.根据权利要求5所述的处理器,其特征在于,所述第一存储模块和所述第二存储模块分别包括多个存储器;所述第一存储模块中的存储器通过外部控制信号和多路选择器进行重构,用于存储不同状态的所述特征图;所述第二...
【专利技术属性】
技术研发人员:刘勇攀,袁哲,岳金山,杨华中,李学清,王智博,
申请(专利权)人:清华大学,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。