首页 / 专利库 / 人工智能 / 交叉开关阵列 / 一种多层感知机深度神经网络层间流水的硬件加速器

一种多层感知深度神经网络层间流硬件加速

阅读:543发布:2020-05-08

专利汇可以提供一种多层感知深度神经网络层间流硬件加速专利检索,专利查询,专利分析的服务。并且一种多层 感知 机 深度神经网络 层间流 水 的 硬件 加速 器,包括:输入寄存器,用于向奇层神经元计算部件提供输入;奇层神经元计算部件,包括一个以上的硬件 人工神经元 计算部件;交叉 开关 ,用于将奇层神经元计算部件产生的每一个输出广播到偶层神经元计算部件;偶层神经元计算部件,包括多个并行的人工神经元计算单元,用来进行多次乘累加计算并行生成多个输出神经元部分和,并最终完成多个输出神经元;输出寄存器,将偶层神经元计算单元的计算结果输出到 存储器 中,或者输出到快速通道;快速通道,用于将偶层神经元计算单元的结果直接旁路传输给输入寄存器,作为输入。本 发明 具备层间调度能 力 、能够开发层间数据重用、提高MLP加速效率等优点。,下面是一种多层感知深度神经网络层间流硬件加速专利的具体信息内容。

1.一种多层感知深度神经网络层间流硬件加速器,其特征在于,包括:
输入寄存器(1),用于向奇层神经元计算部件(2)提供输入;
奇层神经元计算部件(2),包括一个以上的硬件人工神经元计算部件(2-1),利用多个神经元输入,多次计算生成一个、一次计算生成一个或者一次计算生成多个、多次串行计算生成多个输出神经元;
交叉开关(3),用于将奇层神经元计算部件(2)产生的每一个输出广播到偶层神经元计算部件(4);
偶层神经元计算部件(4),包括多个并行的人工神经元计算单元(4-1),用来进行多次乘累加计算并行生成多个输出神经元部分和,并最终完成多个输出神经元;
输出寄存器(5),将偶层神经元计算单元(4)的计算结果输出到存储器中,或者输出到快速通道(6);
快速通道(6),用于将偶层神经元计算单元(4)的结果直接旁路传输给输入寄存器(1),作为奇层神经元计算部件(2)的输入。
2.根据权利要求1所述的多层感知机深度神经网络层间流水的硬件加速器,其特征在于,所述输入寄存器(1)用来选择输入来源,以及在奇层神经元计算部件(2)运算的多个输出期间保持输入,提供输入复用功能。
3.根据权利要求1所述的多层感知机深度神经网络层间流水的硬件加速器,其特征在于,所述硬件人工神经元计算部件(2-1)包含多个乘法器阵列、加法树单元、以及一个非线性激活函数单元;所述乘法器阵列包含多个两输入的乘法器,每个乘法器完成输入及其权值的乘法,即加权过程;所述乘法器阵列的所有乘积结果由加法树单元完成累加;累加的结果通过非线性激活函数计算单元计算得到最终的输出神经元值。
4.根据权利要求1所述的多层感知机深度神经网络层间流水的硬件加速器,其特征在于,所述人工神经元计算单元(4-1)包含一个乘累加器MAC,一个本地寄存器和一个非线性激活函数单元NLF;所述乘累加器MAC完成本机寄存器+输入*权值的乘累加过程,计算结果保存在本地寄存器中;当累加完成设定的次数以后,通过非线性激活函数单元NLF计算得到最终的输出神经元值。
5.根据权利要求4所述的多层感知机深度神经网络层间流水的硬件加速器,其特征在于,所述乘累加器MAC的累加次数由奇层神经元计算部件(2)的输出的神经元个数决定,所述奇层神经元计算部件(2)每输出一个神经元,所述乘累加器MAC就会执行一次运算。
6.根据权利要求1-5中任意一项所述的多层感知机深度神经网络层间流水的硬件加速器,其特征在于,所述偶层神经元计算部件(4)中的所有人工神经元计算单元(4-1)的输入相同,但权值为不同的输出神经元的权值;所有人工神经元计算单元(4-1)并行计算多个神经元的部分和以及最后产生最终的神经元值。
7.根据权利要求1-5中任意一项所述的多层感知机深度神经网络层间流水的硬件加速器,其特征在于,所述多层感知机深度神经网络中进行流水线处理包括以下周期:
第1个周期:利用输入X,计算MLP第1层神经元1;
第2个周期:利用输入X,计算MLP第1层神经元2,同时利用MLP第1层神经元1,并行完成并行计算MLP第2层神经元部分和向量的第1次累加;
第3个周期到第n1个周期重复上述过程;到第n1个周期,MLP第1层神经元全部计算完毕;
第n1+1个周期:利用MLP第1层神经元n1,计算MLP第2层神经元部分和向量的第n1次累加并得到最终结果Y;令X=Y;
第n1+2个周期开始,重复第1个周期到第n1+1个周期的计算,直到所有MLP层计算完毕。

说明书全文

一种多层感知深度神经网络层间流硬件加速

技术领域

[0001] 本发明主要涉及到深度神经网络(Deep Neuron Network,DNN)技术领域,特指一种多层感知机(Multi-Layer Perceptions,MLP)深度神经网络层间流水的硬件加速器。

背景技术

[0002] 从上个世纪80年代起,MLP就已经是相当流行的机器学习方法。MLP早已经被证明是一种通用的函数近似方法,可以被用来执行预测、函数近似拟合以及模式分类任务,应用范围曾涉及医学、工业勘探、消费电子等多种领域。MLP具备高度的非线性全局作用、良好的容错性、联想记忆功能等优点。随着DNN的推广,MLP在语音、图像以及机器学习等可利用近似拟合方法的领域广泛应用。据报道,Google的数据中心有61%以上的任务负载是MLP类任务。然而MLP的计算量较大,边缘计算通常采用硬件加速的方法提高性能和能耗效率;而数据中心、服务器等也由于功耗和开销的原因,通常会部署大量的硬件加速器来专加速神经网络。
[0003] MLP是一种基于全连接(Fully-Connected,FC)前向结构的人工神经网络(Artificial Neural Network,ANN),其包含从十几个到成百上千不等的人工神经元(Artificial Neuron,AN,下文简称神经元)。MLP将神经元组织为多层的结构,层间采用全连接方法,形成逐层连接的多权连接层的ANN,其基本结构如图1所示。一般来讲,MLP包含一个输入层(该层实际不包含运算)、一个或者多个隐层层以及一个输出层
[0004] 图1是典型MLP的结构示意图。MLP是一种基于全连接(Fully-Connected,FC)前向结构的人工神经网络(Artificial Neural Network,ANN),其包含从十几个到成百上千不等的人工神经元(Artificial Neuron,AN,下文简称神经元)。MLP将神经元组织为多个层的结构,层间采用FC连接方法,形成多层的ANN。从中可以看出,多个全连接层逐层连接,形成了复杂结构的MLP。一般来讲,MLP包含一个输入层(该层实际不包含运算)、一个或者多个隐层以及一个输出层。
[0005] 隐层以及一个输出层。
[0006] ·将MLP各个包含计算的全连接层从1开始进行编号,总层数为L;
[0007] ·输入层编号设置为0;
[0008] ·将MLP的全连接层分为奇数层和偶数层两大类;
[0009] ·i表示MLP的全连接层编号,第i层的神经元个数记为ni,i∈(0,1,…,L);
[0010] ·Xi为第i层的输入,Yi为第i层的输出,由于上一层的输出是下一层的输入,则有[0011] Xi=Yi-1;
[0012] ·Wi为第i层的参数矩阵,bi为第i层的偏置向量
[0013] ·输入层不包含运算,有:X0=Y0=X1;
[0014] ·
[0015] ·
[0016] 每一个全连接层的计算公式为:
[0017]
[0018] MLP的前向推导过程是根据FC计算公式,逐层计算神经元,最终得到输出。现有的MLP硬件加速装置采取了很多数据重用和并行计算的方法来优化一个每一层内的计算,然后逐层调度和计算,这被称为逐层顺序调度方法。这种方法是目前所有结构所采取的调度方法。
[0019] 逐层顺序调度考虑的是层内并行和数据重用,然而根据图1可知,MLP的某一层的输出正好是下一层的输入,这是一种天然存在的层间数据重用关系。而逐层顺序调度方法之所以不能有效开发MLP的这种天然属性,在于其采用的计算模式所带来的数据相关性:每一层的神经元都必须完全计算完成后,才能启动下一层的计算过程,这推迟了下一层的开始时间,增加了整体计算时间;同时,在等待当前层后续神经元计算完成期间,已经完成计算的神经元数据将重新写入到存储器中,使用的时候再重新读取,这增大了读写开销。
[0020] 因此,MLP加速器必须具备层间调度能,能够开发层间数据重用,才能更进一步提高MLP加速效率。

发明内容

[0021] 本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种具备层间调度能力、能够开发层间数据重用、提高MLP加速效率的多层感知机深度神经网络层间流水的硬件加速器。
[0022] 为解决上述技术问题,本发明采用以下技术方案:
[0023] 一种多层感知机深度神经网络层间流水的硬件加速器,其包括:
[0024] 输入寄存器,用于向奇层神经元计算部件提供输入;
[0025] 奇层神经元计算部件,包括一个以上的硬件人工神经元计算部件,利用多个神经元输入,多次计算生成一个、一次计算生成一个或者一次计算生成多个、多次串行计算生成多个输出神经元;
[0026] 交叉开关,用于将奇层神经元计算部件产生的每一个输出广播到偶层神经元计算部件;
[0027] 偶层神经元计算部件,包括多个并行的人工神经元计算单元,用来进行多次乘累加计算并行生成多个输出神经元部分和,并最终完成多个输出神经元;
[0028] 输出寄存器,将偶层神经元计算单元的计算结果输出到存储器中,或者输出到快速通道;
[0029] 快速通道,用于将偶层神经元计算单元的结果直接旁路传输给输入寄存器,作为奇层神经元计算部件的输入。
[0030] 作为本发明的进一步改进:所述输入寄存器用来选择输入来源,以及在奇层神经元计算部件运算的多个输出期间保持输入,提供输入复用功能。
[0031] 作为本发明的进一步改进:所述硬件人工神经元计算部件包含多个乘法器阵列、加法树单元、以及一个非线性激活函数单元;所述乘法器阵列包含多个两输入的乘法器,每个乘法器完成输入及其权值的乘法,即加权过程;所述乘法器阵列的所有乘积结果由加法树单元完成累加;累加的结果通过非线性激活函数计算单元计算得到最终的输出神经元值。
[0032] 作为本发明的进一步改进:所述人工神经元计算单元包含一个乘累加器MAC,一个本地寄存器和一个非线性激活函数单元NLF;所述乘累加器MAC完成本机寄存器+输入*权值的乘累加过程,计算结果保存在本地寄存器中;当累加完成设定的次数以后,通过非线性激活函数单元NLF计算得到最终的输出神经元值。
[0033] 作为本发明的进一步改进:所述乘累加器MAC的累加次数由奇层神经元计算部件的输出的神经元个数决定,所述奇层神经元计算部件每输出一个神经元,所述乘累加器MAC就会执行一次运算。
[0034] 作为本发明的进一步改进:所述偶层神经元计算部件中的所有人工神经元计算单元的输入相同,但权值为不同的输出神经元的权值;所有人工神经元计算单元并行计算多个神经元的部分和以及最后产生最终的神经元值。
[0035] 作为本发明的进一步改进:所述多层感知机深度神经网络中进行流水线处理包括以下周期:
[0036] 第1个周期:利用输入X,计算MLP第1层神经元1;
[0037] 第2个周期:利用输入X,计算MLP第1层神经元2,同时利用MLP第1层神经元1,并行完成并行计算MLP第2层神经元部分和向量的第1次累加;
[0038] 第3个周期到第n1个周期重复上述过程;到第n1个周期,MLP第1层神经元全部计算完毕;
[0039] 第n1+1个周期:利用MLP第1层神经元n1,计算MLP第2层神经元部分和向量的第n1次累加并得到最终结果Y;令X=Y;
[0040] 第n1+2个周期开始,重复第1个周期到第n1+1个周期的计算,直到所有MLP层计算完毕。
[0041] 与现有技术相比,本发明的优点在于:
[0042] 本发明的多层感知机深度神经网络层间流水的硬件加速器,具备层间调度能力、能够开发层间数据重用、提高MLP加速效率等优点,本发明在计算资源内部实现MLP层间数据复用,既提早了后续层的计算时间,缩短了整体的运算时间,也降低了不必要的访存开销,所有隐藏层的输入输出均不需要访存,提高了功耗效率。该装置所使用的技术与现有的其他技术属于正交关系,可以合理集成在一起,共同提高MLP的运算性能。附图说明
[0043] 图1是典型MLP DNN的结构示意图。
[0044] 图2是本发明硬件加速器的结构原理示意图。
[0045] 图3是本发明在具体应用实例中奇层人工神经元计算部件的结构原理示意图。
[0046] 图4是本发明在具体应用实例中偶层人工神经元计算部件的结构原理示意图。
[0047] 图5是本发明在具体应用实例中进行流水线处理的示意图。

具体实施方式

[0048] 以下将结合说明书附图和具体实施例对本发明做进一步详细说明。
[0049] 如图2所示,本发明的多层感知机深度神经网络层间流水的硬件加速器,包括:
[0050] 输入寄存器1,用于向奇层神经元计算部件2提供输入,主要功能在于选择输入来源,以及在奇层神经元计算部件2运算的多个输出期间保持输入,提供输入复用功能;
[0051] 奇层神经元计算部件2,包括一个或者多个硬件人工神经元计算部件2-1,利用多个神经元输入,多次计算生成一个、一次计算生成一个或者一次计算生成多个、多次串行计算生成多个输出神经元;
[0052] 交叉开关3,采用广播结构,用于将奇层神经元计算部件2产生的每一个输出广播到偶层神经元计算部件4;
[0053] 偶层神经元计算部件4,包括多个并行的人工神经元计算单元4-1,可以多次乘累加计算并行生成多个输出神经元部分和,并最终完成多个输出神经元;
[0054] 输出寄存器5,将偶层神经元计算单元4的计算结果输出到存储器中,或者输出到快速通道6。
[0055] 快速通道6,将偶层神经元计算单元4的结果直接旁路传输给输入寄存器1,作为奇层神经元计算部件2的输入。
[0056] 在具体应用实例中,如图3所示,为本发明在具体应用实例中硬件人工神经元计算部件2-1的一种实施例的结构示意图。所述硬件人工神经元计算部件2-1包含多个乘法器阵列,加法树单元,以及一个非线性激活函数单元。乘法器阵列包含多个两输入的乘法器,每个乘法器完成输入及其权值的乘法,即加权过程;乘法器阵列的所有乘积结果由加法树单元完成累加;累加的结果通过非线性激活函数计算单元计算得到最终的输出神经元值。
[0057] 在具体应用实例中,如图4所示,所述人工神经元计算单元4-1包含一个乘累加器(Multiply Accumulator,MAC),一个本地寄存器和一个非线性激活函数单元(NLF)。MAC完成本机寄存器+输入*权值的乘累加过程,计算结果保存在本地寄存器中。当累加完成设定的次数以后,通过非线性激活函数单元计算得到最终的输出神经元值。其中MAC的累加次数由奇层神经元计算部件2的输出的神经元个数决定,奇层神经元计算部件2每输出一个神经元,MAC单元就会执行一次运算。
[0058] 在具体应用实例中,所述偶层神经元计算部件4中的所有部分人工神经元计算单元4-1的输入相同,但权值为不同的输出神经元的权值;所有部分人工神经元计算单元4-1并行计算多个神经元的部分和以及最后产生最终的神经元值。
[0059] 如图5所示,为本发明在一个具体应用实例中于多层感知机深度神经网络中进行流水线处理的示意图,它包括以下周期:
[0060] 第1个周期:利用输入X,计算MLP第1层神经元1;
[0061] 第2个周期:利用输入X,计算MLP第1层神经元2,同时利用MLP第1层神经元1,并行完成并行计算MLP第2层神经元部分和向量的第1次累加;
[0062] 第3个周期到第n1个周期重复上述过程;到第n1个周期,MLP第1层神经元全部计算完毕;
[0063] 第n1+1个周期:利用MLP第1层神经元n1,计算MLP第2层神经元部分和向量的第n1次累加并得到最终结果Y。令X=Y。
[0064] 第n1+2个周期开始,重复第1个周期到第n1+1个周期的计算,直到所有MLP层计算完毕。
[0065] 以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈