神经网络处理单元及包含该处理单元的处理系统技术方案

技术编号:17562457 阅读:25 留言:0更新日期:2018-03-28 12:47
本发明专利技术提供一种神经网络处理单元和包含该处理单元的处理系统。该处理单元包括:乘法器模块,所述乘法器模块包含构成流水线的多级结构,并用于执行神经网络中待计算的神经元和权值的乘法运算,其中,所述乘法器模块的每一级结构完成所述神经元和权值的乘法运算的子运算;自累加器模块,所述自累加器模块基于控制信号对所述乘法器模块的乘法运算结果进行累加运算或将累加结果输出。利用本发明专利技术的处理单元和处理系统,能够提高神经网络的计算效率和资源利用率。

Neural network processing unit and processing system containing the processing unit

The present invention provides a neural network processing unit and a processing system comprising the processing unit. The processing unit includes a multiplier module, the multiplier module contains multistage structure of pipeline, and for multiplication, neurons and neural network weights to be calculated in the implementation of the multiplication of the neurons and the right values for each level of the multiplier module structure sub operation; from the accumulator module. The control signal of the multiplier module multiplication results are cumulative operation or cumulative results based on the output from the accumulator module. Using the processing unit and processing system of the invention, the calculation efficiency and resource utilization rate of the neural network can be improved.

【技术实现步骤摘要】
神经网络处理单元及包含该处理单元的处理系统
本专利技术涉及深度学习
,尤其涉及一种神经网络处理单元和包含该处理单元的处理系统。
技术介绍
近年来,深度学习技术得到了飞速的发展,在解决高级抽象认知问题,例如图像识别、语音识别、自然语言理解、天气预测、基因表达、内容推荐和智能机器人等领域得到了广泛应用,成为学术界和工业界的研究热点。深度神经网络是人工智能领域具有最高发展水平的感知模型之一,其通过建立模型来模拟人类大脑的神经连接结构,通过多个变换阶段分层对数据特征进行描述,为图像、视频和音频等大规模数据处理任务带来突破性进展。深度神经网络模型是一种运算模型,由大量节点通过网状互连结构构成,这些节点被称为神经元。每两个节点间连接强度都代表通过该连接信号在两个节点间的加权重,即权重,与人类神经网络中的记忆相对应。然而,在现有技术中,神经网络存在处理速度慢,运行功耗大等问题。这是由于深度学习技术依赖于极大的计算量,例如,在训练阶段,需要在海量数据中通过反复迭代计算得到神经网络中的权重数据;在推理阶段,同样需要神经网络在极短的响应时间(通常为毫秒级)内完成对输入数据的运算处理,特别是当神经网络应用于实时系统时,例如,自动驾驶领域。神经网络中涉及的计算主要包括卷积操作、激活操作和池化操作等,其中,卷积操作和池化操作占用了神经网络处理的大部分时间。因此,需要对现有技术进行改进,以提高神经网络中卷积操作和池化操作等的计算效率和对输入数据的响应速度,使神经网络的适用范围更广。
技术实现思路
本专利技术的目的在于克服上述现有技术的缺陷,提供一种基于流水线的神经网络处理单元和包含该处理单元的处理系统。根据本专利技术的第一方面,提供了一种神经网络处理单元。该处理单元包括:乘法器模块,所述乘法器模块包含构成流水线的多级结构,并用于执行神经网络中待计算的神经元和权值的乘法运算,其中,所述乘法器模块的每一级结构完成所述神经元和权值的乘法运算的子运算;自累加器模块,所述自累加器模块基于控制信号对所述乘法器模块的乘法运算结果进行累加运算或将累加结果输出。在一个实施例中,所述乘法器模块包括:输入级,由数据选通器构成,用于接收所述神经元和权值;多个中间级,排列为二叉树结构,由寄存器和加法器构成,每个中间级用于执行权值和神经元的乘法的子运算并传递中间结果;乘法输出级,用于输出所述神经元和权值的相乘结果。在一个实施例中,所述自累加器模块包括累加器和第一数据选通器,所述累加器的第一输入端接收所述乘法器模块的输出,所述累加器的输出端通过由所述控制信号控制的所述第一数据选通器与所述累加器的第二输入端连接。根据本专利技术的第二方面,提供了一种神经网络处理系统。该处理系统包括:处理单元阵列,由多个根据本专利技术的处理单元构成,用于获得卷积层的输出神经元;池化单元,用于对所述卷积层的输出神经元进行池化处理;控制单元,用于控制神经网络处理系统中数据的传递。在一个实施例中,所述处理单元阵列组织为二维矩阵形式。在一个实施例中,所述控制单元基于卷积参数和所述处理单元阵列的规模确定神经元和权值的分批策略。在一个实施例中,所述控制单元根据所述分批策略确定每个周期向所述处理单元阵列输入的神经元和权值。在一个实施例中,当同一批次的神经元和相应权值的计算任务未完成时,所述控制单元向所述处理单元阵列输入第一控制信号以控制自累加器模块执行累加操作,当同一批次的神经元和相应权值的计算任务完成时,所述控制单元向所述处理单元阵列输入第二控制信号以控制自累加器模块输出累加结果。在一个实施例中,本专利技术的神经网络处理系统还包括神经元缓存单元,用于存储所述卷积层的输出神经元。在一个实施例中,所述控制单元分析所述卷积层的输出神经元,在所述卷积层的输出神经元不属于同一池化域的情况下,将其存储到所述神经元缓存单元,在所述卷积层的输出神经元属于同一池化域的情况下,将其直接传递到所述池化单元。与现有技术相比,本专利技术的优点在于:对神经网络中的乘法计算过程采用流水线处理,并将乘法计算的结果进行自累加,实现了神经网络处理系统对数据处理速度以及吞吐量的提升;通过神经元和权值进行分批次处理以及控制每周期处理的数据数量,实现了计算资源的充分利用;通过适当的缓存计算结果,实现了神经网络权值和神经元的输入输出数据的快速转换。附图说明以下附图仅对本专利技术作示意性的说明和解释,并不用于限定本专利技术的范围,其中:图1示出了根据本专利技术一个实施例的神经网络处理系统的示意图;图2示出了根据本专利技术一个实施例的处理单元的示意图;图3示出了图1的神经网络处理系统的数据处理流程图;图4示出了根据本专利技术一个实施例的对神经元和权值进行分割的示意图;图5示出了根据本专利技术另一个实施例的神经网络处理系统的示意图。具体实施方式为了使本专利技术的目的、技术方案、设计方法及优点更加清楚明了,以下结合附图通过具体实施例对本专利技术进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。典型地,深度神经网络是具有多层神经网络的拓扑结构,并且每层神经网络具有多个特征图层。例如,对于卷积神经网络,其处理数据的过程由卷积层、池化层、归一化层、非线性层和全连接层等多层结构组成,其中,卷积层的操作过程是:将一个K*K大小的二维权重卷积核对输入特征图进行扫描,在扫描过程中权重与特征图内对应的神经元求内积,并将所有内积值求和,得到卷积层的输出特征图或称输出神经元,然后,通过非线性激活函数(如ReLU)进一步把该输出特征图传递到下一层(例如,池化层),当每个卷积层具有N个输入特征图时,会有N个K*K大小的卷积核与该卷积层内的特征图进行卷积操作。池化层又称下采样层,其具体过程是:将一个P*P大小的二维窗口(即池化域)对特征图(例如,由卷积层输出给池化层的特征图)进行扫描,在扫描过程中计算窗口在图层对应神经元的最大值或平均值,得到池化层的输出神经元,池化层一方面可以消除部分噪声信息,有利于特征提取,另外一方面也可以减少下一层特征神经元的数量,从而减小网络规模。为了改进神经网络中卷积计算和池化处理的过程,图1示出了根据本专利技术一个实施例的神经网络处理系统,其能够应用于训练好的神经网络,获得待测的目标神经元的输出。参见图1所示,该处理系统101包括输入数据存储单元102、控制单元103、输出数据存储单元104、权重存储单元105、输入数据缓存单元106、权重缓存单元107、神经元缓存单元108、输出缓存单元109、处理单元阵列110(示出为多个)、池化单元111(示出为多个)。输入数据存储单元102与输入数据缓存单元106相连,用于存储参与计算的数据,该数据包括原始特征图和参与中间层计算的输入特征图。权重存储单元105与权重缓存单元107相连,用于存储已经训练好的权重数据。处理单元阵列110接收输入数据缓存单元106与权重缓存单元的数据,完成卷积运算任务。神经元缓存单元108用于暂存卷积层计算出来的中间结果以及激活处理后的神经元。池化单元111与神经元缓存单元108相连,用于池化卷积层计算出的特征图,并将结果输出至输出缓存单元109。输出缓存单元109与池化单元111相连,用于存储池化后的神经元。输出数据存储单元104与池化缓存单元109相连,用于存储池化后的批量输出结本文档来自技高网...
神经网络处理单元及包含该处理单元的处理系统

【技术保护点】
一种神经网络处理单元,其特征在于,包括:乘法器模块,所述乘法器模块包含构成流水线的多级结构,并用于执行神经网络中待计算的神经元和权值的乘法运算,其中,所述乘法器模块的每一级结构完成所述神经元和权值的乘法运算的子运算;自累加器模块,所述自累加器模块基于控制信号对所述乘法器模块的乘法运算结果进行累加运算或将累加结果输出。

【技术特征摘要】
1.一种神经网络处理单元,其特征在于,包括:乘法器模块,所述乘法器模块包含构成流水线的多级结构,并用于执行神经网络中待计算的神经元和权值的乘法运算,其中,所述乘法器模块的每一级结构完成所述神经元和权值的乘法运算的子运算;自累加器模块,所述自累加器模块基于控制信号对所述乘法器模块的乘法运算结果进行累加运算或将累加结果输出。2.根据权利要求1所述的神经网络处理单元,其特征在于,所述乘法器模块包括:输入级,由数据选通器构成,用于接收所述神经元和权值;多个中间级,排列为二叉树结构,由寄存器和加法器构成,每个中间级用于执行权值和神经元的乘法的子运算并传递中间结果;乘法输出级,用于输出所述神经元和权值的相乘结果。3.根据权利要求1所述的神经网络处理单元,其特征在于,所述自累加器模块包括累加器和第一数据选通器,所述累加器的第一输入端接收所述乘法器模块的输出,所述累加器的输出端通过由所述控制信号控制的所述第一数据选通器与所述累加器的第二输入端连接。4.一种神经网络处理系统,其特征在于,包括:处理单元阵列,由多个根据权利要求1至3中任一项所述的处理单元构成,用于获得卷积层的输出神经元;池化单元,用于对所述卷积层的输出神经元进行池化处理;控制单元,用于控制神经网...

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

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

1