用于增强的矩阵乘法器架构的装置、方法和系统.pdf
《用于增强的矩阵乘法器架构的装置、方法和系统.pdf》由会员分享,可在线阅读,更多相关《用于增强的矩阵乘法器架构的装置、方法和系统.pdf(87页完成版)》请在专利查询网上搜索。
1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 202010212647.6 (22)申请日 2020.03.24 (30)优先权数据 16/458,003 2019.06.29 US (71)申请人 英特尔公司 地址 美国加利福尼亚州 (72)发明人 A达斯谷普塔S沃拉 (74)专利代理机构 上海专利商标事务所有限公 司 31100 代理人 陈依心何焜 (51)Int.Cl. G06F 17/16(2006.01) (54)发明名称 用于增强的矩阵乘法器架构的装置、 方法和 系统 (57)摘要 描述了涉及增强的矩阵乘法器架构。
2、的系统、 方法和装置。 装置包括: 矩阵操作加速器, 具有乘 法器电路的网格; 第一矩阵; 第二矩阵; 解码器, 用于将单条指令解码; 以及执行电路, 用于执行 经解码的单条指令以: 将第一矩阵存储到相应时 控触发器中; 将第二矩阵的第一子集中的第一元 素存储到单个第一时控触发器中; 将第二矩阵的 第一子集中的第二元素存储到单个第二时控触 发器中; 将来自单个第一时控触发器的第一子集 中的第一元素与来自乘法器电路的第一子集中 的每个乘法器电路的时控触发器的相应元素相 乘; 以及将来自单个第二时控触发器的第一子集 中的第二元素与来自乘法器电路的第二子集中 的每个乘法器电路的时控触发器的相应元素相。
3、 乘。 权利要求书5页 说明书41页 附图40页 CN 112149050 A 2020.12.29 CN 112149050 A 1.一种装置, 包括: 矩阵操作加速器电路, 包括乘法器电路的二维网格; 第一多个寄存器, 表示第一二维矩阵, 所述第一多个寄存器耦合至所述矩阵操作加速 器电路; 第二多个寄存器, 表示第二二维矩阵, 所述第二多个寄存器耦合至所述矩阵操作加速 器电路; 核的解码器, 所述核耦合至所述矩阵操作加速器电路, 所述解码器用于将单条指令解 码为经解码的单条指令; 以及 所述核的执行电路, 用于执行所述经解码的单条指令以: 将来自所述第一多个寄存器的所述第一二维矩阵的每个元。
4、素存储到乘法器电路的所 述二维网格中的每个乘法器电路的相应时控触发器电路中, 将来自所述第二多个寄存器的所述第二二维矩阵的元素的第一合适子集中的第一元 素存储到单个第一时控触发器电路中, 所述单个第一时控触发器电路耦合至乘法器电路的 所述二维网格的乘法器电路的第一合适子集, 将来自所述第二多个寄存器的所述第二二维矩阵的元素的第一合适子集中的第二元 素存储到单个第二时控触发器电路中, 所述单个第二时控触发器电路耦合至乘法器电路的 所述二维网格的乘法器电路的第二合适子集, 将来自所述单个第一时控触发器电路的元素的第一合适子集中的第一元素与来自乘 法器电路的第一合适子集中的每个乘法器电路的时控触发器。
5、电路的相应元素相乘, 以生成 第一多个结果, 以及 将来自所述单个第二时控触发器电路的元素的第一合适子集中的第二元素与来自乘 法器电路的第二合适子集中的每个乘法器电路的时控触发器电路的相应元素相乘, 以生成 第二多个结果。 2.如权利要求1所述的装置, 其中, 将来自所述单个第一时控触发器电路的元素的第一 合适子集中的第一元素与来自乘法器电路的第一合适子集中的每个乘法器电路的时控触 发器电路的相应元素相乘和将来自所述单个第二时控触发器电路的元素的第一合适子集 中的第二元素与来自乘法器电路的第二合适子集中的每个乘法器电路的时控触发器电路 的相应元素相乘是同时的。 3.如权利要求1所述的装置, 其。
6、中, 元素的第一合适子集是所述第二二维矩阵的第一 行。 4.如权利要求1所述的装置, 其中, 所述核的所述执行电路用于执行所述经解码的单条 指令,以在生成所述第一多个结果和所述第二多个结果之后, 将来自所述第二多个寄存器的所述第二二维矩阵的元素的第二合适子集中的第一元 素存储到所述单个第一时控触发器电路中, 所述单个第一时控触发器电路耦合至乘法器电 路的所述二维网格的乘法器电路的第一合适子集, 将来自所述第二多个寄存器的所述第二二维矩阵的元素的第二合适子集中的第二元 素存储到所述单个第二时控触发器电路中, 所述单个第二时控触发器电路耦合至乘法器电 路的所述二维网格的乘法器电路的第二合适子集, 。
7、将来自所述单个第一时控触发器电路的元素的第二合适子集中的第一元素与来自乘 权利要求书 1/5 页 2 CN 112149050 A 2 法器电路的第一合适子集中的每个乘法器电路的时控触发器电路的相应元素相乘, 以生成 第三多个结果, 以及 将来自所述单个第二时控触发器电路的元素的第二合适子集中的第二元素与来自乘 法器电路的第二合适子集中的每个乘法器电路的时控触发器电路的相应元素相乘, 以生成 第四多个结果。 5.如权利要求4所述的装置, 其中, 所述矩阵操作加速器电路进一步包括耦合至乘法器 电路的所述二维网格的累加器电路, 并且所述核的所述执行电路用于执行所述经解码的单 条指令,以在生成所述第。
8、一多个结果、 所述第二多个结果、 所述第三多个结果和所述第四多 个结果之后, 将所述第一多个结果中的每一个的结果加到来自所述第二多个结果的相应结 果以产生第一多个累加结果, 并且将所述第三多个结果中的每一个的结果加到来自所述第 四多个结果的相应结果以产生第二多个累加结果。 6.如权利要求5所述的装置, 其中, 所述核的所述执行电路用于执行所述经解码的单条 指令, 以将所述第一多个累加结果和所述第二多个累加结果存储在所述第一多个寄存器或 所述第二多个寄存器中的一者中。 7.如权利要求5所述的装置, 其中, 所述核的所述执行电路用于执行所述经解码的单条 指令, 以将所述第一多个累加结果和所述第二多。
9、个累加结果存储在耦合至所述矩阵操作加 速器电路的第三多个寄存器中, 所述第三多个寄存器表示第三二维矩阵。 8.如权利要求4所述的装置, 其中, 所述核的所述执行电路用于执行所述经解码的单条 指令, 以将来自所述第一多个寄存器的所述第一二维矩阵的每个元素保留在乘法器电路的 所述二维网格中的每个乘法器电路的相应时控触发器电路中, 直到将来自所述单个第一时 控触发器电路的元素的第二合适子集中的第一元素与来自乘法器电路的第一合适子集中 的每个乘法器电路的时控触发器电路的相应元素的相乘以及将来自所述单个第二时控触 发器电路的元素的第二合适子集中的第二元素与来自乘法器电路的第二合适子集中的每 个乘法器电路。
10、的时控触发器电路的相应元素的相乘被完成。 9.一种方法, 包括: 利用核的解码器将单条指令解码为经解码的单条指令, 其中所述核耦合至包括乘法器 电路的二维网格的矩阵操作加速器电路, 并且所述矩阵操作加速器电路耦合至第一多个寄 存器和第二多个寄存器, 所述第一多个寄存器表示第一二维矩阵, 并且所述第二多个寄存 器表示第二二维矩阵; 以及 利用所述核的执行电路执行所述经解码的单条指令以: 将来自所述第一多个寄存器的所述第一二维矩阵的每个元素存储到乘法器电路的所 述二维网格中的每个乘法器电路的相应时控触发器电路中, 将来自所述第二多个寄存器的所述第二二维矩阵的元素的第一合适子集中的第一元 素存储到单。
11、个第一时控触发器电路中, 所述单个第一时控触发器电路耦合至乘法器电路的 所述二维网格的乘法器电路的第一合适子集, 将来自所述第二多个寄存器的所述第二二维矩阵的元素的第一合适子集中的第二元 素存储到单个第二时控触发器电路中, 所述单个第二时控触发器电路耦合至乘法器电路的 所述二维网格的乘法器电路的第二合适子集, 将来自所述单个第一时控触发器电路的元素的第一合适子集中的第一元素与来自乘 权利要求书 2/5 页 3 CN 112149050 A 3 法器电路的第一合适子集中的每个乘法器电路的时控触发器电路的相应元素相乘, 以生成 第一多个结果, 以及 将来自所述单个第二时控触发器电路的元素的第一合适。
12、子集中的第二元素与来自乘 法器电路的第二合适子集中的每个乘法器电路的时控触发器电路的相应元素相乘, 以生成 第二多个结果。 10.如权利要求9所述的方法, 其中, 将来自所述单个第一时控触发器电路的元素的第 一合适子集中的第一元素与来自乘法器电路的第一合适子集中的每个乘法器电路的时控 触发器电路的相应元素相乘和将来自所述单个第二时控触发器电路的元素的第一合适子 集中的第二元素与来自乘法器电路的第二合适子集中的每个乘法器电路的时控触发器电 路的相应元素相乘是同时的。 11.如权利要求9所述的方法, 其中, 元素的第一合适子集是所述第二二维矩阵的第一 行。 12.如权利要求9所述的方法, 其中, 。
13、执行所述经解码的单条指令进一步用于: 在生成所 述第一多个结果和所述第二多个结果之后, 将来自所述第二多个寄存器的所述第二二维矩阵的元素的第二合适子集中的第一元 素存储到所述单个第一时控触发器电路中, 所述单个第一时控触发器电路耦合至乘法器电 路的所述二维网格的乘法器电路的第一合适子集, 将来自所述第二多个寄存器的所述第二二维矩阵的元素的第二合适子集中的第二元 素存储到所述单个第二时控触发器电路中, 所述单个第二时控触发器电路耦合至乘法器电 路的所述二维网格的乘法器电路的第二合适子集, 将来自所述单个第一时控触发器电路的元素的第二合适子集中的第一元素与来自乘 法器电路的第一合适子集中的每个乘法。
14、器电路的时控触发器电路的相应元素相乘, 以生成 第三多个结果, 以及 将来自所述单个第二时控触发器电路的元素的第二合适子集中的第二元素与来自乘 法器电路的第二合适子集中的每个乘法器电路的时控触发器电路的相应元素相乘, 以生成 第四多个结果。 13.如权利要求12所述的方法, 其中, 所述矩阵操作加速器电路进一步包括耦合至乘法 器电路的所述二维网格的累加器电路, 并且执行所述经解码的单条指令进一步用于: 在生 成所述第一多个结果、 所述第二多个结果、 所述第三多个结果和所述第四多个结果之后, 将 所述第一多个结果中的每一个的结果加到来自所述第二多个结果的相应结果以产生第一 多个累加结果, 并且将。
15、所述第三多个结果中的每一个的结果加到来自所述第四多个结果的 相应结果以产生第二多个累加结果。 14.如权利要求13所述的方法, 其中, 执行所述经解码的单条指令进一步用于: 将所述 第一多个累加结果和所述第二多个累加结果存储在所述第一多个寄存器或所述第二多个 寄存器中的一者中。 15.如权利要求13所述的方法, 其中, 执行所述经解码的单条指令进一步用于: 将所述 第一多个累加结果和所述第二多个累加结果存储在耦合至所述矩阵操作加速器电路的第 三多个寄存器中, 所述第三多个寄存器表示第三二维矩阵。 16.如权利要求12所述的方法, 其中, 执行所述经解码的单条指令用于: 将来自所述第 权利要求书。
16、 3/5 页 4 CN 112149050 A 4 一多个寄存器的所述第一二维矩阵的每个元素保留在乘法器电路的所述二维网格中的每 个乘法器电路的相应时控触发器电路中, 直到将来自所述单个第一时控触发器电路的元素 的第二合适子集中的第一元素与来自乘法器电路的第一合适子集中的每个乘法器电路的 时控触发器电路的相应元素的相乘以及将来自所述单个第二时控触发器电路的元素的第 二合适子集中的第二元素与来自乘法器电路的第二合适子集中的每个乘法器电路的时控 触发器电路的相应元素的相乘被完成。 17.一种非暂态机器可读介质, 存储代码, 所述代码当由机器执行时使所述机器执行方 法, 所述方法包括: 利用核的解码。
17、器将单条指令解码为经解码的单条指令, 其中所述核耦合至包括乘法器 电路的二维网格的矩阵操作加速器电路, 并且所述矩阵操作加速器电路耦合至第一多个寄 存器和第二多个寄存器, 所述第一多个寄存器表示第一二维矩阵, 并且所述第二多个寄存 器表示第二二维矩阵; 以及 利用所述核的执行电路执行所述经解码的单条指令以: 将来自所述第一多个寄存器的所述第一二维矩阵的每个元素存储到乘法器电路的所 述二维网格中的每个乘法器电路的相应时控触发器电路中, 将来自所述第二多个寄存器的所述第二二维矩阵的元素的第一合适子集中的第一元 素存储到单个第一时控触发器电路中, 所述单个第一时控触发器电路耦合至乘法器电路的 所述二。
18、维网格的乘法器电路的第一合适子集, 将来自所述第二多个寄存器的所述第二二维矩阵的元素的第一合适子集中的第二元 素存储到单个第二时控触发器电路中, 所述单个第二时控触发器电路耦合至乘法器电路的 所述二维网格的乘法器电路的第二合适子集, 将来自所述单个第一时控触发器电路的元素的第一合适子集中的第一元素与来自乘 法器电路的第一合适子集中的每个乘法器电路的时控触发器电路的相应元素相乘, 以生成 第一多个结果, 以及 将来自所述单个第二时控触发器电路的元素的第一合适子集中的第二元素与来自乘 法器电路的第二合适子集中的每个乘法器电路的时控触发器电路的相应元素相乘, 以生成 第二多个结果。 18.如权利要求。
19、17所述的非暂态机器可读介质, 其中, 将来自所述单个第一时控触发器 电路的元素的第一合适子集中的第一元素与来自乘法器电路的第一合适子集中的每个乘 法器电路的时控触发器电路的相应元素相乘和将来自所述单个第二时控触发器电路的元 素的第一合适子集中的第二元素与来自乘法器电路的第二合适子集中的每个乘法器电路 的时控触发器电路的相应元素相乘是同时的。 19.如权利要求17所述的非暂态机器可读介质, 其中, 元素的第一合适子集是所述第二 二维矩阵的第一行。 20.如权利要求17所述的非暂态机器可读介质, 其中, 执行所述经解码的单条指令进一 步用于: 在生成所述第一多个结果和所述第二多个结果之后, 将来。
20、自所述第二多个寄存器的所述第二二维矩阵的元素的第二合适子集中的第一元 素存储到所述单个第一时控触发器电路中, 所述单个第一时控触发器电路耦合至乘法器电 路的所述二维网格的乘法器电路的第一合适子集, 权利要求书 4/5 页 5 CN 112149050 A 5 将来自所述第二多个寄存器的所述第二二维矩阵的元素的第二合适子集中的第二元 素存储到所述单个第二时控触发器电路中, 所述单个第二时控触发器电路耦合至乘法器电 路的所述二维网格的乘法器电路的第二合适子集, 将来自所述单个第一时控触发器电路的元素的第二合适子集中的第一元素与来自乘 法器电路的第一合适子集中的每个乘法器电路的时控触发器电路的相应元。
21、素相乘, 以生成 第三多个结果, 以及 将来自所述单个第二时控触发器电路的元素的第二合适子集中的第二元素与来自乘 法器电路的第二合适子集中的每个乘法器电路的时控触发器电路的相应元素相乘, 以生成 第四多个结果。 21.如权利要求20所述的非暂态机器可读介质, 其中, 所述矩阵操作加速器电路进一步 包括耦合至乘法器电路的所述二维网格的累加器电路, 并且执行所述经解码的单条指令进 一步用于: 在生成所述第一多个结果、 所述第二多个结果、 所述第三多个结果和所述第四多 个结果之后, 将所述第一多个结果中的每一个的结果加到来自所述第二多个结果的相应结 果以产生第一多个累加结果, 并且将所述第三多个结果。
22、中的每一个的结果加到来自所述第 四多个结果的相应结果以产生第二多个累加结果。 22.如权利要求21所述的非暂态机器可读介质, 其中, 执行所述经解码的单条指令进一 步用于: 将所述第一多个累加结果和所述第二多个累加结果存储在所述第一多个寄存器或 所述第二多个寄存器中的一者中。 23.如权利要求21所述的非暂态机器可读介质, 其中, 执行所述经解码的单条指令进一 步用于: 将所述第一多个累加结果和所述第二多个累加结果存储在耦合至所述矩阵操作加 速器电路的第三多个寄存器中, 所述第三多个寄存器表示第三二维矩阵。 24.如权利要求20所述的非暂态机器可读介质, 其中, 执行所述经解码的单条指令用 于。
23、: 将来自所述第一多个寄存器的所述第一二维矩阵的每个元素保留在乘法器电路的所述 二维网格中的每个乘法器电路的相应时控触发器电路中, 直到将来自所述单个第一时控触 发器电路的元素的第二合适子集中的第一元素与来自乘法器电路的第一合适子集中的每 个乘法器电路的时控触发器电路的相应元素的相乘以及将来自所述单个第二时控触发器 电路的元素的第二合适子集中的第二元素与来自乘法器电路的第二合适子集中的每个乘 法器电路的时控触发器电路的相应元素的相乘被完成。 权利要求书 5/5 页 6 CN 112149050 A 6 用于增强的矩阵乘法器架构的装置、 方法和系统 技术领域 0001 本公开总体上关于电子学, 。
24、更具体地, 本公开的实施例关于增强的矩阵乘法器电 路。 背景技术 0002 处理器或处理器集合执行来自指令集(例如, 指令集架构(ISA)的指令。 指令集是 计算机架构的关于编程的部分, 并且一般包括原生数据类型、 指令、 寄存器架构、 寻址模式、 存储器架构、 中断和异常处置以及外部输入和输出(I/O)。 应当注意, 术语 “指令” 在本文中 可以指宏指令或指微指令, 该宏指令例如提供给处理器供执行的指令, 该微指令例如由处 理器的解码器对宏指令解码所产生的指令。 附图说明 0003 在所附附图中以示例方式而非限制方式来图示本公开, 在附图中, 类似的附图标 记指示类似的要素, 其中: 00。
25、04 图1A图示经配置的片的实施例。 0005 图1B图示经配置的片的实施例。 0006 图2图示矩阵存储的若干示例。 0007 图3图示利用矩阵(片)操作加速器的系统的实施例。 0008 图4和图5示出如何使用矩阵操作加速器来共享存储器的不同实施例。 0009 图6图示使用片的矩阵乘法累加操作( “TMMA” )的实施例。 0010 图7图示链式融合乘法累加指令的迭代的执行的子集的实施例。 0011 图8图示链式融合乘法累加指令的迭代的执行的子集的实施例。 0012 图9图示链式融合乘法累加指令的迭代的执行的子集的实施例。 0013 图10图示链式融合乘法累加指令的迭代的执行的子集的实施例。。
26、 0014 图11图示根据实施例的尺寸为2的幂的SIMD实现方式, 其中, 累加器使用比至乘法 器的输入的尺寸大的输入尺寸。 0015 图12图示利用矩阵操作电路的系统的实施例。 0016 图13图示处理器核流水线的实施例, 该处理器核流水线支持使用片的矩阵操作。 0017 图14图示处理器核流水线的实施例, 该处理器核流水线支持使用片的矩阵操作。 0018 图15图示按行为主格式和列为主格式表达的矩阵的示例。 0019 图16图示矩阵(片)的使用的示例。 0020 图17图示矩阵(片)的使用的方法的实施例。 0021 图18图示根据实施例的对片的使用的配置的支持。 0022 图19图示将支持。
27、的矩阵(片)的描述的实施例。 0023 图20A-图20D图示(多个)寄存器的示例。 0024 图21图示根据本公开的实施例的矩阵操作电路。 说明书 1/41 页 7 CN 112149050 A 7 0025 图22图示根据本公开的实施例的矩阵乘法操作。 0026 图23图示根据本公开的实施例的包括增强的矩阵乘法器架构的矩阵操作电路。 0027 图24图示根据本公开的实施例的硬件处理器, 其耦合至包括一条或多条矩阵乘法 转移(offload)指令的存储。 0028 图25图示根据本公开的实施例的处理矩阵乘法转移指令的方法。 0029 图26A是图示根据本公开的实施例的通用向量友好指令格式及其。
28、A类指令模板的 框图。 0030 图26B是图示根据本公开的实施例的通用向量友好指令格式及其B类指令模板的 框图。 0031 图27A是图示根据本公开的实施例的用于图26A和图26B中的通用向量友好指令格 式的字段的框图。 0032 图27B是图示根据本公开的一个实施例的构成完整操作码字段的图27A中的专用 向量友好指令格式的字段的框图。 0033 图27C是图示根据本公开的一个实施例的构成寄存器索引字段的图27A中的专用 向量友好指令格式的字段的框图。 0034 图27D是图示根据本公开的一个实施例的构成扩充操作字段2650的图27A中的专 用向量友好指令格式的字段的框图。 0035 图28。
29、是根据本公开的一个实施例的寄存器架构的框图。 0036 图29A是图示根据本公开的实施例的示例性有序流水线和示例性的寄存器重命名 的乱序发布/执行流水线两者的框图。 0037 图29B是图示根据本公开的实施例的要包括在处理器中的有序架构核的示例性实 施例和示例性的寄存器重命名的乱序发布/执行架构核两者的框图。 0038 图30A是根据本公开的实施例的单个处理器核以及其到管芯上互连网络的连接以 及它的第2级(L2)高速缓存的本地子集的框图。 0039 图30B是根据本公开的实施例的图30A中的处理器核的一部分的展开图。 0040 图31是根据本公开的实施例的可具有多于一个的核、 可具有集成存储器。
30、控制器、 并且可具有集成图形器件的处理器的框图。 0041 图32是根据本公开的一个实施例的系统的框图。 0042 图33是根据本公开的实施例的更具体的示例性系统的框图。 0043 图34示出的是根据本公开的实施例的第二更具体的示例性系统的框图。 0044 图35示出的是根据本公开的实施例的芯片上系统(SoC)的框图。 0045 图36是根据本公开的实施例的对照使用软件指令转换器将源指令集中的二进制 指令转换成目标指令集中的二进制指令的框图。 0046 具体实施方式 0047 在下列描述中, 阐述了众多特定细节。 然而, 应当理解, 实施例可在没有这些特定 细节的情况下实施。 在其他实例中, 。
31、未详细示出公知的电路、 结构和技术, 以免混淆对本描 述的理解。 说明书 2/41 页 8 CN 112149050 A 8 0048 说明书中对 “一个实施例” 、“实施例” 、“示例实施例” 等的引用表明所描述的实施 例可以包括特定的特征、 结构或特性, 但是每个实施例可能不一定都包括该特定的特征、 结 构或特性。 此外, 此类短语不一定是指同一个实施例。 此外, 当结合实施例描述特定的特征、 结构或特性时, 认为结合无论是否被明确描述的其他实施例而影响此类特征、 结构或特性 是在本领域技术人员的知识范围之内的。 0049 在诸如机器学习和其他批量数据处理之类的许多计算任务中, 矩阵可能正。
32、变得日 益重要。 深度学习是一类机器学习算法。 诸如深度神经网络的深度学习架构可被应用于包 括计算机视觉、 语音识别、 自然语言处理、 音频识别、 社交网络过滤、 机器翻译、 生物信息学 和药物设计的领域。 0050 用于深度学习的两种工具推理和训练可利用低精度算术。 使深度学习算法和计算 的吞吐量最大化可以辅助满足深度学习处理器的需求, 深度学习处理器例如在数据中心中 执行深度学习的那些处理器。 0051 矩阵-矩阵乘法(也称为GEMM或通用矩阵乘法)是在某些处理器上的重计算操作。 用于矩阵乘法(例如, GEMM)的特殊硬件是用于改善诸如深度学习之类的某些应用的峰值计 算(和能效)的好的选项。
33、。 只要输出元素具有足够的位(例如, 多于输出), 这些应用中的一 些, 包括深度学习, 就可以对具有相对少的位的输入数据元素进行操作而不损失准确度。 0052 在某些处理器中, 处置矩阵是困难的和/或指令密集性任务。 例如, 可将矩阵的多 行置入多个紧缩数据(例如, SIMD或向量)寄存器中, 随后可单独地对矩阵的多行进行操作。 例如, 取决于数据尺寸, 将两个8x2(例如, 行乘列)矩阵相加可能要求加载或聚集到四个紧 缩数据寄存器中。 然后, 执行与来自每个矩阵的第一行对应的紧缩数据寄存器的第一加法 并且执行与来自每个矩阵的第二行对应的紧缩数据寄存器的第二加法。 随后, 将所得到的 紧缩数。
34、据寄存器往回分散到存储器。 尽管对于小矩阵而言, 该场景可能是可接受的, 但是对 于较大矩阵通常是不可接受的。 讨论 0053 本文中描述的是用于在诸如中央处理单元(CPU)、 图形处理单元(GPU)和加速器之 类的计算机硬件中支持矩阵操作的机制。 矩阵操作利用表示存储器的一个或多个紧缩区域 (诸如, 寄存器)的2维(2-D)数据结构。 贯穿本说明书, 这些2-D数据结构被称为片。 注意, 矩 阵可以比片小(例如, 使用少于片的全部), 或可利用多个片(例如, 矩阵大于任一片的尺 寸)。 贯穿本说明书, 使用矩阵(片)语言来指示使用影响矩阵的片来执行的操作; 矩阵是否 大于任一片通常是不相关的。
35、。 0054 每个片可由不同的操作来作用, 这些操作诸如本文中详述的那些操作, 包括但不 限于: 矩阵(片)乘法、 片加法、 片减法、 片对角线、 片归零、 片变换、 片点积、 片广播、 片行广 播、 片列广播、 片乘法、 片乘法和累加、 片移动, 等等。 此外, 在未来可以与这些操作一起使用 或为了支持非数值应用而使用对诸如使用缩放和/或偏置的操作器的支持, 非数值应用例 如, OpenCL “本地存储器” 、 数据压缩/解压缩, 等等。 本文中还描述了用于执行模板印制配置 和计算指令的指令。 0055 存储(诸如, (非易失性和易失性的)存储器、 寄存器、 高速缓存等)的多个部分被布 置为。
36、具有不同横向尺度和纵向尺度的片。 例如, 片可具有横向尺度4(例如, 矩阵的四行)和 纵向尺度8(例如, 矩阵的8列)。 典型地, 横向尺度与元素尺寸(例如, 2位、 4位、 8位、 16位、 32 说明书 3/41 页 9 CN 112149050 A 9 位、 64位、 128位等)相关。 可支持多种数据类型(单精度浮点、 双精度浮点、 整数等)。 经配置的片的示例性使用 0056 在一些实施例中, 可配置片参数。 例如, 可配置给定的片以提供片选项。 示例性片 选项包括但不限于: 片的行数、 片的列数、 片是否为有效以及片是否由相等尺寸的片对组 成。 0057 图1A图示经配置的片的实施。
37、例。 如图所示, 应用存储器102的4kB具有存储于其上 的4个(例如, 1千字节(1kB)的)片片t0 104、 片t1 106、 片t2 108和片t3 110。 在该示例 中, 这4个片不由对组成, 并且每个片具有以行和列布置的元素。 片t0 104和片t1 106具有K 行和N列的4字节元素(例如, 单精度数据), 其中K8, 且N32。 片t2 108和片t3110具有K行 和N/2列的8字节元素(例如, 双精度数据)。 由于双精度操作数的宽度是单精度操作数的两 倍, 因此该配置与用于提供片选项的调色板一致, 将至少4kB的总存储提供给至少4个名称。 在操作中, 可使用加载操作和存储。
38、操作从存储器加载片以及向存储器存储片。 取决于所使 用的指令编码方案, 可用的应用存储器的量以及可用片的尺寸、 数量和配置有所不同。 0058 图1B图示经配置的片的实施例。 如图所示, 应用存储器122的4kB具有存储于其上 的2对1kB的片, 第一对是片t4L 124和片t4R 126, 第二对是片t5L 128和片t5R 130。 如图所 示, 片对被划分为左片和右片。 在其他实施例中, 片对被划分为偶数片和奇数片。 在该示例 中, 这4个片各自都具有以行和列布置的元素。 片t4L 124和片t4R 126具有K行和N列的4字 节元素(例如, 单精度浮点数据), 其中K8, 且N32。 。
39、片t5L 128和片t5R 130具有K行和N/2 列的8字节元素(例如, 双精度浮点数据)。 由于双精度操作数的宽度是单精度操作数的两 倍, 因此该配置与用于提供片选项的调色板一致, 将至少4kB的总存储提供给至少2个名称。 图1A的四个片使用4个名称, 每一个名称对1kB的片命名, 而图1B中的2个片对可使用2个名 称来指定成对的片。 在一些实施例中, 片指令接受成对的片的名称作为操作数。 在操作中, 可使用加载操作和存储操作从存储器加载片以及向存储器存储片。 取决于所使用的指令编 码方案, 可用的应用存储器的量以及可用片的尺寸、 数量和配置有所不同。 0059 在一些实施例中, 片参数是。
40、可定义的。 例如,“调色板” 用于提供片选项。 示例性选 项包括但不限于: 片名称的数量、 存储的行中的字节数、 片中的行数和列数, 等等。 例如, 片 的最大 “高度” (行数)可定义为: 0060 片最大行所构造的存储/(调色板名称的数量*每行的字节数)。 0061 由此, 可写入应用, 使得名称的固定使用将能够利用跨实现方式的不同存储尺寸。 0062 使用片配置( “TILECONFIG” )指令完成对片的配置, 其中, 在所选择的调色板中定 义特定的片使用。 该声明包括要使用的片名称的数量、 每个名称(片)的所请求的行数和列 数, 并且在一些实施例中包括每个片的所请求的数据类型。 在一。
41、些实施例中, 在TILECONFIG 指令的执行期间执行一致性校验, 以确定其匹配调色板条目的限制。 示例性片存储类型 0063 图2图示矩阵存储的若干示例。 在(A)中, 片被存储在存储器中。 如图所示, 每 “行” 由四个紧缩数据元素组成。 为了达到下一 “行” , 使用跨步值。 注意, 行可被连续地存储在存 储器中。 当片存储不映射底层存储器阵列行宽度时, 跨步式存储器访问允许对一行以及随 后对下一行的访问。 0064 从存储器加载片以及向存储器存储片典型地是从应用存储器到紧缩的数据行的 说明书 4/41 页 10 CN 112149050 A 10 跨步式访问。 示例性TILELOAD。
42、和TILESTORE指令或对于作为加载操作指令中的TILE(片)操 作数的应用存储器的其他指令参考在一些实施例中是可重新开始的, 以针对每条指令处置 (高达)2*行的页错误、 未掩码的浮点异常和/或中断。 0065 在(B)中, 矩阵存储在由多个寄存器组成的片中, 这些寄存器诸如, 紧缩数据寄存 器(单指令多数据(SIMD)或向量寄存器)。 在该示例中, 片被叠加在三个物理寄存器上。 典型 地, 使用连续的寄存器, 然而, 情况不必是这样。 0066 在(C)中, 矩阵被存储在可由在片操作中使用的融合乘法累加(FMA)电路访问的非 寄存器存储中的片中。 该存储可在FMA内部, 或邻近FMA。 。
43、此外, 在一些实施例中, 如下文所讨 论, 该存储可用于数据元素, 而不是用于整个行或整个片。 0067 经由CPUID报告TMMA架构的所支持的参数。 在一些实施例中, 信息列表包括最大高 度和最大SIMD尺度。 配置TMMA架构要求指定每个片的尺度、 每个片的元素尺寸以及调色板 标识符。 通过执行TILECONFIG指令来完成该配置。 0068 TILECONFIG指令的成功执行启用后续的TILE操作器。 TILERELEASEALL指令清除片 配置, 并禁用TILE操作(直到下一TILECONFIG指令执行)。 在一些实施例中, 在使用片的上下 文切换中使用XSAVE、 XSTORE等。。
44、 在一些实施例中, 在XSAVE中使用2个XCR0位, 一个用于 TILECONFIG元数据, 一个位与实际的片有效载荷数据对应。 0069 TILECONFIG不仅配置片使用, 还设置状态变量, 该状态变量指示在片经配置的情 况下程序在代码区域中。 实现方式可枚举对可与片区域一起使用的其他指令的限制, 诸如, 没有对现有寄存器组的使用, 等等。 0070 退出片区域典型地利用TILERELEASEALL指令来完成。 该指令不取参数并迅速使所 有片无效(指示数据不再需要任何保存或恢复), 并且清除与处于片区域中对应的内部状 态。 0071 在一些实施例中, 片操作将使超出由片配置指定的尺度的任。
45、何行和任何列归零。 例如, 随着每一行被写入, 片操作将使超出所配置的列数(将元素的尺寸考虑在内)的数据 归零。 例如, 对于64字节的行以及配置有10行和12列的片, 写入FP32元素的操作将以12*4字 节向前10行中的每一行写入输出/结果数据, 并且使每一行中的其余的4*4字节归零。 片操 作还对前10个经配置的行之后的任何行完全归零。 当使用具有64字节的行的1K的片时, 将 会有16行, 因此, 在该示例中, 最后6行也将被归零。 0072 在一些实施例中, 当加载数据时, 上下文恢复指令(例如, XRSTOR)强制使超出片的 所配置的行的数据将被维持为零。 如果没有有效配置, 则所。
46、有行被归零。 对片数据的XRSTOR 能够加载超出那些所配置的列的列中的无用信息。 XRSTOR对超出所配置的列数进行清除不 应当是可能的, 因为不存在与片配置相关联的元素宽度。 0073 当将整个TILE存储区写入存储器时, 上下文保存(例如, XSAVE)暴露整个TILE存储 区。 如果XRSTOR将无用数据加载到片的最右边部分中, 则将由XSAVE保存那个数据。 对于超 出为每个片指定的数量的行, XSAVE将写入零。 0074 在一些实施例中, 片指令是可重新开始的。 访问存储器的操作允许在页错误之后 重新开始。 凭借受控制和/或状态寄存器控制的对异常的掩码, 处理浮点操作的计算指令也。
47、 允许未掩码的浮点异常。 0075 为了支持在这些事件后重新开始指令, 这些指令将信息存储在下文详述的起始寄 说明书 5/41 页 11 CN 112149050 A 11 存器中。 矩阵(片)操作系统 示例性硬件支持 0076 图3图示利用矩阵(片)操作加速器的系统的实施例。 在该图示中, 主机处理器/处 理系统301将命令311(例如, 矩阵操纵操作, 诸如, 算术或矩阵操纵操作、 或加载和存储操 作)传递至矩阵操作加速器307。 然而, 这以这种方式示出, 仅用于讨论的目的。 如稍后所详 述, 该加速器307可以是处理核的部分。 典型地, 作为片操纵操作器指令的命令311将片称为 寄存器。
48、-寄存器( “reg-reg” )或寄存器-存储器( “reg-mem” )格式。 诸如TILESTORE、 TILELOAD、 TILECONFIG等的其他命令不对片执行数据操作。 命令可以是供加速器307处置的 经解码的指令(例如, 微操作)或宏指令。 0077 在该示例中, 一致性存储器接口303耦合至主机处理器/处理系统301和矩阵操作 加速器307, 使得它们能够共享存储器。 图4和图5示出如何使用矩阵操作加速器来共享存储 器的不同实施例。 如图4中所示, 主机处理器401和矩阵操作加速器电路405共享同一存储器 403。 图5图示其中主机处理器501和矩阵操作加速器505不共享存储。
49、器, 但可访问彼此的存 储器的实施例。 例如, 处理器501可访问片存储器507, 并照常利用其主机存储器503。 类似 地, 矩阵操作加速器505可访问主机存储器503, 但更典型地使用其自身的存储器507。 注意, 这些存储器可以是不同类型的。 0078 在一些实施例中, 使用在物理寄存器上的叠加结构来支持片。 例如, 取决于实现方 式, 片可以利用16个1024位的寄存器、 32个512位的寄存器, 等等。 在一些实施例中, 矩阵操 作利用表示存储器的一个或多个紧缩区域(诸如, 寄存器)的2维(2-D)数据结构。 贯穿本说 明书, 这些2-D数据结构被称为片或片寄存器。 0079 在一些。
50、实施例中, 矩阵操作加速器307包括耦合至数据缓冲器305的多个FMA 309 (在一些实现方式中, 这些缓冲器305中的一个或多个被存储在如图所示的网格的FMA中)。 数据缓冲器305可对从存储器加载的片和/或向存储器存储的片进行缓冲(例如, 使用片加 载或片存储指令)。 数据缓冲器可以从多个寄存器源送数据。 典型地, 这些FMA被布置为能够 读取和写入片的链式FMA 309的网格。 在该示例中, 矩阵操作加速器307用于使用片T0、 T1和 T2来执行矩阵乘法操作。 片中的至少一个片被容纳在FMA网格309中。 在一些实施例中, 操作 中的所有片都被存储在FMA网格309中。 在其他实施例。
- 内容关键字: 用于 增强 矩阵 乘法器 架构 装置 方法 系统
高精度的低重频窄脉冲延迟控制电路.pdf
重金属污染土壤修复装置.pdf
微型扬声器音腔焊接装置.pdf
测试无人机避障功能的训练迷宫.pdf
半导体老化检测装置.pdf
车用尿素液的生产配比装置.pdf
管材转运稳定输送装置.pdf
灯光积木块.pdf
空压机滤芯.pdf
化工桶倒料机构.pdf
旋转式远端帽.pdf
细胞分类恒温箱.pdf
煤粉传输带用残余清洁机构.pdf
生物基可降解纤维面料生产用喂纱机构及针织大圆机.pdf
卷扬机调速机构.pdf
烧伤整形植皮辅助设备.pdf
快速充电电池组结构.pdf
高效率的废边吸附平台.pdf
变排量汽车空调压缩机后盖气动立式定心夹具.pdf
建筑保温板切割装置.pdf
高炉烟灰布袋除尘输灰系统.pdf
提高挤浆机的脱水装置.pdf
无人驾驶汽车辅助检修装置.pdf
类蛇毒肽的制备方法.pdf
中控系统探测方法、装置、设备及存储介质.pdf
有机电致发光材料及其制备方法与应用.pdf
涤纶线抗拉强度检测方法.pdf
与印度南瓜侧枝数量相关基因连锁的分子标记及应用.pdf
LED显示装置.pdf
云台摄像机及控制系统.pdf
高含有机质渣土低碳固化材料及其制备方法和应用.pdf
基于图像视觉处理的基坑位移监测系统.pdf
车牌号码识别方法、装置、电子设备及存储介质.pdf
信号灯的控制方法、装置、计算机设备和存储介质.pdf
恶意软件作者地理位置定位方法、设备、存储介质及装置.pdf
对账清算方法及装置.pdf
压电MEMS麦克风及压电MEMS麦克风的制备方法.pdf
基于自适应批规范化的神经网络模型剪枝方法及系统.pdf
基于学科树聚类的作者消歧方法及装置.pdf
用于复合肥生产销售二维码防伪溯源系统.pdf
信号处理装置、方法及电子设备.pdf
用于与车载单元进行安全通信的方法及系统.pdf
基于向量化异常处理的软件保护方法.pdf
基于局部二值模式和深度学习的合成人脸图像取证方法.pdf
超高频RFID电子标签及其制备方法.pdf
风险智能评估方法.pdf
对讲机中继管理的方法和装置.pdf
公路养护的二维码身份识别方法及系统.pdf
多尺度融合的食品图像分类模型训练及图像分类方法.pdf
危险化学品安全运输监控方法、存储介质及控制终端.pdf
中文事件的检测方法和系统.pdf