包括矩阵乘法的神经网络制造技术

技术编号:36179420 阅读:16 留言:0更新日期:2022-12-31 20:36
本申请涉及包括矩阵乘法的神经网络。本发明专利技术公开了一种用于实施包含至少一个矩阵乘法运算的神经网络的方法和数据处理系统。矩阵乘法运算被映射到包括至少一个逐元素运算的神经网络运算图。至少一个逐元素运算在神经网络加速器的固定功能硬件中实施。加速器的固定功能硬件中实施。加速器的固定功能硬件中实施。

【技术实现步骤摘要】
包括矩阵乘法的神经网络


[0001]本申请涉及包括矩阵乘法的神经网络。

技术介绍

[0002]矩阵乘法出现在神经网络的许多上下文中。单矩阵乘法具有以下形式
[0003]Z=XY
[0004]在该等式中,X是维度为[P,Q]的矩阵,并且Y是维度为[Q,R]的矩阵。输出Z是维度为[P,R]的矩阵。将矩阵视为4

D张量,X的维度为[1,1,P,Q],Y的维度为[1,1,Q,R],并且Z的维度为[1,1,P,R]。
[0005]在整个文档中,数据张量采用“NCHW”符号,其中N是批量数,C是通道数量,H是高度,并且W是宽度。同样,权重/系数采用“OIHW”符号,其中O是输出通道数量,I是输入通道数量,H是内核高度,并且W是内核宽度。
[0006]矩阵乘法的任务可以推广到批量矩阵乘法,该批量矩阵乘法涉及在同一运算中执行多个矩阵乘法。对于批量矩阵乘法,允许上文定义的4

D张量的两个前导维度的大小大于1。因此,更一般的形式是维度为[M,N,P,Q]的张量X和维度为[M

,N

,Q,R]的张量Y。这表示(max(M,M

)max(N,N

))在同一运算中执行的大小为[P,Q]和[Q,R]的矩阵之间的相应乘法。
[0007]如果M和M

都大于1,则它们彼此相等。替代地,M和M

中的一者或两者可以等于1。同样,如果N和N

>都大于1,则它们彼此相等。替代地,N和N

中的一者或两者可以等于1。当M=M

并且N=N

时,相乘的矩阵都不同。当M、N、M

和N

中的任何一个(或两个或三个)等于1时,在相关维度(或多个维度)上执行广播,即,相关运算元在广播维度上重复使用,以构成所需的(max(M,M

)max(N,N

))矩阵乘法。
[0008]应当理解,上述批量矩阵乘法的定义适用于大于二的任何数量的维度。换句话讲,4

D张量的选择并不特别或重要,只是为了便于解释。一般来讲,可存在任何数量的维度。矩阵乘法在两个维度上执行,其余维度(通常称为“批量”维度)都具有匹配的大小(或具有等于1的大小,在这种情况下暗示广播)。将采用符号[...,P,...,Q,...]和[...,Q,...,R,...]来指示以上述方式匹配M、N、M'和N'的任何数量的附加维度,其中两个维度需要进行矩阵乘法。在该符号中,附加维度可以位于以下位置中的一者或多者中:进行矩阵乘法的两个维度之前、之间和之后。两个输入张量中大小为Q的维度可被称为“内部”维度。在此,为了示例的简单性并且不失一般性,将假设矩阵乘法是在最后两个维度上执行的。因此,示例中的张量将具有维度[...,P,Q]和[...,Q,R]。然而,应当理解,这并非旨在进行限制。
[0009]批量矩阵乘法在各种情况下都很有用。在神经网络的训练阶段,它出现在某些层的反向传播中。例如,全连接层就是如此。全连接层被广泛使用,以例如在多种神经网络中生成分类输出,包括但不限于用于计算机视觉任务和自然语言处理(NLP)的神经网络。应该理解,全连接层还有许多其他用途,包括但不限于用于多层感知器(MLP)和长短期存储器(LSTM)网络中的门控功能。在训练和推断阶段,在某些层的前向传播中也会出现批量矩阵乘法。这适用于基于注意力的神经网络,诸如变换器网络。基于注意力的神经网络传统上主
要用于NLP;然而,最近,它们也被用于在计算机视觉任务中发挥优势。
[0010]两个向量的外积可以看作是矩阵乘法的一种特殊情况,其中Q=1。这可以通过类比批量矩阵乘法推广到批量外积,其中形状为[M,N,P,1]的张量X和形状为[M',N',1,R]的张量Y相乘,并且项M、N、M'和N'与上文在批量矩阵乘法的情况下定义的相同。在此,“单个”外积和批量外积两者将统称为外积。如需通过矩阵乘法实施外积,第一输入(X)应该是宽度为1的列向量或张量。第二输入(Y)应该是高度为1的行向量或张量。如果外积运算的输入向量没有以这些形式提供,则可以根据需要对它们中的一者或两者应用转置或置换运算,以将它们排列成所需的形式。(如本文所用,术语置换应理解为等同于神经网络领域中术语“转置”的常用用法,意思是对张量的维度进行重新排序。)
[0011]现有的神经网络加速器(NNA)硬件通常专门用于评估卷积层,并且可能本身不支持矩阵乘法。特别地,示例性NNA可适用于在多个处理元件处并行地将同一组权重同时乘以多组输入数据元素。卷积神经网络(CNN)中的大部分计算用于运算诸如卷积,这些运算需要在多组输入数据中应用相同的系数(权重)。出于这个原因,一些神经网络加速器专门用于这种运算。在某些情况下,此类NNA本身可能不支持矩阵乘法;在其他情况下,由于硬件的设计方式,可能支持矩阵乘法,但效率相对较低。

技术实现思路

[0012]提供本
技术实现思路
是为了以简化的形式介绍下文在具体实施方式中进一步描述的一系列概念。本
技术实现思路
不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
[0013]将期望在现有神经网络硬件上有效地实施外积、矩阵乘法和批量矩阵乘法。在可能的情况下,将期望以利用现有专门优化的硬件的方式来进行。这样可以避免需要设计附加的专门优化的硬件,将其添加到NNA以支持矩阵乘法。还可以避免使用单独的通用处理器来执行矩阵乘法的需要。在由NNA评估神经网络期间,与此类外部通用处理器之间的数据传输可导致存储器访问带宽方面的显著开销;因此,如果可能,期望避免此类传输的需要。
[0014]本专利技术由权利要求书限定。
[0015]本专利技术公开了一种用于实施包含至少一个矩阵乘法运算的神经网络的方法和数据处理系统。矩阵乘法运算被映射到包括至少一个逐元素运算的神经网络运算图。至少一个逐元素运算在神经网络加速器的固定功能硬件中实施。
[0016]在这种情况下,“固定功能”与通用处理器硬件形成对比,后者完全可编程以实施任何(任意)功能或算法。固定功能电路系统的行为可在有限程度上配置。固定功能电路系统的模块可例如被配置为应用不同运算或处理不同的张量大小,或者提供可用于控制其所实施的功能的行为的有限参数集合。然而,它在可以执行任意算法的意义上不是完全可编程的。
[0017]根据一个方面,提供了一种使用包括固定功能硬件的神经网络加速器实施包括多个层的神经网络的方法,其中至少一个层包括在维度为[...,P,...,Q,...]的第一张量X和维度为[...,Q,...,R,...]的第二张量Y之间的二维或更多维度中定义的矩阵乘法运算,该方法包括:将矩阵乘法运算映射到包括至少一个逐元素运算的神经网络运算图;以及评估神经网络运算图,从而评估矩阵乘法运算,其中在固定功能硬件中评估至本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种使用包括固定功能硬件的神经网络加速器实施包括多个层的神经网络的方法,其中所述层中的至少一个层包括在维度为[...,P,...,Q,...]的第一张量X和维度为[...,Q,...,R,...]的第二张量Y之间的二维或更多维度中定义的矩阵乘法运算,所述方法包括:将所述矩阵乘法运算映射到包括至少一个逐元素运算的神经网络运算图;以及评估所述神经网络运算图,从而评估所述矩阵乘法运算,其中在所述固定功能硬件中评估所述至少一个逐元素运算。2.如权利要求1所述的方法,其中所述神经网络运算图还包括应用于所述第一张量X和/或所述第二张量Y的至少一个变换。3.如权利要求2所述的方法,其中所述至少一个变换包括:重新配置所述第二张量Y以形成维度为[

,R,Q]的第三张量;以及将所述第三张量拆分成R个组成张量,每个组成张量的维度为[

,1,Q],其中所述至少一个逐元素运算包括所述第一张量和所述R个组成张量中的每个组成张量之间的逐元素乘法。4.如权利要求3所述的方法,其中:所述至少一个变换还包括连接和重新配置所述逐元素乘法的结果,以将它们排列成大小为Q的R个组,所述神经网络运算图还包括在一个维度上在所述R个组中的每个组内求和;并且所述至少一个变换还包括将求和的结果重新配置为具有维度[

,P,R]的张量。5.如权利要求4所述的方法,其中:所述至少一个变换包括连接和重新配置所述逐元素乘法的所述结果,以在通道维度上将它们排列成大小为Q的R个组;并且所述求和包括在所述通道维度上在所述R个组中的每个组内求和。6.如权利要求4或5所述的方法,其中所述求和包括张量为一的至少一个卷积和/或张量为一的分组卷积,使得分组卷积具有R个组,每个组具有Q个输入通道和1个输出通道。7.如前述权利要求中任一项所述的方法,其中所述第一张量X具有维度[M,N,P,1]并且所述第二张量Y具有维度[M

,N

,1,R]。8.如权利要求1或权利要求2所述的方法,其中:所述第一张量X具有维度[M,N,P,1]并且所述第二张量Y具有维度[M

,N

,1,R];并且所述逐元素运算包括所述第一张量或从其导出的张量与所述第二张量或从其导出的张量的逐元素乘法。9.如权利要求10所述的方法,其中进行以下项中的任一项:(A)使用在两个维度上的广播来执行所述逐元素乘法;(B)使用在一个维度上的广播并在另一个维度上重复所述张量中的一个张量来执行所述逐元素乘法;或者(C)所述逐元素乘法包括在一个维度上重复所述张量中的一个张量,并且在另一个维度上重复所述张量中的另一个张量。10.如前述权利要求中任一项所述的方法,其中至少部分地使用被配置为操纵存储在存储器中的数据的存储器操纵模块(200)来执行所述至少一个变换,并且/或者其中张量的重复至少部分地由以下中的一者执行:
所述存储器操纵模块(200)...

【专利技术属性】
技术研发人员:B
申请(专利权)人:想象技术有限公司
类型:发明
国别省市:

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

1