System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机处理器,尤其涉及一种浮点数据浮点乘加运算方法、装置、电子设备及存储介质。
技术介绍
1、高性能处理器的一个重要标志就是中央处理器(central processing unit,cpu)中的浮点乘加(fused multiply-accumulate,fma)部件的性能。高性能处理器中通常都会设置浮点乘加部件,以对浮点数进行浮点乘加运算。
2、浮点乘加部件的运算单元一般都只支持对格式为规格化数的浮点数进行浮点乘加运算。当处理器的浮点部件对浮点数进行运算所得到运算结果较小,而且小于规格化数所能表示的最小值时,需要利用非规格化数来表示该运算结果。因此,浮点乘加部件就一定会涉及到对非规格化数的处理。当浮点乘加部件要对格式为非规格化数的运算结果进行运算时,则需要对该非规格化数进行预处理,具体可以包括:方法一、利用软件来模拟非规格化数进行计算;方法二、当浮点乘加运算部件遇到非规格化数输入时,流水线阻塞一个时钟周期,以将非规格化数的尾数通过左移统一为规格化数的形式,以进一步进行浮点乘加运算。
3、然而,针对方法一而言,采用软件进行非规格化数运算时极大的降低了浮点乘加部件的运算效率;针对方法二而言,其会在流水线中形成气泡,从而降低每一时钟周期内所执行的指令数,而且由于阻塞了一个时钟周期的流水线,导致无法全流水处理数据,则增加了写回及各种相关逻辑控制复杂度,降低处理器处理浮点乘加指令的性能。因此,浮点乘加部件处理非规格化数据的方法复杂,使得浮点乘加部件的运算效率低,进而导致处理器处理浮点乘加指令的性能
技术实现思路
1、本专利技术提供一种浮点数据浮点乘加运算方法、装置、电子设备及存储介质,用以解决浮点乘加部件的运算效率低,进而导致处理器处理浮点乘加指令的性能低的问题。
2、本专利技术提供一种浮点数据浮点乘加运算方法,包括:
3、在至少一个浮点源操作数的类型不为目标类型的情况下,分别对各所述浮点源操作数进行预处理,得到预处理操作数;所述浮点源操作数的类型为规格化数据或者非规格化数据,所述预处理操作数的类型为规格化数据或者非规格化数据;
4、对各所述预处理操作数进行浮点乘加运算,得到运算结果。
5、根据本专利技术提供的一种浮点数据浮点乘加运算方法,所述分别对各所述浮点源操作数进行预处理,得到预处理操作数,包括:
6、针对每个所述浮点源操作数,在所述浮点源操作数的类型为非规格化数据的情况下,不对流水线进行时钟周期的阻塞,且不将所述浮点源操作数的尾数进行规格化处理,并在所述浮点源操作数的尾数的隐含位添加1位0,得到所述预处理操作数。
7、根据本专利技术提供的一种浮点数据浮点乘加运算方法,所述对各所述预处理操作数进行浮点乘加运算,得到运算结果,包括:
8、对规格化的预处理操作数和/或非规格化的预处理操作数进行浮点乘加运算,得到所述运算结果。
9、根据本专利技术提供的一种浮点数据浮点乘加运算方法,所述方法还包括:
10、在对各所述预处理操作数进行浮点乘加运算的过程中,对做加法的所述预处理操作数的尾数进行右移对阶操作;
11、在右移对阶操作的移位量大于预设值的情况下,确定超出所述预设值的尾数;
12、基于超出所述预设值的尾数,确定是否设置舍入位;所述舍入位用于控制对所述运算结果的舍入。
13、根据本专利技术提供的一种浮点数据浮点乘加运算方法,所述基于超出所述预设值的尾数,确定是否设置舍入位,包括:
14、在超出所述预设值的尾数不全为0的情况下,设置舍入位。
15、根据本专利技术提供的一种浮点数据浮点乘加运算方法,所述基于超出所述预设值的尾数,确定是否设置舍入位,包括:
16、在超出所述预设值的尾数全为0的情况下,不设置舍入位。
17、根据本专利技术提供的一种浮点数据浮点乘加运算方法,所述方法还包括:
18、在所述浮点源操作数为浮点单精度源操作数、且所述浮点源操作数的类型为非规格化数的情况下,将所述浮点源操作数转换为浮点双精度源操作数。
19、本专利技术还提供一种浮点数据浮点乘加运算装置,包括:
20、预处理模块,用于在至少一个浮点源操作数的类型不为目标类型的情况下,分别对各所述浮点源操作数进行预处理,得到预处理操作数;所述浮点源操作数的类型为规格化数据或者非规格化数据,所述预处理操作数的类型为规格化数据或者非规格化数据;
21、运算模块,用于对各所述预处理操作数进行浮点乘加运算,得到运算结果。
22、本专利技术还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一种所述浮点数据浮点乘加运算方法。
23、本专利技术还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述浮点数据浮点乘加运算方法。
24、本专利技术提供的浮点数据浮点乘加运算方法、装置、电子设备及存储介质,通过在至少一个浮点源操作数的类型不为目标类型的情况下,分别对各所述浮点源操作数进行预处理,得到预处理操作数;所述浮点源操作数的类型为规格化数据或者非规格化数据,所述预处理操作数的类型为规格化数据或者非规格化数据;对各所述预处理操作数进行浮点乘加运算,得到运算结果。由于浮点源操作数的类型为规格化数据或者非规格化数据,预处理操作数的类型为规格化数据或者非规格化数据,实现对规格化数据和非规格化数据的直接浮点乘加运算,不需要将非规格化数据转换为规格化数据,提升浮点乘加部件的运算效率,进而提升处理器处理浮点乘加指令的性能。
本文档来自技高网...【技术保护点】
1.一种浮点数据浮点乘加运算方法,其特征在于,包括:
2.根据权利要求1所述的浮点数据浮点乘加运算方法,其特征在于,所述分别对各所述浮点源操作数进行预处理,得到预处理操作数,包括:
3.根据权利要求1所述的浮点数据浮点乘加运算方法,其特征在于,所述对各所述预处理操作数进行浮点乘加运算,得到运算结果,包括:
4.根据权利要求1至3任一项所述的浮点数据浮点乘加运算方法,其特征在于,所述方法还包括:
5.根据权利要求4所述的浮点数据浮点乘加运算方法,其特征在于,所述基于超出所述预设值的尾数,确定是否设置舍入位,包括:
6.根据权利要求4所述的浮点数据浮点乘加运算方法,其特征在于,所述基于超出所述预设值的尾数,确定是否设置舍入位,包括:
7.根据权利要求1至3任一项所述的浮点数据浮点乘加运算方法,其特征在于,所述方法还包括:
8.一种浮点数据浮点乘加运算装置,其特征在于,包括:
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述浮点数据浮点乘加运算方法。
...【技术特征摘要】
1.一种浮点数据浮点乘加运算方法,其特征在于,包括:
2.根据权利要求1所述的浮点数据浮点乘加运算方法,其特征在于,所述分别对各所述浮点源操作数进行预处理,得到预处理操作数,包括:
3.根据权利要求1所述的浮点数据浮点乘加运算方法,其特征在于,所述对各所述预处理操作数进行浮点乘加运算,得到运算结果,包括:
4.根据权利要求1至3任一项所述的浮点数据浮点乘加运算方法,其特征在于,所述方法还包括:
5.根据权利要求4所述的浮点数据浮点乘加运算方法,其特征在于,所述基于超出所述预设值的尾数,确定是否设置舍入位,包括:
6.根据权利要求4所述的浮点数据浮点乘加...
【专利技术属性】
技术研发人员:郇丹丹,李祖松,宋德林,
申请(专利权)人:北京微核芯科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。