一种对卷积神经网络处理器的控制方法及装置制造方法及图纸

技术编号:19746452 阅读:20 留言:0更新日期:2018-12-12 04:56
本发明专利技术提供一种控制方法,包括:1)确定需要执行的卷积运算的尺寸n*n;2)根据需要执行的卷积运算的尺寸n*n,选择在m

【技术实现步骤摘要】
一种对卷积神经网络处理器的控制方法及装置
本专利技术涉及一种卷积神经网络处理器,尤其涉及针对卷积神经网络处理器的硬件加速方面的改进。
技术介绍
人工智能技术在近些年来得到了迅猛的发展,在全世界范围内得到了广泛的关注,无论是工业界还是学术界都开展了人工智能技术的研究工作,将人工智能技术渗透至视觉感知、语音识别、辅助驾驶、智能家居、交通调度等各个领域。深度学习技术是人工智能技术发展的助推器。深度学习采用深度神经网络的拓扑结构进行训练、优化及推理等,深度神经网络白块卷积神经网络、深度置信网络、循环神经网络等,通过反复迭代、训练。以图像识别应用为例,深度学习算法通过深度神经网络可以自动地得到隐藏的图像的特征数据,并且产生优于传统的基于模式识别分析方法的效果。然而,现有的深度学习技术的实现依赖于极大的计算量。在训练阶段,需要在海量数据中通过反复迭代计算得到神经网络中的权重数据;在推理阶段,同样需要采用神经网络在极短响应时间(通常为毫秒级)内完成对输入数据的运算处理,这需要所部署的神经网络运算电路(包括CPU、GPU、FPGA和ASIC等)达到每秒千亿次甚至万亿次的计算能力。因而,对用于实现深度学习技术的硬件加速,例如对卷积神经网络处理器的硬件加速是非常有必要的。通常认为实现硬件加速的方式可被大致分为两种,一种是采用更大规模的硬件并行地进行计算处理,另一种则是通过设计的专用硬件电路来提高处理速度或效率。针对上述第二种方式,一些现有技术直接将神经网络映射为硬件电路,针对各个网络层分别采用不同的计算单元,使得针对各个网络层的计算以流水线的方式进行。例如,除第一个计算单元之外的各个计算单元以前一个计算单元的输出作为其输入,并且每个计算单元仅用于执行针对与其对应的网络层的计算,在流水线的不同的单位时间内,所述计算单元对所述网络层的不同的输入进行计算。这样的现有技术,通常针对的是需要连续处理不同的输入的场景,例如对包含多帧图像的视频文件进行处理。并且,这样的现有技术通常针对的是具有较少网络层的神经网络。这是由于,深度神经网络的网络层数和规模较大,直接将神经网络映射为硬件电路,其电路面积的代价非常之大,而功耗也会随着电路面积的增大而增加。此外,考虑到各个网络层彼此的运算时间也存在较大差异,为了实现流水线的功能,提供给各个流水线层级的运行时间需要被强制设置为彼此相等,即等于处理速度最慢的流水线层级的运算时间。对于具有大量网络层的深度神经网络而言,设计流水线需要考虑非常多的因素,以减少流水计算过程中处理速度相对较快的流水线层级所需等待的时间。还有一些现有技术在参考了神经网络进行计算的规律的情况下,提出可以针对神经网络处理器中的计算单元进行“时分复用”以提高计算单元的复用率,其区别于上述流水线的方式,采用相同的计算单元依次对神经网络中的各个网络层进行计算。例如对输入层、第一隐藏层、第二隐藏层、…输出层逐一地进行计算,并在下一次迭代计算中重复上述过程。这样的现有技术可以针对具有较少网络层的神经网络,也可以针对深度神经网络,并且其尤其适合于硬件资源受限的应用场景。对于这样的应用场景,神经网络处理器在针对一个输入进行了网络层A的计算之后,可能很长时间都不需要再进行针对该网络层A的计算,若是每个网络层分别采用不同的硬件作为其计算单元则会导致对硬件的限制,使得硬件的复用率不高。绝大多数现有技术均是基于这样的考虑,采用不同的针对计算单元的“时分复用”的方式而对神经网络处理器的硬件进行了相应的改进。然而,无论采用上述哪种现有技术来设计卷积神经网络处理器,仍然存在硬件利用率有待改进之处。
技术实现思路
因此,本专利技术的目的在于克服上述现有技术的缺陷,提供一种用于卷积神经网络处理器的控制方法,所述卷积神经网络处理器具有5*5的卷积计算单元,所述控制方法包括:1)确定需要执行的卷积运算的卷积核尺寸n*n;2)根据需要执行的卷积运算的卷积核尺寸n*n,选择在m2个5*5的卷积计算单元中载入与所述尺寸对应的卷积核的数值,并将其余的各个数值填充为0,5m≥n;3)根据需要执行的卷积运算的尺寸、以及需要执行卷积的输入特征图的尺寸,确定卷积计算过程所需的周期数;并且4)根据所述周期数,在卷积计算过程中的各个周期,将相应的输入特征图的数值载入到所述m2个5*5的卷积计算单元中,所述输入特征图的数值在所述m2个5*5的卷积计算单元中的分布与所述卷积核的数值在所述m2个5*5的卷积计算单元中的分布保持一致;控制载入了卷积核以及输入特征图的数值的所述m2个5*5的卷积计算单元执行与所述周期数对应的卷积计算;5)对所述m2个5*5的卷积计算单元的卷积计算结果中对应的元素进行累加,以获得最终的卷积运算的输出特征图。优选地,根据所述方法,其中步骤2)包括:若是需要执行的卷积运算的尺寸小于5*5,则在同一个5*5的卷积计算单元中载入与所述尺寸对应的卷积核的数值并将其余的各个数值填充为0;若是需要执行的卷积运算的尺寸大于5*5,则在相应数量的5*5的卷积计算单元中载入与所述尺寸对应的卷积核的数值并将其余的各个数值填充为0。优选地,根据所述方法,其中步骤4)包括:在卷积计算过程中的各个周期中,若是需要载入的输入特征图的数值中包含所述输入特征图中左侧第一列的元素,则一次性将所述输入特征图中与需要执行的卷积运算的尺寸相匹配的多个元素载入到所述卷积计算单元的相应位置处并将其余的各个位置的数值填充为0,否则则将与前一周期中相同的元素作为一个整体向左移动一个单元,并且将输入特征图中与前一周期中不同的、且需要更新的多个元素载入到通过所述移动而空出的位置处。优选地,根据所述方法,其中步骤4)包括:在卷积计算过程中的各个周期中,控制所述m2个5*5的卷积计算单元分别对其所载入的针对输入特征图以及针对卷积核的对应位置的元素执行乘法、并对乘法的结果进行累加,以获得输出特征图中相应位置的元素。优选地,根据所述方法,其中步骤2)包括:若是需要执行的卷积运算的尺寸为3*3,则在同一个5*5的卷积计算单元中载入3*3的卷积核的数值并将其余的各个数值填充为0;并且,步骤4)包括:在执行卷积计算的全部周期的每一个周期,将相应的输入特征图的数值载入到所述5*5的卷积计算单元中,所述输入特征图的数值在所述5*5的卷积计算单元中的分布与所述3*3的卷积核的数值在所述5*5的卷积计算单元中的分布保持一致;其中,在卷积计算过程中的各个周期中,若是需要载入的输入特征图的数值中包含所述输入特征图中左侧第一列的元素,则一次性将所述输入特征图中尺寸为3*3的9个元素载入到所述卷积计算单元的相应位置处并将其余的各个位置的数值填充为0,否则则将与前一周期中相同的元素作为一个整体向左移动一个单元,并且将输入特征图中与前一周期中不同的、且需要更新的3个元素载入到通过所述移动而空出的位置处。优选地,根据所述方法,其中步骤2)包括:若是需要执行的卷积运算的尺寸为7*7,则控制由四个5*5的卷积计算单元共同载入7*7的卷积核的数值并将其余的各个数值填充为0;并且,步骤4)包括:在执行卷积计算的全部周期的每一个周期,将相应的输入特征图的数值载入到所述四个5*5的卷积计算单元中,所述输入特征图的数值在所述四个5*5的卷积计算单元中的分布与所述本文档来自技高网
...

【技术保护点】
1.一种用于卷积神经网络处理器的控制方法,所述卷积神经网络处理器具有5*5的卷积计算单元,所述控制方法包括:1)确定需要执行的卷积运算的卷积核尺寸n*n;2)根据需要执行的卷积运算的卷积核尺寸n*n,选择在m2个5*5的卷积计算单元中载入与所述尺寸对应的卷积核的数值,并将其余的各个数值填充为0,5m≥n;3)根据需要执行的卷积运算的尺寸、以及需要执行卷积的输入特征图的尺寸,确定卷积计算过程所需的周期数;并且4)根据所述周期数,在卷积计算过程中的各个周期,将相应的输入特征图的数值载入到所述m2个5*5的卷积计算单元中,所述输入特征图的数值在所述m2个5*5的卷积计算单元中的分布与所述卷积核的数值在所述m2个5*5的卷积计算单元中的分布保持一致;控制载入了卷积核以及输入特征图的数值的所述m2个5*5的卷积计算单元执行与所述周期数对应的卷积计算;5)对所述m2个5*5的卷积计算单元的卷积计算结果中对应的元素进行累加,以获得最终的卷积运算的输出特征图。

【技术特征摘要】
1.一种用于卷积神经网络处理器的控制方法,所述卷积神经网络处理器具有5*5的卷积计算单元,所述控制方法包括:1)确定需要执行的卷积运算的卷积核尺寸n*n;2)根据需要执行的卷积运算的卷积核尺寸n*n,选择在m2个5*5的卷积计算单元中载入与所述尺寸对应的卷积核的数值,并将其余的各个数值填充为0,5m≥n;3)根据需要执行的卷积运算的尺寸、以及需要执行卷积的输入特征图的尺寸,确定卷积计算过程所需的周期数;并且4)根据所述周期数,在卷积计算过程中的各个周期,将相应的输入特征图的数值载入到所述m2个5*5的卷积计算单元中,所述输入特征图的数值在所述m2个5*5的卷积计算单元中的分布与所述卷积核的数值在所述m2个5*5的卷积计算单元中的分布保持一致;控制载入了卷积核以及输入特征图的数值的所述m2个5*5的卷积计算单元执行与所述周期数对应的卷积计算;5)对所述m2个5*5的卷积计算单元的卷积计算结果中对应的元素进行累加,以获得最终的卷积运算的输出特征图。2.根据权利要求1所述的方法,其中步骤2)包括:若是需要执行的卷积运算的尺寸小于5*5,则在同一个5*5的卷积计算单元中载入与所述尺寸对应的卷积核的数值并将其余的各个数值填充为0;若是需要执行的卷积运算的尺寸大于5*5,则在相应数量的5*5的卷积计算单元中载入与所述尺寸对应的卷积核的数值并将其余的各个数值填充为0。3.根据权利要求1所述的方法,其中步骤4)包括:在卷积计算过程中的各个周期中,若是需要载入的输入特征图的数值中包含所述输入特征图中左侧第一列的元素,则一次性将所述输入特征图中与需要执行的卷积运算的尺寸相匹配的多个元素载入到所述卷积计算单元的相应位置处并将其余的各个位置的数值填充为0,否则则将与前一周期中相同的元素作为一个整体向左移动一个单元,并且将输入特征图中与前一周期中不同的、且需要更新的多个元素载入到通过所述移动而空出的位置处。4.根据权利要求1所述的方法,其中步骤4)包括:在卷积计算过程中的各个周期中,控制所述m2个5*5的卷积计算单元分别对其所载入的针对输入特征图以及针对卷积核的对应位置的元素执行乘法、并对乘法的结果进行累加,以获得输出特征图中相应位置的元素。5.根据权利要求1-4中任意一项所述的方法,其中步骤2)包括:若是需要执行的卷积运算的尺寸为3*3,则在同一个5*5的卷积计算单元中载入3*3的卷积核的数值并将其余的各个数值填充为0;并且,步骤4)包括:在执行卷积计算的全部周期的每一个周期,将相应的输入特征图的数值载入到所述5*5的卷积计算单元中,所述输入特征图的数值在所述5*5的卷积计算单元中的分布与所述3*3的卷积核的数值在所述5*5的卷积计算单元中的分布保持一致;其中,在卷积计算过程中的各个周期中,若是需要载入的输入特征图的数值中包含所述输入特征图中左侧第一列的元素,则一次性将所述输入特征图中尺寸为3*3的9个元素载入到所述卷积计算单元的相应位置处并将其余的各个位置的数值填充为0,否则则将与前一周期中相同的元素作为一个整体向左移动一个单...

【专利技术属性】
技术研发人员:韩银和许浩博王颖
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1