当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于矩阵加法、减法和乘法的系统、方法和装置制造方法及图纸

技术编号:22651030 阅读:26 留言:0更新日期:2019-11-26 18:47
本文详述的实施例涉及矩阵运算。特别地,描述了对于矩阵(块片)加法、减法和乘法的支持。例如,详述了支持用于逐元素矩阵(块片)加法、减法和乘法的指令的电路。在一些实施例中,对于矩阵(块片)加法,解码电路将对具有用于操作码、第一源矩阵操作数标识符、第二源矩阵操作数标识符和目标矩阵操作数标识符的字段的指令进行解码;并且执行电路将执行经解码的指令以针对所标识的第一源矩阵操作数的每个数据元素位置执行如下操作:将该数据元素位置处的第一数据值与所标识的第二源矩阵操作数的对应数据元素位置处的第二数据值相加,并且将相加的结果存储到所标识的目标矩阵操作数的对应数据元素位置中。

Systems, methods and devices for matrix addition, subtraction and multiplication

The embodiments detailed herein relate to matrix operations. In particular, support for matrix (block) addition, subtraction and multiplication is described. For example, circuits supporting instructions for adding, subtracting, and multiplying element by element matrices (block chips) are detailed. In some embodiments, for matrix (block) addition, the decoding circuit decodes instructions having fields for the opcode, the first source matrix operand identifier, the second source matrix operand identifier, and the target matrix operand identifier; and the execution circuit executes decoded instructions for each data element location of the identified first source matrix operand The following operations are performed: the first data value at the data element position is added to the second data value at the corresponding data element position of the identified second source matrix operand, and the added result is stored in the corresponding data element position of the identified target matrix operand.

【技术实现步骤摘要】
【国外来华专利技术】用于矩阵加法、减法和乘法的系统、方法和装置
专利
总地涉及计算机处理器架构,并且更具体地涉及矩阵操作。
技术介绍
矩阵在诸如机器学习和其他批量数据处理之类的许多计算任务中日益重要。附图说明通过示例而非限制的方式在附图的各图中图示本专利技术,在附图中相似的标记指示类似的元素,并且在附图中:图1图示配置的块片(tile)的实施例;图2图示矩阵存储的若干示例;图3图示利用矩阵(块片)运算加速器的系统的实施例;图4和图5示出使用矩阵运算加速器如何共享存储器的不同实施例;图6图示使用块片(“TMMA”)的矩阵乘法累加运算的实施例;图7图示链式融合乘法累加指令的迭代的执行的子集的实施例;图8图示链式融合乘法累加指令的迭代的执行的子集的实施例;图9图示链式融合乘法累加指令的迭代的执行的子集的实施例;图10图示链式融合乘法累加指令的迭代的执行的子集的实施例;图11图示根据实施例的二次幂大小的SIMD实施方式,其中累加器使用大于乘法器的输入的输入大小;图12图示利用矩阵运算电路的系统的实施例;图13图示使用块片来支持矩阵运算的处理器核流水线的实施例;图14图示使用块片来支持矩阵运算的处理器核流水线的实施例;图15图示以行主要格式和列主要格式表达的矩阵的示例;图16图示矩阵(块片)的使用的示例;图17图示矩阵(块片)的使用的方法的实施例;图18图示TILECONFIG指令的示例性执行;图19(A)至图19(D)图示寄存器的示例;图20图示要支持的矩阵(块片)的描述的实施例;图21图示由处理器执行来处理TILECONFIG指令的方法的实施例;图22图示使用存储器寻址来执行TILECONFIG指令的更详细描述;图23图示用于执行TILECONFIG指令的示例性伪代码;图24图示TILEADD指令的示例性执行;图25图示由处理器执行来处理TILEADD指令的方法的实施例;图26图示描述由处理器执行来处理TILEADD指令的方法的示例过程;图27图示用于当源矩阵(块片)操作数包含单精度元素时执行TILEADD运算的示例方法;图28图示TILESUB指令的示例性执行;图29图示由处理器执行来处理TILESUB指令的方法的实施例;图30图示描述由处理器执行来处理TILESUB指令的方法的示例过程;图31图示用于当源矩阵(块片)操作数包含单精度元素时执行TILESUB运算的示例方法;图32图示TILEMUL指令的示例性执行;图33图示由处理器执行来处理TILEMUL指令的方法的实施例;图34图示描述由处理器执行来处理TILEMUL指令的方法的示例过程;图35图示用于当源矩阵(块片)操作数包含单精度元素时执行TILEMUL运算的示例方法;图36A至图36C图示示例性指令格式;图37是根据本专利技术的一个实施例的寄存器架构的框图;图38A和图38B图示顺序流水线和顺序核;图39A和图39B图示更具体的示例性顺序核架构的框图,该核将是芯片中的若干逻辑块(包括相同类型和/或不同类型的其他核)中的一个;图40是根据本专利技术的实施例的处理器4000的框图,所述处理器4000可以具有多于一个核,可以具有集成存储器控制器,并且可以具有集成图形;图41至图44是示例性计算机架构的框图;以及图45是根据本专利技术的实施例的对比用于将源指令集中的二进制指令转换为目标指令集中的二进制指令的软件指令转换器的使用的框图。具体实施例在以下描述中,阐述了许多具体细节。然而,应理解的是,可以在没有这些具体细节的情况下实践本专利技术的实施例。在其他情况下,未详细地示出众所周知的电路、结构和技术,以免模糊对本说明书的理解。在本说明书中对“一个实施例”、“实施例”、“示例实施例”等的引用指示所描述的实施例可以包括特定特征、结构或特性,但是每个实施例可能不一定包括该特定特征、结构或特性。此外,这样的短语不一定指代同一实施例。进一步地,当结合实施例描述特定特征、结构或特性时,认为结合(明确描述或未明确描述的)其他实施例影响这样的特征、结构或特性在本领域的技术人员的知识范围内。在许多主流处理器中,处理矩阵是一项困难和/或指令密集的任务。例如,矩阵的行可被放置到多个压缩数据(例如,SIMD或向量)寄存器中,然后单独地在上面操作。例如,取决于数据大小,加法两个8x2矩阵可能需要加载或聚集到四个压缩数据寄存器中。然后执行与来自每个矩阵的第一行相对应的压缩数据寄存器的第一加法,并且执行与来自每个矩阵的第二行相对应的压缩数据寄存器的第二加法。然后所得到的压缩数据寄存器被分散回到存储器。虽然对于小矩阵此场景可能是可接受的,但是它对较大矩阵常常是不可接受的。I.高级讨论本文描述的是用于在诸如中央处理单元(CPU)、图形处理单元(GPU)和加速器这样的计算机硬件中支持矩阵运算的机制。矩阵运算利用表示诸如寄存器这样的存储器的一个或多个压缩区域的二维(2-D)数据结构。贯穿本说明书,这些2-D数据结构被称为块片。注意的是,矩阵可以比块片小(使用小于一个块片的整体),或者利用多个块片(矩阵大于任何一个块片的大小)。贯穿说明书,矩阵(块片)语言用于指示使用影响矩阵的块片所执行的运算,该矩阵是否大于任何一个块片通常不是相关的。可以通过不同的运算对每个块片进行操作,所述不同的运算诸如本文详述的那些运算,并且包括但不限于:矩阵(块片)乘法、块片加法、块片减法、块片对角线、块片归零、块片转置、块片点积、块片广播、块片行广播、块片列广播、块片乘法、块片乘法和累加、块片移动等。附加地,对于诸如比例和/或偏差的使用的运算符的支持可以与这些运算一起使用或者支持将来的非数值应用,例如,OpenCL“本地存储器”、数据压缩/解压缩等。存储的各部分(诸如存储器(非易失性和易失性)、寄存器、缓存等)被布置成不同水平和垂直维度的块片。例如,块片可以具有4的水平维度(例如,矩阵的4行)和8的垂直维度(例如,矩阵的8列)。通常,水平维度是相关元素大小(例如,2、4、8、16、32、64、128位等)。可以支持多种数据类型(单精度浮点、双精度浮点、整数等)。A.配置的块片的示例性使用图1图示配置的块片的实施例。如所示,存在从应用存储器101加载的四个块片111、113、115和117。在此示例中,块片T0111和T1113具有有4个元素字节(例如,单精度数据)的M行和N列。块片T2115和T3117具有有8个元素字节(例如,双精度数据)的M行和N/2列。当双精度操作数是单精度的宽度的两倍时,此配置与用于提供块片选项的调色板(palette)一致,供应总存储为16*N*M个字节的至少4个名称。取决于所使用的指令编码方案,可用块片的数量变化。在一些实本文档来自技高网...

【技术保护点】
1.一种处理器,包括:/n解码电路,所述解码电路用于对具有用于操作码、第一源矩阵操作数标识符、第二源矩阵操作数标识符和目标矩阵操作数标识符的字段的指令进行解码;以及/n执行电路,所述执行电路用于执行经解码的指令以针对所标识的第一源矩阵操作数的每个数据元素位置进行如下操作:/n将该数据元素位置处的第一数据值与所标识的第二源矩阵操作数的对应数据元素位置处的第二数据值相加,并且/n将所述相加的结果存储到所标识的目标矩阵操作数的对应数据元素位置中。/n

【技术特征摘要】
【国外来华专利技术】20170320 US 62/473,7321.一种处理器,包括:
解码电路,所述解码电路用于对具有用于操作码、第一源矩阵操作数标识符、第二源矩阵操作数标识符和目标矩阵操作数标识符的字段的指令进行解码;以及
执行电路,所述执行电路用于执行经解码的指令以针对所标识的第一源矩阵操作数的每个数据元素位置进行如下操作:
将该数据元素位置处的第一数据值与所标识的第二源矩阵操作数的对应数据元素位置处的第二数据值相加,并且
将所述相加的结果存储到所标识的目标矩阵操作数的对应数据元素位置中。


2.根据权利要求1所述的处理器,其中,所述第一源矩阵操作数是压缩数据寄存器并且所述第二源矩阵操作数是存储器位置。


3.根据权利要求1所述的处理器,其中,所述第一源矩阵操作数是压缩数据寄存器并且所述第二源矩阵操作数是压缩数据寄存器。


4.根据权利要求1所述的处理器,其中,所述执行电路包括多个融合乘法加法器。


5.根据权利要求1所述的处理器,其中,所述操作码指示所述第一源矩阵操作数、所述第二源矩阵操作数和所述目标矩阵操作数中的每一个均包括半精度浮点值。


6.根据权利要求1所述的处理器,其中,所述操作码指示所述第一源矩阵操作数、所述第二源矩阵操作数和所述目标矩阵操作数中的每一个均包括单精度浮点值。


7.根据权利要求1所述的处理器,其中,当所述第一源矩阵操作数具有与所述第二源矩阵操作数不同数量的数据元素时生成故障。


8.根据权利要求1所述的处理器,其中,当与所述第一源矩阵操作数相关联的行数不同于与所述第二源矩阵操作数相关联的行数时生成故障。


9.根据权利要求1所述的处理器,其中,当与所述第一源矩阵操作数相关联的列数不同于与所述第二源矩阵操作数相关联的列数时生成故障。


10.根据权利要求1所述的处理器,其中,所述执行电路进一步检查指示矩阵运算模式是否激活的状态变量,并且其中,当确定了所述矩阵运算模式未激活时生成故障。


11.一种方法,包括:
对具有用于操作码、第一源矩阵操作数标识符、第二源矩阵操作数标识符和目标矩阵操作数标识符的字段的指令进行解码;以及
执行经解码的指令以针对所标识的第一源矩阵操作数的每个数据元素位置进行如下操作:
将该数据元素位置处的第一数据值与所标识的第二源矩阵操作数的对应数据元素位置处的第二数据值相加,并且
将所述相加的结果存储到所标识的目标矩阵操作数的对应数据元素位置中。


12.根据权利要求11所述的方法,其中,所述第一源矩阵操作...

【专利技术属性】
技术研发人员:罗伯特·瓦伦泰恩丹·鲍姆泽夫·斯帕博耶稣·科巴尔埃尔莫斯塔法·乌尔德艾哈迈德瓦尔布雷特·L·托尔马克·J·查尼巴鲁赫·齐弗亚力山大·海内克米林德·吉尔卡西蒙·鲁巴诺维奇
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1