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

用于经融合的乘加的系统、装置和方法制造方法及图纸

技术编号:36000687 阅读:15 留言:0更新日期:2022-12-17 23:18
本申请公开了用于经融合的乘加的系统、装置和方法。在一些实施例中,第一和第二紧缩数据源操作数的紧缩数据元素具有与第三紧缩数据操作数的紧缩数据元素的第二大小不同的第一大小。执行电路执行经解码的单个指令,用以为目的地操作数的每个紧缩数据元素定位履行:来自第一和第二紧缩数据源的、与第三紧缩数据源的紧缩数据元素定位相对应的M个N大小的紧缩数据元素的乘法,将来自这些乘法的结果加到第三紧缩数据源的紧缩数据元素定位的全大小紧缩数据元素,并且将加法结果存储在与第三紧缩数据源的紧缩数据元素定位相对应的紧缩数据元素定位目的地中,其中M等于全大小紧缩数据元素除以N。据元素除以N。据元素除以N。

【技术实现步骤摘要】
用于经融合的乘加的系统、装置和方法
本申请是PCT国际申请号为PCT/US2016/057991、国际申请日为2016年10月20日、进入中国国家阶段的申请号为201680089435.5,题为“用于经融合的乘加的系统、装置和方法”的专利技术专利申请的分案申请。


[0001]本专利技术的领域一般地涉及计算机处理器架构,并且更具体地涉及当被执行的时候引发特定结果的指令。

技术介绍

[0002]线性代数中的常见操作是乘法累加操作(例如c=c+a*b)。乘法累加典型地是操作流中的子操作,例如在两个向量之间的点积,其还可以是矩阵乘法中列和行的单个乘积。例如,C=0For(I)C+=A[l]*B[l]。
附图说明
[0003]本专利技术作为示例而不是限制地在附图的各图中被图示,在所述附图中,同样的参考标记指示类似的元素并且其中:图1图示了根据实施例的使用不同大小的操作数的经融合的乘法累加指令的示例性执行;图2图示了根据实施例的二次幂大小的SIMD实现方式,其中累加器使用比到乘法器的输入更大的输入大小;图3图示了用于处理诸如经融合的乘法累加指令之类的指令的硬件的实施例;图4图示了由处理器执行以处理经融合的乘法累加指令的方法的实施例;图5图示了经融合的乘法累加的执行的子集的实施例;图6图示了用于在硬件中实现该指令的伪代码的实施例;图7图示了经融合的乘法累加的执行的子集的实施例;图8图示了用于在硬件中实现该指令的伪代码的实施例;图9图示了经融合的乘法累加的执行的子集的实施例;图10图示了用于在硬件中实现该指令的伪代码的实施例;图11图示了经融合的乘法累加的执行的子集的实施例;图12图示了用于在硬件中实现该指令的伪代码的实施例;图13A是一框图,其图示了根据本专利技术的实施例的通用向量友好的指令格式及其A类指令模板;图13B是一框图,其图示了根据本专利技术的实施例的通用向量友好的指令格式及其B
类指令模板;图14A是一框图,其图示了根据本专利技术的实施例的示例性的特定向量友好的指令格式;图14B是一框图,其图示了根据本专利技术的一个实施例的构成全操作码字段的特定向量友好的指令格式的字段;图14C是一框图,其图示了根据本专利技术的一个实施例的构成寄存器索引字段的特定向量友好的指令格式的字段;图14D是一框图,其图示了根据本专利技术的一个实施例的构成扩增操作字段的特定向量友好的指令格式的字段;图15是根据本专利技术的一个实施例的寄存器架构的框图;图16A是一框图,其图示了根据本专利技术的实施例的示例性有序的流水线以及示例性的寄存器重命名、无序的发布/执行流水线二者;图16B是一框图,其图示了根据本专利技术的实施例的有序架构核,以及将被包括在处理器中的示例性的寄存器重命名、无序的发布/执行架构核二者的示例性实施例;图17A是根据本专利技术的实施例的单个处理器核的框图,所述单个处理器核连同其与管芯上互连网络1702的连接以及连同其2级(L2)高速缓存1704的局部子集;图17B是根据本专利技术的实施例的图17A中的处理器核的部分的展开视图;图18是根据本专利技术的实施例的处理器1800的框图,所述处理器1800可以具有多于一个核、可以具有集成的存储器控制器、并且可以具有集成的图形;图19示出了根据本专利技术的一个实施例的系统的框图;图20是根据本专利技术的实施例的第一更特定示例性系统的框图;图21是根据本专利技术的实施例的第二更特定示例性系统的框图;图22是根据本专利技术的实施例的SoC的框图;以及图23是一框图,其根据本专利技术的实施例而对比了使用软件指令转换器来将源指令集中的二进制指令转换成目标指令集中的二进制指令。
具体实施方式
[0004]在以下描述中,阐明了众多具体细节。然而,理解的是,本专利技术的实施例可以在没有这些具体细节的情况下被实践。在其它实例中,众所周知的电路、结构和技术没有被详细示出以便不使对本描述的理解模糊不清。
[0005]本说明书中对“一个实施例”、“实施例”、“示例实施例”等等的提及指示所描述的实施例可以包括特定的特征、结构或特性,但是每个实施例可以不一定包括所述特定的特征、结构或特性。此外,这样的短语不一定指代相同的实施例。此外,当结合实施例描述了特定的特征、结构或特性的时候,所主张的是无论是否被明确地描述,结合其它实施例来影响这样的特征、结构或特性在本领域技术人员的知识范围内。
[0006]在处理大数据集中,可以通过将数据类型的大小定得尽可能小而增大存储器和计算密度。如果输入项来自传感器数据,那么可预期8位或16位整数数据作为输入。神经网络计算,其也可以被编码以匹配该密集格式,典型地具有“小”数作为输入项。然而,累加器对乘积求和,意味着累加器应当容许输入项的位数的两倍(乘法的性质)并且潜在地容许多得
多,以便避免在计算中任何点处的溢出或饱和。
[0007]本文中详述的是如下实施例:所述实施例尝试将输入数据大小保持得很小,并且总计到经融合的乘法累加(FMA)操作的链中的更大累加器。图1图示了根据实施例的使用不同大小的操作数的经融合的乘法累加指令的示例性执行。第一源101(例如SIMD或向量寄存器)和第二源103存储关于第三源105的“一半大小的”紧缩(packed)数据元素(例如单输入、多数据(SIMD)或向量寄存器),所述第三源105存储用于累加的全大小紧缩数据元素。其中紧缩数据元素大小是以此方式的值的任何集合是可支持的。
[0008]如所示出的,被存储在第一和第二源101和103的相同定位的紧缩数据元素中的值被乘在一起。例如,A0*B0、A1*B1等等。两个这样的“一半大小的”紧缩数据元素乘法的结果被加到来自第三源105的对应的“全大小的”紧缩数据元素。例如,A0*B0+A1*B1+C0等等。
[0009]结果被存储在目的地107(例如SIMD寄存器)中,所述目的地107具有至少“全大小”的紧缩数据元素大小。在一些实施例中,第三源105和目的地107是相同的。
[0010]图2图示了根据实施例的二次幂大小的SIMD实现方式,其中累加器使用比到乘法器的输入更大的输入大小。注意到,(对于乘法器)的源以及累加器值可以是有符号或无符号的值。对于具有2X输入大小的累加器(换言之,累加器输入值是源的紧缩数据元素大小的两倍大小),表201图示了不同的配置。对于字节大小的源,累加器使用字或半精度浮点(HPFP)值,其在大小方面是16位的。对于字大小的源,累加器使用32位整数或单精度浮点(SPFP)值,其在大小方面是32位的。对于SPFP或32位整数大小的源,累加器使用64位整数或双精度浮点(DPFP)值,其在大小方面是64位的。使用图1作为示例,当源1 101和源2 103的紧缩数据元素大小是8位的时候,于是累加器将使用来自源3 103的16位大小的数据元素。当源1 101和源2 103的紧缩数据元素大小是16位的时候,于是累加器将使用来自源3 103的32位大小的数据元素。当源1 101和源2 103的紧缩数据元素大小是32位的时候,于是累加器将使用来自源3 103的64位大小的数据元素。
[0011]对于具有4X输入大本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于计算的装置,包括:解码器,用于对单个指令解码,所述单个指令具有操作码字段和四个操作数字段,所述四个操作数字段包括:第一操作数字段,用于指示第一源紧缩数据寄存器,所述第一源紧缩数据寄存器用于存储第一源紧缩数据元素;第二操作数字段,用于指示第二源紧缩数据寄存器,所述第二源紧缩数据寄存器用于存储第二源紧缩数据元素;第三操作数字段,用于指示源/目的地紧缩数据寄存器,所述源/目的地紧缩数据寄存器用于存储第三源紧缩数据元素和结果紧缩数据元素;以及第四操作数字段,用于指示写掩码寄存器,所述写掩码寄存器用于存储用于有条件地控制由所述单个指令指示的逐元素操作的多个位值;其中,所述第一源紧缩数据元素和所述第二源紧缩数据元素是具有第一大小的数据元素,所述第一大小与所述第三源紧缩数据元素和所述结果紧缩数据元素的第二大小不同;寄存器堆,包括所述第一源紧缩数据寄存器、所述第二源紧缩数据寄存器、以及所述源/目的地紧缩数据寄存器;以及执行电路,用于执行经解码的单个指令,以针对每个结果紧缩数据元素执行以下操作:如果所述写掩码寄存器中的对应位的值被设置为第一值,则保留所述结果紧缩数据元素的现有值或将所述结果紧缩数据元素设置为零;以及如果所述写掩码寄存器中的所述对应位的值被设置为第二值,则:将第一数量的所述第一源紧缩数据元素与所述第二源紧缩数据元素中的对应的紧缩数据元素相乘,以产生第一数量的乘积;将所述第一数量的乘积与来自所述第三源紧缩数据元素的对应的紧缩数据元素相加,以在所述源/紧缩数据寄存器中的对应位置中产生具有所述第二大小的所述结果紧缩数据元素。2.如权利要求1所述的装置,其中,所述第一数量等于所述第二大小除以所述第一大小。3.如权利要求1或2所述的装置,其中,所述第一值包括值0,并且所述第二值包括值1。4.如权利要求1至3中的任一项所述的装置,其中,所述结果紧缩数据元素包括紧缩32位浮点值。5.如权利要求1至4中的任一项所述的装置,其中,所述第一大小和所述第二大小基于所述操作码值。6.如权利要求1至5中的任一项所述的装置,其中,所述第一大小是所述第二大小的一半或四分之一。7.如权利要求1至6中的任一项所述的装置,其中,所述寄存器堆进一步包括所述写掩码寄存器。8.一种用于计算的方法,包括:对单个指令解码,所述单个指令具有操作码字段和四个操作数字段,所述四个操作数字段包括:第一操作数字段,用于指示第一源紧缩数据寄存器,所述第一源紧缩数据寄存器用于
存储第一源紧缩数据元素;第二操作数字段,用于指示第二源紧缩数据寄存器,所述第二源紧缩数据寄存器用于存储第二源紧缩数据元素;第三操作数字段,用于指示源/目的地紧缩数据寄存器,所述源/目的地紧缩数据寄存器用于存储第三源紧缩数据元素和结果紧缩数据元素;以及第四操作...

【专利技术属性】
技术研发人员:R瓦伦丁G利夫钦P马吉切尔MJ查尼E奥尔德艾哈迈德瓦尔J科巴尔MB格卡尔Z斯珀伯S鲁巴诺维奇A格拉德斯坦
申请(专利权)人:英特尔公司
类型:发明
国别省市:

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

1