[发明专利]外积引擎在审
申请号: | 201780047342.0 | 申请日: | 2017-08-24 |
公开(公告)号: | CN109564509A | 公开(公告)日: | 2019-04-02 |
发明(设计)人: | A·萨泽加丽;E·班维尔;J·E·高宁恩;G·R·威廉姆斯三世;A·J·保蒙-史密斯 | 申请(专利权)人: | 苹果公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/38 |
代理公司: | 中国国际贸易促进委员会专利商标事务所 11038 | 代理人: | 吴信刚 |
地址: | 美国加*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 引擎 结果矩阵 指令传输 指令 处理器 配置 矩阵 乘法运算 输入矢量 存储器 积运算 推测性 运算 并行 响应 退出 | ||
在一个实施方案中,外积引擎被配置为执行外积运算。外积引擎可并行对输入矢量执行多次乘法运算,在一个实施方案中,生成所得外积矩阵。在一个实施方案中,外积引擎可被配置为在结果矩阵中累积结果,执行混合乘加(FMA)运算以产生外积元素(乘),并将外积元素与来自结果矩阵存储器的先前元素一起累积(加)。处理器可获取外积指令,并且当指令在实施方案中变为非推测性时,可将指令传输到外积引擎。处理器可被配置为响应于将外积指令传输到外积引擎而退出外积指令。
背景技术
技术领域
本文所述的实施方案涉及在基于处理器的系统中执行外积运算的电路。
相关技术描述
在现代计算系统中执行的各种工作负载依赖于大量的矩阵乘法,尤其是外积运算。外积运算是两个输入矢量(X和Y)的矩阵结果,其中矩阵的每个元素(i,j)是矢量X的元素i和矢量Y的元素j之积:Mij=XiYj。外积运算涉及许多类型的工作负载:神经网络、其他机器学习算法、离散余弦变换(DCT)、各种类型的卷积(一维、二维、多层二维等)等。此类运算在通用中央处理单元(CPU),即使是具有矢量指令的CPU上也性能很低;而功耗却很高。低性能高功率工作负载对任何计算系统都是问题,但对于电池供电系统尤其是个问题。
发明内容
在一个实施方案中,外积引擎被配置为执行外积运算。在一个实施方案中,外积引擎可并行执行多次乘法运算。更具体地讲,外积引擎可被配置为对输入矢量并行地执行多次乘法运算,生成所得外积矩阵。在一个实施方案中,外积引擎可被配置为在结果矩阵中累积结果,执行混合乘加(FMA)运算以产生外积元素(乘),并将外积元素与来自结果矩阵存储器的先前元素一起累积(加)。其他指令可将累积执行为减法。在一个实施方案中,外积引擎可能既有高性能又有功率效率。
处理器可获取外积指令,并且当指令在实施方案中变为非推测性时,可将指令传输到外积引擎。处理器可被配置为响应于将外积指令传输到外积引擎而退出外积指令。在一个实施方案中,外积引擎中的操作数存储器可超过处理器中寄存器文件的容量。例如,外积引擎中的操作数存储装置可超过处理器中寄存器文件的容量一个或多个数量级。
附图说明
下面的详细描述参照附图,现在对这些附图进行简要说明。
图1是处理器、外积引擎和低级高速缓存的一个实施方案的框图。
图2是示出了用于图1中所示的外积引擎的X、Y和Z存储器的一个实施方案的框图。
图3是示出了用于使用不同大小操作数的图1中所示的外积引擎的X、Y和Z存储器的一个实施方案的框图。
图4是示出了针对一个实施方案向外积引擎发出混合乘加外积运算的时序图。
图5是示出了针对一个实施方案向外积引擎发出加载/存储操作的时序图。
图6是可用于处理器和外积引擎的一个实施方案的指令表。
图7是系统的一个实施方案的框图。
图8是计算机可访问存储介质的一个实施方案的框图。
尽管本公开中所述的实施方案可受各种修改形式和另选形式的影响,但其具体实施方案在附图中以举例的方式示出并将在本文中详细描述。然而,应当理解,附图和对其的详细描述不旨在将实施方案限制为所公开的特定形式,而相反,本发明旨在涵盖落入所附权利要求书的实质和范围内的所有修改、等同物和另选方案。本文所使用的标题仅用于组织目的,并不旨在用于限制说明书的范围。如在整个本申请中所使用的那样,以允许的意义(即,意味着具有可能性)而非强制的意义(即,意味着必须)使用“可能”一词。类似地,字词“包括”(include、including、includes)是指包括但不限于。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苹果公司,未经苹果公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201780047342.0/2.html,转载请声明来源钻瓜专利网。