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

用于具有可变精度输入操作数的融合乘-加操作的指令制造技术

技术编号:22295228 阅读:33 留言:0更新日期:2019-10-15 04:25
所公开的实施例关于用于具有可变精度输入的融合乘‑加(FMA)操作的指令。在一个示例中,一种用于执行非对称FMA指令的处理器包括:取出电路,用于取出FMA指令,该FMA指令具有用于指定操作码、目的地以及分别具有第一宽度和第二宽度的第一源向量和第二源向量的字段;解码电路,用于对取出的FMA指令解码;以及单指令多数据(SIMD)执行电路,用于通过以下步骤来处理第二源向量的、与适配到SIMD通道宽度的数量一样多的元素:将每个元素乘以第一源向量的对应元素,并将所得到的乘积与目的地的先前内容累加,其中,SIMD通道宽度是16位、32位和64位中的一种,第一宽度是4位和8位中的一种,并且第二宽度是1位、2位和4位中的一种。

Instructions for Fusion Multiplication-Addition Operations with Variable Precision Input Operators

【技术实现步骤摘要】
用于具有可变精度输入操作数的融合乘-加操作的指令
本公开涉及处理逻辑、微处理器和相关联的指令集架构的领域,更具体地涉及用于具有可变精度输入操作数的融合乘-加操作的指令。
技术介绍
深度学习是一类机器学习算法。诸如深度神经网络之类的深度学习架构已被应用于多个领域,诸如,计算机视觉、语音识别、自然语言处理、音频识别、社交网络过滤、机器翻译、生物信息学以及药物设计。推断和训练(用于深度学习的两种工具)正趋于低精度算术。使深度学习算法和计算的吞吐量最大化可辅助满足深度学习处理器的需求,深度学习处理器例如在数据中心中执行深度学习的那些处理器。四虚拟神经网络指令(QVNNI)是在深度学习上下文中有用的一类融合乘-加(FMA)操作。期望低精度QVNNI操作引起足够的训练性能,低精度QVNNI操作诸如其中权重低至2位或4位的使用8位激活的那些操作。但是,传统的CPU和GPU指令集架构对所有操作遵守32位通道并要求对称的操作数:两个输入具有相同精度,这限制了通过转向2位权重和4位权重来获得性能优势的能力。附图说明在所附附图中以示例方式而非限制方式来图示本专利技术,在附图中,类似的附图标记指示类似的要素,其中:图1是图示根据一些实施例的用于执行诸如四虚拟神经网络指令(QVNNI)之类的融合乘-加(FMA)指令的处理组件的框图;图2是图示根据一些实施例的用于处理FMA指令的执行电路的框图;图3是图示根据一些实施例的用于处理FMA指令的执行电路的框图;图4A是图示根据一些实施例的用于处理VNNI_8_4FMA指令的执行电路的框图;图4B是图示根据一些实施例的用于处理VNNI_8_2FMA指令的执行电路的框图;图4C是图示根据一些实施例的用于处理VNNI_8_1FMA指令的执行电路的框图;图4D是图示根据一些实施例的用于处理VNNI_4_2FMA指令的执行电路的框图;图4E是图示根据一些实施例的用于处理VNNI_4_1指令的执行电路的框图;图4F是图示根据一些实施例的用于处理K路VNNI_8_2FMA指令的执行电路的框图;图5是图示根据一些实施例的用于处理VNNI_8_4FMA指令、VNNI_8_2FMA指令、VNNI_8_1FMA指令、VNNI_4_2FMA指令和VNNI_4_1FMA指令的执行电路的伪代码;图6是图示根据一些实施例的FMA指令的执行的过程流程图;图7是根据一些实施例的FMA指令的格式;图8A-8B是图示根据本专利技术的实施例的通用向量友好指令格式及其指令模板的框图;图8A是图示根据本专利技术的实施例的通用向量友好指令格式及其A类指令模板的框图;图8B是图示根据本专利技术的实施例的通用向量友好指令格式及其B类指令模板的框图;图9A是图示根据本专利技术的实施例的示例性专用向量友好指令格式的框图;图9B是图示根据本专利技术的一个实施例的专用向量友好指令格式中构成完整操作码字段的字段的框图;图9C是图示根据本专利技术的一个实施例的专用向量友好指令格式中构成寄存器索引字段的字段的框图;图9D是图示根据本专利技术的一个实施例的专用向量友好指令格式中构成扩充操作字段的字段的框图;图10是根据本专利技术的一个实施例的寄存器架构的框图;图11A是图示根据本专利技术的实施例的示例性有序流水线和示例性的寄存器重命名的乱序发布/执行流水线两者的框图;图11B是图示根据本专利技术的实施例的要包括在处理器中的有序架构核的示例性实施例和示例性的寄存器重命名的乱序发布/执行架构核两者的框图;图12A-12B图示更具体的示例性有序核架构的框图,该核将是芯片中的若干逻辑块(包括相同类型和/或不同类型的其他核)中的一个;图12A是根据本专利技术的实施例的单个处理器核以及其到管芯上互连网络的连接以及它的第2级(L2)高速缓存的本地子集的框图;图12B是根据本专利技术的实施例的图12A中的处理器核的部分的展开图;图13是根据本专利技术的实施例的可具有多于一个的核、可具有集成存储器控制器、并且可具有集成图形器件的处理器的框图;图14-17是示例性计算机架构的框图;图14示出根据本专利技术的一个实施例的系统的框图;图15是根据本专利技术的实施例的第一更具体的示例性系统的框图;图16是根据本专利技术的实施例的第二更具体的示例性系统的框图;图17是根据本专利技术的实施例的芯片上系统(SoC)的框图;并且图18是根据本专利技术的实施例的对照使用软件指令转换器将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图。具体实施方式在以下描述中,陈述了众多特定细节。然而,应当理解,可在没有这些特定细节的情况下实践本专利技术的实施例。在其他实例中,未详细示出公知的电路、结构和技术,以免使对本描述的理解模糊。说明书中对“一个实施例”、“实施例”、“示例实施例”等的引用表明所描述的实施例可以包括特定的特征、结构或特性,但是每个实施例可能不一定都包括该特定的特征、结构或特性。此外,此类短语不一定是指同一个实施例。此外,当结合实施例描述特定的特征、结构或特性时,认为结合无论是否被明确描述的其他实施例而影响此类特征、结构或特性是在本领域技术人员的知识范围之内的。所公开的实施例使具有可变精度的输入(诸如,8位、4位、2位和1位)的虚拟神经网络(VNNI)融合乘-加(FMA)指令的执行吞吐量最大化。一些实施例使用单指令多数据(SIMD)处理通道,该SIMD处理通道具有32位的通道宽度,并且对于第一源操作数(诸如,VNNI输入向量)跨越多于32位,而对于输出以及对于第二源操作数(诸如,VNNI权重向量)保持32位通道。预期所公开的FMA指令相对于具有对称的8位输入操作数和8位权重操作数的FMA指令产生性能增益。在本文中有时将支持具有不同精度的输入的所公开的FMA指令称为非对称FMA指令。在一些实施例中,由具有SIMD处理通道的执行电路使用FMA电路的网格来执行FMA指令。通过不要求FMA电路为输入操作数使用相同精度,所公开的实施例通过限制使用最高精度操作数的精度的操作来避免限制性能增益。具体而言,所公开的实施例使低精度FMA加速了与最低精度操作数(诸如,权重)成比例的因子。例如,预期使用4位的权重而不是8位的权重产生大约2倍改善,而预期使用2位的权重或1位的权重分别产生大约4倍或8倍改善。一些所公开的实施例描述了FMA指令的灵活选择,包括QVNNI-8-2、QVNNI-8-2、QVNNI-8-1、QVNNI-4-2和QVNNI-4-1,这些指令提供了可在执行电路中被管理的操作数的尺寸与准确性之间的平衡。一些所公开的实施例提供了具有用于指定输入的尺寸和权重的尺寸的字段的单个FMA指令。所公开的实施例有利地对于所有操作将执行限制到相同尺寸的位的通道,并且避免要求对称操作数(两个输入具有相同精度)。通过去除此类限制,所公开的实施例实现增加的吞吐量。所公开的实施例定义非对称FMA指令,诸如,QVNNI-8-2,其用于提供4个输出/指令*16个权重/输出*16个SIMD通道=每循环1024个FMA操作的吞吐量,这是对称FMA指令的4倍,对称FMA指令诸如具有8位操作数限制的QVNNI(4个输出/指令*4个权重/输出*16个SIMD通道=每循环256个FMA操作的吞吐量)图1是图示根据一些实施例的用于执行诸如四虚拟神经网络指令(QVNNI)之类的融合本文档来自技高网...

【技术保护点】
1.一种用于执行非对称融合乘‑加FMA指令的处理器,所述处理器包括:取出电路,用于取出FMA指令,所述FMA指令具有用于指定操作码、目的地以及分别具有第一宽度和第二宽度的第一源向量和第二源向量的字段;解码电路,用于对取出的FMA指令解码;以及单指令多数据SIMD执行电路,用于执行经解码的FMA指令以通过以下步骤来处理所述第二源向量的、与适配到SIMD通道宽度的数量一样多的元素:将每个元素乘以所述第一源向量的对应元素,并将所得到的乘积与所述目的地的先前内容累加;其中,所述SIMD通道宽度是16位、32位和64位中的一种,所述第一宽度是4位和8位中的一种,并且所述第二宽度是1位、2位和4位中的一种。

【技术特征摘要】
2018.03.29 US 15/940,7741.一种用于执行非对称融合乘-加FMA指令的处理器,所述处理器包括:取出电路,用于取出FMA指令,所述FMA指令具有用于指定操作码、目的地以及分别具有第一宽度和第二宽度的第一源向量和第二源向量的字段;解码电路,用于对取出的FMA指令解码;以及单指令多数据SIMD执行电路,用于执行经解码的FMA指令以通过以下步骤来处理所述第二源向量的、与适配到SIMD通道宽度的数量一样多的元素:将每个元素乘以所述第一源向量的对应元素,并将所得到的乘积与所述目的地的先前内容累加;其中,所述SIMD通道宽度是16位、32位和64位中的一种,所述第一宽度是4位和8位中的一种,并且所述第二宽度是1位、2位和4位中的一种。2.如权利要求1所述的处理器,其中,所述SIMD执行电路并发地处理所述一样多数量的元素。3.如权利要求1所述的处理器,其中,所述SIMD执行电路在单个时钟周期中处理所述一样多数量的元素。4.如权利要求1-3中的任一项所述的处理器,其中,所述SIMD执行电路使用多个FMA硬件单元来处理最大数量的元素,所述多个FMA硬件单元被并联地或级联地布置。5.如权利要求1-3中的任一项所述的处理器,其中,所述第一宽度和所述第二宽度由所述操作码指定。6.如权利要求1-3中的任一项所述的处理器,其中,所述FMA指令进一步指定重复指示符,所述重复指示符是2、4和8中的一者,所指定的目的地包括向量,并且所述SIMD执行电路使用多个源向量来并发地重复所述执行达由所述重复指示符指定的次数,每一次都将结果累加到目的地向量的同一元素。7.如权利要求1-3中的任一项所述的处理器,其中,所述SIMD执行电路进一步舍入所述所得到的乘积和所述目的地的所述先前内容的所述累加以适配到所述目的地的位数内,并且其中,所述处理器进一步包括软件能访问的控制寄存器以存储舍入控制,其中,所述SIMD执行电路根据所述舍入控制执行所述舍入,其中,所述舍入控制指定以下一者:就近舍入平局成偶、就近舍入平局远离零、向零舍入、向正无穷舍入、以及向负无穷舍入。8.如权利要求1-3中的任一项所述的处理器,其中,所述SIMD执行电路进一步检查饱和,并且将所述所得到的乘积和所述目的地的所述先前内容的所述累加饱和到预定义的最大值,并且其中,所述处理器进一步包括软件能访问的状态寄存器,供由所述SIMD执行电路用来将饱和的发生报告给软件。9.一种用于执行非对称融合乘-加FMA指令的系统,所述系统包括:用于取出FMA指令的装置,所述FMA指令具有用于指定操作码、目的地以及分别具有第一宽度和第二宽度的第一源向量和第二源向量的字段;用于对取出的FMA指令解码的装置;以及用于执行经解码的FMA指令以通过以下步骤来处理所述第二源向量的、与适配到SIMD通道宽度的数量一样多的元素的装置:将每个元素乘以所述第一源向量的对应元素,并将所得到的乘积与所述目的地的先前内容累加;以及其中,所述SIMD通道宽度是16位、32位和64位中的一种,所述第一宽度是4位和8位中的一种,并且所述第二宽度是1位、2位和4位中的一种。1...

【专利技术属性】
技术研发人员:D·达斯N·K·梅勒普迪M·杜塔A·库马D·穆迪盖雷A·孔杜
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

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

1