System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种浮点数平方根计算方法及浮点数计算模块技术_技高网

一种浮点数平方根计算方法及浮点数计算模块技术

技术编号:41137097 阅读:6 留言:0更新日期:2024-04-30 18:08
本申请实施例提供一种浮点数平方根计算方法及浮点数计算模块,计算延迟较短,具有高吞吐率,及对应提供优化的舍入方法,可以输出满足IEEE754标准舍入方式的精确结果。浮点数平方根计算方法中通过确定目标尾数的平方根,确定第一浮点数的平方根的尾数,其中,目标尾数包括第一浮点数的尾数,所述第一浮点数为正常值化(normalized)的浮点数。分别计算目标尾数的平方根的高位位宽部分和低位位宽部分,确定目标尾数的平方根,所述目标尾数的平方根的小数部分为第一浮点数的平方根的尾数,从而实现确定第一浮点数的平方根的尾数。

【技术实现步骤摘要】

本申请涉及电子,尤其涉及一种浮点数平方根计算方法及浮点数计算模块


技术介绍

1、浮点数平方根计算已经发展为一种处理器支持的基础运算。目前,在支持浮点数计算的处理器中都有着广泛的应用。例如,中央处理器(central processing unit,cpu)、图形处理器(graphics processing unit,gpu)、人工智能(artificial intelligence,ai)处理器等。浮点数平方根计算广泛地应用于数字信号处理,图形计算和高性能计算等多个领域。

2、现有浮点数的平方根求解方法中,如巴比伦方法或者牛顿-拉夫森方法。利用平方根求解方程,以初始近似值作为输入,每次迭代计算后可以得到非精确的全位宽平方根值。通过多轮迭代获得满足高精度要求的全位宽的计算结果。现有浮点数平方根求解过程中,存在迭代次数较多,收敛速度较慢的缺陷。


技术实现思路

1、本申请提供一种浮点数平方根计算方法及浮点数计算模块,计算延迟较短,具有高吞吐率。

2、第一方面,本申请提供一种浮点数平方根计算方法,可以由处理器、计算器、处理设备或者计算设备等执行或实施。下面以处理器执行本申请提供的浮点数平方根计算方法作为举例进行说明。处理器可以接收浮点数计算指令,该指令可以携带待计算浮点数(z)。处理器可以获取目标尾数(x),目标尾数(x)包括第一浮点数(w)的尾数,所述第一浮点数(w)为正常值化(normalized)的浮点数,且待计算浮点数的数值与第一浮点数(w)的数值相同。待计算浮点数(z)的尾数和阶码可以与第一浮点数(w)的尾数和阶码不同或者相同,也即待计算浮点数(z)的表达格式与第一浮点数(w)的表达格式可以不同或者相同。一些应用场景中,处理器接收的待计算浮点数(z)的格式与第一浮点数(w)的格式不同,处理器可以将待计算浮点数(z)处理为第一浮点数(w),这个过程中不改变接收的浮点数的数值,仅改变待计算浮点数(z)的格式。所述目标尾数(x)与第一浮点数(w)的尾数的关系可以为:若所述第一浮点数(w)的阶码为偶数,所述目标尾数(x)与所述第一浮点数(w)的尾数相同;若所述第一浮点数(w)的阶码为奇数,所述目标尾数(x)为所述第一浮点数(w)的尾数的q倍,其中q为浮点数的基数,q为正数,且q为偶数。例如,通过对第一浮点数(w)的尾数进行左移一位可以得到目标尾数(x)。

3、处理器可以根据所述目标尾数(x)的全部或部分位宽,确定所述目标尾数(x)的平方根的第一位宽部分(fu),所述第一位宽部分(fu)包含所述目标尾数(x)的平方根的最高位。处理器可以基于第一关系,所述第一位宽部分(fu)和所述目标尾数(x)的全部或部分位宽,计算所述目标尾数(x)的平方根的第二位宽部分(fl),其中,所述第一关系表征所述目标尾数(x)的平方根的第一位宽部分(fu)、所述目标尾数(x)以及所述目标尾数(x)的平方根的第二位宽部分(fl)之间的关系。处理器可以基于所述第一位宽部分(fu)和所述第二位宽部分(fl),确定所述目标尾数(x)的平方根,并将所述目标尾数(x)的平方根的小数部分确定为所述待计算浮点数(z)的平方根的尾数。例如目标尾数(x)的平方根的小数部分的最高位可以确定为浮点数(z)的平方根的尾数的整数部分,目标尾数(x)的平方根的小数部分除最高位之外的位宽确定为浮点数(z)的平方根的尾数的小数部分。

4、本申请实施例中,处理器计算待计算浮点数(z)的平方根的尾数部分,也是计算第一浮点数(w)的平方根的尾数,并且可以通过确定目标尾数(x)的平方根实现。处理器可以分别确定目标尾数(x)的平方根的高位部分和低位部分,也即第一位宽部分(fu)和第二位宽部分(fl)。处理器可以利用确定出的第一位宽部分(fu)和第二位宽部分(fl),确定目标尾数(x)的平方根。可见处理器确定目标尾数(x)的平方根过程中不需要迭代,从而计算延迟较短,具有高吞吐率。可选的,处理器可以并行确定所述第一位宽部分(fu)和所述第二位宽部分(fl)。或者处理器可以串行确定所述第一位宽部分(fu)和所述第二位宽部分(fl)。例如,处理器确定第一位宽部分(fu)后,确定第二位宽部分(fl)。

5、可以理解的是,本申请实施例中,浮点数的尾数的部分位宽包括多个位宽时,多个位宽是连续的。也即部分位宽也指部分连续位宽。浮点数的部分可以为浮点数的尾数的一部分,尾数的一部分包括多个位宽时,多个位宽是连续的。

6、一种可能的实施方式中,所述第一关系符合如下关系:其中,x为所述目标尾数,fu为所述第一位宽部分,fl为所述第二位宽部分。本申请实施例中,处理器可以通过软件或者硬件方式,实现利用第一关系确定第二位宽部分(fl)的操作。本申请实施例对此不作过多限定。

7、一种可能的实施方式中,所述第二位宽部分(fl)包含所述目标尾数(x)的平方根的部分位宽,且包含所述目标尾数(x)的平方根的最低位,其中,所述第一位宽部分(fu)的位宽长度与所述第二位宽部分(fl)的位宽长度的总和大于或等于所述目标尾数(x)的平方根的全位宽长度。

8、本申请实施例中,第一位宽部分(fu)可指包含目标尾数(x)平方根的最高位的部分连续位宽。第二位宽部分(fl)可以指包含目标尾数(x)平方根的最低位的部分连续位宽。第一位宽部分的位宽(fu)与第二位宽部分(fl)的位宽的总和大于或等于目标尾数(x)平方根的全位宽。

9、一种可能的实施方式中,本申请实施例提供的浮点数计算方法还包括:处理器根据所述目标尾数(x)的全部或部分位宽,确定所述目标尾数(x)的平方根的第一位宽部分(fu)时,可以基于目标第一查询参数(r1)、目标第二查询参数(r2),确定预设的第一多项式拟合方程的系数,其中,所述目标第一查询参数(r1)为所述第一浮点数(w)的尾数的第一部分,所述目标第二查询参数(r2)为所述第一浮点数(w)的阶码的部分位宽,且包括所述第一浮点数(w)的阶码的最低位宽。处理器可以根据所述第一多项式拟合方程的系数和所述第一浮点数(w)的尾数的第二部分,计算所述第一位宽部分(fu),所述第一浮点数(w)的尾数的第二部分对应的位宽与所述第一浮点数(w)的尾数的第一部分对应的位宽不重叠。

10、本申请实施例中,处理器根据所述第一多项式拟合方程的系数和所述第一浮点数(w)的部分位宽确定所述第一位宽部分(fu)时,第一浮点数(w)的部分可以指第一浮点数(w)的部分位宽、部分位宽比特或者部分位宽数据。目标第一查询参数(r1)可以为第一浮点数(w)的尾数的第一部分。第一浮点数(w)的尾数的第二部分可以用于计算所述第一位宽部分(fu)。可选的,第一浮点数(w)的尾数的第二部分为第一浮点数(w)中除所述第一部分之外的部分位宽比特或者部分位宽数据。所述目标第二查询参数(r2)为所述第一浮点数(w)的阶码的部分位宽,所述第一浮点数(w)的阶码的部分位宽包括所述第一浮点数(w)的阶码的最低位宽,可见目标第二查询参数(r2)可以反映第一浮点数(w)本文档来自技高网...

【技术保护点】

1.一种浮点数平方根计算方法,应用于处理器或者计算器,其特征在于,包括:

2.如权利要求1所述的方法,其特征在于,

3.如权利要求1或2所述的方法,其特征在于,所述第一关系符合如下关系:

4.如权利要求1-3任一所述的方法,其特征在于,所述第二位宽部分(fl)包含所述目标尾数(X)的平方根的部分位宽,且包含所述目标尾数(X)的平方根的最低位,其中,所述第一位宽部分(fu)的位宽长度与所述第二位宽部分(fl)的位宽长度的总和大于或等于所述目标尾数(X)的平方根的全位宽长度。

5.如权利要求2-4任一所述的方法,其特征在于,所述根据所述目标尾数(X)的全部或部分位宽,确定所述目标尾数(X)的平方根的第一位宽部分(fu),包括:

6.如权利要求5所述的方法,其特征在于,基于目标第一查询参数(r1)、目标第二查询参数(r2),确定预设的第一多项式拟合方程的系数,包括:

7.如权利要求1-6任一所述的方法,其特征在于,所述基于所述第一位宽部分(fu)和所述第二位宽部分(fl),确定所述目标尾数(X)的平方根,包括:p>

8.如权利要求7所述的方法,其特征在于,所述第一舍入判别参数(ie)采用如下公式计算:

9.如权利要求1-7任一所述的方法,其特征在于,所述基于所述第一位宽部分(fu)和所述第二位宽部分(fl),确定所述目标尾数(X)的平方根,包括:

10.如权利要求9所述的方法,其特征在于,所述第二待选结果与所述第一待选结果的差值小于或等于一个最小精度单位;所述第一待选结果与所述第三待选结果的差值小于或等于一个最小精度单位。

11.如权利要求9或10所述的方法,其特征在于,所述第二舍入判别参数(ien)采用如下公式计算:

12.如权利要求9-11任一所述的方法,其特征在于,所述第三舍入判别参数(iep)采用如下公式计算:

13.如权利要求1-6任一所述的方法,其特征在于,所述基于所述第一位宽部分(fu)和所述第二位宽部分(fl),确定所述目标尾数(X)的平方根,包括:

14.一种浮点数计算模块,其特征在于,所述浮点数计算模块用于接收浮点数计算指令,所述指令携带待计算浮点数(Z);获取目标尾数(X),所述目标尾数(X)包括第一浮点数(W)的尾数,所述第一浮点数(W)为正常值化的浮点数,所述第一浮点数(W)的数值与所述待计算浮点数(Z)的数值相同;

15.如权利要求14所述的浮点数计算模块,其特征在于,

16.如权利要求14或15所述的浮点数计算模块,其特征在于,所述第一关系符合如下关系:

17.如权利要求14-16任一所述的浮点数计算模块,其特征在于,所述第二位宽部分(fl)包含所述目标尾数(X)的平方根的部分位宽,且包含所述目标尾数(X)的平方根的最低位,其中,所述第一位宽部分(fu)的位宽长度与所述第二位宽部分(fl)的位宽长度的总和大于或等于所述目标尾数(X)的平方根的全位宽长度。

18.如权利要求15-17任一所述的浮点数计算模块,其特征在于,所述高位计算单元,具体用于:

19.如权利要求18所述的浮点数计算模块,其特征在于,所述高位计算单元,具体用于:

20.如权利要求14-19任一所述的浮点数计算模块,其特征在于,所述精确舍入单元,具体用于:

21.如权利要求20所述的浮点数计算模块,其特征在于,所述第一舍入判别参数(ie)采用如下公式计算:

22.如权利要求14-19任一所述的浮点数计算模块,其特征在于,所述精确舍入单元,具体用于:

23.如权利要求22所述的浮点数计算模块,其特征在于,所述第二待选结果与所述第一待选结果的差值小于或等于一个最小精度单位;所述第一待选结果与所述第三待选结果的差值小于或等于一个最小精度单位。

24.如权利要求22或23所述的浮点数计算模块,其特征在于,所述第二舍入判别参数(ien)采用如下公式计算:

25.如权利要求22-24任一所述的浮点数计算模块,其特征在于,所述第三舍入判别参数(iep)采用如下公式计算:

26.如权利要求14-25任一所述的浮点数计算模块,其特征在于,精确舍入单元,具体用于:

27.如权利要求14-26任一所述的浮点数计算模块,其特征在于,所述精确舍入单元,具体用于:

28.如权利要求14-27任一所述的浮点数计算模块,其特征在于,所述第一关系包括所述第一位宽部分(fu)的倒数;所述低位计算单元,还用于:

29.如权利要求28所述的浮点数...

【技术特征摘要】

1.一种浮点数平方根计算方法,应用于处理器或者计算器,其特征在于,包括:

2.如权利要求1所述的方法,其特征在于,

3.如权利要求1或2所述的方法,其特征在于,所述第一关系符合如下关系:

4.如权利要求1-3任一所述的方法,其特征在于,所述第二位宽部分(fl)包含所述目标尾数(x)的平方根的部分位宽,且包含所述目标尾数(x)的平方根的最低位,其中,所述第一位宽部分(fu)的位宽长度与所述第二位宽部分(fl)的位宽长度的总和大于或等于所述目标尾数(x)的平方根的全位宽长度。

5.如权利要求2-4任一所述的方法,其特征在于,所述根据所述目标尾数(x)的全部或部分位宽,确定所述目标尾数(x)的平方根的第一位宽部分(fu),包括:

6.如权利要求5所述的方法,其特征在于,基于目标第一查询参数(r1)、目标第二查询参数(r2),确定预设的第一多项式拟合方程的系数,包括:

7.如权利要求1-6任一所述的方法,其特征在于,所述基于所述第一位宽部分(fu)和所述第二位宽部分(fl),确定所述目标尾数(x)的平方根,包括:

8.如权利要求7所述的方法,其特征在于,所述第一舍入判别参数(ie)采用如下公式计算:

9.如权利要求1-7任一所述的方法,其特征在于,所述基于所述第一位宽部分(fu)和所述第二位宽部分(fl),确定所述目标尾数(x)的平方根,包括:

10.如权利要求9所述的方法,其特征在于,所述第二待选结果与所述第一待选结果的差值小于或等于一个最小精度单位;所述第一待选结果与所述第三待选结果的差值小于或等于一个最小精度单位。

11.如权利要求9或10所述的方法,其特征在于,所述第二舍入判别参数(ien)采用如下公式计算:

12.如权利要求9-11任一所述的方法,其特征在于,所述第三舍入判别参数(iep)采用如下公式计算:

13.如权利要求1-6任一所述的方法,其特征在于,所述基于所述第一位宽部分(fu)和所述第二位宽部分(fl),确定所述目标尾数(x)的平方根,包括:

14.一种浮点数计算模块,其特征在于,所述浮点数计算模块用于接收浮点数计算指令,所述指令携带待计算浮点数(z);获取目标尾数(x),所述目标尾数(x)包括第一浮点数(w)的尾数,所述第一浮点数(w)为正常值化的浮点数,所述第一浮点数(w)的数值与所述待计算...

【专利技术属性】
技术研发人员:罗元勇谷志岩王建峰龙子超
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1