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

实行16位浮点矩阵点积指令的系统和方法技术方案

技术编号:33134293 阅读:22 留言:0更新日期:2022-04-17 00:56
本申请公开了实行16位浮点矩阵点积指令的系统和方法。所公开的实施例涉及计算图块操作数中的半字节的点积。在一个示例中,处理器包括:解码电路,用以解码图块点积指令,该指令具有针对操作码的字段、用以标识M

【技术实现步骤摘要】
实行16位浮点矩阵点积指令的系统和方法
本申请是2019年10月9日提交的优先权日为2018年11月9日、申请号为201910953678.4、题为“实行16位浮点矩阵点积指令的系统和方法”的专利技术专利申请的分案申请。


[0001]本专利技术的领域一般涉及计算机处理器架构,以及更具体地,涉及用于实行16位浮点矩阵点积指令的系统和方法。

技术介绍

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

矩阵乘法(又名GEMM或通用矩阵乘法)是现代处理器上常见的计算繁重的运算。用于矩阵乘法(例如,GEMM)的特殊硬件是用于改善某些应用(诸如深度学习)的峰值计算(和能量效率)的好选项。
[0005]只要输出元素具有足够的位(即,多于输入),这些应用中的一些(包括深度学习)可以对具有相对较少位的输入数据元素进行操作而不会损失精确度。
附图说明
[0006]作为示例而非限制在附图的各图中图示了本专利技术,在附图中,相同的附图标记指示相似的元素,并且在附图中:图1A图示了配置的图块的实施例;图1B图示了配置的图块的实施例;图2图示了矩阵存储的若干个示例;图3图示了利用矩阵(图块)运算加速器的系统的实施例;图4和5示出了如何使用矩阵运算加速器共享存储器的不同实施例;图6图示了使用图块的矩阵乘法累加运算(“TMMA”)的实施例;图7图示了链式融合乘法累加指令的迭代执行的子集的实施例;图8图示了链式融合乘法累加指令的迭代执行的子集的实施例;图9图示了链式融合乘法累加指令的迭代执行的子集的实施例;图10图示了链式融合乘法累加指令的迭代执行的子集的实施例;图11图示了根据实施例的两次幂大小的SIMD实现方式,其中累加器使用大于对乘
法器的输入的输入大小;图12图示了利用矩阵运算电路的系统的实施例;图13图示了支持使用图块的矩阵运算的处理器核心流水线的实施例;图14图示了支持使用图块的矩阵运算的处理器核心流水线的实施例;图15图示了以行主要格式和列主要格式表达的矩阵的示例;图16图示了矩阵(图块)的使用示例;图17图示了矩阵(图块)的使用方法的实施例;图18图示了根据实施例的对图块使用的配置的支持;图19图示了要支持的矩阵(图块)的描述的实施例;图20(A)

(D)图示了(一个或多个)寄存器的示例;图21是图示了根据一些实施例的使用TILE16BDP指令来加速矩阵乘法的框图;图22A是图示了根据一些实施例的TILE16BDP指令的执行的伪代码;图22B是图示了根据一些实施例的TILE16BDP指令的执行的伪代码;图22C是图示了根据一些实施例的用于由图22A和22B的伪代码使用的辅助函数的伪代码;图23图示了处理器执行流程以处理TILE16BDP指令的实施例;图24是图示了根据一些实施例的TILE16BDP指令的格式的框图;图25A

25B是图示了根据实施例的通用矢量友好指令格式及其指令模板的框图;图25A是图示了根据实施例的通用矢量友好指令格式及其类别A指令模板的框图;图25B是图示了根据实施例的通用矢量友好指令格式以及其类别B指令模板的框图;图26A是图示了根据实施例的示例性特定矢量友好指令格式的框图;图26B是图示了根据一个实施例的构成完整操作码字段的特定矢量友好指令格式的字段的框图;图26C是图示了根据一个实施例的构成寄存器索引字段的特定矢量友好指令格式的字段的框图;图26D是图示了根据一个实施例的构成扩充操作字段的特定矢量友好指令格式的字段的框图;图27是根据一个实施例的寄存器架构的框图;图28A是图示了根据实施例的示例性有序流水线和示例性寄存器重命名、无序发布/执行流水线二者的框图;图28B是图示了根据实施例的要被包括在处理器中的有序架构核心的示例性实施例和示例性寄存器重命名、无序发布/执行架构核心二者的框图;图29A

B图示了更特定的示例性有序核心架构的框图,该核心将是芯片中的若干个逻辑块(包括相同类型和/或不同类型的其他核心)中的一个;图29A是根据实施例的单个处理器核心,以及其到管芯上互连网络的连接并且与其2级(L2)高速缓存本地子集的连接的框图;图29B是根据实施例的图29A中的处理器核心的一部分的展开图;图30是根据实施例的可以具有多于一个核心、可以具有集成存储器控制器以及可
以具有集成图形部件(integrated graphics)的处理器的框图;图31

34是示例性计算机架构的框图;图31示出了根据本专利技术的一个实施例的系统的框图;图32是根据本专利技术的实施例的第一更加具体的示例性系统的框图;图33是根据本专利技术的实施例的第二更加具体的示例性系统的框图;图34是根据本专利技术的实施例的片上系统(SoC)的框图;以及图35是根据实施例的对比使用软件指令转换器来将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图。
具体实施方式
[0007]在以下描述中阐述了众多具体细节。然而,理解的是可以在没有这些具体细节的情况下实践实施例。在其它实例中,没有详细地示出公知的电路、结构和技术,以免使本描述的理解晦涩难懂。
[0008]在说明书中对“一个实施例”、“实施例”、“示例实施例”等的引用指示所描述的实施例可以包括特定特征、结构或特性,但是可能不是每个实施例都一定包括该特定特征、结构或特性。此外,这样的短语不一定指代同一实施例。另外,当与实施例相结合地来描述特定的特征、结构或特性时,主张的是,结合其它实施例影响这样的特征、结构或特性(不论是否明确地描述了)是在本领域技术人员的知识范围内的。
[0009]在许多主流处理器中,处理矩阵是一项困难和/或指令密集型任务。例如,矩阵的行可以被放入多个打包数据(例如,SIMD或矢量)寄存器中,然后单独地对它们进行操作。例如,取决于数据大小,添加两个8
×
2矩阵可能需要加载或聚集到四个打包数据寄存器中。然后,实行与来自每个矩阵的第一行相对应的打包数据寄存器的第一添加,并且实行与来自每个矩阵的第二行相对应的打包数据寄存器的第二添加。然后,所得到的打包数据寄存器被往回分散到存储器。虽然对于小矩阵,这种情境可能是可接受的,但对于较大的矩阵,这通常是不可接受的。
[0010]讨论本文中描述的是支持诸如中央处理单元(CPU)、图形处理单元(GPU)和加速器之类的计算机硬件中的矩阵运算的机制。矩阵运算利用表示存储器(诸如寄存器)的一个或多个打包区域的二维(2

D)数据结构。遍及该说明书,这些2
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种处理单元,包括:获取电路,用于获取指令;解码电路,用于对所述指令解码,所述指令具有操作码、第一字段、第二字段和第三字段,所述第一字段用于指定与具有M行乘N列的32位单精度浮点数据元素的第一矩阵对应的多个数据元素的第一存储位置,所述第二字段用于指定与具有M行乘K列的、具有bfloat16格式的16位浮点数据元素的第二矩阵对应的多个数据元素的第二存储位置,所述第三字段用于指定与具有K行乘N列的、具有bfloat16格式的16位浮点数据元素的第三矩阵对应的多个数据元素的第三存储位置;以及执行电路,与所述解码电路耦合,所述执行电路用于针对所述第二矩阵的M行中的每个行m且针对所述第三矩阵的N列中的每个列n执行与所述指令对应的操作,以:从与所述第二矩阵的行m对应的K个16位浮点数据元素和与所述第三矩阵的列n对应的K个16位浮点数据元素生成点积;将所述点积与对应于所述第一矩阵的M行中的行m且对应于N列中的列n的32位单精度浮点数据元素累加,以生成结果32位单精度浮点数据元素;以及将所述结果32位单精度数据元素存储在所述第一存储位置的、与所述第一矩阵的行m和列n对应的位置中。2.如权利要求1所述的处理单元,进一步包括用于指定舍入模式的控制寄存器,其中,生成所述点积和累加所述点积各自都包括:无论由所述控制寄存器指定的所述舍入模式如何,都应用单个舍入模式。3.如权利要求2所述的处理单元,其中,所述处理单元由于所述指令将不咨询所述控制寄存器。4.如权利要求1至3中的任一项所述的处理单元,其中,所述处理单元由于所述指令将不更新控制寄存器。5.如权利要求1至4中的任一项所述的处理单元,其中,所述处理单元由于所述指令将不表示例外。6.如权利要求1至5中的任一项所述的处理单元,其中,所述执行电路用于执行与所述指令对应的操作,以将所述第二矩阵和所述第三矩阵的非正常值处理为零。7.如权利要求1至6中的任一项所述的处理单元,其中,所述执行电路用于执行与所述指令对应的操作,以将非正常值转储清除为零。8.如权利要求1至7中的任一项所述的处理单元,其中,所述第二矩阵的M行和所述第三矩阵的N列在数量上相等。9.如权利要求1至8中的任一项所述的处理单元,其中,所述第一存储位置、所述第二存储位置和所述第三存储位置在128位向量寄存器中。10.如权利要求1至9中的任一项所述的处理单元,其中,每个点积都是32位单精度浮点点积。11.如权利要求1至10中的任一项所述的处理单元,进一步包括:分支预测电路;寄存器重命名电路;以及调度器电路,用于调度经解码的指令以供执行。
12.如权利要求1至11中的任一项所述的处理单元,其中,所述处理单元是通用中央处理单元CPU核。13.如权利要求1至12中的任一项所述的处理单元,其中,所述处理单元是精简指令集计算RISC核。14.如权利要求2所述的处理单元,其中,所述单个舍入模式针对所述指令是固定的。15.一种片上系统SoC,所述SoC包括:存储器控制器;以及通...

【专利技术属性】
技术研发人员:AF海内克R瓦伦丁MJ查尼R萨德M阿德尔曼Z斯珀伯A格雷德斯坦S鲁巴诺维奇
申请(专利权)人:英特尔公司
类型:发明
国别省市:

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

1