CN114118343A - 应用于Transformer神经网络的层归一化处理硬件加速器及方法 - Google Patents

应用于Transformer神经网络的层归一化处理硬件加速器及方法 Download PDF

Info

Publication number
CN114118343A
CN114118343A CN202010898001.8A CN202010898001A CN114118343A CN 114118343 A CN114118343 A CN 114118343A CN 202010898001 A CN202010898001 A CN 202010898001A CN 114118343 A CN114118343 A CN 114118343A
Authority
CN
China
Prior art keywords
matrix
square
intermediate matrix
row
elements
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010898001.8A
Other languages
English (en)
Inventor
王中风
路思远
王美琪
梁双
林军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University
Original Assignee
Nanjing University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing University filed Critical Nanjing University
Priority to CN202010898001.8A priority Critical patent/CN114118343A/zh
Publication of CN114118343A publication Critical patent/CN114118343A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/552Powers or roots, e.g. Pythagorean sums

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Biomedical Technology (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Complex Calculations (AREA)

Abstract

本申请公开了应用于Transformer神经网络的层归一化处理硬件加速器及方法,该硬件加速器包括中间矩阵存储单元、第一均值计算单元、第二均值计算单元、第一平方计算单元、第二平方计算单元、平方根倒数计算单元及输出矩阵计算单元。中间矩阵存储单元、第一均值计算单元及平方根倒数计算单元的输出端均接至输出矩阵计算单元,第一均值计算单元的输出端接至第一平方计算单元。第一平方计算单元的输出端接至平方根倒数计算单元。第二平方计算单元的输出端接至第二均值计算单元。第二均值计算单元的输出端接至平方根倒数计算单元。通过硬件加速器执行层归一化处理,能够减小延时,提高Transformer神经网络的运算速度和效率。

Description

应用于Transformer神经网络的层归一化处理硬件加速器及 方法
技术领域
本申请涉及神经网络技术领域,尤其涉及应用于Transformer神经网络的层归一化处理硬件加速器及方法。
背景技术
Transformer网络是一个用于解决自然语言处理问题的神经网络模型,其模型架构如图1所示,主要包括一个编码器堆栈和一个解码器堆栈,编码器堆栈和解码器堆栈又各自包含N个编码器层和多个解码器层。Transformer神经网络计算过程中,输入序列首先经过词向量嵌入层处理及位置编码叠加处理后,得到输入矩阵,该输入矩阵输至编码器堆栈中,依次经历多个编码器层的运算,得到编码器堆栈的输出矩阵。编码阶段结束后就是解码阶段,解码阶段中每一步会输出目标句子的一个元素,实现自然语言的处理。
每个编码器层和解码器层均由多头注意力层和前馈层组成。多头注意力层包括大小一致的三个输入矩阵,分别为第一输入矩阵、第二输入矩阵及第三输入矩阵,前馈层仅包括一个输入矩阵。在多头注意力层中,三个输入矩阵经过一系列处理(包括线性处理和Softmax层的处理)之后,得到第一中间矩阵,然后针对该中间矩阵进行层归一化处理,得到多头注意力层最终的输出矩阵。同样的,在前馈层中,输入矩阵经过一系列处理得到第二中间矩阵,然后针对该中间矩阵进行层归一化处理,得到前馈层的输出矩阵。
目前,都是在CPU或GPU这样通用的计算平台上运行上述计算流程。在执行层归一化处理的过程中,为了得到中间矩阵每行元素的方差值,需先计算中间矩阵中每行元素的平均值,再分别获取每个元素与平均值之间的差值,针对差值进行平方后执行累加操作,这样的处理步骤较为繁琐,存在较大延时。为了提高Transformer神经网络的运算速度和效率,亟需设计出专用于层归一化处理的硬件加速器。
发明内容
为了减少层归一化处理过程的延时,提高Transformer神经网络的运算速度和效率,本申请通过以下实施例公开了应用于Transformer神经网络的层归一化处理硬件加速器及方法。
本申请第一方面公开了一种应用于Transformer神经网络的层归一化处理硬件加速器,所述层归一化处理硬件加速器包括:
中间矩阵存储单元、第一均值计算单元、第二均值计算单元、第一平方计算单元、第二平方计算单元、平方根倒数计算单元及输出矩阵计算单元;
所述中间矩阵存储单元的输出端接至所述输出矩阵计算单元;
所述第一均值计算单元的输出端分别接至所述第一平方计算单元及所述输出矩阵计算单元;所述第一平方计算单元的输出端接至所述平方根倒数计算单元;
所述第二平方计算单元的输出端接至所述第二均值计算单元;
所述第二均值计算单元的输出端接至所述平方根倒数计算单元;
所述平方根倒数计算单元的输出端接至所述输出矩阵计算单元。
可选的,所述中间矩阵存储单元用于获取并存储所述中间矩阵,所述中间矩阵为多头注意力层处理过程中的第一中间矩阵或前馈层处理过程中的第二中间矩阵;
所述第一均值计算单元用于计算所述中间矩阵中每行元素的均值,并将计算结果输入至所述第一平方计算单元;
所述第一平方计算单元用于对所述第一均值计算单元输入的值执行平方运算,获取所述中间矩阵中每行元素均值的平方;
所述第二平方计算单元用于针对所述中间矩阵中的每个元素执行平方运算,获取平方矩阵;
所述第二均值计算单元用于计算所述平方矩阵每行元素的均值;
所述平方根倒数计算单元用于根据所述中间矩阵每行元素均值的平方及所述平方矩阵每行元素的均值,获取所述中间矩阵每行元素方差的平方根倒数;
所述输出矩阵计算单元用于对所述中间矩阵的每个元素、所述中间矩阵每行元素的均值及所述中间矩阵每行元素方差的平方根倒数进行层归一化处理,获得所述多头注意力层或所述前馈层最终的输出矩阵。
可选的,所述平方根倒数计算单元在根据所述中间矩阵每行元素均值的平方及所述平方矩阵每行元素的均值,获取所述中间矩阵每行元素方差的平方根倒数的过程中,用于根据以下公式,获取所述中间矩阵每行元素的方差:
var(G,i)=E(G,i)2-F(i,k);
Figure BDA0002658998550000021
其中,var(G,i)表示所述中间矩阵G第i行元素的方差,E(G,i)表示所述中间矩阵G第i行元素的均值,F(i,k)表示所述平方矩阵第i行元素的均值,G(i,k)表示所述中间矩阵第i行第k列的元素,dmodel表示所述中间矩阵的总列数。
可选的,所述输出矩阵计算单元用于根据以下公式,对所述中间矩阵的每个元素、所述中间矩阵每行元素的均值及所述中间矩阵每行元素方差的平方根倒数进行层归一化处理,获取所述多头注意力层或所述前馈层最终的输出矩阵:
Figure BDA0002658998550000022
其中,Output(i,j)表示所述输出矩阵中第i行第j列的元素,var(G,i)表示所述中间矩阵G第i行元素的方差,G(i,j)表示所述中间矩阵G第i行第j列的元素,E(G,i)表示所述中间矩阵第i行元素的均值,ε为第一参数,γj表示第二参数,βj表示第三参数。
可选的,所述第一均值计算单元包括多个第一均值计算子单元,所述第二均值计算单元包括多个第二均值计算子单元,所述第一平方计算单元包括多个第一平方计算子单元,所述第二平方计算单元包括多个第二平方计算子单元,所述平方根倒数计算单元包括多个平方根倒数计算子单元,所述输出矩阵计算单元包括多个输出矩阵计算子单元;
所述第一均值计算子单元、所述第二均值计算子单元、所述第一平方计算子单元、所述第二平方计算子单元、所述平方根倒数计算子单元及所述输出矩阵计算子单元的数量均与所述多头注意力层中任一输入矩阵的行数一致。
本申请第二方面公开了一种应用于Transformer神经网络的层归一化处理方法,所述层归一化处理方法应用于本申请第一方面所述的应用于Transformer神经网络的层归一化处理硬件加速器,所述层归一化处理方法包括:
将中间矩阵的所有元素按照列序依次输入至中间矩阵存储单元中,其中,若当前运算属于多头注意力层,则所述中间矩阵为第一中间矩阵,若当前运算为前馈层,则所述中间矩阵为第二中间矩阵;
将中间矩阵的每行元素分别输入至多个第一均值计算子单元中,计算出所述中间矩阵中每行元素的均值;以及将中间矩阵的每行元素分别输入至多个第二平方计算子单元中,获取平方矩阵;
将所述中间矩阵中每行元素的均值分别输入至多个第一平方计算子单元中,获取所述中间矩阵中每行元素均值的平方;
将所述平方矩阵中每行元素分别输入至多个第二均值计算子单元中,计算出所述平方矩阵中每行元素的均值;
将所述中间矩阵中每行元素均值的平方及所述平方矩阵中每行元素的均值分别输入至多个平方根倒数计算子单元中,获得所述中间矩阵每行元素方差的平方根倒数;
分别将所述中间矩阵的每个元素、所述中间矩阵每行元素的均值及所述中间矩阵每行元素方差的平方根倒数分别输入至多个输出矩阵计算子单元中,获得所述多头注意力层或所述前馈层最终的输出矩阵。
本申请第三方面公开了一种计算机设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如本申请第二方面所述的应用于Transformer神经网络的层归一化处理方法的步骤。
本申请第四方面公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理执行时实现如本申请第二方面所述的应用于Transformer神经网络的层归一化处理方法的步骤。
本申请公开了应用于Transformer神经网络的层归一化处理硬件加速器及方法,该硬件加速器包括中间矩阵存储单元、第一均值计算单元、第二均值计算单元、第一平方计算单元、第二平方计算单元、平方根倒数计算单元及输出矩阵计算单元。中间矩阵存储单元、第一均值计算单元及平方根倒数计算单元的输出端均接至输出矩阵计算单元,第一均值计算单元的输出端接至第一平方计算单元。第一平方计算单元的输出端接至平方根倒数计算单元。第二平方计算单元的输出端接至第二均值计算单元。第二均值计算单元的输出端接至平方根倒数计算单元。通过上述硬件加速器执行层归一化处理,能够有效减小延时,提高Transformer神经网络的运算速度和效率。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为Transformer神经网络的模型架构示意图;
图2为本申请实施例公开的应用于Transformer神经网络的层归一化处理硬件加速器的硬件架构示意图;
图3为本申请实施例公开的应用于Transformer神经网络的层归一化处理方法的工作流程示意图。
具体实施方式
为了减少层归一化处理过程的延时,提高Transformer神经网络的运算速度和效率,本申请通过以下实施例公开了应用于Transformer神经网络的层归一化处理硬件加速器及方法。
本申请中,将多头注意力层的三个输入分别定义为Q、K、V,将前馈层的输入定义为X,输入张量X的尺寸和输入张量Q、K、V的尺寸是相同的,它们均等于[batch_size,s,dmodel](batch_size表示一次有多少个输入序列,s代表一个输入序列中有多少个词,dmodel的大小代表了神经网络模型的尺寸)。考虑batch_size为1的情形,输入张量可以认为退化为了矩阵,那么全部的运算都可以认为是对输入矩阵的操作(batch_size即使大于1,也可以认为是多个尺寸相同,元素不同的输入矩阵,对它们进行了相同且互不干扰的操作最后再合并到一起)。
本申请第一实施例公开了一种应用于Transformer神经网络的层归一化处理硬件加速器,参见图2所示的结构示意图,所述层归一化处理硬件加速器包括:
中间矩阵存储单元、第一均值计算单元、第二均值计算单元、第一平方计算单元、第二平方计算单元、平方根倒数计算单元及输出矩阵计算单元。
所述中间矩阵存储单元的输出端接至所述输出矩阵计算单元。
所述第一均值计算单元的输出端分别接至所述第一平方计算单元及所述输出矩阵计算单元。
所述第一平方计算单元的输出端接至所述平方根倒数计算单元。
所述第二平方计算单元的输出端接至所述第二均值计算单元。
所述第二均值计算单元的输出端接至所述平方根倒数计算单元。
所述平方根倒数计算单元的输出端接至所述输出矩阵计算单元。
进一步的,所述中间矩阵存储单元用于获取并存储所述中间矩阵,所述中间矩阵为多头注意力层处理过程中的第一中间矩阵或前馈层处理过程中的第二中间矩阵。
所述第一均值计算单元用于计算所述中间矩阵中每行元素的均值,并将计算结果输入至所述第一平方计算单元。
所述第一平方计算单元用于对所述第一均值计算单元输入的值执行平方运算,获取所述中间矩阵中每行元素均值的平方。
所述第二平方计算单元用于针对所述中间矩阵中的每个元素执行平方运算,获取平方矩阵。
所述第二均值计算单元用于计算所述平方矩阵每行元素的均值。
所述平方根倒数计算单元用于根据所述中间矩阵每行元素均值的平方及所述平方矩阵每行元素的均值,获取所述中间矩阵每行元素方差的平方根倒数。
所述输出矩阵计算单元用于对所述中间矩阵的每个元素、所述中间矩阵每行元素的均值及所述中间矩阵每行元素方差的平方根倒数进行层归一化处理,获得所述多头注意力层或所述前馈层最终的输出矩阵。
进一步的,所述第一均值计算单元包括多个第一均值计算子单元,所述第二均值计算单元包括多个第二均值计算子单元,所述第一平方计算单元包括多个第一平方计算子单元,所述第二平方计算单元包括多个第二平方计算子单元,所述平方根倒数计算单元包括多个平方根倒数计算子单元,所述输出矩阵计算单元包括多个输出矩阵计算子单元。
所述第一均值计算子单元、所述第二均值计算子单元、所述第一平方计算子单元、所述第二平方计算子单元、所述平方根倒数计算子单元及所述输出矩阵计算子单元的数量均与所述多头注意力层中任一输入矩阵的行数一致。
本申请实施例中,层归一化函数运算模块的输入是大小为s×dmodel的中间矩阵G,输出也是同样大小的矩阵(命名为Output)。
目前,通常采用以下公式计算中间矩阵第i行元素的均值:
Figure BDA0002658998550000051
通常采用以下公式计算中间矩阵第i行元素的方差:
Figure BDA0002658998550000052
通过上述公式执行层归一化处理的过程中,为了得到中间矩阵每行元素的方差值,需先计算中间矩阵中每行元素的平均值,再分别获取每个元素与平均值之间的差值,针对差值进行平方后再执行累加操作,这样的计算过程步骤较为繁琐,实际处理过程中,会产生较大的延时,增加了Transformer神经网络的运算时间,降低了Transformer神经网络的运算效率。
本申请实施例中,为了减小延时,提出一种优化方法,使用另一种方法来计算中间矩阵第i行元素的方差,计算公式如下:
Figure BDA0002658998550000061
基于上述优化方法,所述平方根倒数计算单元在根据所述中间矩阵每行元素均值的平方及所述平方矩阵每行元素的均值,获取所述中间矩阵每行元素方差的平方根倒数的过程中,用于根据以下公式,获取所述中间矩阵每行元素的方差:
var(G,i)=E(G,i)2-F(i,k)。
Figure BDA0002658998550000062
其中,var(G,i)表示所述中间矩阵G第i行元素的方差,E(G,i)表示所述中间矩阵G第i行元素的均值,F(i,k)表示所述平方矩阵第i行元素的均值,G(i,k)表示所述中间矩阵第i行第k列的元素,dmodel表示所述中间矩阵的总列数。
进一步的,所述输出矩阵计算单元用于根据以下公式,对所述中间矩阵的每个元素、所述中间矩阵每行元素的均值及所述中间矩阵每行元素方差的平方根倒数进行层归一化处理,获取所述多头注意力层或所述前馈层最终的输出矩阵:
Figure BDA0002658998550000063
其中,Output(i,j)表示所述输出矩阵中第i行第j列的元素,var(G,i)表示所述中间矩阵G第i行元素的方差,G(i,j)表示所述中间矩阵G第i行第j列的元素,E(G,i)表示所述中间矩阵第i行元素的均值,ε为第一参数,γj表示第二参数,βj表示第三参数。ε用于防止分母等于零从而使得运算结果变成无穷大,其取值为10-8。第二参数包括dmodel个(γ1、γ2、…、γj、…、γdmodel),分别用于计算输出矩阵不同列的元素,第三参数包括dmodel个(β1、β2、…、βj、…、βdmodel),分别用于计算输出矩阵不同列的元素,第二参数及第三参数均为预设的值。
上述实施例公开的应用于Transformer神经网络的层归一化处理硬件加速器,包括中间矩阵存储单元、第一均值计算单元、第二均值计算单元、第一平方计算单元、第二平方计算单元、平方根倒数计算单元及输出矩阵计算单元。通过该硬件加速器执行层归一化处理,能够有效减小延时,提高Transformer神经网络的运算速度和效率
本申请第二实施例公开了一种应用于Transformer神经网络的层归一化处理方法,所述层归一化处理方法应用于本申请第一实施例所述的应用于Transformer神经网络的层归一化处理硬件加速器,参见图3所示的工作流程示意图,所述层归一化处理方法包括:
步骤S11,将中间矩阵的所有元素按照列序依次输入至中间矩阵存储单元中,其中,若当前运算属于多头注意力层,则所述中间矩阵为第一中间矩阵,若当前运算为前馈层,则所述中间矩阵为第二中间矩阵。
步骤S12,将中间矩阵的每行元素分别输入至多个第一均值计算子单元中,计算出所述中间矩阵中每行元素的均值,以及将中间矩阵的每行元素分别输入至多个第二平方计算子单元中,获取平方矩阵。
步骤S13,将所述中间矩阵中每行元素的均值分别输入至多个第一平方计算子单元中,获取所述中间矩阵中每行元素均值的平方。
步骤S14,将所述平方矩阵中每行元素分别输入至多个第二均值计算子单元中,计算出所述平方矩阵中每行元素的均值。
步骤S15,将所述中间矩阵中每行元素均值的平方及所述平方矩阵中每行元素的均值分别输入至多个平方根倒数计算子单元中,获得所述中间矩阵每行元素方差的平方根倒数。
步骤S16,分别将所述中间矩阵的每个元素、所述中间矩阵每行元素的均值及所述中间矩阵每行元素方差的平方根倒数分别输入至多个输出矩阵计算子单元中,获得所述多头注意力层或所述前馈层最终的输出矩阵。
在一种实现方式中,结合图2公开的结构图,上述实施例公开的层归一化处理方法的具体实施过程为:
将中间矩阵G输入至层归一化处理硬件加速器中,每次输入该矩阵的一列元素,即第一个时刻输入G(1,1)-G(s,1),第j个时刻输入G(1,j)-G(s,j),依次类推,直到最后一个时刻输入G(1,dmodel)-G(s,dmodel)。与此同时,层归一化处理硬件加速器中的中间矩阵存储单元、第一均值计算单元、第二平方计算单元及第二均值计算单元执行以下操作:把中间矩阵G存储于“中间矩阵存储单元”中;累加计算出
Figure BDA0002658998550000071
累加计算出
Figure BDA0002658998550000072
在中间矩阵G输入完成后,便得到
Figure BDA0002658998550000073
Figure BDA0002658998550000074
以及
Figure BDA0002658998550000075
Figure BDA0002658998550000076
利用第一平方计算单元,计算得到E(G,1)2、E(G,2)2及E(G,s)2
根据第一均值计算单元、第二均值计算单元及第一平方计算单元的运算结果,利用平方根倒数计算单元中的加法器计算出var(G,1)=E(G,1)2-E(G.*G,1)、var(G,2)=E(G,2)2-E(G.*G,2)、……、var(G,s)=E(G,s)2-E(G.*G,s),再利用“x^(-0.5)”运算单元求出r1=(var(G,1)+ε)^(-0.5),r2=(var(G,2)+ε)^(-0.5),……,rs=(var(G,s)+ε)^(-0.5)。
根据中间矩阵存储单元、第一均值计算单元及平方根倒数计算单元的运算结果,输出矩阵计算单元根据公式
Figure BDA0002658998550000081
计算最终的输出矩阵。第一个时刻的输出为Output(1,1)、Output(2,1)、……、Output(s,1),第二个时刻的输出为Output(1,2)、Output(2,2)、……、Output(s,2),直到第dmodel个时刻,输出Output(1,dmodel)、Output(2,dmodel)、……、Output(s,dmodel),获取层归一化处理硬件加速器最终的输出矩阵。
本申请第三实施例公开了一种计算机设备,包括:
存储器,用于存储计算机程序。
处理器,用于执行所述计算机程序时实现如本申请第二实施例所述的应用于Transformer神经网络的层归一化处理方法的步骤。
本申请第四实施例公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理执行时实现如本申请第二实施例所述的应用于Transformer神经网络的层归一化处理方法的步骤。
以上结合具体实施方式和范例性实例对本申请进行了详细说明,不过这些说明并不能理解为对本申请的限制。本领域技术人员理解,在不偏离本申请精神和范围的情况下,可以对本申请技术方案及其实施方式进行多种等价替换、修饰或改进,这些均落入本申请的范围内。本申请的保护范围以所附权利要求为准。

Claims (8)

1.一种应用于Transformer神经网络的层归一化处理硬件加速器,其特征在于,所述层归一化处理硬件加速器包括:
中间矩阵存储单元、第一均值计算单元、第二均值计算单元、第一平方计算单元、第二平方计算单元、平方根倒数计算单元及输出矩阵计算单元;
所述中间矩阵存储单元的输出端接至所述输出矩阵计算单元;
所述第一均值计算单元的输出端分别接至所述第一平方计算单元及所述输出矩阵计算单元;
所述第一平方计算单元的输出端接至所述平方根倒数计算单元;
所述第二平方计算单元的输出端接至所述第二均值计算单元;
所述第二均值计算单元的输出端接至所述平方根倒数计算单元;
所述平方根倒数计算单元的输出端接至所述输出矩阵计算单元。
2.根据权利要求1所述的应用于Transformer神经网络的层归一化处理硬件加速器,其特征在于,所述中间矩阵存储单元用于获取并存储所述中间矩阵,所述中间矩阵为多头注意力层处理过程中的第一中间矩阵或前馈层处理过程中的第二中间矩阵;
所述第一均值计算单元用于计算所述中间矩阵中每行元素的均值,并将计算结果输入至所述第一平方计算单元;
所述第一平方计算单元用于对所述第一均值计算单元输入的值执行平方运算,获取所述中间矩阵中每行元素均值的平方;
所述第二平方计算单元用于针对所述中间矩阵中的每个元素执行平方运算,获取平方矩阵;
所述第二均值计算单元用于计算所述平方矩阵每行元素的均值;
所述平方根倒数计算单元用于根据所述中间矩阵每行元素均值的平方及所述平方矩阵每行元素的均值,获取所述中间矩阵每行元素方差的平方根倒数;
所述输出矩阵计算单元用于对所述中间矩阵的每个元素、所述中间矩阵每行元素的均值及所述中间矩阵每行元素方差的平方根倒数进行层归一化处理,获得所述多头注意力层或所述前馈层最终的输出矩阵。
3.根据权利要求2所述的应用于Transformer神经网络的层归一化处理硬件加速器,其特征在于,所述平方根倒数计算单元在根据所述中间矩阵每行元素均值的平方及所述平方矩阵每行元素的均值,获取所述中间矩阵每行元素方差的平方根倒数的过程中,用于根据以下公式,获取所述中间矩阵每行元素的方差:
var(G,i)=E(G,i)2-F(i,k);
Figure FDA0002658998540000011
其中,var(G,i)表示所述中间矩阵G第i行元素的方差,E(G,i)表示所述中间矩阵G第i行元素的均值,F(i,k)表示所述平方矩阵第i行元素的均值,G(i,k)表示所述中间矩阵第i行第k列的元素,dmodel表示所述中间矩阵的总列数。
4.根据权利要求2或3所述的应用于Transformer神经网络的层归一化处理硬件加速器,其特征在于,所述输出矩阵计算单元用于根据以下公式,对所述中间矩阵的每个元素、所述中间矩阵每行元素的均值及所述中间矩阵每行元素方差的平方根倒数进行层归一化处理,获取所述多头注意力层或所述前馈层最终的输出矩阵:
Figure FDA0002658998540000021
其中,Output(i,j)表示所述输出矩阵中第i行第j列的元素,var(G,i)表示所述中间矩阵G第i行元素的方差,G(i,j)表示所述中间矩阵G第i行第j列的元素,E(G,i)表示所述中间矩阵第i行元素的均值,ε为第一参数,γj表示第二参数,βj表示第三参数。
5.根据权利要求1或2所述的应用于Transformer神经网络的层归一化处理硬件加速器,其特征在于,所述第一均值计算单元包括多个第一均值计算子单元,所述第二均值计算单元包括多个第二均值计算子单元,所述第一平方计算单元包括多个第一平方计算子单元,所述第二平方计算单元包括多个第二平方计算子单元,所述平方根倒数计算单元包括多个平方根倒数计算子单元,所述输出矩阵计算单元包括多个输出矩阵计算子单元;
所述第一均值计算子单元、所述第二均值计算子单元、所述第一平方计算子单元、所述第二平方计算子单元、所述平方根倒数计算子单元及所述输出矩阵计算子单元的数量均与所述多头注意力层中任一输入矩阵的行数一致。
6.一种应用于Transformer神经网络的层归一化处理方法,其特征在于,所述层归一化处理方法应用于权利要求1-5任一项所述的应用于Transformer神经网络的层归一化处理硬件加速器,所述层归一化处理方法包括:
将中间矩阵的所有元素按照列序依次输入至中间矩阵存储单元中,其中,若当前运算属于多头注意力层,则所述中间矩阵为第一中间矩阵,若当前运算为前馈层,则所述中间矩阵为第二中间矩阵;
将中间矩阵的每行元素分别输入至多个第一均值计算子单元中,计算出所述中间矩阵中每行元素的均值;以及将中间矩阵的每行元素分别输入至多个第二平方计算子单元中,获取平方矩阵;
将所述中间矩阵中每行元素的均值分别输入至多个第一平方计算子单元中,获取所述中间矩阵中每行元素均值的平方;
将所述平方矩阵中每行元素分别输入至多个第二均值计算子单元中,计算出所述平方矩阵中每行元素的均值;
将所述中间矩阵中每行元素均值的平方及所述平方矩阵中每行元素的均值分别输入至多个平方根倒数计算子单元中,获得所述中间矩阵每行元素方差的平方根倒数;
分别将所述中间矩阵的每个元素、所述中间矩阵每行元素的均值及所述中间矩阵每行元素方差的平方根倒数分别输入至多个输出矩阵计算子单元中,获得所述多头注意力层或所述前馈层最终的输出矩阵。
7.一种计算机设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求6所述的应用于Transformer神经网络的层归一化处理方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理执行时实现如权利要求6所述的应用于Transformer神经网络的层归一化处理方法的步骤。
CN202010898001.8A 2020-08-31 2020-08-31 应用于Transformer神经网络的层归一化处理硬件加速器及方法 Pending CN114118343A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010898001.8A CN114118343A (zh) 2020-08-31 2020-08-31 应用于Transformer神经网络的层归一化处理硬件加速器及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010898001.8A CN114118343A (zh) 2020-08-31 2020-08-31 应用于Transformer神经网络的层归一化处理硬件加速器及方法

Publications (1)

Publication Number Publication Date
CN114118343A true CN114118343A (zh) 2022-03-01

Family

ID=80360178

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010898001.8A Pending CN114118343A (zh) 2020-08-31 2020-08-31 应用于Transformer神经网络的层归一化处理硬件加速器及方法

Country Status (1)

Country Link
CN (1) CN114118343A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116861966A (zh) * 2023-09-04 2023-10-10 苏州浪潮智能科技有限公司 Transformer模型加速器及其构建和数据处理方法、装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116861966A (zh) * 2023-09-04 2023-10-10 苏州浪潮智能科技有限公司 Transformer模型加速器及其构建和数据处理方法、装置
CN116861966B (zh) * 2023-09-04 2024-01-23 苏州浪潮智能科技有限公司 Transformer模型加速器及其构建和数据处理方法、装置

Similar Documents

Publication Publication Date Title
CN110119809B (zh) 对神经网络中非对称量化数据执行mac运算的装置和方法
CN109543816B (zh) 一种基于权重捏合的卷积神经网络计算方法和系统
US20180260709A1 (en) Calculating device and method for a sparsely connected artificial neural network
CN110874636B (zh) 一种神经网络模型压缩方法、装置和计算机设备
TWI785227B (zh) 深度神經網絡中批量標準化層修剪的方法
CN114118344A (zh) 应用于Transformer神经网络的硬件加速器及其计算方法
CN111639699B (zh) 一种图像特征提取的方法、系统、设备及可读存储介质
CN112597610B (zh) 机械臂结构轻量化设计的优化方法、装置及设备
WO2019135274A1 (ja) ニューラル・ネットワークを有するデータ処理システム
CN115577791B (zh) 基于量子系统的信息处理方法及装置
CN114490065A (zh) 一种负载预测方法、装置及设备
CN111052111A (zh) 运算电路、运算方法以及程序
CN113111970A (zh) 通过构建全局嵌入式注意力残差网络对图像分类的方法
CN116644804A (zh) 分布式训练系统、神经网络模型训练方法、设备和介质
CN114118343A (zh) 应用于Transformer神经网络的层归一化处理硬件加速器及方法
CN113611354A (zh) 一种基于轻量级深度卷积网络的蛋白质扭转角预测方法
CN116992965B (zh) Transformer大模型的推理方法、装置、计算机设备和存储介质
CN112232565A (zh) 基于两阶段的时间序列预测方法、预测系统、终端及介质
JP7533933B2 (ja) ニューラルネットワーク処理装置、ニューラルネットワーク処理方法、及びコンピュータプログラム
CN114972695B (zh) 一种点云生成方法、装置、电子设备及存储介质
CN116304569A (zh) 一种用于分布式光纤传感器缺失数据的填补方法
CN113887721B (zh) 一种语音识别任务中的训练后量化压缩方法及系统
CN110852361B (zh) 基于改进深度神经网络的图像分类方法、装置与电子设备
CN113505838A (zh) 一种图像聚类方法、装置、电子设备及存储介质
CN109190761A (zh) 数据处理方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination