一种确定浮点数平方根倒数的方法及装置制造方法及图纸

技术编号:38758307 阅读:11 留言:0更新日期:2023-09-10 09:43
本公开提供了一种确定浮点数平方根倒数的方法,包括:中央处理器对第一精度浮点数进行识别,基于识别结果生成处理指令,将所述处理指令发送至硬件加速器;硬件加速器基于接收到的处理指令执行:对第一精度浮点数进行处理得到第二精度浮点数;其中,所述第二精度浮点数的精度小于所述第一精度浮点数的精度;采用对应于第二精度浮点数的求平方根倒数算数逻辑单元ALU,对所述第二精度浮点数进行计算,得到所述第二精度浮点数的平方根倒数;根据第二精度浮点数的平方根倒数确定牛顿迭代初始值,调用整数算数逻辑单元ALU模拟牛顿迭代法确定所述第一精度浮点数的平方根倒数。所述第一精度浮点数的平方根倒数。所述第一精度浮点数的平方根倒数。

【技术实现步骤摘要】
一种确定浮点数平方根倒数的方法及装置


[0001]本公开涉及计算机
,尤其涉及一种确定浮点数平方根倒数的方法及装置。

技术介绍

[0002]目前,为了满足各类应用需求,如为了追求更极致的渲染画面,需要硬件加速器具备对高精度浮点数进行计算的能力。
[0003]然而,目前市面上的硬件加速器,通常只具有对低精度浮点数进行计算的ALU单元,或者对整数进行计算的ALU单元,如果想要实现计算高精度浮点数的平方根倒数,则需要开发硬件即需要设计和开发用于对高精度浮点数求平方根倒数的ALU,这种方式增加了硬件的设计复杂度,同时也需要较长的研发周期。

技术实现思路

[0004]针对上述技术问题,本公开提供一种确定浮点数平方根倒数的方法及装置,技术方案如下。
[0005]根据本公开的第一方面,提供一种确定浮点数平方根倒数的方法,包括:
[0006]中央处理器对第一精度浮点数进行识别,基于识别结果生成处理指令,将所述处理指令发送至硬件加速器;
[0007]硬件加速器基于接收到的处理指令执行:
[0008]对第一精度浮点数进行处理得到第二精度浮点数;其中,所述第二精度浮点数的精度小于所述第一精度浮点数的精度;
[0009]采用对应于第二精度浮点数的求平方根倒数算数逻辑单元ALU,对所述第二精度浮点数进行计算,得到所述第二精度浮点数的平方根倒数;
[0010]根据第二精度浮点数的平方根倒数确定牛顿迭代初始值,调用整数算数逻辑单元ALU模拟牛顿迭代法确定所述第一精度浮点数的平方根倒数。
[0011]在一个实施例中,所述对第一精度浮点数进行处理得到第二精度浮点数,包括:
[0012]对所述第一精度浮点数的尾数进行截取,以得到满足第二精度浮点数尾数位宽要求的第一尾数,用于作为第二精度浮点数的尾数;
[0013]对所述第一精度浮点数的指数进行拆分,以得到满足第二精度浮点数指数范围要求的第一指数,用于作为为第二精度浮点数的指数。
[0014]在一个实施例中,所述对所述第一精度浮点数的指数进行拆分,包括:
[0015]将所述第一精度浮点数的指数拆分为第一指数与第二指数相加;其中,所述第一指数满足第二精度浮点数的指数范围要求,第二指数为偶数。
[0016]在一个实施例中,所述根据第二精度浮点数的平方根倒数确定牛顿迭代初始值,调用整数算数逻辑单元ALU模拟牛顿迭代法确定所述第一精度浮点数的平方根倒数,包括:
[0017]以第二精度浮点数的平方根倒数的尾数为牛顿迭代初始值,以第一精度浮点数的
尾数为目标值,调用整数算数逻辑单元ALU模拟牛顿迭代法进行迭代得到输出值;
[0018]将输出值、第一数值以及第二数值的乘积作为第一精度浮点数的平方根倒数;其中,第一数值为以2为底,以第二精度浮点数的平方根倒数的指数为指数的乘方结果,第二数值为以2为底,以第二指数的二分之一的相反数为指数的乘方结果。
[0019]在一个实施例中,所述根据第二精度浮点数的平方根倒数确定牛顿迭代初始值,调用整数算数逻辑单元ALU模拟牛顿迭代法确定所述第一精度浮点数的平方根倒数,包括:
[0020]以所述第二精度浮点数的平方根倒数对应的整数数值以及第二数值的乘积作为牛顿迭代初始值,以第一精度浮点数对应的整数数值为目标值,模拟求平方根倒数的牛顿迭代法进行迭代得到输出值;其中,第二数值为以2为底,以第二指数的二分之一的相反数为指数的乘方结果;所述第一精度浮点数对应的整数数值为所述第一精度浮点数的尾数与第三数值的乘积,所述第三数值为以2为底,以所述第一精度浮点数的指数为指数的乘方结果;所述第二精度浮点数对应的整数数值为所述第二精度浮点数的尾数与第四数值的乘积,所述第四数值为以2为底,以所述第二精度浮点数的指数为指数的乘方结果;
[0021]将该输出值作为第一精度浮点数的平方根倒数。
[0022]根据本公开的第二方面,提供一种确定浮点数平方根倒数的装置,包括:中央处理器以及硬件加速器;
[0023]所述中央处理器,用于对第一精度浮点数进行识别,基于识别结果生成处理指令,将所述处理指令发送至硬件加速器;
[0024]所述硬件加速器,用于基于接收到的处理指令执行:
[0025]对第一精度浮点数进行处理得到第二精度浮点数;其中,所述第二精度浮点数的精度小于所述第一精度浮点数的精度;
[0026]采用对应于第二精度浮点数的求平方根倒数算数逻辑单元ALU,对所述第二精度浮点数进行计算,得到所述第二精度浮点数的平方根倒数;
[0027]根据第二精度浮点数的平方根倒数确定牛顿迭代初始值,调用整数算数逻辑单元ALU模拟牛顿迭代法确定所述第一精度浮点数的平方根倒数。
[0028]在一个实施例中,所述硬件加速器,具体用于对所述第一精度浮点数的尾数进行截取,以得到满足第二精度浮点数尾数位宽要求的第一尾数,用于作为第二精度浮点数的尾数;
[0029]对所述第一精度浮点数的指数进行拆分,以得到满足第二精度浮点数指数范围要求的第一指数,用于作为第二精度浮点数的指数。
[0030]在一个实施例中,所述硬件加速器,具体用于将所述第一精度浮点数的指数拆分为第一指数与第二指数相加;其中,所述第一指数满足第二精度浮点数的指数范围要求,第二指数为偶数。
[0031]在一个实施例中,所述硬件加速器,具体用于以第二精度浮点数的平方根倒数的尾数为牛顿迭代初始值,以第一精度浮点数的尾数为目标值,调用整数算数逻辑单元ALU模拟牛顿迭代法进行迭代得到输出值;
[0032]将输出值、第一数值以及第二数值的乘积作为第一精度浮点数的平方根倒数;其中,第一数值为以2为底,以第二精度浮点数的平方根倒数的指数为指数的乘方结果,第二数值为以2为底,以第二指数的二分之一的相反数为指数的乘方结果。
[0033]在一个实施例中,所述硬件加速器,具体用于以所述第二精度浮点数的平方根倒数对应的整数数值以及第二数值的乘积作为牛顿迭代初始值,以第一精度浮点数对应的整数数值为目标值,模拟求平方根倒数的牛顿迭代法进行迭代得到输出值;其中,第二数值为以2为底,以第二指数的二分之一的相反数为指数的乘方结果;所述第一精度浮点数对应的整数数值为所述第一精度浮点数的尾数与第三数值的乘积,所述第三数值为以2为底,以所述第一精度浮点数的指数为指数的乘方结果;所述第二精度浮点数对应的整数数值为所述第二精度浮点数的尾数与第四数值的乘积,所述第四数值为以2为底,以所述第二精度浮点数的指数为指数的乘方结果;
[0034]将该输出值作为第一精度浮点数的平方根倒数。
[0035]根据本公开实施例的第三个方面,提供了一种电子设备,包括上述确定浮点数平方根倒数的装置。
[0036]根据本公开实施例的第四个方面,提供了一种硬件加速器,包括:
[0037]存储器,用于存储中央处理器发送的处理指令;
[0038]控制器,用于读取存储器中的处理指令以执本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种确定浮点数平方根倒数的方法,包括:中央处理器对第一精度浮点数进行识别,基于识别结果生成处理指令,将所述处理指令发送至硬件加速器;硬件加速器基于接收到的处理指令执行:对第一精度浮点数进行处理得到第二精度浮点数;其中,所述第二精度浮点数的精度小于所述第一精度浮点数的精度;采用对应于第二精度浮点数的求平方根倒数算数逻辑单元ALU,对所述第二精度浮点数进行计算,得到所述第二精度浮点数的平方根倒数;根据第二精度浮点数的平方根倒数确定牛顿迭代初始值,调用整数算数逻辑单元ALU模拟牛顿迭代法确定所述第一精度浮点数的平方根倒数。2.根据权利要求1所述的方法,所述对第一精度浮点数进行处理得到第二精度浮点数,包括:对所述第一精度浮点数的尾数进行截取,以得到满足第二精度浮点数尾数位宽要求的第一尾数,用于作为第二精度浮点数的尾数;对所述第一精度浮点数的指数进行拆分,以得到满足第二精度浮点数指数范围要求的第一指数,用于作为第二精度浮点数的指数。3.根据权利要求2所述的方法,所述对所述第一精度浮点数的指数进行拆分,包括:将所述第一精度浮点数的指数拆分为第一指数与第二指数相加;其中,所述第一指数满足第二精度浮点数的指数范围要求,第二指数为偶数。4.根据权利要求3所述的方法,所述根据第二精度浮点数的平方根倒数确定牛顿迭代初始值,调用整数算数逻辑单元ALU模拟牛顿迭代法确定所述第一精度浮点数的平方根倒数,包括:以第二精度浮点数的平方根倒数的尾数为牛顿迭代初始值,以第一精度浮点数的尾数为目标值,调用整数算数逻辑单元ALU模拟牛顿迭代法进行迭代得到输出值;将输出值、第一数值以及第二数值的乘积作为第一精度浮点数的平方根倒数;其中,第一数值为以2为底,以第二精度浮点数的平方根倒数的指数为指数的乘方结果,第二数值为以2为底,以第二指数的二分之一的相反数为指数的乘方结果。5.根据权利要求3所述的方法,所述根据第二精度浮点数的平方根倒数确定牛顿迭代初始值,调用整数算数逻辑单元ALU模拟牛顿迭代法确定所述第一精度浮点数的平方根倒数,包括:以所述第二精度浮点数的平方根倒数对应的整数数值以及第二数值的乘积作为牛顿迭代初始值,以第一精度浮点数对应的整数数值为目标值,模拟求平方根倒数的牛顿迭代法进行迭代得到输出值;其中,第二数值为以2为底,以第二指数的二分之一的相反数为指数的乘方结果;所述第一精度浮点数对应的整数数值为所述第一精度浮点数的尾数与第三数值的乘积,所述第三数值为以2为底,以所述第一精度浮点数的指数为指数的乘方结果;所述第二精度浮点数对应的整数数值为所述第二精度浮点数的尾数与第四数值的乘积,所述第四数值为以2为底,以所述第二精度浮点数的指数为指数的乘方结果;将该输出值作为第一精度浮点数的平方根倒数。6.一种确定浮点数平方根倒数的装置,包括中央处理器以及硬件加速器;
所述中央处理器,用于对第一精度浮点数进行识别,基于识别结果生成处理指令,将所述处理指令发送至硬件加速器;所述硬件加速器,用于基于接收到的处理指令执行:对第一精度浮点数进行处理得到第二精度浮点数;其中,所述第二精度浮点数的精度小于所述第一精度浮点数的精度;采用对应于第二精度浮点数的求平方根倒数算数逻辑单元ALU,对所述第二精度浮点数进行计算,得到所述第二精度浮点数的平方根倒数...

【专利技术属性】
技术研发人员:唐志敏王海洋姜莹
申请(专利权)人:象帝先计算技术重庆有限公司
类型:发明
国别省市:

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

1