当前位置: 首页 > 专利查询>ARM有限公司专利>正文

为矩阵处理掩蔽行或列位置制造技术

技术编号:36174670 阅读:21 留言:0更新日期:2022-12-31 20:28
本发明专利技术提供了一种装置,该装置包括:矩阵处理电路,该矩阵处理电路用于对第一输入操作数和第二输入操作数执行矩阵处理操作以生成结果矩阵,其中该结果矩阵是二维矩阵;操作数存储电路,该操作数存储电路用于存储用于形成该矩阵处理电路的该第一输入操作数和该第二输入操作数的信息;和掩蔽电路,该掩蔽电路用于执行掩蔽操作以基于指示将被视为表示掩蔽值的一个或多个掩蔽的行或列位置的掩蔽状态数据来掩蔽该矩阵处理操作或存储到该操作数存储电路的信息的至少一部分。这对于改善二维卷积操作的性能很有用,因为在将该2D卷积作为应用于不同内核位置的一系列1

【技术实现步骤摘要】
【国外来华专利技术】为矩阵处理掩蔽行或列位置

技术介绍

[0001]本技术涉及数据处理领域。更具体地,本专利技术涉及矩阵处理。
[0002]生成二维矩阵作为结果矩阵的矩阵处理操作可以是某些数据处理领域中(例如,在机器学习或图像处理中)的重要操作。
[0003]至少一些示例提供了一种装置,该装置包括:矩阵处理电路,该矩阵处理电路用于对第一输入操作数和第二输入操作数执行矩阵处理操作以生成结果矩阵,其中该结果矩阵是二维矩阵;操作数存储电路,该操作数存储电路用于存储用于形成该矩阵处理电路的该第一输入操作数和该第二输入操作数的信息;和掩蔽电路,该掩蔽电路用于执行掩蔽操作以基于指示将被视为表示掩蔽值的一个或多个掩蔽的行或列位置的掩蔽状态数据来掩蔽该矩阵处理操作或存储到该操作数存储电路的信息的至少一部分。
[0004]至少一些示例提供了一种装置,该装置包括:用于对第一输入操作数和第二输入操作数执行矩阵处理操作以生成结果矩阵的构件,其中该结果矩阵是二维矩阵;用于存储形成用于该用于执行的构件的该第一输入操作数和该第二输入操作数的信息的构件;以及用于执行掩蔽操作以基于指示将被视为表示掩蔽值的一个或多个掩蔽的行或列位置的掩蔽状态数据来掩蔽所述矩阵处理操作或存储到所述操作数存储电路的信息的至少一部分的构件。
[0005]至少一些示例提供了一种数据处理方法,该数据处理方法包括:在操作数存储电路中存储用于形成用于矩阵处理操作的第一输入操作数和第二输入操作数的信息;以及对该第一输入操作数和该第二输入操作数执行矩阵处理操作以生成结果矩阵,其中该结果矩阵是二维矩阵;以及执行掩蔽操作以基于指示将被视为表示掩蔽值的一个或多个掩蔽的行或列位置的掩蔽状态数据来掩蔽该矩阵处理操作或存储到该操作数存储电路的该信息的至少一部分。
附图说明
[0006]本技术的另外的方面、特征和优点将从结合附图阅读的示例的以下描述中显而易见,在这些附图中:
[0007]图1示出了无填充二维(2D)卷积的示例;
[0008]图2示出了填充2D卷积的示例;
[0009]图3示出了将2D卷积应用于包括多个通道的输入数据以生成包括多个通道的输出数据的示例;
[0010]图4示出了用于将输入数据的数据存储在存储器中的存储器布局的示例;
[0011]图5示出了用于比较的一种方法,其中存储在存储器中的输入通道数据被重新布置以产生存储在存储器中的多个数据行,以简化应用于重新映射的行的后续2D卷积处理;
[0012]图6示出了一种不同的方法,其中2D卷积操作被拆分为多个1
×
1卷积;
[0013]图7示出了操作数矩阵的所选行或列的掩蔽如何使2D卷积能够通过一系列1
×
1卷积来实现,而无需重新布置存储器中的数据的步骤;
[0014]图8示出了在给定矩阵操作的输入和输出之间应用可变位置移位如何使从存储器加载的同一组输入通道数据能够在针对不同内核位置的多个不同1
×
1卷积操作上重用;
[0015]图9示意性地示出了具有矩阵处理电路的数据处理装置;
[0016]图10示意性地示出了矩阵处理电路的一部分和矩阵处理电路所使用的寄存器;
[0017]图11至图13示出了表示矩阵处理操作的寻址信息和掩蔽状态信息的不同方式;
[0018]图14示出了其中矩阵处理操作是外积信息并且该装置具有位置移位电路以应用可变位置移位的示例;
[0019]图15示出了处理加载指令以加载用于矩阵处理操作的目标行或列的示例;
[0020]图16示出了处理矩阵处理指令的方法;并且
[0021]图17示出了处理矩阵处理指令的第二示例。
具体实施方式
[0022]用于矩阵处理操作的行或列掩蔽
[0023]二维(2D)卷积操作是机器学习领域中的一种流行操作,特别是对于神经网络。2D卷积还可用于其他目的,诸如将滤波器应用于图像。在2D卷积操作中,提供内核来定义要应用的滤波器或其他操作。内核被应用于一个或多个输入通道,每个通道包括通常比内核大的矩阵。在2D卷积操作中,对于输出矩阵内的给定输出元素位置,给定输出元素位置的值取决于相应内核值和输入通道值对的乘积之和。对于每个输出矩阵位置,要与相应内核值相乘的输入通道值的选择是不同的。对于给定的输出元素位置,与对应的输入矩阵元素相乘的内核值是当内核被逻辑定位时在位置上对齐的内核值,使得中心内核元素位于输入矩阵的元素之上,该元素在位置上对应于给定的输出元素位置。下面进一步描述2D卷积的示例。
[0024]2D卷积操作在数据处理中实现起来相对复杂的一个原因是,对于内核值和输入元素的许多不同组合,它们可能需要计算若干对内核值和输入元素的乘积之和,包括添加涉及可能未存储在存储器地址空间内的相邻地址处的输入矩阵元素的乘积。因此,用于执行2D卷积的典型方法是(在乘积和计算本身之前)执行一些重映射(重新布置)操作,以重新映射存储器中为输入矩阵存储的数据,从而生成多个定制数据结构,这些数据结构对应于要对内核的每个相应内核位置进行操作的值。然而,此重新映射涉及将数据从一个存储器位置复制到另一存储器位置的许多实例,这会产生额外的延迟并浪费存储器空间。因此,可能期望找到一种实现2D卷积的方式,使得可基于存储器空间内的输入通道数据的布局来直接应用所需的操作,而无需这种重新映射。
[0025]在下文的示例中,一种装置具有:矩阵处理电路,该矩阵处理电路用于对第一输入操作数和第二输入操作数执行矩阵处理操作以生成结果矩阵,其中该结果矩阵是二维矩阵。第一输入操作数和第二输入操作数本身不需要是二维的,并且在一些示例中可以是一维向量,尽管其他示例可将矩阵处理操作应用于二维输入操作数。提供操作数存储电路以存储用于形成矩阵处理电路的第一输入操作数和第二输入操作数的信息。掩蔽电路执行掩蔽操作以基于指示将被视为表示掩蔽值的一个或多个掩蔽的行或列位置的掩蔽状态数据来掩蔽所述矩阵处理操作或存储到所述操作数存储电路的信息的至少一部分。掩蔽状态数据可以被定义为指示矩阵处理电路执行矩阵处理操作的矩阵处理指令的操作数,或者可以是单独配置且未被矩阵处理指令明确引用的一些存储状态数据。
[0026]通过基于指示掩蔽的行位置/列位置的掩蔽状态数据来提供掩蔽,这使得矩阵处理能够跳过输入数据的某些行或列,这对于2D卷积操作特别有用。掩蔽电路可在将操作数加载到操作数存储电路中时,或者在执行矩阵处理操作本身时,或者同时在加载操作数存储系统和执行矩阵处理操作时执行掩蔽操作。
[0027]这种方法有助于支持更有效的2D卷积操作。2D卷积操作可(通过软件)拆分为多个单独的1
×
1卷积操作,这些卷积操作将来自较大内核矩阵内的单个内核位置的内核值应用于给定输入通道的多个输入矩阵元素,并基于结果更新输出矩阵内的各个元素(在某些情况下,这种1
×
1卷积处理的多个通道可并行进行)。这种1
×
1卷积将允许在不需要重新映射存储器中的结构的情况下应本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种装置,包括:矩阵处理电路,所述矩阵处理电路用于对第一输入操作数和第二输入操作数执行矩阵处理操作以生成结果矩阵,其中所述结果矩阵是二维矩阵;操作数存储电路,所述操作数存储电路用于存储用于形成所述矩阵处理电路的所述第一输入操作数和所述第二输入操作数的信息;和掩蔽电路,所述掩蔽电路用于执行掩蔽操作以基于指示将被视为表示掩蔽值的一个或多个掩蔽的行或列位置的掩蔽状态数据来掩蔽所述矩阵处理操作或存储到所述操作数存储电路的所述信息的至少一部分。2.根据任一前述权利要求所述的装置,其中所述掩蔽值为零。3.根据任一前述权利要求所述的装置,其中所述掩蔽值是根据以下中的至少一者从多个掩蔽值中选择的:掩蔽值选择参数,所述掩蔽值选择参数由使所述掩蔽操作得以执行的指令指定;控制值,所述控制值存储在控制寄存器中;以及掩蔽向量,所述掩蔽向量为掩蔽的行/列的多个元素指定单独的掩蔽值。4.根据任一前述权利要求所述的装置,其中所述掩蔽状态数据具有在元素的二维阵列内标识将被视为表示所述掩蔽值的元素的编码。5.根据权利要求4所述的装置,其中所述掩蔽状态数据指定:第一掩蔽状态数据,所述第一掩蔽状态数据指示一个或多个掩蔽的行或列位置,对于所述一个或多个掩蔽的行或列位置,所述掩蔽的行或列位置中的所有元素将被视为表示所述掩蔽值;以及第二掩蔽状态数据,所述第二掩蔽状态数据指示给定行或列内的各个元素位置是否要被掩蔽。6.根据任一前述权利要求所述的装置,其中所述掩蔽状态数据具有能够将由至少一个非掩蔽行或列位置隔开的至少两个非相邻行或列位置指示为掩蔽的行或列位置的编码。7.根据任一前述权利要求所述的装置,其中所述操作数存储电路包括矩阵转置电路,所述矩阵转置电路包括用于存储给定操作数矩阵的相应矩阵元素的多个存储单元,其中所述矩阵转置电路的所述存储单元在对应于所述给定操作数矩阵的行的行组中是可读的,并且在对应于所述给定操作数矩阵的列的列组中也是可读的。8.根据权利要求7所述的装置,其中:当所述给定操作数矩阵以行组的形式被写入所述矩阵转置电路时,所述矩阵转置电路被配置为支持以列组的形式从所述矩阵转置电路读出所述给定操作数矩阵;并且当所述给定操作数矩阵以列组的形式被写入所述矩阵转置电路时,所述矩阵转置电路被配置为支持以行组的形式从所述矩阵转置电路读取所述给定操作数矩阵。9.根据任一前述权利要求所述的装置,其中:所述矩阵处理电路包括所述掩蔽电路,并且响应于所述掩蔽信息来执行所述矩阵处理操作,其中所述第一操作数和所述第二操作数中的一者的对应于所述一个或多个掩蔽的行或列位置的一部分被视为表示所述掩蔽值,而不是存储在所述操作数存储电路中的所述第一操作数和第二操作数中的所述一者的所述部分的实际值。10.根据任一前述权利要求所述的装置,所述装置包括加载电路,所述加载电路响应于
加载指令而基于存储在存储器中的矩阵数据结构的一部分将对应于给定操作数矩阵的目标行或列的信息加载到所述操作数存储电路;其中:所述加载电路包括所述掩蔽电路,并且当所述目标行或列对应于由所述掩蔽状态数据指示的掩蔽的行或列位置时,所述加载电路被配置成为所述操作数存储电路中对应于所述目标行或列的一部分加载具有含所述掩蔽值的数据,而不是基于存储在存储器中的所述矩阵数据结构的所述部分的数据。11.根据权利要求10所述的装置,其中响应于所述加载指令,当对应于所述目标行或列的所述掩蔽状态数据指示所述目标行或列对应于掩蔽的行或列位置时,所述加载电路被配置为基于在所述目标行或列的多个矩阵元素之间共享的掩蔽状态数据的共享项来确定是否应掩蔽所述目标行或列的所述多个矩阵元素中的每个矩阵元素。12.根据权利要求10和11中任一项所述的装置,其中所述掩蔽状态数据包括多个偏移值,每个偏移值对应于所述给定操作数矩阵的相应行或列...

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

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

1