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

用于16比特浮点矩阵点积指令的装置、方法和系统制造方法及图纸

技术编号:37109853 阅读:22 留言:0更新日期:2023-04-01 05:07
本申请公开了用于16比特浮点矩阵点积指令的装置、方法和系统。系统、方法和装置涉及基于稀疏度的FMA。在一些示例中,单个FMA指令的实例具有用于操作码的一个或多个字段、用于标识源/目的地矩阵操作对象的一个或多个字段、用于标识第一多个源矩阵操作对象的一个或多个字段、用于标识第二多个矩阵操作对象的一个或多个字段,其中,操作码用于指示出执行电路要进行:基于来自第二多个矩阵操作对象中的第一矩阵操作对象的稀疏度控制,从第一多个源矩阵操作对象选择数据元素的适当子集;以及执行FMA。FMA。FMA。

【技术实现步骤摘要】
用于16比特浮点矩阵点积指令的装置、方法和系统


[0001]本公开总体上涉及计算机处理器体系结构,并且更具体地涉及用于执行16比特浮点矩阵点积指令的系统和方法。

技术介绍

[0002]在诸如机器学习和其他批量数据处理之类的许多计算任务中,矩阵正变得日益重要。深度学习是一类机器学习算法。诸如深度神经网络之类的深度学习架构已经被应用于包括计算机视觉、语音识别、自然语言处理、音频识别、社交网络过滤、机器翻译、生物信息学和药物设计的领域。
[0003]用于深度学习的两种工具——推理和训练正趋向于低精度算术。使深度学习算法和计算的吞吐量最大化可以辅助满足深度学习处理器的需求,深度学习处理器例如在数据中心中执行深度学习的那些处理器。
[0004]矩阵

矩阵乘法(即,GEMM或通用矩阵乘法)是现代处理器上的常见的重度计算操作。用于矩阵乘法(例如,GEMM)的专门的硬件是改善某些应用(诸如,深度学习)的峰值计算(和能效)的良好选项。
[0005]只要输出数据结构具有足够的比特(即,多于输入),这些应用中的一些应用(包括深度学习)就可以在不损失准确性的情况下对具有相对少的比特的输入数据元素操作。
附图说明
[0006]在所附附图中以示例方式而非限制方式图示本公开,在附图中,类似的附图标记指示类似的要素,其中:
[0007]图1A图示经配置的片的实施例;
[0008]图1B图示经配置的片的实施例;
[0009]图2图示矩阵存储装置的若干示例;
[0010]图3图示利用矩阵(片)操作加速器的系统的实施例;
[0012]图4和图5示出如何使用矩阵操作加速器来共享存储器的不同实施例;
[0013]图6图示使用片的矩阵乘法累加操作(“TMMA”)的实施例;
[0014]图7图示链式融合乘法累加指令的迭代的执行的子集的实施例;
[0015]图8图示链式融合乘法累加指令的迭代的执行的子集的实施例;
[0016]图9图示链式融合乘法累加指令的迭代的执行的子集的实施例;
[0017]图10图示链式融合乘法累加指令的迭代的执行的子集的实施例;
[0018]图11图示根据实施例的大小为2的幂的SIMD实现方式,其中,累加器使用大于至乘法器的输入的大小的输入大小;
[0019]图12图示利用矩阵操作电路的系统的实施例;
[0020]图13图示处理器核心管线的实施例,该处理器核心管线支持使用片的矩阵操作;
[0021]图14图示处理器核心管线的实施例,该处理器核心管线支持使用片的矩阵操作;
[0022]图15图示按行为主格式和列为主格式表达的矩阵的示例;
[0023]图16图示矩阵(片)的使用的示例;
[0024]图17图示矩阵(片)的使用的方法的实施例;
[0025]图18图示根据实施例的对片的使用的配置的支持;
[0026]图19图示将支持的矩阵(片)的描述的实施例;
[0027]图20(A)

图20(D)图示(一个或多个)寄存器的示例;
[0028]图21图示对执行稀疏度FMA指令的硬件支持的示例;
[0029]图22图示使用BF16或FP数据元素的FMA的示例;
[0030]图23图示使用INT8数据元素的FMA的示例;
[0031]图24图示稀疏度控制片的示例;
[0032]图25图示由处理器执行以处理稀疏度FMA指令的方法的实施例;
[0033]图26图示由处理器执行以处理稀疏度FMA指令的方法的实施例;
[0034]图27图示用于TDPS[SS,SU,US,SS]BD指令的示例性伪代码;
[0035]图28图示用于TDPSBF16PS指令的示例性伪代码;
[0036]图29图示用于TDPSFP16PS指令的示例性伪代码;
[0037]图30图示用于处理诸如稀疏度FMA指令中的一个稀疏度FMA指令之类的单个指令的实例的硬件的示例;
[0038]图31图示示例性系统的示例;
[0039]图32图示可具有多于一个的核心、可具有集成存储器控制器并且可具有集成图形器件的处理器的实施例的框图;
[0040]图33(A)是图示根据示例的示例性有序管线和示例性寄存器重命名、乱序发出/执行管线两者的框图;
[0041]图33(B)是图示根据示例的要被包括在处理器中的有序体系结构核心的示例性实施例和示例性寄存器重命名、乱序发出/执行架构核心两者的框图;
[0042]图34图示(一个或多个)执行单元电路的示例,诸如图33(B)的(一个或多个)执行单元电路;
[0043]图35是根据一些示例的寄存器体系结构的框图;
[0044]图36图示指令格式的示例;
[0045]图37图示寻址字段的示例;
[0046]图38图示第一前缀的示例;
[0047]图39(A)

图39(D)图示如何使用第一前缀3601(A)的R、X和B字段的示例;
[0048]图40(A)

图40(B)图示第二前缀的示例;
[0049]图41图示第三前缀的示例;以及
[0050]图42图示根据示例的对照使用软件指令转换器将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图。
具体实施方式
[0051]在以下描述中,阐述了众多特定细节。然而,应当理解,实施例可在没有这些特定细节的情况下实施。在其他实例中,未详细示出公知的电路、结构和技术,以免使对本描述
的理解模糊。
[0052]说明书中对“一个实施例”、“实施例”、“示例实施例”等的引用表明所描述的实施例可包括特定的特征、结构或特性,但是并非每一个示例都一定包括该特定的特征、结构或特性。此外,此类短语不一定是指同一个实施例。此外,当结合实施例描述特定的特征、结构或特性时,认为结合无论是否被明确描述的其他实施例而影响此类特征、结构或特性是在本领域技术人员的知识范围之内的。
[0053]在许多主流处理器中,处置矩阵是困难的和/或指令密集型任务。例如,可将矩阵的多行置入多个紧缩(packed)数据(例如,SIMD或向量)寄存器中,随后可单独地对矩阵的多行进行操作。例如,取决于数据大小,将两个8
×
2矩阵相加可能要求加载或聚集到四个紧缩数据寄存器中。随后,执行与来自每个矩阵的第一行相对应的紧缩数据寄存器的第一加法,并执行与来自每个矩阵的第二行相对应的紧缩数据寄存器的第二加法。随后,将所得到的紧缩数据寄存器往回分散到存储器。虽然对于小型矩阵,这种场景可能是可接受的,但是对于较大的矩阵,这通常是不可接受的。讨论
[0054]本文中描述的是用于在诸如中央处理单元(central processing unit,CPU)、图形处理单元(graphic processing本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种设备,包括:解码装置,用于对单个指令的实例进行解码,所述单个指令的所述实例具有用于操作码的一个或多个字段、用于标识源/目的地矩阵操作对象的一个或多个字段、用于标识第一多个源矩阵操作对象的一个或多个字段、用于标识第二多个矩阵操作对象的一个或多个字段,其中,所述操作码用于指示出执行装置要进行:针对所述源/目的地矩阵操作对象的每个元素位置,基于来自所述第二多个矩阵操作对象中的第一矩阵操作对象的稀疏度控制,从所述第一多个源矩阵操作对象选择数据元素的适当子集;将所选择的来自第一源矩阵操作对象的行的元素对和来自第二源矩阵操作对象中的一个源矩阵操作对象的列的元素对转换到FP32;将来自两个指定的源矩阵操作对象的经转换的偶元素相乘以生成第一乘积并且单独地将来自所述指定的源矩阵操作对象的经转换的奇元素相乘以生成第二乘积;以及将所述第一乘积和所述第二乘积与所述源/目的地矩阵操作对象的先前内容累加;以及执行装置,用于按照所述操作码所指定地对经解码的指令作出响应。2.如权利要求1所述的设备,其中,所述第一多个源矩阵操作对象的元素采用8比特整数格式。3.如权利要求2所述的设备,其中,所述稀疏度控制用于从所述第一多个源矩阵操作对象、针对每一行选择四个数据元素。4.如权利要求1所述的设备,其中,所述第一多个源矩阵操作对象的元素采用16比特浮点格式。5.如权利要求4所述的设备,其中,所述稀疏度控制用于从所述第一多个源矩阵操作对象、针对每一行选择两个数据元素。6.如权利要求4所述的设备,其中,所述第一多个源矩阵操作对象的元素采用Bfloat16浮点格式。7.如权利要求4所述的设备,其中,所述第一多个源矩阵操作对象的元素采用半精度浮点格式。8.如权利要求1

7中任一项所述的设备,其中,所述操作码用于进一步指示出所述执行装置要进行:将所述累加中未涉及的所述源/目的地矩阵的行归零。9.一种方法,包括:对单个指令的实例进行解码,所述单个指令的所述实例具有用于操作码的一个或多个字段、用于标识源/目的地矩阵操作对象的一个或多个字段、用于标识第一多个源矩阵操作对象的一个或多个字段、用于标识第二多个矩阵操作对象的一个或多个字段,其中,所述操作码用于指示出执行电路要进行:针对所述源/目的地矩阵操作对象的每个元素位置,基于来自所述第二多个矩阵操作对象中的第一矩阵操作对象的稀疏度控制,从所述第一多个源矩阵操作对象选择数据元素的适当子集;将所选择的来自第一源矩阵操作对象的行的元素对和来自第二源矩阵操作对象中的一个源矩阵操作对象的列的元素对转换到FP32;将来自两个指定的源矩阵操作对象的经转换的偶元素相乘以生成第一乘积并且单独地将来自所述指定的源矩阵操作对象的经转换的奇元素相乘以生成第二乘积;以及将所述第一乘积和所述第二乘积与所述源/目的地矩阵操作对象的先前内容累加;以及根据所述操作码执行经解码的单个指令。10.如权利要求9所述的方法,其中,所述第一多个源矩...

【专利技术属性】
技术研发人员:M
申请(专利权)人:英特尔公司
类型:发明
国别省市:

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

1