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

技术编号:34091003 阅读:21 留言:0更新日期:2022-07-11 21:11
本发明专利技术公开了包括矩阵乘法的神经网络。本发明专利技术公开了一种用于实施包含至少一个矩阵乘法运算的神经网络的方法和数据处理系统。所述矩阵乘法运算被映射到包括至少一个变换和至少一个卷积的神经网络运算图。所述至少一个卷积在神经网络加速器的固定功能硬件中实施。积在神经网络加速器的固定功能硬件中实施。积在神经网络加速器的固定功能硬件中实施。

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


[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
’<br/>中的一者或两者可以等于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之间的二维或更多维度中定义的矩阵乘法运算,该方法包括:将矩阵乘法运算映射到包括至少一个变换和至少一个卷积运算的神经网络运算图;并且评估神经网络运算图,从而评估矩阵乘法运算,其中在固定功能硬件中评估至少一
个卷积运算。
[0018本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种使用包括固定功能硬件的神经网络加速器实施包括多个层的神经网络的方法,其中所述层中的至少一个层包括在维度为[...,P,...,Q,...]的第一张量X和维度为[...,Q,...,R,...]的第二张量Y之间的二维或更多维度中定义的矩阵乘法运算,所述方法包括:将所述矩阵乘法运算映射到包括至少一个变换和至少一个卷积运算的神经网络运算图;以及评估所述神经网络运算图,从而评估所述矩阵乘法运算,其中在所述固定功能硬件中评估所述至少一个卷积运算。2.如权利要求1所述的方法,其中:所述第一张量X或从其导出的张量被视为所述至少一个卷积运算的输入数据,并且所述第二张量Y或从其导出的张量被视为所述至少一个卷积运算的系数数据;并且/或者所述至少一个变换重新配置所述第二张量Y,以在评估所述至少一个卷积运算之前,在所述输出通道维度中排列大小为R的所述维度。3.如前述权利要求中任一项所述的方法,其中所述至少一个变换在评估所述至少一个卷积运算之前重新配置两个张量以在所述输入通道维度中排列大小为Q的所述维度;并且/或者其中所述至少一个变换重新配置所述第一张量X以在由所述至少一个卷积运算遍历的维度中排列大小为P的所述维度。4.如前述权利要求中任一项所述的方法,其中所述硬件被配置为通过并行处理沿由所述卷积运算遍历的第一维度选择的若干组一个或多个输入数据元素来评估所述至少一个卷积运算,并且其中所述至少一个变换重新配置所述第一张量X以在所述第一维度中排列大小为P的所述维度。5.如前述权利要求中任一项所述的方法,其中:所述第一张量X具有维度[1,1,P,Q],并且所述第二张量Y具有维度[1,1,Q,R];所述至少一个变换重新配置所述第一张量X以形成维度为[1,Q,1,P]的重新配置的第一张量;所述至少一个变换重新配置所述第二张量Y以形成维度为[R,Q,1,1]的重新配置的第二张量;并且所述重新配置的第一张量和所述重新配置的第二张量被输入到所述至少一个卷积。6.如权利要求1至5中任一项所述的方法,其中:所述第一张量X具有维度[M,N,P,Q]并且所述第二张量Y具有维度[M

,N

,Q,R],其中B=(max(M,M

)max(N,N

))&gt;1;所述至少一个变换拆分和/或复制并且重新配置所述第一张量X以形成B重新配置的第一张量,每个张量都具有维度[1,Q,1,P],其中如果M

&gt;M=1或N

&gt;N=1,则所述至少一个变换包括在相应维度上复制所述第一张量,并且如果M

=M&gt;1或N

=N&gt;1,则所述至少一个变换包括在相应维度上拆分所述第一张量;所述至少一个变换拆分和/或复制并且重新配置所述第二张量Y以形成B重新配置的第二张量,每个张量都具有维度[R,Q,1,1],其中如果M

&gt;M=1或N

&gt;N=1,则所述至少一个变换包括在相应维度上复制所述第二张量,并且如果M

=M&gt;1或N

=N&gt;1,则所述至少一个变换包括在相应维度上拆分所述第二张量;并且
所述至少一个卷积包括应用于相应对的所述第一重新配置的张量和所述第二重新配置的张量的B卷积,可选地,其中如果(i)M

=1并且M&gt;1,或者(ii)N

=1并且N&gt;1,则执行广播使得所述第二张量Y在若干个卷积中重复使用。7.如权利要求1至5中任一项所述的方法,其中:所述第一张量X具有维度[M,N,P,Q],并且所述第二张量Y具有维度[M

,N

,Q,R];所述至少一个变换重新配置所述第一张量X以形成维度为[1,BQ,1,P]的重新配置的第一张量;所述至少一个变换重新配置所述第二张量Y以形成维度为[BR,Q,1,1]的重新配置的第二张量;并且所述至少一个卷积包括分组卷积,其中B组各自具有Q输入通道和R输出通道,应用于所述重新配置的第一张量和所述重新配置的第二张量,其中B=(max(M,M

)max(N,N

)),并且其中:如果M

&gt;M=1并且/或者N

&gt;N=1,则所述第一张量的所述重新配置包括在所述相应维...

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

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

1