本申请公开了应用于Transformer神经网络的层归一化处理硬件加速器及方法,该硬件加速器包括中间矩阵存储单元、第一均值计算单元、第二均值计算单元、第一平方计算单元、第二平方计算单元、平方根倒数计算单元及输出矩阵计算单元。中间矩阵存储单元、第一均值计算单元及平方根倒数计算单元的输出端均接至输出矩阵计算单元,第一均值计算单元的输出端接至第一平方计算单元。第一平方计算单元的输出端接至平方根倒数计算单元。第二平方计算单元的输出端接至第二均值计算单元。第二均值计算单元的输出端接至平方根倒数计算单元。通过硬件加速器执行层归一化处理,能够减小延时,提高Transformer神经网络的运算速度和效率。Transformer神经网络的运算速度和效率。Transformer神经网络的运算速度和效率。
【技术实现步骤摘要】
应用于Transformer神经网络的层归一化处理硬件加速器及方法
[0001]本申请涉及神经网络
,尤其涉及应用于Transformer神经网络的层归一化处理硬件加速器及方法。
技术介绍
[0002]Transformer网络是一个用于解决自然语言处理问题的神经网络模型,其模型架构如图1所示,主要包括一个编码器堆栈和一个解码器堆栈,编码器堆栈和解码器堆栈又各自包含N个编码器层和多个解码器层。Transformer神经网络计算过程中,输入序列首先经过词向量嵌入层处理及位置编码叠加处理后,得到输入矩阵,该输入矩阵输至编码器堆栈中,依次经历多个编码器层的运算,得到编码器堆栈的输出矩阵。编码阶段结束后就是解码阶段,解码阶段中每一步会输出目标句子的一个元素,实现自然语言的处理。
[0003]每个编码器层和解码器层均由多头注意力层和前馈层组成。多头注意力层包括大小一致的三个输入矩阵,分别为第一输入矩阵、第二输入矩阵及第三输入矩阵,前馈层仅包括一个输入矩阵。在多头注意力层中,三个输入矩阵经过一系列处理(包括线性处理和Softmax层的处理)之后,得到第一中间矩阵,然后针对该中间矩阵进行层归一化处理,得到多头注意力层最终的输出矩阵。同样的,在前馈层中,输入矩阵经过一系列处理得到第二中间矩阵,然后针对该中间矩阵进行层归一化处理,得到前馈层的输出矩阵。
[0004]目前,都是在CPU或GPU这样通用的计算平台上运行上述计算流程。在执行层归一化处理的过程中,为了得到中间矩阵每行元素的方差值,需先计算中间矩阵中每行元素的平均值,再分别获取每个元素与平均值之间的差值,针对差值进行平方后执行累加操作,这样的处理步骤较为繁琐,存在较大延时。为了提高Transformer神经网络的运算速度和效率,亟需设计出专用于层归一化处理的硬件加速器。
技术实现思路
[0005]为了减少层归一化处理过程的延时,提高Transformer神经网络的运算速度和效率,本申请通过以下实施例公开了应用于Transformer神经网络的层归一化处理硬件加速器及方法。
[0006]本申请第一方面公开了一种应用于Transformer神经网络的层归一化处理硬件加速器,所述层归一化处理硬件加速器包括:
[0007]中间矩阵存储单元、第一均值计算单元、第二均值计算单元、第一平方计算单元、第二平方计算单元、平方根倒数计算单元及输出矩阵计算单元;
[0008]所述中间矩阵存储单元的输出端接至所述输出矩阵计算单元;
[0009]所述第一均值计算单元的输出端分别接至所述第一平方计算单元及所述输出矩阵计算单元;所述第一平方计算单元的输出端接至所述平方根倒数计算单元;
[0010]所述第二平方计算单元的输出端接至所述第二均值计算单元;
[0011]所述第二均值计算单元的输出端接至所述平方根倒数计算单元;
[0012]所述平方根倒数计算单元的输出端接至所述输出矩阵计算单元。
[0013]可选的,所述中间矩阵存储单元用于获取并存储所述中间矩阵,所述中间矩阵为多头注意力层处理过程中的第一中间矩阵或前馈层处理过程中的第二中间矩阵;
[0014]所述第一均值计算单元用于计算所述中间矩阵中每行元素的均值,并将计算结果输入至所述第一平方计算单元;
[0015]所述第一平方计算单元用于对所述第一均值计算单元输入的值执行平方运算,获取所述中间矩阵中每行元素均值的平方;
[0016]所述第二平方计算单元用于针对所述中间矩阵中的每个元素执行平方运算,获取平方矩阵;
[0017]所述第二均值计算单元用于计算所述平方矩阵每行元素的均值;
[0018]所述平方根倒数计算单元用于根据所述中间矩阵每行元素均值的平方及所述平方矩阵每行元素的均值,获取所述中间矩阵每行元素方差的平方根倒数;
[0019]所述输出矩阵计算单元用于对所述中间矩阵的每个元素、所述中间矩阵每行元素的均值及所述中间矩阵每行元素方差的平方根倒数进行层归一化处理,获得所述多头注意力层或所述前馈层最终的输出矩阵。
[0020]可选的,所述平方根倒数计算单元在根据所述中间矩阵每行元素均值的平方及所述平方矩阵每行元素的均值,获取所述中间矩阵每行元素方差的平方根倒数的过程中,用于根据以下公式,获取所述中间矩阵每行元素的方差:
[0021]var(G,i)=E(G,i)
2-F(i,k);
[0022][0023]其中,var(G,i)表示所述中间矩阵G第i行元素的方差,E(G,i)表示所述中间矩阵G第i行元素的均值,F(i,k)表示所述平方矩阵第i行元素的均值,G(i,k)表示所述中间矩阵第i行第k列的元素,d
model
表示所述中间矩阵的总列数。
[0024]可选的,所述输出矩阵计算单元用于根据以下公式,对所述中间矩阵的每个元素、所述中间矩阵每行元素的均值及所述中间矩阵每行元素方差的平方根倒数进行层归一化处理,获取所述多头注意力层或所述前馈层最终的输出矩阵:
[0025][0026]其中,Output(i,j)表示所述输出矩阵中第i行第j列的元素,var(G,i)表示所述中间矩阵G第i行元素的方差,G(i,j)表示所述中间矩阵G第i行第j列的元素,E(G,i)表示所述中间矩阵第i行元素的均值,ε为第一参数,γ
j
表示第二参数,β
j
表示第三参数。
[0027]可选的,所述第一均值计算单元包括多个第一均值计算子单元,所述第二均值计算单元包括多个第二均值计算子单元,所述第一平方计算单元包括多个第一平方计算子单元,所述第二平方计算单元包括多个第二平方计算子单元,所述平方根倒数计算单元包括多个平方根倒数计算子单元,所述输出矩阵计算单元包括多个输出矩阵计算子单元;
[0028]所述第一均值计算子单元、所述第二均值计算子单元、所述第一平方计算子单元、
所述第二平方计算子单元、所述平方根倒数计算子单元及所述输出矩阵计算子单元的数量均与所述多头注意力层中任一输入矩阵的行数一致。
[0029]本申请第二方面公开了一种应用于Transformer神经网络的层归一化处理方法,所述层归一化处理方法应用于本申请第一方面所述的应用于Transformer神经网络的层归一化处理硬件加速器,所述层归一化处理方法包括:
[0030]将中间矩阵的所有元素按照列序依次输入至中间矩阵存储单元中,其中,若当前运算属于多头注意力层,则所述中间矩阵为第一中间矩阵,若当前运算为前馈层,则所述中间矩阵为第二中间矩阵;
[0031]将中间矩阵的每行元素分别输入至多个第一均值计算子单元中,计算出所述中间矩阵中每行元素的均值;以及将中间矩阵的每行元素分别输入至多个第二平方计算子单元中,获取平方矩阵;
[0032]将所述中间矩阵中每行元素的均值分别输入至多个第一平方计算子单元中,获取所述中间矩阵中每行元素均值的平方;
[0033]将所述平方矩本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种应用于Transformer神经网络的层归一化处理硬件加速器,其特征在于,所述层归一化处理硬件加速器包括:中间矩阵存储单元、第一均值计算单元、第二均值计算单元、第一平方计算单元、第二平方计算单元、平方根倒数计算单元及输出矩阵计算单元;所述中间矩阵存储单元的输出端接至所述输出矩阵计算单元;所述第一均值计算单元的输出端分别接至所述第一平方计算单元及所述输出矩阵计算单元;所述第一平方计算单元的输出端接至所述平方根倒数计算单元;所述第二平方计算单元的输出端接至所述第二均值计算单元;所述第二均值计算单元的输出端接至所述平方根倒数计算单元;所述平方根倒数计算单元的输出端接至所述输出矩阵计算单元。2.根据权利要求1所述的应用于Transformer神经网络的层归一化处理硬件加速器,其特征在于,所述中间矩阵存储单元用于获取并存储所述中间矩阵,所述中间矩阵为多头注意力层处理过程中的第一中间矩阵或前馈层处理过程中的第二中间矩阵;所述第一均值计算单元用于计算所述中间矩阵中每行元素的均值,并将计算结果输入至所述第一平方计算单元;所述第一平方计算单元用于对所述第一均值计算单元输入的值执行平方运算,获取所述中间矩阵中每行元素均值的平方;所述第二平方计算单元用于针对所述中间矩阵中的每个元素执行平方运算,获取平方矩阵;所述第二均值计算单元用于计算所述平方矩阵每行元素的均值;所述平方根倒数计算单元用于根据所述中间矩阵每行元素均值的平方及所述平方矩阵每行元素的均值,获取所述中间矩阵每行元素方差的平方根倒数;所述输出矩阵计算单元用于对所述中间矩阵的每个元素、所述中间矩阵每行元素的均值及所述中间矩阵每行元素方差的平方根倒数进行层归一化处理,获得所述多头注意力层或所述前馈层最终的输出矩阵。3.根据权利要求2所述的应用于Transformer神经网络的层归一化处理硬件加速器,其特征在于,所述平方根倒数计算单元在根据所述中间矩阵每行元素均值的平方及所述平方矩阵每行元素的均值,获取所述中间矩阵每行元素方差的平方根倒数的过程中,用于根据以下公式,获取所述中间矩阵每行元素的方差:var(G,i)=E(G,i)
2-F(i,k);其中,var(G,i)表示所述中间矩阵G第i行元素的方差,E(G,i)表示所述中间矩阵G第i行元素的均值,F(i,k)表示所述平方矩阵第i行元素的均值,G(i,k)表示所述中间矩阵第i行第k列的元素,d
model
表示所述中间矩阵的总列数。4.根据权利要求2或3所述的应用于Transformer神经网络的层归一化处理硬件加速器,其特征在于,所述输出矩阵计算单元用于根据以下公式,对所述中间矩阵的每个元素、
所述中间矩阵每行元素的均值及所述中间矩阵每行元素方差的平方根倒数进行层归一化处理,获取所述多头注意力层或所述前馈层最终的输...
【专利技术属性】
技术研发人员:王中风,路思远,王美琪,梁双,林军,
申请(专利权)人:南京大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。