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

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

技术编号:22268838 阅读:46 留言:0更新日期:2019-10-10 18:03
本文中详述的实施例涉及矩阵操作。具体而言,讨论了矩阵(片)乘法累加和负版本矩阵(片)乘法累加。例如,在一些实施例中,详述了:解码电路,用于对指令解码,该指令具有用于操作码、第一源矩阵操作数的标识符、第二源矩阵操作数的标识符、以及源/目的地矩阵操作数的标识符的字段;以及执行电路,用于执行经解码的指令以:将所标识的第一源矩阵操作数乘以所标识的第二源矩阵操作数;将乘法的结果加到所标识的源/目的地矩阵操作数;以及将加法的结果存储在所标识的源/目的地矩阵操作数中并将所标识的源/目的地矩阵操作数的未配置列归零。

【技术实现步骤摘要】
【国外来华专利技术】用于片矩阵乘法和累加的系统、方法和装置
本专利技术的领域总体上涉及计算机处理器架构,更具体地涉及矩阵操纵。
技术介绍
在诸如机器学习和其他批量数据处理之类的许多计算任务中,矩阵正变得日益重要。附图说明在所附附图中以示例方式而非限制方式说明本专利技术,在附图中,类似的附图标记指示类似的要素,其中:图1图示经配置的片(tile)的实施例;图2图示矩阵存储的若干示例;图3图示利用矩阵(片)操作加速器的系统的实施例;图4和图5示出如何使用矩阵操作加速器来共享存储器的不同实施例;图6图示使用片的矩阵乘法累加操作(“TMMA”)的实施例;图7图示链式融合乘法累加指令的迭代的执行的子集的实施例;图8图示链式融合乘法累加指令的迭代的执行的子集的实施例;图9图示链式融合乘法累加指令的迭代的执行的子集的实施例;图10图示链式融合乘法累加指令的迭代的执行的子集的实施例;图11图示根据实施例的尺寸为2的幂的SIMD实现方式,其中,累加器使用比至乘法器的输入的尺寸大的输入尺寸;图12图示利用矩阵操作电路的系统的实施例;图13图示处理器核流水线的实施例,该处理器核流水线支持使用片的矩阵操作;图14图示处理器核流水线的实施例,该处理器核流水线支持使用片的矩阵操作;图15图示按行为主格式和列为主格式表达的矩阵的示例;图16图示矩阵(片)的使用的示例;图17图示矩阵(片)的使用的方法的实施例;图18图示TILECONFIG指令的示例性执行;图19(A)-图19(D)图示(多个)寄存器的示例;图20图示将被支持的矩阵(片)的描述的实施例;图21图示由处理器执行以处理TILECONFIG指令的方法的实施例;图22图示使用存储器寻址来执行TILECONFIG指令的更详细的描述;图23图示TILECONFIG指令的执行的示例性伪代码;图24图示使用存储器源操作数的TMMA指令的示例性执行;图25图示由处理器执行以处理TMMA指令的方法的实施例;图26图示使用寄存器寻址的TMMA指令的执行的更详细的描述;图27图示实现TMMPS指令的方法的伪代码;图28图示使用存储器源操作数的TNMMA指令的示例性执行;图29图示由处理器执行以处理TNMMA指令的方法的实施例;图30图示使用寄存器寻址的TNMMA指令的执行的更详细的描述;图31(A)-图31(C)图示示例性指令格式;图32是根据本专利技术的一个实施例的寄存器架构的框图;图33A-图33B图示有序流水线和有序核;图34A-图34B图示更具体的示例性有序核架构的框图,该核将是芯片中的若干逻辑块(包括相同类型和/或不同类型的其他核)中的一个逻辑块;图35是根据本专利技术的实施例的可具有多于一个的核、可具有集成存储器控制器、并且可具有集成图形器件的处理器3500的框图;图36-图39是示例性计算机架构的框图;并且图40是根据本专利技术的实施例的对照使用软件指令转换器将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图。具体实施方式在以下描述中,陈述了众多特定细节。然而,应当理解,可在没有这些特定细节的情况下实践本专利技术的实施例。在其他实例中,未详细示出公知的电路、结构和技术,以免使对本描述的理解模糊。说明书中对“一个实施例”、“实施例”、“示例实施例”等的引用表明所描述的实施例可以包括特定的特征、结构或特性,但是每个实施例不一定都包括该特定的特征、结构或特性。此外,此类短语不一定是指同一个实施例。此外,当结合实施例描述特定的特征、结构或特性时,认为结合无论是否被明确描述的其他实施例而影响此类特征、结构或特性是在本领域技术人员的知识范围之内的。在许多主流处理器中,处置矩阵是困难的和/或指令密集性任务。例如,可将矩阵的多行置入多个紧缩数据(例如,SIMD或向量)寄存器中,随后可单独地对矩阵的多行进行操作。例如,取决于数据尺寸,将两个8x2矩阵相加可能要求加载或聚集到四个紧缩数据寄存器中。随后,执行对与来自每个矩阵的第一行对应的紧缩数据寄存器的第一加法,并执行对与来自每个矩阵的第二行对应的紧缩数据寄存器的第二加法。随后,将所得到的紧缩数据寄存器往回分散到存储器。虽然对于小型矩阵,这种场景可能是可接受的,但是对于较大的矩阵,这通常是不可接受的。I.高层级讨论本文中描述的是用于在诸如中央处理单元(CPU)、图形处理单元(GPU)和加速器之类的计算机硬件中支持矩阵操作的机制。矩阵操作利用表示存储器的一个或多个紧缩区域(诸如,寄存器)的2维(2-D)数据结构。贯穿本说明书,这些2-D数据结构被称为片。注意,矩阵可以比片小(使用少于片的全部),或可利用多个片(矩阵大于任一片的尺寸)。贯穿本说明书,使用矩阵(片)语言来指示使用影响矩阵的片来执行的操作;那个矩阵是否大于任一片通常是不相关的。每个片可由不同的操作来作用,这些操作诸如本文中详述的那些操作,包括但不限于:矩阵(片)乘法、片加法、片减法、片对角线、片归零、片转置、片点积、片广播、片行广播、片列广播、片乘法、片乘法和累加、片移动,等等。此外,在未来可以与这些操作一起使用或为了支持非数值应用而使用对诸如使用缩放和/或偏置的操作器的支持,非数值应用例如,OpenCL“本地存储器”、数据压缩/解压缩,等等。存储(诸如,(非易失性和易失性的)存储器、寄存器、高速缓存等)的多个部分被布置为具有不同横向尺度和纵向尺度的片。例如,片可具有横向尺度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列。由于双精度操作数的宽度是单精度操作数的两倍,因此该配置与用于提供片选项的调色板一致,将至少16*N*M字节的总存储提供给至少4个名称。取决于所使用的指令编码方案,可用的片的数量有所不同。在一些实施例中,片参数是可定义的。例如,“调色板”用于提供片选项。示例性选项包括但不限于:片名称的数量、存储的行中的字节数、片中的行数和列数,等等。例如,片的最大“高度”(行数)可定义为:片最大行=所构造的存储/(调色板名称的数量*每行的字节数)由此,可写入应用,使得名称的固定使用将能够利用跨实现方式的不同存储尺寸。使用片配置(“TILECONFIG”)指令完成对片的配置,其中,在所选择的调色板中定义特定的片使用。该声明包括要使用的片名称的数量、每个名称(片)的所请求的行数和列数,并且在一些实施例中包括每个片的所请求的数据类型。在一些实施例中,在TILECONFIG指令的执行期间执行一致性校验,以确定其匹配调色板条目的限制。B.示例性片存储类型图2图示矩阵存储的若干示例。在(A)中,片被存储在存储器中。如图所示,每“行”由四个紧缩数据元素组成。为了达到下一“行”,使用跨步值。注意,行可被连续地存储在存储器中。当片存储不映射底层存储器阵列行宽度时,跨步式存储本文档来自技高网...

【技术保护点】
1.一种处理器,包括:解码电路,用于对指令解码,所述指令具有用于操作码、第一源矩阵操作数的标识符、第二源矩阵操作数的标识符、以及源/目的地矩阵操作数的标识符的字段;以及执行电路,用于执行经解码的指令以:将所标识的第一源矩阵操作数乘以所标识的第二源矩阵操作数;将乘法的结果加到所标识的源/目的地矩阵操作数;以及将加法的结果存储在所述所标识的源/目的地矩阵操作数中。

【技术特征摘要】
【国外来华专利技术】2017.03.20 US 62/473,7321.一种处理器,包括:解码电路,用于对指令解码,所述指令具有用于操作码、第一源矩阵操作数的标识符、第二源矩阵操作数的标识符、以及源/目的地矩阵操作数的标识符的字段;以及执行电路,用于执行经解码的指令以:将所标识的第一源矩阵操作数乘以所标识的第二源矩阵操作数;将乘法的结果加到所标识的源/目的地矩阵操作数;以及将加法的结果存储在所述所标识的源/目的地矩阵操作数中。2.如权利要求1所述的处理器,其中,所述执行电路包括融合乘法累加器的网格。3.如权利要求1-2中的任一项所述的处理器,其中,所述所标识的第二源矩阵操作数被存储在存储器中。4.如权利要求1-3中的任一项所述的处理器,其中,所述乘法逐所述所标识的第一源矩阵操作数的行且逐所述所标识的第二源矩阵操作数的列进行。5.如权利要求1-4中的任一项所述的处理器,其中,操作数中的至少一个操作数是配置成用于表示矩阵的多个寄存器。6.如权利要求1-5中的任一项所述的处理器,其中,数据元素是单精度浮点数据元素。7.如权利要求1-5中的任一项所述的处理器,其中,数据元素是半精度浮点数据元素。8.一种方法,包括:对指令解码,所述指令具有用于操作码、第一源矩阵操作数的标识符、第二源矩阵操作数的标识符、以及源/目的地矩阵操作数的标识符的字段;以及执行经解码的指令以:将所标识的第一源矩阵操作数乘以所标识的第二源矩阵操作数;将乘法的结果加到所标识的源/目的地矩阵操作数;以及将加法的结果存储在所述所标识的源/目的地矩阵操作数中。9.如权利要求8所述的方法,其中,所述执行使用融合乘法累加器的网格。10.如权利要求8-9中的任一项所述的方法,其中,所述所标识的第二源矩阵操作数被存储在存储器中。11.如权利要求8-10中的任一项所述的方法,其中,所述乘法逐所述所标识的第一源矩阵操作数的行且逐所述所标识的第二源矩阵操作数的列进行。12.如权利要求8-11中的任一项所述的方法,其中,操作数中的至少一个操作数是配置成用于表示矩阵的多个寄存器。13.如权利要求8-12中的任一项所述的方法,其中,数据...

【专利技术属性】
技术研发人员:R·凡伦天Z·斯波伯M·J·查尼B·L·托尔R·拉波波特S·什沃茨曼D·鲍姆I·亚诺弗E·乌尔德阿迈德瓦尔M·阿德尔曼J·考博尔Y·戈比尔S·卢巴诺维奇
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

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

1