首页 / 专利库 / 信号处理 / 调谐电路 / 在基于处理器的系统中使用矩阵处理器提供高效浮点运算

在基于处理器的系统中使用矩阵处理器提供高效浮点运算

阅读:607发布:2020-05-08

专利汇可以提供在基于处理器的系统中使用矩阵处理器提供高效浮点运算专利检索,专利查询,专利分析的服务。并且本 发明 揭示在基于处理器的系统中使用矩阵处理器提供高效浮点运算。就此来说,基于矩阵处理器的装置提供矩阵处理器,所述矩阵处理器包括正部分和累加器及负部分和累加器。随着所述矩阵处理器处理多对浮点操作数,所述矩阵处理器基于第一浮点操作数及第二浮点操作数计算中间乘积且确定所述中间乘积的正负号。基于所述正负号,所述矩阵处理器用所述正部分和累加器或所述负部分和累加器的部分和分数使所述中间乘积归一化,随后将所述中间乘积与所述正和累加器或所述负和累加器相加。在处理所有对浮点操作数之后,所述矩阵处理器从所述正部分和累加器减去所述负部分和累加器以产生最终和,随后使所述最终和重新归一化一次。,下面是在基于处理器的系统中使用矩阵处理器提供高效浮点运算专利的具体信息内容。

1.一种基于矩阵处理器的装置,其包括矩阵处理器,所述矩阵处理器包括正部分和累加器及负部分和累加器,
所述矩阵处理器经配置以:
针对多对浮点操作数中的第一浮点操作数及第二浮点操作数的每一对:
确定所述第一浮点操作数及所述第二浮点操作数的中间乘积的正负号,所述正负号指示所述中间乘积为正还是负;
基于所述中间乘积的所述正负号用包括所述正部分和累加器的分数及所述负部分和累加器的分数中的一者的部分和分数使所述中间乘积归一化;及
基于所述中间乘积的所述正负号将所述中间乘积与所述正部分和累加器及所述负部分和累加器中的一者相加;
从所述正部分和累加器的值减去所述负部分和累加器的值以产生最终和;及
使所述最终和重新归一化。
2.根据权利要求1所述的基于矩阵处理器的装置,其中所述矩阵处理器经进一步配置以将所述第一浮点操作数的第一分数乘以所述第二浮点操作数的第二分数以产生所述中间乘积。
3.根据权利要求2所述的基于矩阵处理器的装置,其中所述矩阵处理器经配置以通过经配置以对所述中间乘积及所述部分和分数中的较小者执行逐位右移位运算而用所述部分和分数使所述中间乘积归一化。
4.根据权利要求1所述的基于矩阵处理器的装置,其中所述矩阵处理器经进一步配置以时钟选通对应于所述中间乘积的所述正负号的相反数的所述正部分和累加器及所述负部分和累加器中的一者。
5.根据权利要求1所述的基于矩阵处理器的装置,其中:
所述第一浮点操作数的分数及所述第二浮点操作数的分数各自包括10个位;且所述正部分和累加器的所述分数及所述负部分和累加器的所述分数各自包括31个位。
6.根据权利要求1所述的基于矩阵处理器的装置,其中:
所述第一浮点操作数的指数及所述第二浮点操作数的指数各自包括五(5)个位;且所述正部分和累加器的指数及所述负部分和累加器的指数各自包括八(8)个位。
7.根据权利要求1所述的基于矩阵处理器的装置,其集成至集成电路IC中。
8.根据权利要求1所述的基于矩阵处理器的装置,其集成至选自由以下各者组成的群组的装置中:机顶盒、娱乐单元、导航装置、通信装置、固定位置数据单元、移动位置数据单元、全球定位系统GPS装置、移动电话、蜂窝电话、智能手机、会话发起协议SIP电话、平板计算机、平板手机、服务器、计算机、便携式计算机、移动计算装置、可穿戴式计算装置、桌上型计算机、个人数字助理PDA、监控器、计算机监控器、电视、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频光盘DVD播放器、便携式数字视频播放器、汽车、车辆组件、航空电子系统、无人机及多旋翼飞行器
9.一种基于矩阵处理器的装置,其包括:
用于针对多对浮点操作数中的第一浮点操作数及第二浮点操作数的每一对确定所述第一浮点操作数及所述第二浮点操作数的中间乘积的正负号的装置,所述正负号指示所述中间乘积为正还是负;
用于基于所述中间乘积的所述正负号用包括正部分和累加器的分数及负部分和累加器的分数中的一者的部分和分数使所述中间乘积归一化的装置;
用于基于所述中间乘积的所述正负号将所述中间乘积与所述正部分和累加器及所述负部分和累加器中的一者相加的装置;
用于从所述正部分和累加器的值减去所述负部分和累加器的值以产生最终和的装置;

用于使所述最终和重新归一化的装置。
10.根据权利要求9所述的基于矩阵处理器的装置,其进一步包括用于将所述第一浮点操作数的第一分数乘以所述第二浮点操作数的第二分数以产生所述中间乘积的装置。
11.根据权利要求10所述的基于矩阵处理器的装置,其中所述用于用所述部分和分数使所述中间乘积归一化的装置包括用于对所述中间乘积及所述部分和分数中的较小者执行逐位右移位运算的装置。
12.根据权利要求9所述的基于矩阵处理器的装置,其进一步包括用于时钟选通对应于所述中间乘积的所述正负号的相反数的所述正部分和累加器及所述负部分和累加器中的一者的装置。
13.根据权利要求9所述的基于矩阵处理器的装置,其中:
所述第一浮点操作数的分数及所述第二浮点操作数的分数各自包括10个位;且所述正部分和累加器的所述分数及所述负部分和累加器的所述分数各自包括31个位。
14.根据权利要求9所述的基于矩阵处理器的装置,其中:
所述第一浮点操作数的指数及所述第二浮点操作数的指数各自包括五(5)个位;且所述正部分和累加器的指数及所述负部分和累加器的指数各自包括八(8)个位。
15.一种用于提供高效浮点运算的方法,其包括:
针对多对浮点操作数中的第一浮点操作数及第二浮点操作数的每一对:
由基于矩阵处理器的装置的矩阵处理器确定所述第一浮点操作数及所述第二浮点操作数的中间乘积的正负号,所述正负号指示所述中间乘积为正还是负;
基于所述中间乘积的所述正负号用包括正部分和累加器的分数及负部分和累加器的分数中的一者的部分和分数使所述中间乘积归一化;及
基于所述中间乘积的所述正负号将所述中间乘积与所述正部分和累加器及所述负部分和累加器中的一者相加;
从所述正部分和累加器的值减去所述负部分和累加器的值以产生最终和;及
使所述最终和重新归一化。
16.根据权利要求15所述的方法,其进一步包括由所述矩阵处理器将所述第一浮点操作数的第一分数乘以所述第二浮点操作数的第二分数以产生所述中间乘积。
17.根据权利要求16所述的方法,其中用所述部分和分数使所述中间乘积归一化包括对所述中间乘积及所述部分和分数中的较小者执行逐位右移位运算。
18.根据权利要求15所述的方法,其进一步包括时钟选通对应于所述中间乘积的所述正负号的相反数的所述正部分和累加器及所述负部分和累加器中的一者。
19.根据权利要求15所述的方法,其中:
所述第一浮点操作数的分数及所述第二浮点操作数的分数各自包括10个位;且所述正部分和累加器的所述分数及所述负部分和累加器的所述分数各自包括31个位。
20.根据权利要求15所述的方法,其中:
所述第一浮点操作数的指数及所述第二浮点操作数的指数各自包括五(5)个位;且所述正部分和累加器的指数及所述负部分和累加器的指数各自包括八(8)个位。

说明书全文

在基于处理器的系统中使用矩阵处理器提供高效浮点运算

[0001] 优先权申请
[0002] 本申请案主张名为“在基于处理器的系统中使用矩阵处理器提供高效浮点加法运算(PROVIDING EFFICIENT FLOATING-POINT ADDITION OPERATIONS USING MATRIX PROCESSORS IN PROCESSOR-BASED SYSTEMS)”且在2017年8月31日提交的美国临时专利申请案第62/552,890号的优先权,所述申请案的内容的全文以引用的方式并入本文中。
[0003] 本申请案还主张名为“在基于处理器的系统中使用矩阵处理器提供高效浮点运算(PROVIDING EFFICIENT FLOATING-POINT OPERATIONS USING MATRIX PROCESSORS IN PROCESSOR-BASED SYSTEMS)”且在2018年8月30日提交的美国专利申请案第16/118,099号的优先权,所述申请案的内容的全文以引用的方式并入本文中。

技术领域

[0004] 本发明的科技大体上涉及基于处理器的系统中的矩阵处理,且尤其涉及适用于矩阵乘法的高效浮点运算的技术及设备。

背景技术

[0005] 机器学习领域涉及开发及研究可通过从样本输入构建模型来做出经数据驱动的预测或决策的算法。在设计及编程具有可接受性能的明确算法困难或不可行时,可应用机器学习来计算任务。被称为“深度学习”的一种类别的机器学习技术采用含有多个隐藏层人工神经网络(ANN)以执行例如图案分析及分类的任务。ANN首先通过基于典型输入及对应所需输出的实例而确定运算参数来“训练”。ANN可随后执行“推断”,其中所确定的运算参数用来对新输入进行分类、识别及/或处理。
[0006] 在用于深度学习的ANN中,ANN内的每一隐藏层使用来自先前层的输出作为输入。因为每一层表示为二维矩阵,所以涉及深度学习的绝大部分计算运算由矩阵乘法运算组成。因此,矩阵乘法运算的优化具有大大改进深度学习应用的性能的潜能。特定地说,执行浮点矩阵乘法运算的处理单元比执行基于整数矩阵乘法的处理单元占据更大芯片区域且消耗更多功率。因此,执行浮点矩阵乘法运算的更高效设备为合乎需要的。

发明内容

[0007] 具体实施方式中所揭示的方面包含在基于处理器的系统中使用矩阵处理器提供高效浮点运算。就此来说,在一个方面中,提供一种包括矩阵处理器的基于矩阵处理器的装置。矩阵处理器包含正部分和累加器及负部分和累加器。随着矩阵处理器处理多对浮点操作数(例如作为非限制性实例在执行矩阵乘法运算时),矩阵处理器基于第一浮点操作数及第二浮点操作数计算中间乘积。在确定中间乘积的正负号(即,中间乘积为正还是负)之后,矩阵处理器取决于正负号用正部分和累加器或负部分和累加器的部分和分数使中间乘积归一化。如果中间乘积为正,那么矩阵处理器将中间乘积与正和累加器相加,或如果中间乘积为负,那么将中间乘积与负和累加器相加。在处理所有对浮点操作数之后,矩阵处理器从正部分和累加器的值减去负部分和累加器的值以得出最终和,随后使最终和重新归一化一次(相较于在加上每一中间乘积之后执行重新归一化)。以此方式,矩阵处理器减小用于重新归一化的处理器循环的数目,由此改进功率消耗及总体处理器性能。
[0008] 在另一方面中,提供一种基于矩阵处理器的装置。基于矩阵处理器的装置包括矩阵处理器,所述矩阵处理器包含正部分和累加器及负部分和累加器。矩阵处理器经配置以针对多对浮点操作数中的第一浮点操作数及第二浮点操作数的每一对确定第一浮点操作数及第二浮点操作数的中间乘积的正负号,正负号指示中间乘积为正还是负。矩阵处理器经进一步配置以基于中间乘积的正负号用包括正部分和累加器的分数及负部分和累加器的分数中的一者的部分和分数使中间乘积归一化。矩阵处理器还经配置以基于中间乘积的正负号将中间乘积与正部分和累加器及负部分和累加器中的一者相加。矩阵处理器另外经配置以从正部分和累加器的值减去负部分和累加器的值以产生最终和。矩阵处理器经进一步配置以使最终和重新归一化。
[0009] 在另一方面中,提供一种基于矩阵处理器的装置。矩阵处理器包括用于针对多对浮点操作数中的第一浮点操作数及第二浮点操作数的每一对确定第一浮点操作数及第二浮点操作数的中间乘积的正负号的装置,正负号指示中间乘积为正还是负。基于矩阵处理器的装置进一步包括用于基于中间乘积的正负号用包括正部分和累加器的分数及负部分和累加器的分数中的一者的部分和分数使中间乘积归一化的装置。基于矩阵处理器的装置还包括用于基于中间乘积的正负号将中间乘积与正部分和累加器及负部分和累加器中的一者相加的装置。基于矩阵处理器的装置另外包括用于从正部分和累加器的值减去负部分和累加器的值以产生最终和的装置。基于矩阵处理器的装置进一步包括用于使最终和重新归一化的装置。
[0010] 在另一方面中,提供一种用于提供高效浮点运算的方法。方法包括针对多对浮点操作数中的第一浮点操作数及第二浮点操作数的每一对由基于矩阵处理器的装置的矩阵处理器确定第一浮点操作数及第二浮点操作数的中间乘积的正负号,正负号指示中间乘积为正还是负。方法进一步包括基于中间乘积的正负号用正部分和累加器的分数及负部分和累加器的分数中的一者的部分和分数使中间乘积归一化。方法还包括基于中间乘积的正负号将中间乘积与正部分和累加器及负部分和累加器中的一者相加。方法另外包括从正部分和累加器的值减去负部分和累加器的值以产生最终和。方法进一步包括使最终和重新归一化。附图说明
[0011] 图1A及1B为包括经配置以提供高效浮点矩阵乘法的矩阵处理器的示范性基于处理器的系统的框图
[0012] 图2为绘示执行浮点矩阵乘法运算的常规运算的框图;
[0013] 图3为绘示用于高效执行浮点矩阵乘法运算的图1A及1B的矩阵处理器的示范性运算的框图;
[0014] 图4为绘示用于使用矩阵处理器高效执行浮点矩阵乘法的图1A及1B的基于处理器的系统的示范性运算的流程图;且
[0015] 图5为可包括用于提供高效浮点运算的图1A及1B的矩阵处理器的示范性基于处理器的系统的框图。

具体实施方式

[0016] 现在参考附图,描述本发明的若干示范性方面。词语“示范性”在本文中用于意指“充当实例、例子或说明”。本文中被描述为“示范性”的任何方面未必被理解为比其它方面优选或更有利。
[0017] 具体实施方式中所揭示的方面包含在基于处理器的系统中使用矩阵处理器提供高效浮点运算。就此来说,图1A及1B绘示经配置以使用矩阵处理器提供高效浮点矩阵乘法的示范性基于矩阵处理器的装置100。参考图1A,基于矩阵处理器的装置100提供主机系统102,所述主机系统在一些方面中可包括基于 或 x86的服务器计算机。主机系统102包含处理器104(例如一或多个中央处理单元(CPU)、处理器及/或处理器核心)及存储器106(例如双数据速率同步动态随机存取存储器(DDR SDRAM))。基于矩阵处理器的装置
100进一步提供外围组件互连高速(PCIe)卡108,在所述外围组件互连高速卡上,芯片上系统(SoC)110经配置以经由主机系统102的PCIe接口112及SoC110的PCIe接口114与主机系统
102通信。PCIe卡108还包含分别经由存储器控制器120及存储器控制器122与SoC 110介接的DDR存储器116及高带宽存储器(HBM)118。
[0018] SoC 110提供命令处理器124,所述命令处理器在一些方面中可包括例如基于或 x86的处理器的常规处理器。SoC 110还包含经配置以将数据移动至DDR存储器116及PCIe接口114及从其移动数据且因此将数据移动至主机系统102及从主机系统
102移动数据的直接存储器存取(DMA)单元126。图1A的SoC 110提供八(8)个处理器切片(“切片”)128(0)至128(7),所述处理器切片由芯片上网络(NoC)130互连。应理解,在一些方面中,SoC 110可包含比图1A中所绘示更多或更少的切片128(0)至128(7)。
[0019] 为绘示切片128(0)至128(7)的构成元件,图1A展示切片128(7)的展开图。切片128(7)包括多个微处理器132(0)至132(p)以及局部中间结果暂存器(scratchpad)134及全局中间结果暂存器136。局部中间结果暂存器134为仅由切片128(7)的微处理器132(0)至132(p)可获得的高带宽存储器。相反,全局中间结果暂存器136为由切片128(0)至128(7)中的任一者可获得的低带宽存储器。为将数据移动至局部中间结果暂存器134及全局中间结果暂存器136中及外,切片128(7)提供以通信方式耦合至NoC 130的DMA单元138。应理解,在此实例中,切片128(0)至128(6)中的每一者包含对应于上文所描述的切片128(7)的元件。
[0020] 图1B使用微处理器132(P)作为一实例提供图1A的切片128(7)的微处理器132(0)至132(P)的构成元件的更详细视图。如图1B中所见,微处理器132(P)提供标量处理器140及向量处理器142。微处理器132(P)进一步提供多个矩阵处理器144(0)至144(M)。在图1B的实例中,矩阵处理器144(0)至144(M)经配置以使用16位浮点精确度,这是由于较高精确度既非机器学习应用必要的且还导致性能降低。标量处理器140、向量处理器142及矩阵处理器144(0)至144(M)受CPU 146控制,所述CPU在一些方面中提供用于矩阵处理的专用指令集。
应理解,在图1B的实例中,微处理器132(0)至132(P)中的每一者包含对应于上文所描述的微处理器132(P)的元件的元件。
[0021] 如图1A及1B中所绘示的基于矩阵处理器的装置100及其构成元件可涵盖其它元件之外的任何已知数字逻辑元件、半导体电路、处理核心及/或存储器结构或其组合。本文中所描述的方面并不限于任何特定的元件的布置,且所揭示的技术可容易地扩展至半导体插口(semiconductor socket)或包装上的各种结构及布局。应理解,基于矩阵处理器的装置100的一些方面可包含除了图1A及1B中所绘示的那些元件之外的元件,及/或可省略图1A及
1B中所绘示的一些元件。
[0022] 为执行矩阵乘法,输出矩阵的每一元素经计算为“点积”,一行第一输入矩阵的元素及对应列第二输入矩阵的元素的乘积的和。可采用图1B的矩阵处理器144(0)至144(M)的一些深度学习应用在执行矩阵乘法运算时需要浮点精确度。然而,浮点矩阵乘法运算通常需要比整数矩阵乘法运算占据更大处理器面积且消耗更多功率的矩阵处理器。在描述提供如本文中所揭示的高效浮点运算的运算之前,首先论述执行浮点矩阵乘法的常规矩阵处理器的运算。就此来说,提供图2。在图2中,第一浮点操作数200由一位(1位)正负号202、五位(5位)指数204及10位分数206表示。同样,第二浮点操作数208由一位(1位)正负号210、五位(5位)指数212及10位分数214表示。第一浮点操作数及第二浮点操作数可为待相乘及相加以产生点积的多对浮点操作数中的一对。由一位(1位)正负号216、八位(8位)指数218及23位分数220表示的部分和保持在累加器中以对乘法运算的结果求和。应理解,在一些方面中,指数204、212及分数206、214的大小可大于或小于图2中所展示的五位(5位)指数204、212及10位分数206、214。
[0023] 为在产生点积时执行浮点乘法,指数204及指数212首先一起相加,如由元件222所指示。应注意,在图2的实例中,元件222还接收具有值97的输入。此值表示视输入从变量的指数偏差及所计算的部分和的指数偏差而定的恒定值。在此实例中,值97经计算为2*(-15)+127,其中值15表示半精确度浮点(FP16)数目的指数偏差,且127表示单精确度浮点(FP32)数目的指数偏差。在元件222处计算的结果与部分和的指数218相比较,如由元件224所指示,且比较结果转发至元件226及228,所述元件在下文更详细地阐述。随后,使分数206及分数214相乘。因为分数206及214的二进制表示法的前导“1”被“隐藏”(即,未存储为分数206及214的部分),“‘隐藏’1”如由元件230及232所指示通过前置具有一(1)的值的位作为分数206、214的最高有效位而分别与分数206、214中的每一者相加。分数206及214的11位值随后在元件234处相乘。22位乘积236右侧填充有两个零(0)238,且所得24位值(在本文中被称为“中间乘积”)转发至元件228。
[0024] 在元件228处,分数206及214的中间乘积与部分和的分数220相比(在“‘隐藏’1”通过前置具有一(1)的值的位作为分数220的最高有效位在元件240处与分数220相加之后)。两者中的较大者保持不变,而两者中的较小者通过将其位移位至右侧而归一化,如由元件
242所指示。在较小值的归一化之后,按需要使分数206及214的中间乘积与分数220相加或从分数220减去分数206及214的中间乘积,如由元件244所指示。举例来说,在元件244处,如果对第一浮点操作数200的正负号202及第二浮点操作数208的正负号210所执行的异或(exclusive-OR)运算评估为真实,那么从分数220减去中间乘积,且如果异或运算评估为错误,那么使中间乘积与分数220相加。
[0025] 随后在元件246处使终极结果重新归一化。重新归一化过程包括将前导“1”定位于结果的二进制表示法内,且随后将结果的位向左移位,直到已将前导“1”移出二进制表示法为止。部分和的指数218还视需要基于重新归一化及基于来自元件224的指数204及212的和而调整。
[0026] 随着矩阵的大小倍增增长,执行浮点矩阵乘法运算所需要的运算的数目显著增加。作为非限制性实例,考虑经配置以乘以两个32×32矩阵(即,每一矩阵具有32行及32列)的矩阵处理器。如果矩阵处理器提供1,024个乘法/累加(MAC)单元,那么每一MAC单元在计算点积时必须执行总共32次浮点乘法运算,产生总共32,768次浮点乘法运算。因此,期望使浮点值相乘的过程优化以减小所需要的处理时间及功率的量。
[0027] 就此来说,提供图3以绘示图1B的矩阵处理器144(0)至144(M)的示范性元件及由此在矩阵乘法运算期间更有效地乘以浮点值所执行的运算。在图3的实例中,数据以类似于关于图2所描述的方式的方式处理,除了分数220与分数206及214的乘积的和在每一点积的计算期间未经重新归一化,如在图2的元件246处所执行一样。相反,矩阵处理器144(0)至144(M)中的每一者保持两个累加器:用于存储正部分和的正部分和累加器300,及用于存储负部分和的负部分和累加器302。在图3的实例中,正部分和累加器300及负部分和累加器
302分别包括31位分数304及306,且分别包括八(8)位指数308及310。
[0028] 在示范性运算中,在分数206及214相乘以产生中间乘积312之后,矩阵处理器144(0)至144(M)确定中间乘积312的正负号(指示中间乘积312为正还是负)。中间乘积312随后用“部分和分数”归一化(其中如果中间乘积312为正,那么正部分和累加器300的分数304用作部分和分数,且如果中间乘积为负,那么负部分和累加器302的分数306用作部分和分数)。在一些方面中,用部分和分数归一化中间乘积312可包括对中间乘积312及部分和分数中的较小者执行逐位右移位运算。在每一处理器循环期间基于中间乘积312的正负号仅更新正部分和累加器300及负部分和累加器302中的一者(即,如果中间乘积312为正,那么中间乘积312与正部分和累加器300相加,或如果中间乘积312为负,那么所述中间乘积与负部分和累加器302相加)。对应于中间乘积312的正负号的相反数的正部分和累加器300及负部分和累加器302中的另一者可经时钟选通,使得其不消耗功率。在计算点积结束时,从存储于正部分和累加器300中的值减去存储于负部分和累加器302中的值以产生最终和314,使所述最终和重新归一化一次。重新归一化由此仍消耗功率,但仅在一个处理器循环期间在点积计算结束时消耗。
[0029] 在一些方面中,重新归一化可在多个处理器循环中展开,且可共享执行重新归一化的硬件。作为非限制性实例,如果矩阵乘法运算需要32个处理器循环,那么如果在第二管线级中进行,那么重新归一化的过程还可在32个循环中进行。虽然矩阵乘法运算的总体时延增加至总共64个处理器循环,但输送量保持相同(即,一次矩阵乘法运算/32个处理器循环)。通过使得重新归一化的逻辑能够在各种输出部分和寄存器上“循环(loop)”,重新归一化总体需要较少逻辑。另外,图3中所绘示的运算在要径中需要较少逻辑,这允许矩阵处理器144(0)至144(M)以较高时钟频率运算。
[0030] 应注意,图3中所绘示的运算可视输入值顺序而定不利地影响浮点乘法运算的精度。为补偿此可能性,根据一些方面的正部分和累加器300及负部分和累加器302各自可提供相对于分数206、214的分数304及306中的更多位。举例来说,在图3中,分数206、214各自包括10个位,而分数304、306各自包括31个位。同样,一些方面还可分别提供正部分和累加器300及负部分和累加器302中的指数308及310中的额外位。在图3的实例中,指数204、212各自包括五(5)个位,而指数308、310各自包括八(8)个位。
[0031] 在一些方面中,矩阵处理器144(0)至144(M)可经配置以计算点积,这将仅需要执行加法及减法的单元而非还需要乘法单元。根据一些方面的矩阵处理器144(0)至144(M)还可经配置以使用输入值及部分和累加器的不同分辨率。举例来说,并非针对正部分和累加器300及负部分和累加器302中的每一者使用32个位,正部分和累加器300及负部分和累加器302可各自包括64个位。
[0032] 为绘示用于使用矩阵处理器执行高效浮点矩阵乘法的图1的基于矩阵处理器的装置100的示范性运算,提供图4。为清楚起见,在描述图4时参考图1A、1B及3的元件。图4中的运算针对多对浮点操作数中的第一浮点操作数200及第二浮点操作数208的每一对以由矩阵处理器执行的一系列运算开始,所述矩阵处理器是例如图1B的矩阵处理器144(0)至144(M)中的一者(框400)。在一些方面中,矩阵处理器144(0)至144(M)可使第一浮点操作数200的第一分数206乘以第二浮点操作数208的第二分数214以产生中间乘积(框402)。就此来说,矩阵处理器144(0)至144(M)在本文中可被称作“用于使第一浮点操作数的第一分数乘以第二浮点操作数的第二分数以产生中间乘积的装置”。
[0033] 矩阵处理器144(0)至144(M)确定第一浮点操作数200及第二浮点操作数208的中间乘积312的正负号,正负号指示中间乘积312为正还是负(框404)。因此,矩阵处理器144(0)至144(M)在本文中可被称作“用于针对多对浮点操作数中的第一浮点操作数及第二浮点操作数的每一对确定第一浮点操作数及第二浮点操作数的中间乘积的正负号的装置,正负号指示中间乘积为正还是负”。矩阵处理器144(0)至144(M)随后基于中间乘积312的正负号用包括正部分和累加器300的分数304及负部分和累加器302的分数306中的一者的部分和分数使中间乘积312归一化(框406)。矩阵处理器144(0)至144(M)由此在本文中可被称作“用于基于中间乘积的正负号用包括正部分和累加器的分数及负部分和累加器的分数中的一者的部分和分数使中间乘积归一化的装置”。在一些方面中,用部分和分数使中间乘积归一化的框406的运算可包含对中间乘积312及部分和分数中的较小者执行逐位右移位运算(框408)。就此来说,矩阵处理器144(0)至144(M)在本文中可被称作“用于对中间乘积及部分和分数中的较小者执行逐位右移位运算的装置”。
[0034] 矩阵处理器144(0)至144(M)随后基于中间乘积312的正负号将中间乘积312与正部分和累加器300及负部分和累加器302中的一者相加(框410)。因此,矩阵处理器144(0)至144(M)在本文中可被称作“用于基于中间乘积的正负号将中间乘积与正部分和累加器及负部分和累加器中的一者相加的装置”。根据一些方面,矩阵处理器144(0)至144(M)还可对应于中间乘积312的正负号的相反数时钟选通正部分和累加器300及负部分和累加器302中的一者(框412)。矩阵处理器144(0)至144(M)在本文中可被称作“用于时钟选通对应于中间乘积的正负号的相反数的正部分和累加器及负部分和累加器中的一者的装置”。
[0035] 在处理多对浮点操作数中的每一对之后,矩阵处理器144(0)至144(M)从正部分和累加器300的值减去负部分和累加器302的值以产生最终和314(框414)。就此来说,矩阵处理器144(0)至144(M)在本文中可被称作“用于从正部分和累加器的值减去负部分和累加器的值以产生最终和的装置”。矩阵处理器144(0)至144(M)随后使最终和314重新归一化(框416)。因此,矩阵处理器144(0)至144(M)在本文中可被称作“用于使最终和重新归一化的装置”。
[0036] 根据本文中所揭示的方面的在基于处理器的系统中使用矩阵处理器提供高效浮点运算可提供于任何基于处理器的装置中或集成至任何基于处理器的装置中。实例(非限制性地)包含机顶盒、娱乐单元、导航装置、通信装置、固定位置数据单元、移动位置数据单元、全球定位系统(GPS)装置、移动电话、蜂窝电话、智能手机、会话发起协议(SIP)电话、平板计算机、平板手机、服务器、计算机、便携式计算机、移动计算装置、可穿戴式计算装置(例如智能手表、保健或健康跟踪器、护目镜等等)、桌上型计算机、个人数字助理(PDA)、监控器、计算机监控器、电视、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频光盘(DVD)播放器、便携式数字视频播放器、汽车、车辆组件、航空电子系统、无人机及多旋翼飞行器
[0037] 就此来说,图5绘示可对应于图1A的基于矩阵处理器的装置100且可包括图1B的矩阵处理器144(0)至144(M)的基于处理器的系统500的实例。基于处理器的系统500包含一或多个CPU 502,各自包含一或多个处理器504。CPU 502可具有耦合至处理器504以用于快速存取暂时存储的数据的高速缓冲存储器506。CPU 502耦合至系统总线508,且可相互耦合包含于基于处理器的系统500中的主控装置及受控装置。如所熟知,CPU 502通过在系统总线508上交换地址、控制及数据信息而与这些其它装置通信。举例来说,CPU 502可将总线事务请求传达至作为受控装置的实例的存储器控制器510。
[0038] 其它主控装置及受控装置可连接至系统总线508。作为实例,如图5中所绘示,这些装置可包含存储器系统512、一或多个输入装置514、一或多个输出装置516、一或多个网络接口装置518及一或多个显示控制器520。输入装置514可包含任何类型的输入装置,包含但不限于输入键、开关、语音处理器等等。输出装置516可包含任何类型的输出装置,包含但不限于音频、视频、其它视觉指示器等等。网络接口装置518可为经配置以允许至网络522及来自所述网络的数据交换的任何装置。网络522可为任何类型的网络,包含但不限于有线或无线网络、私用或公用网络、局域网(LAN)、无线局域网(WLAN)、广域网(WAN)、BLUETOOTHTM网络及互联网。网络接口装置518可经配置以支持所要的任何类型的通信协议。存储器系统512可包含一或多个存储器单元524(0)至524(N)。
[0039] CPU 502还可经配置以在系统总线508上存取显示控制器520来控制传送至一或多个显示器526的信息。显示控制器520将信息传送至显示器526以经由一或多个视频处理器528(例如作为非限制性实例为一或多个图形处理单元(GPU))显示,所述一或多个视频处理器将待显示的信息处理成适合于显示器526的形式。显示器526可包含任何类型的显示器,包含但不限于阴极射线管(CRT)、液晶显示器(LCD)、等离子体显示器等等。
[0040] 所属领域的技术人员将进一步理解,结合本文中所揭示的方面描述的各种说明性逻辑、模块、电路及算法可被实施为电子硬件、存储于存储器或另一计算机可读媒体中且由处理器或其它处理装置执行的指令,或此两者的组合。作为实例,本文中所描述的主控装置及受控装置可用于任何电路、硬件组件、集成电路(IC)或IC芯片中。本文中所揭示的存储器可为任何类型及大小的存储器,且可经配置以存储所需的任何类型的信息。为清楚地说明此互换性,上文已大体上在功能性方面描述各种说明性组件、框、模块、电路及步骤。如何实施此功能性视特定应用、设计选项及/或强加于整个系统的设计约束而定。所属领域的技术人员可针对每一特定应用而以变化的方式实施所描述的功能性,但不应将这些实施决策解释为致使脱离本发明的范围。
[0041] 可由处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其经设计以执行本文中所描述功能的任何组合来实施或执行结合本文中所揭示的方面而描述的各种说明性逻辑块、模块及电路。处理器可为微处理器,但在替代例中,处理器可为任何常规处理器、控制器、微控制器或状态机。处理器还可被实施为计算装置的组合(例如DSP与微处理器的组合、多个微处理器、结合DSP核心的一或多个微处理器,或任何其它此类配置)。
[0042] 本文中所揭示的方面可以硬件及存储于硬件中的指令而体现,且可驻留于例如随机存取存储器(RAM)、快闪存储器、只读存储器(ROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、寄存器、硬盘、可移除式磁盘、CD-ROM或所属领域中已知的任何其它形式的计算机可读媒体中。示范性存储媒体耦合至处理器,使得处理器可从存储媒体读取信息并将信息写入至所述存储媒体。在替代例中,存储媒体可与处理器成整体。处理器及存储媒体可驻留于ASIC中。ASIC可驻留于远程站中。在替代例中,处理器及存储媒体可作为离散组件而驻留于远程站、基站或服务器中。
[0043] 还应注意,描述本文中在任何示范性方面中所描述的操作步骤以提供实例及论述。可以不同于所绘示的序列的众多不同序列进行所描述的操作。此外,实际上可以大量不同步骤来执行单一操作步骤中所描述的操作。此外,可组合示范性方面中所论述的一或多个操作步骤。应理解,对于所属领域的技术人员来说将容易地显而易见,流程图中所绘示的操作步骤可经受大量不同修改。所属领域的技术人员还将了解,可使用各种不同科技及技术中的任一者表示信息及信号。举例来说,可由电压电流电磁波磁场磁性粒子、光场或光粒子或其任何组合表示可贯穿上述描述所参考的数据、指令、命令、信息、信号、位、符号及码片。
[0044] 提供本发明的先前描述以使所属领域的任何技术人员能够制造或使用本发明。对本发明的各种修改对于所属领域的技术人员来说将容易地显而易见,且本文所定义的一般原理可在不脱离本发明的精神或范围的情况下应用于其它变体。因此,本发明并不意欲限于本文中所描述的实例及设计,而应符合与本文中所揭示的原理及新颖特征相一致的最广泛范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈