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

可变格式、可变稀疏矩阵乘法指令制造技术

技术编号:26761795 阅读:24 留言:0更新日期:2020-12-18 23:03
公开的实施例涉及可变格式、可变稀疏矩阵乘法指令。在一个示例中,处理器包括提取和解码电路,用于提取和解码可变格式、可变稀疏矩阵乘法(VFVSMM)指令,所述指令指定分别具有(M×K)、(K×N)和(M×N)个元素的A、B和C矩阵的位置;执行电路,该执行电路响应于经解码的VFVSMM指令用于:将指定的A矩阵的每一行与后续行错开路由到(M×N)处理阵列的相应行中,并将指定的B矩阵的每一列与后续列错开路由到处理阵列的相应列中,其中,处理单元中的每一个生成A矩阵元素和具有与A矩阵元素的列地址相同的行地址的匹配B矩阵元素的K个乘积,并且将每个所生成的乘积与相应的C矩阵元素累加。

【技术实现步骤摘要】
可变格式、可变稀疏矩阵乘法指令分案说明本申请是申请日为2019年5月22日、申请号为201910431218.5、题为“可变格式、可变稀疏矩阵乘法指令”的专利技术专利申请的分案申请。
本专利技术的领域总体上涉及计算机处理器架构,具体而言,涉及可变格式、可变稀疏矩阵乘法指令。
技术介绍
诸如深度神经网络的机器学习架构已经应用于包括计算机视觉、语音识别、自然语言处理、音频识别、社交网络过滤、机器翻译、生物信息学和药物设计的领域。深度学习是一类机器学习算法。最大化深度学习算法和计算的灵活性和成本效率可以帮助满足深度学习处理器(例如,在数据中心中执行深度学习的那些处理器)的需求。矩阵乘法是包括机器学习的许多算法的关键性能/功率限制。一些传统的矩阵乘法方法是专用的,例如它们缺乏利用宽累加器支持各种数据格式(有符号和无符号8b/16b整数、16b浮点)的灵活性,以及支持密集和稀疏矩阵的灵活性。
技术实现思路
根据本申请的一方面,提供了一种处理器,包括:用于存储数据的缓存;被耦合到缓存的多个核,多个核中的核包括:执行模块,用于执行至少一个指令,以根据所选择的操作模式执行针对第一源矩阵和第二源矩阵的乘法累加操作来生成结果矩阵,所选择的操作模式包括第一操作模式和第二操作模式,在第一操作模式中,至少第一源矩阵是具有位于特定位置处的非零数据元素的稀疏矩阵,在第二操作模式中,第一源矩阵和第二源矩阵都是密集矩阵,其中,当处于第一操作模式中时,第一源矩阵将以压缩格式被存储,压缩格式标识非零数据元素的位置,执行模块还包括:多个乘法累加模块,用于将第一源矩阵的非零数据元素与第二源矩阵中基于压缩格式中的位置标识出的对应数据元素相乘,以生成多个乘积,并将多个乘积与累加值相加来生成结果矩阵。根据本申请的另一方面,提供了一种方法,包括:将数据存储在缓存中;由被耦合到缓存的多个核中的核、根据所选择的操作模式执行针对第一源矩阵和第二源矩阵的乘法累加操作来生成结果矩阵,所选择的操作模式包括第一操作模式和第二操作模式,在第一操作模式中,至少第一源矩阵是具有位于特定位置处的非零数据元素的稀疏矩阵,在第二操作模式中,第一源矩阵和第二源矩阵都是密集矩阵,其中,当处于第一操作模式中时,第一源矩阵将以压缩格式被存储,压缩格式标识非零数据元素的位置,乘法累加操作还包括:将第一源矩阵的非零数据元素与第二源矩阵中基于压缩格式中的位置标识出的对应数据元素相乘,以生成多个乘积,并且将多个乘积与累加值相加来生成结果矩阵。根据本申请的又一方面,提供了一种存储有程序代码的机器可读介质,程序代码在被机器执行时使得机器执行上述方法。附图说明通过示例而非限制的方式在附图的图中示出了本专利技术,其中相似的附图标记表示类似的元素,并且其中:图1是示出根据实施例的用于执行可变格式、可变稀疏矩阵乘法(VFVSMM)指令的处理部件的框图;图2是根据一些实施例的用于执行可变格式、可变稀疏矩阵乘法(VFVSMM)指令的处理阵列的框图;图3是示出根据一些实施例的可变格式、可变稀疏矩阵乘法(VFVSMM)指令的部分执行的流程框图;图4是示出根据一些实施例的用于执行可变格式、可变稀疏矩阵乘法(VFVSMM)指令的执行流水线的流程框图;图5是示出根据一些实施例的在执行可变格式、可变稀疏矩阵乘法(VFVSMM)指令时在处理单元和路由电路之间共享的路由控制信号的框图;图6是示出根据一些实施例的处理器执行可变格式、可变稀疏矩阵乘法(VFVSMM)的流程框图;图7是示出根据一些实施例的可变精度整数/浮点乘法累加电路的框图;图8A-8C是示出根据本专利技术实施例的通用向量友好指令格式及其指令模板的框图;图8A是示出根据一些实施例的用于可变格式、可变稀疏矩阵乘法(VFVSMM)指令的格式的框图;图8B是示出根据本专利技术实施例的通用向量友好指令格式及其A类指令模板的框图。图8C是示出根据本专利技术实施例的通用向量友好指令格式及其B类指令模板的框图。图9A是示出根据本专利技术实施例的示例性特定向量友好指令格式的框图。图9B是示出根据本专利技术一个实施例的构成完整操作码字段的特定向量友好指令格式的字段的框图。图9C是示出根据本专利技术一个实施例的构成寄存器索引字段的特定向量友好指令格式的字段的框图。图9D是示出根据本专利技术一个实施例的构成增强操作字段的特定向量友好指令格式的字段的框图。图10是根据本专利技术一个实施例的寄存器架构的框图。图11A是示出根据本专利技术实施例的示例性有序流水线和示例性寄存器重命名、无序发布/执行流水线的框图。图11B是示出根据本专利技术实施例的要包括在处理器中的有序架构核和示例性寄存器重命名、无序发布/执行架构核的示例性实施例的框图;图12A-B示出了更具体的示例性有序核架构的框图,其核将是芯片中的几个逻辑块之一(包括相同类型和/或不同类型的其他核);图12A是根据本专利技术实施例的单个处理器核以及其与管芯上互连网络的连接及其二级(L2)缓存的本地子集的框图;图12B是根据本专利技术实施例的图12A中的处理器核的一部分的展开图;图13是根据本专利技术实施例的可以具有多于一个核,可以具有集成存储器控制器并且可以具有集成图形的处理器的框图;图14-17是示例性计算机架构的框图;图14示出了根据本专利技术一个实施例的系统的框图;图15是根据本专利技术实施例的第一更具体的示例性系统的框图;图16是根据本专利技术实施例的第二更具体的示例性系统的框图;图17是根据本专利技术实施例的片上系统(SoC)的框图;及图18是根据本专利技术实施例的对照使用软件指令转换器将源指令集中的二进制指令转换为目标指令集中的二进制指令的框图。具体实施方式在以下说明中,阐述了许多具体细节。然而,应理解,可以在没有这些具体细节的情况下实践一些实施例。在其他情况下,没有详细示出公知的电路、结构和技术,以免使本说明书难以理解。说明书中对“一个实施例”、“实施例”、“示例性实施例”等的提及指示所描述的实施例可以包括特征、结构或特性,但是每个实施例可以不一定包括该特征、结构或特征。而且,这些短语不一定是指同一实施例。此外,当关于实施例描述特征、结构或特性时,如果明确地描述,则认为影响关于其他实施例的这种特征、结构或特性在本领域技术人员的知识范围内。所公开的实施例提供了可变格式、可变稀疏矩阵乘法(VFVSMM)指令的改进的执行。所公开的实施例针对各种不同的数据格式执行矩阵乘法和乘法累加,这些数据格式包括有符号/无符号8位/16位整数和16位/32位浮点格式。此外,所公开的实施例利用阻塞、基于握手的路由以及在处理阵列中的节点之间广播矩阵数据元素,来支持密集或稀疏矩阵操作数并且避免乘以稀疏矩阵的零值。此外,通过将处理阵列中的每个处理单元重新配置成2×2阵列,优化所公开的8位模式以实现4倍吞吐量。如本文所使用的,本文档来自技高网...

【技术保护点】
1.一种处理器,包括:/n用于存储数据的缓存;/n被耦合到所述缓存的多个核,所述多个核中的核包括:/n执行模块,用于执行至少一个指令,以根据所选择的操作模式执行针对第一源矩阵和第二源矩阵的乘法累加操作来生成结果矩阵,所述所选择的操作模式包括第一操作模式和第二操作模式,在所述第一操作模式中,至少所述第一源矩阵是具有位于特定位置处的非零数据元素的稀疏矩阵,在所述第二操作模式中,所述第一源矩阵和所述第二源矩阵都是密集矩阵,/n其中,当处于所述第一操作模式中时,所述第一源矩阵将以压缩格式被存储,所述压缩格式标识所述非零数据元素的位置,所述执行模块还包括:/n多个乘法累加模块,用于将所述第一源矩阵的所述非零数据元素与所述第二源矩阵中基于所述压缩格式中的所述位置标识出的对应数据元素相乘,以生成多个乘积,并将所述多个乘积与累加值相加来生成所述结果矩阵。/n

【技术特征摘要】
20180608 US 16/003,5451.一种处理器,包括:
用于存储数据的缓存;
被耦合到所述缓存的多个核,所述多个核中的核包括:
执行模块,用于执行至少一个指令,以根据所选择的操作模式执行针对第一源矩阵和第二源矩阵的乘法累加操作来生成结果矩阵,所述所选择的操作模式包括第一操作模式和第二操作模式,在所述第一操作模式中,至少所述第一源矩阵是具有位于特定位置处的非零数据元素的稀疏矩阵,在所述第二操作模式中,所述第一源矩阵和所述第二源矩阵都是密集矩阵,
其中,当处于所述第一操作模式中时,所述第一源矩阵将以压缩格式被存储,所述压缩格式标识所述非零数据元素的位置,所述执行模块还包括:
多个乘法累加模块,用于将所述第一源矩阵的所述非零数据元素与所述第二源矩阵中基于所述压缩格式中的所述位置标识出的对应数据元素相乘,以生成多个乘积,并将所述多个乘积与累加值相加来生成所述结果矩阵。


2.根据权利要求1所述的处理器,其中在所述第一源矩阵为稀疏矩阵的情况下,所述第一源矩阵将以压缩稀疏格式被存储,所述压缩稀疏格式包括指示符,所述指示符伴随每个矩阵元素并指定所述矩阵元素在所述第一源矩阵内的逻辑位置。


3.根据权利要求1所述的处理器,其中稀疏矩阵包括所具有的非零数据元素的比例小于或等于阈值的矩阵。


4.根据权利要求3所述的处理器,其中所述阈值包括值1。


5.根据权利要求1所述的处理器,其中所述指令用于指示所述所选择的操作模式。


6.根据权利要求5所述的处理器,其中所述指令包括用于指示所述第一操作模式的稀疏矩阵乘法指令或者用于指示所述第二操作模式的密集矩阵乘法指令。


7.根据权利要求1至6中任一项所述的处理器,其中当处于所述第二操作模式中时,所述多个乘法累加模块用于将所述第一源矩阵的包括任何零数据元素在内的数据元素与所述第二源矩阵的数据元素相乘。


8.根据权利要求1至6中任一项所述的处理器,其中所述执行模块可操作用于结合多个不同的数据类型来执行所述乘法累加操作,所述多个不同的数据类型用于对所述第一源矩阵、所述第二源矩阵和所述结果矩阵的数据元素进行编码。


9.根据权利要求8所述的处理器,其中所述数据类型包括以下项中的一项或多项:16位浮点、32位浮点、8位整数和16位整数。


10.根据权利要求7所述的处理器,其中所述指令包括多个字段,包括第一字段、第二字段、第三字段和第四字段,所述第一字段用于指定指示第一操作模式或...

【专利技术属性】
技术研发人员:马克·A·安德斯希曼殊·考尔萨努·马修
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1