基于流水线的神经网络处理系统和处理方法技术方案

技术编号:17597873 阅读:41 留言:0更新日期:2018-03-31 10:48
本发明专利技术提供了一种神经网络处理系统。该处理系统包括:乘法器模块,所述乘法器模块包含构成流水线的多级结构,并用于执行神经网络中待计算的神经元和权值的乘法运算,其中,所述乘法器模块的每一级结构完成所述神经元和权值的乘法运算的子运算;累加器模块,所述累加器模块包含构成流水线的多级结构,并用于对所述乘法器模块的乘法运算结果进行累加运算,以获得神经网络中卷积层的输出神经元,其中,所述累加器模块的每一级结构完成累加运算的子运算;池化单元,用于对所述卷积层的输出神经元进行池化处理;控制单元,用于控制神经网络处理系统中数据的传递。利用本发明专利技术的神经网络处理系统能够提高资源利用率和数据处理的速度。

Pipeline based neural network processing system and processing method

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

【技术保护点】
一种神经网络处理系统,其特征在于,包括:乘法器模块,所述乘法器模块包含构成流水线的多级结构,并用于执行神经网络中待计算的神经元和权值的乘法运算,其中,所述乘法器模块的每一级结构完成所述神经元和权值的乘法运算的子运算;累加器模块,所述累加器模块包含构成流水线的多级结构,并用于对所述乘法器模块的乘法运算结果进行累加运算,以获得神经网络中卷积层的输出神经元,其中,所述累加器模块的每一级结构完成累加运算的子运算;池化单元,用于对所述卷积层的输出神经元进行池化处理;控制单元,用于控制神经网络处理系统中数据的传递。

【技术特征摘要】
1.一种神经网络处理系统,其特征在于,包括:乘法器模块,所述乘法器模块包含构成流水线的多级结构,并用于执行神经网络中待计算的神经元和权值的乘法运算,其中,所述乘法器模块的每一级结构完成所述神经元和权值的乘法运算的子运算;累加器模块,所述累加器模块包含构成流水线的多级结构,并用于对所述乘法器模块的乘法运算结果进行累加运算,以获得神经网络中卷积层的输出神经元,其中,所述累加器模块的每一级结构完成累加运算的子运算;池化单元,用于对所述卷积层的输出神经元进行池化处理;控制单元,用于控制神经网络处理系统中数据的传递。2.根据权利要求1所述的神经网络处理系统,其特征在于,还包括神经元缓存单元,用于存储所述卷积层的输出神经元。3.根据权利要求2所述的神经网络处理系统,其特征在于,所述控制单元还用于分析所述卷积层的输出神经元,在所述卷积层的输出神经元不属于同一池化域的情况下,将其存储到所述神经元缓存单元,在所述卷积层的输出神经元属于同一池化域的情况下,将其直接传递到所述池化单元。4.根据权利要求1所述的神经网络处理系统,其特征在于,所述神经网络处理系统包括多个乘法器模块和多个累加器模块,所述控制单元还用于基于卷积参数和池化参数确定每个周期参加运算的所述乘法器模块的数量和所述累加器模块的数量。5.根据权利要求4所述的神经网络处理系统,其特征在于,所述卷积参数包括卷积核尺寸、卷积移动步长、输入特征图数量;所述池化参数包括池化域尺寸。6.根据...

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

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

1