当前位置: 首页 > 专利查询>之江实验室专利>正文

混合精度浮点乘法装置和混合精度浮点数处理方法制造方法及图纸

技术编号:38922130 阅读:21 留言:0更新日期:2023-09-25 09:32
本申请涉及一种混合精度浮点乘法装置和混合精度浮点数处理方法。所述装置通过指数偏置模块确定从寄存器中获取的至少两个浮点操作数的偏置,将各浮点操作数的偏置输入至对应的第一加法器以及将其结果输出至第二加法器,通过第一加法器利用各浮点操作数的偏置分别对各浮点操作数对应的指数进行偏置处理,确定各浮点操作数的偏置指数值,通过第二加法器对各浮点操作数的偏置指数值进行加法运算,得到中间指数值,通过精度转换单元,用于根据乘法单元输出的浮点数精度标注位确定目标浮点操作数的目标精度,基于目标精度对乘法单元输出的中间尾数和中间指数值进行转换,完成目标操作数的精度转换。采用本装置能够提高混合精度计算效率。计算效率。计算效率。

【技术实现步骤摘要】
混合精度浮点乘法装置和混合精度浮点数处理方法


[0001]本申请涉及数据处理
,特别是涉及一种混合精度浮点乘法装置和混合精度浮点数处理方法。

技术介绍

[0002]随着人工智能技术的发展,深度学习、卷积神经网络(Convolutional Neural Network,CNN)、循环神经网络(Recurrent Neural Network,RNN)、Transformer、图神经网络(Graph Neural Network,GNN)以及这些网络的衍生扩展类网络,都具有计算密集的特点,也涉及到大量的浮点计算。但在不同的神经网络中,参数、输入、梯度足迹的数据所处的数值范围各不相同。当使用高精度的变量类型(Floating Point 32,FP32)进行表示时,可以满足所有神经网络的需求;当使用低精度的浮点变量类型表示(例如,(Floating Point 16,FP16)、(Floating Point8,FP8)),则可能会出现因数据溢出而导致训练失败的情况。一般地,高精度浮点计算资源消耗要大于低精度浮点的运算资源消耗,但低精度浮点运算通常产生更差的结果,因此如何在尽量减少结果损失的情况下,将低精度浮点应用于深度学习和神经网络计算中成为重点研究课题。
[0003]目前,为了将低精度浮点应用在深度学习和神经网络计算中,采用自动精度映射和变量缩放的混合精度处理方式来实现。然而,目前的混合精度处理方式在实现变量类型转换、缩放等处理时,给通用计算硬件带来大量额外的计算资源消耗,导致混合精度计算效率低。/>
技术实现思路

[0004]基于此,有必要针对上述技术问题,提供一种能够提高混合精度计算效率的混合精度浮点乘法装置和混合精度浮点数处理方法、计算机设备、计算机可读存储介质和计算机程序产品。
[0005]第一方面,本申请提供了一种混合精度浮点乘法装置。所述混合精度浮点乘法装置包括指数偏置模块、至少两个第一加法器、第二加法器、乘法单元和精度转换单元,所述指数偏置模块与所述至少两个第一加法器连接,所述至少两个第一加法器与所述第二加法器连接,所述第二加法器和所述乘法单元均与所述精度转换单元连接;其中:
[0006]所述指数偏置模块,用于确定从寄存器中获取的至少两个浮点操作数的偏置;其中,所述浮点操作数包括指数和尾数;
[0007]所述至少两个第一加法器,分别利用各所述浮点操作数的偏置对各所述浮点操作数对应的指数进行偏置处理,确定各所述浮点操作数的偏置指数值;
[0008]所述第二加法器,用于对各所述浮点操作数的偏置指数值进行加法运算,得到中间指数值;
[0009]所述乘法单元,用于对各所述浮点操作数的尾数进行乘法处理,得到浮点数精度标注位和中间尾数;
[0010]所述精度转换单元,用于根据所述浮点数精度标注位确定目标浮点操作数的目标精度,基于所述目标精度对所述中间尾数和所述中间指数值进行转换,完成所述目标操作数的精度转换;其中,所述目标浮点操作数是根据所述中间尾数和所述中间指数值确定的。
[0011]在其中一个实施例中,所述精度转换单元还用于在所述中间指数值大于等于上溢阈值,或者小于等于下溢阈值的情况下,确定第一浮点数精度标注位,所述第一浮点数精度标注位表征需要对所述目标浮点操作数进行提升精度处理。
[0012]在其中一个实施例中,所述精度转换单元还用于在所述中间指数值大于等于降低精度负阈值,且小于等于降低精度正阈值的情况下,确定第二浮点数精度标注位,所述第二浮点数精度标注位表征需要对所述目标浮点操作数进行降低精度处理;其中,所述降低精度负阈值与所述降低精度正阈值的绝对值相同,互为相反数。
[0013]在其中一个实施例中,所述精度转换单元还用于在所述中间指数值大于降低精度正阈值且小于上溢阈值、或者所述中间指数值大于下溢阈值且小于降低精度负阈值的情况下,确定第三浮点数精度标注位,所述第三浮点数精度标注位表征不需要对所述目标浮点操作数进行处理。
[0014]在其中一个实施例中,所述精度转换单元还用于在根据所述浮点数精度标注位确定需要对所述目标浮点操作数进行提升精度处理的情况下,确定大于所述目标浮点操作数的初始精度的第一目标精度,基于所述第一目标精度对所述中间尾数和所述中间指数值进行转换,完成所述目标操作数的精度转换。
[0015]在其中一个实施例中,所述精度转换单元还用于在根据所述浮点数精度标注位确定需要对所述目标浮点操作数进行降低精度处理的情况下,确定小于所述目标浮点操作数的初始精度的第二目标精度,基于所述第二目标精度对所述中间尾数和所述中间指数值进行转换,完成所述目标操作数的精度转换。
[0016]在其中一个实施例中,所述混合精度浮点乘法装置还包括寄存器分配模块,所述寄存器分配模块用于在存在空闲可分配的寄存器组的情况下,基于待分配的至少两个浮点操作数的寄存器分配优先级、各所述浮点操作数对应的缩放因子的寄存器分配优先级以及各所述浮点操作数的初始精度和各所述缩放因子的初始精度,从所述空闲可分配的寄存器组中确定与各所述浮点操作数匹配的寄存器和各所述浮点操作数对应的缩放因子匹配的寄存器,完成所述至少两个浮点操作数以及各浮点操作数对应的缩放因子的寄存器分配。
[0017]在其中一个实施例中,所述混合精度浮点乘法装置还包括第三加法器,若所述指数偏置模块与第三加法器连接,所述第三加法器用于根据所述至少两个浮点操作数的偏置进行加法处理,确定所述目标浮点操作数的偏置。
[0018]第二方面,本申请还提供了一种混合精度浮点数处理方法。所述方法应用在上述的混合精度浮点乘法装置中,所述方法包括:
[0019]确定从寄存器中获取的至少两个浮点操作数的偏置;其中,所述浮点操作数包括指数和尾数;
[0020]根据各所述浮点操作数的偏置分别对各所述浮点操作数对应的指数进行偏置处理,确定各所述浮点操作数的偏置指数值;
[0021]对各所述浮点操作数的偏置指数值进行加法运算,得到中间指数值;
[0022]对各所述浮点操作数的尾数进行乘法处理,得到浮点数精度标注位和中间尾数;
[0023]根据所述浮点数精度标注位确定目标浮点操作数的目标精度,基于所述目标精度对所述中间尾数和所述中间指数值进行转换,完成所述目标操作数的精度转换;其中,所述目标浮点操作数是根据所述中间尾数和所述中间指数值确定的。
[0024]第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
[0025]确定从寄存器中获取的至少两个浮点操作数的偏置;其中,所述浮点操作数包括指数和尾数;
[0026]根据各所述浮点操作数的偏置分别对各所述浮点操作数对应的指数进行偏置处理,确定各所述浮点操作数的偏置指数值;
[0027]对各所述浮点操作数的偏置指数值进行加法运算,得到中间指数值;
[0028]对各所述浮点操作数的尾数进行乘法处理,本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种混合精度浮点乘法装置,其特征在于,所述混合精度浮点乘法装置包括指数偏置模块、至少两个第一加法器、第二加法器、乘法单元和精度转换单元,所述指数偏置模块与所述至少两个第一加法器连接,所述至少两个第一加法器与所述第二加法器连接,所述第二加法器和所述乘法单元均与所述精度转换单元连接;其中:所述指数偏置模块,用于确定从寄存器中获取的至少两个浮点操作数的偏置;其中,所述浮点操作数包括指数和尾数;所述至少两个第一加法器,分别利用各所述浮点操作数的偏置对各所述浮点操作数对应的指数进行偏置处理,确定各所述浮点操作数的偏置指数值;所述第二加法器,用于对各所述浮点操作数的偏置指数值进行加法运算,得到中间指数值;所述乘法单元,用于对各所述浮点操作数的尾数进行乘法处理,得到浮点数精度标注位和中间尾数;所述精度转换单元,用于根据所述浮点数精度标注位确定目标浮点操作数的目标精度,基于所述目标精度对所述中间尾数和所述中间指数值进行转换,完成所述目标操作数的精度转换;其中,所述目标浮点操作数是根据所述中间尾数和所述中间指数值确定的。2.根据权利要求1所述的混合精度浮点乘法装置,其特征在于,所述精度转换单元还用于在所述中间指数值大于等于上溢阈值,或者小于等于下溢阈值的情况下,确定第一浮点数精度标注位,所述第一浮点数精度标注位表征需要对所述目标浮点操作数进行提升精度处理。3.根据权利要求1所述的混合精度浮点乘法装置,其特征在于,所述精度转换单元还用于在所述中间指数值大于等于降低精度负阈值,且小于等于降低精度正阈值的情况下,确定第二浮点数精度标注位,所述第二浮点数精度标注位表征需要对所述目标浮点操作数进行降低精度处理;其中,所述降低精度负阈值与所述降低精度正阈值的绝对值相同,互为相反数。4.根据权利要求1所述的混合精度浮点乘法装置,其特征在于,所述精度转换单元还用于在所述中间指数值大于降低精度正阈值且小于上溢阈值、或者所述中间指数值大于下溢阈值且小于降低精度负阈值的情况下,确定第三浮点数精度标注位,所述第三浮点数精度标注位表征不需要对所述目标浮点操作数进行处理。5.根据权利要求2所述的混合精度浮点乘法装置,其特征在于,所述精度转换单元还用于在根据所述第一浮点数精度标注位确定需要对所述目标浮点操作数进行提升精度处理的情况下,确定大于所述目标浮点...

【专利技术属性】
技术研发人员:范文杰孙红江曾令仿陈光
申请(专利权)人:之江实验室
类型:发明
国别省市:

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

1