System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 浮点数据精度转换方法和装置制造方法及图纸_技高网

浮点数据精度转换方法和装置制造方法及图纸

技术编号:41073415 阅读:6 留言:0更新日期:2024-04-24 11:30
本申请实施例提供一种浮点数据精度转换方法和装置,涉及芯片技术领域,提高了高精度数据向低精度数据转换时的整体均值不变性。具体方案为:根据第一指数域的第一编码值确定前缀码域的第一位宽、前缀码域的第一编码值、第二指数域的第一位宽、第二指数域的第一编码值以及第二尾数域的第一位宽;确定第一尾数域中的保留编码值和舍弃编码值,保留编码值包括第一尾数域中从最高位开始,且位宽与第二尾数域的第一位宽相同的编码值;根据舍弃编码值对保留编码值进行舍入操作,得到第二尾数域的第一编码值。本申请实施例用于高精度数据向低精度数据转换的过程。

【技术实现步骤摘要】

本申请实施例涉及芯片,尤其涉及一种浮点数据精度转换方法和装置


技术介绍

1、随着混合精度计算的快速发展,开始大规模的部署低精度浮点数据格式的计算资源。比如在人工智能(artificial intelligence,ai)领域部署有浮点(floating point,fp)16和fp32混合训练模式,脑浮点(brain floating point,bf)16和fp32混合训练模式,以及高性能计算(high performance computing,hpc)业务领域的fp32和fp64混合精度等。目前,学界和业界提出了多种8比特浮点数据格式,比如共享指数位(shard exponentbias,seb)、混合fp8(hybrid fp8,hfp8)以及可配置的fp8(configurable fp8,cfp8)等。对于精度要求较高的hpc业务领域也想部署大规模的低精度算力,于是提出了多种混合精度的求解器算法。这些算法中先利用低精度算力,如fp16/bf16,计算出低精度的初始计算结果,然后使用迭代算法和高精度数据格式fp32/fp64,求解出高精度的计算结果。针对混合精度计算场景,需要涉及到不同精度数据间的相互转换。低精度数据向高精度数据进行格式转换时,可以实现无误差的转换。高精度数据向低精度数据进行格式转换时,需要对高精度数据进行舍入(round)操作,由此会产生转换误差,降低了高精度数据向低精度数据转换时的整体均值不变性。不同的舍入方式对应的转换误差也不相同,特别是ai训练场景,对高精度数据进行舍入操作会出现误差的累积效应,从而影响ai模型的训练精度。


技术实现思路

1、本申请实施例提供一种浮点数据精度转换方法和装置,实现了高精度数据向低精度数据的转换,第二浮点数据采用前缀码域指示第二指数域的位宽,有效平衡了第二浮点数据位宽、范围和精度之间的关系。并通过提供简单的舍入方式,根据第一尾数域中的舍弃编码值对保留编码值进行舍入操作,无需其他设备的支持,提高了高精度数据向低精度数据转换的转换效率,降低了硬件开销。

2、为达到上述目的,本申请实施例采用如下技术方案。

3、第一方面,本申请实施例提供一种浮点数据精度转换方法,第一浮点数据包括符号域、第一指数域和第一尾数域,第二浮点数据包括符号域、前缀码域、第二指数域和第二尾数域,前缀码域用于指示第二指数域的位宽,第一浮点数据的精度高于第二浮点数据的精度,该方法包括:根据第一指数域的第一编码值确定前缀码域的第一位宽、前缀码域的第一编码值、第二指数域的第一位宽、第二指数域的第一编码值以及第二尾数域的第一位宽;确定第一尾数域中的保留编码值和舍弃编码值,保留编码值包括第一尾数域中从最高位开始,且位宽域第二尾数域的第一位宽相同的编码值;根据舍弃编码值对保留编码值进行舍入操作,得到第二尾数域的第一编码值。

4、本申请实施例提供的浮点数据精度转换方法,实现了将高精度数据转换为低精度数据。在数据格式转换中,基于第一浮点数据的符号域可以得到第二浮点数据的符号域,基于第一浮点数据的第一指数域可以得到第二浮点数据的前缀码域和第二指数域,以及基于第一浮点数据的第一尾数域可以得到第二浮点数据的第二尾数域。第二浮点数据中通过较短的前缀码域指示第二指数域的位宽,可以有效提升第二浮点数据的尾数的精度或位宽,同时对于只提供1位尾数的精度的第二浮点数据可以表示较大的数值范围,有效平衡了第二浮点数据位宽、范围和精度之间的关系。且前缀码域可以采用前缀码编码方式,占用位宽少,解析第二指数域和第二尾数域便捷。并通过提供简单的舍入方式,根据第一尾数域中的舍弃编码值对保留编码值进行舍入操作,无需其他设备的支持,提高了高精度数据向低精度数据转换的转换效率,降低了硬件开销。

5、在一种可能的设计中,舍入操作包括进位操作和舍弃操作,根据舍弃编码值对保留编码值进行舍入操作,得到第二尾数域的第一编码值包括:舍弃编码值中从最高位开始,且位宽为预设位宽的编码值大于或等于第二预设阈值时,对保留编码值的最低位进行进位操作,对舍弃编码值进行舍弃操作,保留编码值进位后的编码值为第二尾数域的第一编码值;舍弃编码值中从最高位开始,且位宽为预设位宽的编码值小于第二预设阈值时,对舍弃编码值进行舍弃操作,保留编码值为第二尾数域的第一编码值;其中,第二预设阈值为舍弃编码值中从最低位开始,且位宽为预设位宽的编码值。

6、这种设计中,对于随机舍入方式,用于比较的第二预设阈值为舍弃编码值中从最低位开始,且位宽为预设位宽的编码值,第二预设阈值的生成无需额外的随机数生成器,不存在随机数生成的性能瓶颈,提高了高精度数据向低精度数据的转换效率,同时硬件开销更低。

7、在一种可能的设计中,舍入操作包括进位操作或舍弃操作,根据舍弃编码值对保留编码值进行舍入操作,得到第二尾数域的第一编码值包括:舍弃编码值的最高位大于或等于第一预设阈值时,对保留编码值的最低位进行进位操作,并对舍弃编码值进行舍弃操作,保留编码值进行进位操作后得到的编码值为第二尾数域的第一编码值;舍弃编码值的最高位小于第一预设阈值时,对舍弃编码值进行舍弃操作,保留编码值为第二尾数域的第一编码值。

8、这种设计中,第一预设阈值可以为0或1,将舍弃编码值的最高位和第一预设阈值进行比较,属于远离0进位舍入方式。除了远离0进位舍入方式,还可以包括远离偶数进位舍入方式和远离奇数进位舍入方式等。但远离0进位舍入方式对于其他舍入方式硬件实现面积更小、功耗开销更小,且具有更高的数据分辨率。

9、在一种可能的设计中,本申请实施例提供的浮点数据精度转换方法还包括:判断进位操作后的保留编码值是否溢出;若进位操作后的保留编码值溢出,则对第一指数域的第一编码值的最低位进行加1操作,得到第一指数域的第二编码值;若前缀码域的第二位宽和前缀码域的第一位宽不同,根据第一指数域的第二编码值确定前缀码域的第二编码值、第二指数域的第二编码值、第二尾数域的第二位宽和第二尾数域的第二编码值;若前缀码域的第二位宽和前缀码域的第一位宽相同,判断第二指数域的第一位宽和第二指数域的第二位宽是否相同;若第二指数域的第二位宽小于第二指数域的第一位宽,对保留编码值的位宽进行加1操作,得到第二尾数域的第二位宽和第二尾数域的第二编码值;若第二指数域的第二位宽大于或等于第二指数域的第一位宽,对保留编码值的最低位进行舍弃操作,得到第二尾数域的第二位宽和第二尾数域的第二编码值。

10、这种设计中,在溢出的情况下,对第一指数域的第一编码值的最低位进行加1操作之后得到前缀码域的第二位宽和第二指数域的位宽,如果前缀码域的第二位宽和前缀码域的第一位宽相同时,如果第二指数域的位宽变化,可以得到第二尾数域的第二位宽,可以解决保留编码值进行进位操作后产生的溢出的问题。

11、在一种可能的设计中,根据第一指数域的第一编码值确定前缀码域的第一位宽、前缀码域的第一编码值、第二指数域的第一位宽和第二指数域的第一编码值包括:根据第一指数域的第一编码值确定指示值,通过查表确定与本文档来自技高网...

【技术保护点】

1.一种浮点数据精度转换方法,其特征在于,第一浮点数据包括符号域、第一指数域和第一尾数域,第二浮点数据包括所述符号域、前缀码域、第二指数域和第二尾数域,所述前缀码域用于指示所述第二指数域的位宽,所述第一浮点数据的精度高于所述第二浮点数据的精度,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述舍入操作包括进位操作和舍弃操作,所述根据所述舍弃编码值对所述保留编码值进行舍入操作,得到所述第二尾数域的第一编码值包括:

3.根据权利要求1所述的方法,其特征在于,所述舍入操作包括进位操作或舍弃操作,所述根据所述舍弃编码值对所述保留编码值进行舍入操作,得到所述第二尾数域的第一编码值包括:

4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:

5.根据权利要求1所述的方法,其特征在于,所述根据所述第一指数域的第一编码值确定所述前缀码域的第一位宽、所述前缀码域的第一编码值、所述第二指数域的第一位宽和所述第二指数域的第一编码值包括:

6.根据权利要求1或5所述的方法,其特征在于,所述根据所述第一指数域的第一编码值确定所述第二尾数域的第一位宽包括:

7.根据权利要求1所述的方法,其特征在于,所述方法还包括:

8.一种浮点数据精度转换装置,其特征在于,第一浮点数据包括符号域、第一指数域和第一尾数域,第二浮点数据包括所述符号域、前缀码域、第二指数域和第二尾数域,所述前缀码域用于指示所述第二指数域的位宽,所述第一浮点数据的精度高于所述第二浮点数据的精度,所述装置包括:

9.根据权利要求8所述的装置,其特征在于,所述舍入操作包括进位操作或舍弃操作,所述舍入操作单元还用于:

10.根据权利要求8所述的装置,其特征在于,所述舍入操作包括进位操作或舍弃操作,所述舍入操作单元还用于:

11.根据权利要求9或10所述的装置,其特征在于,所述装置还包括:

12.根据权利要求8所述的装置,其特征在于,所述位宽计算单元还用于:

13.根据权利要求8至12任一项所述的装置,其特征在于,所述位宽计算单元还用于:

14.根据权利要求8所述的装置,其特征在于,所述位宽计算单元还用于:

15.一种计算机可读存储介质,其特征在于,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行上述权利要求1-7中的任一项所述的方法。

16.一种计算机程序产品,其特征在于,当计算机程序产品在计算机或处理器上运行时,使得所述计算机或所述处理器执行上述权利要求1-7中的任一项所述的方法。

...

【技术特征摘要】

1.一种浮点数据精度转换方法,其特征在于,第一浮点数据包括符号域、第一指数域和第一尾数域,第二浮点数据包括所述符号域、前缀码域、第二指数域和第二尾数域,所述前缀码域用于指示所述第二指数域的位宽,所述第一浮点数据的精度高于所述第二浮点数据的精度,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述舍入操作包括进位操作和舍弃操作,所述根据所述舍弃编码值对所述保留编码值进行舍入操作,得到所述第二尾数域的第一编码值包括:

3.根据权利要求1所述的方法,其特征在于,所述舍入操作包括进位操作或舍弃操作,所述根据所述舍弃编码值对所述保留编码值进行舍入操作,得到所述第二尾数域的第一编码值包括:

4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:

5.根据权利要求1所述的方法,其特征在于,所述根据所述第一指数域的第一编码值确定所述前缀码域的第一位宽、所述前缀码域的第一编码值、所述第二指数域的第一位宽和所述第二指数域的第一编码值包括:

6.根据权利要求1或5所述的方法,其特征在于,所述根据所述第一指数域的第一编码值确定所述第二尾数域的第一位宽包括:

7.根据权利要求1所述的方法,其特征在于,所述方法还包括:

8.一种浮点数据精度转...

【专利技术属性】
技术研发人员:罗元勇陈敏琪张忠星伍玮翔
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1