在128位宽的操作数上的融合乘加浮点运算制造技术

技术编号:21958944 阅读:53 留言:0更新日期:2019-08-24 22:15
一种浮点单元(10)被配置为在三个128位宽的操作数(100,102,104)上实现融合乘加运算,包括:(i)113×113位乘法器(14);(ii)左移位器(18);(iii)右移位器(20);(iv)选择电路(24),其包括3到2压缩器(25);(v)加法器(26),其连接到来自选择电路(24)的数据流;(vi)第一反馈路径(36),其将加法器(26)的进位输出(91)连接到选择电路(24);(vii)第二反馈路径(38),其将加法器(26)的输出连接到移位器(18,20),用于使中间宽结果(86)通过移位器(18,20)。

Fusion Multiplication and Floating Point Operations on 128-bit Wide Operators

【技术实现步骤摘要】
【国外来华专利技术】在128位宽的操作数上的融合乘加浮点运算
本专利技术一般涉及数据处理系统,尤其涉及用于在128位宽的操作数上执行融合乘加浮点运算的单元、方法、系统和计算机程序产品。
技术介绍
2008年发布的IEEE-754-2008二进制浮点运算标准规定了浮点数据架构,该架构通常在计算机硬件中实现,例如具有乘法器的浮点处理器。格式由符号、无符号偏置阶码和有效数组成。符号位是单个位,用“S”表示。用“e”表示的无符号偏置阶码例如对于单精度是8位长,对于双精度是11位长,对于四精度是15位长。有效数例如对于单精度是24位长,对于双精度是53位长,对于四精度是113位长。如IEEE-754-2008标准所定义的,有效数的最高有效位,即所谓的隐含位,从阶码位中解码出。为了改进浮点算术处理,大多数现代处理器使用称为融合乘法加法(在下面缩写为FMA)的过程来合并浮点乘法运算(例如A×B)和浮点加法运算(例如,+C),用于作为单个指令执行,例如A×B+C,其中A、B、C是乘法乘积A×B以及C与乘积的和的操作数。通过在单个指令中执行两个运算,FMA过程减少了总体执行时间。FMA过程还提供了改进的精度,因为在以全精度执行了乘法和加法运算之后只需执行舍入。例如,只有一个舍入误差而不是两个。分析应用程序(尤其是在大数据量上运行时)是非常计算密集型的。它们的主要数据类型是二进制浮点数。这包括商业上可用的分析软件,如ILOG、SPSS、Cognos、Algo以及许多针对保险和银行业的专业分析软件包。许多移动应用需要位置检测例程,这也是浮点密集型计算。这些例程的性能是远程信息处理等新兴领域的关键,它将移动输入与数据库查询和保险分析代码相结合,并具有实时要求。随着问题规模的增大,算法的数值灵敏度被放大。这降低了算法的稳定性并降低了收敛速度。这在高性能领域是众所周知的效果。解决此问题的最简单方法是将数学上关键的例程从双精度切换到四精度浮点(128位)。采用大数据分析,这个数值稳定性问题也在商业领域占据了一席之地。例如,注意到针对非常大的ILOG安装和在大型数据集上运行的客户风险评估代码的收敛问题。对于大型ILOG安装,当切换到128位浮点计算时,注意到收敛速度提高了15-30%。US2016/0048374A1公开了通过使用辅助指令来模拟融合乘加(FMA)运算的技术。根据该现有技术公开的技术,通过辅助指令模拟FMA运算,以使得用于执行未融合乘加运算的现有硬件可用于模拟融合乘加运算而无需其他专用硬件。模拟第一操作数、第二操作数和第三操作数的融合乘加运算包括由至少一个处理器至少部分地基于将第一操作数与第二操作数相乘来确定中间值。现有技术方法还包括由至少一个处理器确定上中间值或下中间值中的至少一个,其中,确定上中间值包括用指定的比特数对中间值向上舍入,确定下中间值包括用高中间值减去中间值。该方法还包括由至少一个处理器至少部分地基于将第三操作数添加到上中间值或下中间值之一来确定上限值和下限值。该方法还包括由至少一个处理器通过将上限值和下限值相加来确定第一操作数、第二操作数和第三操作数的模拟融合乘加结果。US9,104,474B2公开了用于节能浮点乘法和/或加法运算的方法和电路。实施例提供节能的可变精度乘法和/或加法运算,同时跟踪浮点数的多少尾数位可以是确定的和/或提供包括乘法重放的节能浮点乘法,当乘法结果的最低部分可能影响最终结果时。可变精度浮点电路使用实时确定性跟踪来提供运行时精度选择。确定性跟踪使得低精度计算(其结果可能不确定)能够在必要时以更高的精度重新进行。由于确定性可取决于数据,因此,它与数值计算一起确定。跟踪确定性的电路增加了最小的开销,而大多数计算产生具有较低精度的正确结果。浮点乘法步骤由N位乘N位乘法器(N×N位乘法器)电路执行,该电路包括并行图和检测电路,其中并行图被配置为将乘法乘积的预定数量的最低有效位的载波设置为零以用于乘法运算,检测电路引起由乘法器进行的乘法运算的重放,以在必要时产生完全乘法结果。可变精度浮点电路与浮点计算并行地确定乘加浮点计算的结果的确定性。可变精度浮点电路使用输入的确定性并结合来自计算的信息,例如取消、规格化移位和舍入的二进制数字,以执行结果的确定性的计算。可变精度浮点电路包括支持多个精度的可变精度尾数单元、以最低精度支持最大并行度的多阶码数据路径、以及提供输出的确定性边界的确定性计算单元。在根据如上所述的现有技术的处理器上,以软件模拟128位浮点运算。所描述的方法通常比硬件实现慢一到两个数量级,这使得它们对大数据分析的吸引力降低。
技术实现思路
提出了一种浮点单元,被配置为在三个128位宽的操作数上实现融合乘加运算。浮点单元包括:(i)113×113位乘法器,其连接到用于乘法操作数的数据流,并被配置为迭代地计算226位进位保存乘积,其中和项和进位项被分成乘积的高部分和低部分;(ii)左移位器,其连接到用于加数操作数的高部分和低部分的数据流,并被配置为传递加数的对齐部分;(iii)右移位器,其连接到用于加数操作数的高部分和低部分的数据流,并被配置为传递加数的对齐部分;(iv)选择电路,其连接到移位器的输出,包括3到2压缩器以将和项和进位项与加数合并;(v)加法器,其连接到来自选择电路的数据流;(vi)第一反馈路径,其将加法器的进位输出连接到选择电路,用于在两个后续的加法中对高部分和低部分执行中间乘积和对齐加数的宽加法运算;(vii)第二反馈路径,其将加法器的输出连接到移位器,用于使中间宽结果通过移位器以进行规格化,第二次通过加法器以进行舍入。融合乘加运算(FMA)的价值是一个指令执行两个运算:乘法运算和加法运算,因此,实现两倍的吞吐量。然而,FMA的更高价值是组合操作的增强的准确性:加法是在准确的乘积和准确的加数上进行的。对于128位浮点计算,舍入效应更严重。因此,当切换到128位浮点计算以获得更高精度时,具有FMA是有利的。然而,128位FMA也必须具有不错的性能,以使其对于应用具有吸引力并可用。在浮点处理器中,一个中心区域是乘法器阵列。乘法器阵列用于进行两个数的乘法。通常使用具有基数4的最先进的布斯编码,这是常用的快速乘法算法。这减少了需要总计为n/2+1的乘积项的数量,其中n是每个操作数的位数。使用进位保存加法器电路完成求和,与其中通常由进位传播加法器电路执行的低位位置的进位被链接到下一个更高位置的正常加法相反,该电路允许并行处理所有位。进行这种求和的电路在本领域被称为缩减树。在缩减树的末尾,仍然存在两个项,即和项和进位项,它们分别代表信息的总和部分和信息的进位部分。这些项最终与对齐加数相加。同样,在此执行进位保存加法。最后,只剩下两个项,也是和项和进位项,这两个项必须使用进位传播加法器相加以生成一个最终结果。有利地,本专利技术的浮点单元(FPU)由于其配置而允许在传统的128位浮点单元上用基于加法的数据流执行128位FMA操作,如所介绍的,例如在IBMz13处理器中。由于只有适度的硬件扩展,本专利技术的实施例允许在128位基于加法的FPU上执行具有128位精度的真正FMA,具有与乘法运算相同的23周期延迟时间。新的运算可每15个周期开始,它比例如在IBMzEC12处理器上快5倍以上并且吞吐量高7.5倍,I本文档来自技高网
...

【技术保护点】
1.一种浮点单元(10),被配置为在三个128位宽的操作数(100,102,104)上实现融合乘加运算,包括:(i)113×113位乘法器(14),其连接到用于乘法操作数(100,102)的数据流,并被配置为迭代地计算226位进位保存乘积(70),其中,和项(71)和进位项(74)被分成所述乘积(70)的高部分(72,75)和低部分(73,76);(ii)左移位器(18),其连接到用于加数操作数(104)的高部分(78)和低部分(79)的数据流,并被配置为传递所述加数(77)的对齐部分;(iii)右移位器(20),其连接到用于所述加数操作数(104)的所述高部分(78)和所述低部分(79)的所述数据流,并被配置为传递所述加数(77)的所述对齐部分;(iv)选择电路(24),其连接到所述移位器(18,20)的输出并包括3到2压缩器(25)以将所述和项(71)和所述进位项(74)与所述加数(77)合并;(v)加法器(26),其连接到来自所述选择电路(24)的数据流;(vi)第一反馈路径(36),其将所述加法器(26)的进位输出(91)连接到所述选择电路(24),用于在两个后续加法中,针对所述高部分(72,75,78)和所述低部分(73,76,79)执行中间乘积(70)和对齐的加数(77)的宽加法运算;(vii)第二反馈路径(38),其将所述加法器(26)的输出连接到所述移位器(18,20),用于使中间宽结果(86)通过所述移位器(18,20)以进行规格化以及第二次通过所述加法器(26)以进行舍入。...

【技术特征摘要】
【国外来华专利技术】2017.01.16 US 15/406,9101.一种浮点单元(10),被配置为在三个128位宽的操作数(100,102,104)上实现融合乘加运算,包括:(i)113×113位乘法器(14),其连接到用于乘法操作数(100,102)的数据流,并被配置为迭代地计算226位进位保存乘积(70),其中,和项(71)和进位项(74)被分成所述乘积(70)的高部分(72,75)和低部分(73,76);(ii)左移位器(18),其连接到用于加数操作数(104)的高部分(78)和低部分(79)的数据流,并被配置为传递所述加数(77)的对齐部分;(iii)右移位器(20),其连接到用于所述加数操作数(104)的所述高部分(78)和所述低部分(79)的所述数据流,并被配置为传递所述加数(77)的所述对齐部分;(iv)选择电路(24),其连接到所述移位器(18,20)的输出并包括3到2压缩器(25)以将所述和项(71)和所述进位项(74)与所述加数(77)合并;(v)加法器(26),其连接到来自所述选择电路(24)的数据流;(vi)第一反馈路径(36),其将所述加法器(26)的进位输出(91)连接到所述选择电路(24),用于在两个后续加法中,针对所述高部分(72,75,78)和所述低部分(73,76,79)执行中间乘积(70)和对齐的加数(77)的宽加法运算;(vii)第二反馈路径(38),其将所述加法器(26)的输出连接到所述移位器(18,20),用于使中间宽结果(86)通过所述移位器(18,20)以进行规格化以及第二次通过所述加法器(26)以进行舍入。2.根据权利要求1所述的单元,其中,所述左移位器(18)被实现为具有位旋转功能的右移位器。3.根据权利要求1所述的单元,其中,所述乘法器(14)被配置为顺序地计算所述乘积(70)的所述高部分(72,75)和所述低部分(73,76)。4.根据权利要求1所述的单元,还包括前导零计数器(22),其连接到所述加数操作数(104)的解包电路(12)。5.根据权利要求1所述的单元,还包括用于如果所述加数(77)的阶码减去所述加数(77)的前导零数量大于所述乘积(70)的阶码加上常数,则将所述乘积(70)与所述加数(77)对齐的装置,其中,所述常数至少为2。6.根据权利要求5所述的单元,还包括用于在非正规加数(77)的情况下对所述加数(77)进行规格化的装置。7.根据权利要求5所述的单元,还包括用于将所述乘积(70)的所述高部分(72,75)和所述低部分(73,76)与所述加数(77)对齐并合并到单个数据部分的装置。8.根据权利要求1所述的单元,还包括用于如果所述加数(77)的阶码减去所述加数(77)的前导零数量小于或等于所述乘积(70)的阶码加上常数,则通过所述左移位器和/或所述右移位器(18,20)将所述加数(77)与所述乘积(70)对齐的装置,其中,所述常数至少为2。9.根据权利要求8所述的单元,还包括用于通过所述左移位器和/或所述右移位器(18,20)将所述加数(77)的所述高部分(78)和所述低部分(79)分别与所述乘积(70)对齐的装置。10.根据权利要求8所述的单元,还包括用于在有效加法运算的情况下,通过所述选择电路(70)和所述3到2压缩器将所述乘积(70)的所述高部分(72,75,78)和所述低部分(73,76,79)与所述加数(77)相加的装置。11.根据权利要求8所述的单元,还包括用于在有效减法运算的情况下,如果循环进位运算的结果等于零,则计算所述乘积(70)与负加数(77)的负和作为结果(86),否则计算所述乘积(70)与所述负加数(77)之和加1作为结果(86)的装置。12.一种用于在浮点单元(10)中执行二进制浮点算术计算的方法,所述浮点单元被配置为在三个128位宽的操作数(100,102,104)上实现融合乘加运算,所述方法包括:(i)由113×113位乘法器(14)迭代地计算乘法操作数(100,102)的226位进位保存乘积(70),其中,和项(71)和进位项(74)被分成所述乘积(70)的高部分(72,75)和低部分(73,76);(ii)通过连接到数据流的左移位器(18)至少对齐加数操作数(104)的高部分(78)和低部分(79),所述左移位器(18)被配置为传递所述加数(77)的对齐部分;(iii)通过连接到所述数据流的右移位器(20)对齐所述加数操作数(104)的所述高部分(78)和所述低部分(79),所述右移位器(20)被配置为传递所述加数(77)的所述对齐部分;(iv)通过连接到所述移位器(18,20)的输出的选择电路(24)将两个乘积项(71,74)与所述...

【专利技术属性】
技术研发人员:M·K·克罗纳U·克劳兹T·巴宾斯基S·M·穆勒A·瓦格纳
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:美国,US

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

1