当前位置: 首页 > 专利查询>苹果公司专利>正文

矩阵计算引擎制造技术

技术编号:38687309 阅读:12 留言:0更新日期:2023-09-02 23:00
本公开涉及矩阵计算引擎。在一个实施方案中,矩阵计算引擎被配置为执行矩阵计算(例如,矩阵乘法)。在一个实施方案中,矩阵计算引擎可并行执行多次矩阵计算。更具体地,矩阵计算引擎可被配置为对输入矩阵元素并行地执行多次乘法运算,从而生成所得矩阵元素。在一个实施方案中,矩阵计算引擎可被配置为在结果存储器中累加结果,从而对每个矩阵的每个矩阵元素执行乘法累加运算。行乘法累加运算。行乘法累加运算。

【技术实现步骤摘要】
矩阵计算引擎
[0001]本分案申请是基于申请号为201880071101.4,申请日为2018年10月18日,专利技术名称为“矩阵计算引擎”的中国专利申请的分案申请。


[0002]本文所述的实施方案涉及用于在基于处理器的系统中执行矩阵运算的电路。

技术介绍

[0003]在现代计算系统中执行的各种工作负载依赖于大量的矩阵乘法。例如,某些长期记忆(LSTM)学习算法用于各种情景,诸如语言检测、读卡器、自然语言处理和手写处理等。LSTM处理包括许多矩阵乘法。矩阵乘法可以是例如小整数,但是其数量非常多。此类运算在通用中央处理单元(CPU)上即使是具有矢量指令的CPU上性能也很低,而功耗非常高。低性能高功率工作负载对任何计算系统都是问题,但对于电池供电系统尤其是个问题。

技术实现思路

[0004]在一个实施方案中,矩阵计算引擎被配置为执行矩阵计算(例如,矩阵乘法)。在一个实施方案中,矩阵计算引擎可并行执行多次矩阵计算。更具体地,矩阵计算引擎可被配置为对输入矩阵元素并行地执行多次乘法运算,从而生成所得矩阵元素。在一个实施方案中,矩阵计算引擎可被配置为在结果存储器中累加结果,从而对每个矩阵的每个矩阵元素执行乘法累加运算。例如,与通用处理器(甚至具有矢量指令的处理器)相比,矩阵计算引擎在一个实施方案中可以是高性能和高功效的。
附图说明
[0005]下面的详细描述参照附图,现在对这些附图进行简要说明。
[0006]图1是处理器、矩阵计算引擎和低级高速缓存的一个实施方案的框图。
[0007]图2是示出了用于图1中所示的矩阵计算引擎的X、Y和Z存储器和乘法累加(MAC)电路的一个实施方案的框图。
[0008]图3是示出了用于一个实施方案的生成结果矩阵元素的MAC中的一个MAC的框图。
[0009]图4是示出了用于一个实施方案的矩阵元素值重映射的框图。
[0010]图5是可用于处理器和矩阵计算引擎的一个实施方案的指令表。
[0011]图6是系统的一个实施方案的框图。
[0012]图7是计算机可访问存储介质的一个实施方案的框图。
[0013]尽管本公开中所述的实施方案可受各种修改形式和另选形式的影响,但其具体实施方案在附图中以举例的方式示出并将在本文中详细描述。然而,应当理解,附图和对其的具体实施方式不旨在将实施方案限制为所公开的特定形式,而相反,本专利技术旨在涵盖落入所附权利要求书的实质和范围内的所有修改、等同物和另选方案。本文所使用的标题仅用于组织目的,并不旨在用于限制说明书的范围。如在整个本申请中所使用的那样,以允许的
意义(即,意味着具有可能性)而非强制的意义(即,意味着必须)使用“可能”一词。类似地,字词“包括”、“包含”是指包括但不限于。
[0014]在本公开内,不同实体(其可被不同地称为“单元”、“电路”、其他部件等等)可被描述或声称成“被配置为”执行一个或多个任务或操作。此表达方式—被配置为[执行一个或多个任务]的[实体]—在本文中用于指代结构(即,物理的事物,诸如电子电路)。更具体地,此表达方式用于指示此结构被布置成在操作期间执行一个或多个任务。结构可被描述成“被配置为”执行某个任务,即使该结构当前并非正被操作亦如此。“被配置为生成输出时钟信号的时钟电路”旨在涵盖例如在操作期间执行该功能的电路,即使所涉及的电路当前并非正被使用(例如该电路并未连接到电源)。因此,被描述或表述成“被配置为”执行某个任务的实体是指物理的事物,诸如设备、电路、存储可执行以实施该任务的程序指令的存储器等。该短语在本文中不被用于指代无形的事物。通常,形成与“被配置为”对应的结构的电路可包括硬件电路。硬件电路可包括以下项的任意组合:组合式逻辑电路、时钟存储设备(诸如触发器、寄存器、锁存器等)、有限状态机、存储器(诸如静态随机存取存储器或嵌入式动态随机存取存储器)、定制设计电路、模拟电路、可编程逻辑阵列等。类似地,为了描述方便,可将各种单元/电路/部件描述为执行一个或多个任务。此类描述应当被解释为包括短语“被配置为”。
[0015]术语“被配置为”并不旨在表示“可被配置为”。例如,未经编程的FPGA不会被认为是“被配置为”执行某个特定功能,虽然其可能“可被配置为”执行该功能。在适当编程之后,FPGA然后可被配置为执行该功能。
[0016]所附权利要求书中表述被配置为执行一个或多个任务的单元/电路/部件或其他结构明确地旨在对该项权利要求不援引35U.S.C.
§
112(f)的解释。于是,所提交的本申请中没有任何权利要求旨在要被解释为具有装置



功能要素。如果申请人在申请过程中想要援引112(f)部分,则其将利用“用于”[执行功能]“的装置”结构来表述权利要求的要素。
[0017]在实施方案中,可通过以硬件描述语言(HDL)诸如Verilog或VHDL对电路的描述进行编码来实现根据本公开的硬件电路。可针对为给定集成电路制造技术设计的单元库来合成HDL描述,并可出于定时、功率和其他原因而被修改,以获得可被传输到工厂以生成掩模并最终产生集成电路的最终的设计数据库。一些硬件电路或其部分也可在示意图编辑器中被定制设计并与合成电路一起被捕获到集成电路设计中。该集成电路可包括晶体管并还可包括其他电路元件(例如,无源元件,诸如电容器、电阻器、电感器等),以及晶体管和电路元件之间的互连件。一些实施方案可实现耦接在一起的多个集成电路,以实现硬件电路,和/或可在一些实施方案中使用离散元件。另选地,HDL设计可被合成为可编程逻辑阵列诸如现场可编程门阵列(FPGA)并且可在FPGA中实现。
[0018]如本文所用,术语“基于”或“取决于”用于描述影响确定的一个或多个因素。此术语不排除可能有附加因素可影响确定。也就是说,确定可仅基于指定的因素或基于所指定的因素及其他未指定的因素。考虑短语“基于B确定A”。这个短语指定B是用于确定A的因素或者其影响A的确定。这个短语并不排除A的确定也可能基于某个其他因素诸如C。这个短语还旨在涵盖A仅基于B来确定的实施方案。如本文所用,短语“基于”与短语“至少部分地基于”是同义的。
[0019]本说明书包括对各种实施方案的参考,以指示本公开并非旨在提及一个特定具体
实施,而是提及落入包括所附权利要求书的本公开的实质内的一系列实施方案。特定特征、结构或特性可以与本公开一致的任何合适的方式被组合。
具体实施方式
[0020]现在转向图1,示出了包括处理器12、矩阵计算引擎10和低级高速缓存14的装置的一个实施方案的框图。在例示的实施方案中,处理器12耦接到低级高速缓存14和矩阵计算引擎10。在一些实施方案中,矩阵计算引擎10也可耦接到低级高速缓存14,和/或可耦接到处理器12中的数据高速缓存(DCache)16。处理器12还可包括指令高速缓存(ICache)18、一个或多个流水线级20A

20N。流水线级20A

20N本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种装置,包括:处理器,所述处理器被配置为获取第一指令;和计算引擎,所述计算引擎耦接到所述处理器,其中:所述计算引擎包括被配置为存储元素的输入矢量的至少两个输入存储器和被配置为累加元素的输出矢量的输出存储器;并且所述计算引擎包括乘法累加MAC电路,所述MAC电路耦接到所述至少两个输入存储器,并且被配置为响应于所述第一指令,对具有第一大小的元素的矢量执行乘法累加运算,从而生成用于所述输出存储器的元素的所述输出矢量;并且所述计算引擎包括查找表,所述查找表被编程为将小于所述第一大小的第二大小的第一元素映射到所述第一大小的第二元素,其中所述第一元素从所述输入存储器中的至少一个提供,并且其中所述第二元素是被提供给所述MAC电路的具有所述第一大小的元素的矢量中的一个矢量,并且其中所述查找表被存储在所述至少两个输入存储器中的一者中。2.根据权利要求1所述的装置,其中所述输入矢量和输出矢量是矩阵的矢量,并且其中所述MAC电路包括多个MAC,每个MAC被配置为生成所述输出矢量中的一个矩阵的一个矩阵元素。3.根据权利要求2所述的装置,其中所述多个MAC的数量等于所述输出矢量中的矩阵元素的数量。4.根据权利要求2所述的装置,其中所述多个MAC的数量小于所述输出矢量中的矩阵元素的数量,并且其中所述第一指令通过用所述输入矢量和所述输出矢量的不同部分迭代所述多个MAC来完成。5.一种方法,包括:从计算引擎中的第一操作数存储器读取第一元素的第一矢量,所述第一元素具有第一大小;利用所述计算引擎中的查找表将所述第一矢量的第一元素中的各第一元素映射到具有大于所述第一大小的第二大小的第二元素,其中所述第二元素形成第二矢量;在所述计算引擎中对第二元素的第二矢量和从第二操作数存储器读取的第三元素的第三矢量执行乘法累加操作,其中所述查找表存储在所述第一操作数存储器或所述第二操作数存储器中的一者中;以及从耦接到所述计算引擎的处理器向所述计算引擎发出计算指令,以使所述计算引擎执行所述乘法累加操作。6.根据权利要求5所述的方法,其中所述第一矢量、所述第二矢量和所述第三矢量是矩阵的矢量,并且其中所述第一元素、所述第二元素和所述第三元素是矩阵元素。7.根据权利要求5所述的方法,还包括对所述查找表编程。8.一种矩阵计算引擎,包括:电路,被配置为对第一矢量操作数和第二矢量操作数执行矩阵乘法运算,从而产生所得输出矢量;其中所述电路被配置为对具有大于第一大小的第二大小的矩阵元素进行操作;以及所述矩阵计算引擎包括查找表,所述查找表用于将具有所述第一大小的第一矩阵元素映射到具有所述第二大小的第二矩阵元素,其中所述第二矩阵元素被提供为所述第一矢量
操作数。9.根据权利要求8所述的矩阵计算引擎,还包括一个或多个操作数存储器,耦接到所述电路并且存储所述第二矢量操作数和第三矢量操作数,其中,所述第三矢量操作数具有所述第一大小的第一矩阵元素,其中所述第二矢量操作数和所述第三矢量操作数在使用期间从所述一个或多个操作数存储器读取以执行所述矩阵乘法运算,并且其中所述矩阵计算引擎被配置为映射所述第一矩阵元素以生成所述第一矢量操作数。10.根据权利要求9所述的矩阵计算引擎,其中所述查找表是可编程的,并且其中所述查找表存储在所述一个或多个操作数存储器中的一者中。11.根据权利要求...

【专利技术属性】
技术研发人员:E
申请(专利权)人:苹果公司
类型:发明
国别省市:

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

1