System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于位融合方法的多精度浮点计算单元技术_技高网

一种基于位融合方法的多精度浮点计算单元技术

技术编号:40705248 阅读:9 留言:0更新日期:2024-03-22 11:04
本发明专利技术提供了一种基于位融合方法的多精度浮点计算单元,属于计算机系统结构技术领域,该设计基于最小冗余的位融合方法,以16位浮点数乘法器为基础,自底向上构成32位和64位浮点数乘法器;计算单元采用五级流水线;通过可重构的数据通路,该计算单元支持BF16、FP16、FP32或FP64的单一精度和混合精度的乘法计算;该计算单元还支持BF16、FP16或FP32的单一精度的点积计算。本发明专利技术使得在具有相同功能情况下,芯片面积更小,低精度浮点数计算速度更快,能耗比更高。

【技术实现步骤摘要】

本专利技术属于计算机系统结构,具体涉及一种基于位融合方法的多精度浮点计算单元


技术介绍

1、随着信息时代的快速发展,数据处理量剧增,越来越多的数据处理通过计算机来实现。在利用计算机进行数据处理的过程中,ieee 754-2008标准引入了多种精度的浮点数,如16位半精度(fp16)、32位单精度(fp32)和64位双精度(fp64)。此外,brainfloat 16(bf16)格式的浮点数已经成为深度学习事实上的标准。一般来说,精度越高,计算成本越高,速度越慢。高精度的优点是精度,低精度的优点是提高效率和速度。

2、因此,在许多密集计算应用中,经常使用各种精度的浮点数来提高计算性能、同时确保精度,特别是用多精度算法加速的科学计算。在深度学习研究中,模型的精确描述往往需要多精度浮点数据和算法的协同完成,而且混合精度训练加速方法的快速发展也需要对多精度浮点格式的支持。在化学、物理等领域进行模拟和其他数值计算时,往往需要结合单精度和双精度的算法。在空域计算中,则需要大量低精度浮点计算,对精度需求很低,使用高精度计算反而浪费资源。

3、针对高性能科学计算以及训练深度学习模型,优化浮点计算的点积单元是一个新兴的需求。由于应用程序的精度要求不同,可重构的多精度点积操作可以大大降低面积和功耗的成本。然而,现有的计算方法可能导致单位乘法器的冗余位,但也会为不同精度的操作留下闲置的硬件资源。这会导致只有固定位宽浮点计算单元的计算机在计算低精度浮点数时计算速度下降,相对能耗比增加。或者采用多个不同位宽浮点计算单元的计算机,其计算速度和能耗比变化较小,但相应计算成本会相对增加,占用大量计算机硬件资源。


技术实现思路

1、为了解决上述问题,本专利技术提供了一种基于位融合方法的多精度浮点计算单元。

2、为了实现上述目的,本专利技术提供如下技术方案:

3、一种基于位融合方法的多精度浮点计算单元,包括:

4、第一流水级,用于将输入的若干浮点数进行分解,并将分解后得到的符号、指数和尾数分配到对应位置的寄存器中,作为第二流水级的输入;

5、第二流水级,用于根据第一流水级的输出计算求得若干浮点数的尾数乘积、尾数乘积的符号及尾数偏移量,并将计算结果作为第三流水级的输入;

6、第三流水级,用于根据第二流水级的输出计算求得32位浮点数尾数的乘积,或64位浮点数尾数的部分乘积,或尾数的部分和,并将计算结果作为第四流水级的输入;

7、第四流水级,用于根据第三流水级的输出计算求得32位浮点数指数计算结果,或64位浮点数尾数的乘积,并将计算结果作为第五流水级的输入;

8、第五流水级,用于将第四流水级输出的计算结果分配到对应的输出寄存器中。

9、优选地,所述第二流水级包含尾数乘法器组、符号单元和第一指数计算单元;所述尾数乘法器组用于根据第一流水级输出的尾数数据求得16位浮点数尾数的乘积或32、64位浮点数尾数的部分乘积;所述符号单元用于求得尾数乘积的符号;所述第一指数计算单元包含指数加法器和点积运算相关的指数移位计算单元,所述指数加法器用于求得乘积的指数累加和,所述指数移位计算单元用于求得乘积的指数累加和与下一流水级点积计算尾数偏移量。

10、优选地,所述指数加法器的数量为20个,所述符号单元采用异或门计算。

11、优选地,所述第三流水级包含32位浮点数的尾数计算组、第二指数计算单元和20个16位浮点数的尾数指数结果计算单元;所述32位浮点数的尾数计算组用于根据第二流水级输出的部分尾数乘积、尾数乘积的符号求得32位浮点数尾数的乘积或64位浮点数尾数的部分乘积,或根据第二流水级输出的尾数偏移量和16位浮点数尾数部分积的数据求得点积结果在第三流水级的尾数部分和;所述第二指数计算单元用于求得下一流水级点积计算尾数偏移量;所述16位浮点数的尾数指数结果计算单元用于根据第二流水级输出的乘积符号、指数累加和与16位浮点数尾数的乘积求得16位浮点数乘积计算结果。

12、优选地,所述第四流水级包含64位浮点数的尾数计算单元和5个32位浮点数的尾数指数结果计算单元;所述64位浮点数的尾数计算单元用于根据第三流水级输出的部分尾数乘积、尾数乘积的符号求得64位浮点数尾数的乘积,或根据第三流水级输出的尾数偏移量和第三流水级输出的点积结果的尾数部分和求得点积结果的在第四流水级的尾数部分和;所述32位浮点数的尾数指数结果计算单元用于根据第二流水级输出的乘积符号、指数累加和与第三流水级输出的32位浮点数尾数的乘积求得32位浮点数乘积计算结果。

13、优选地,所述第五流水级包含1个64位浮点数的尾数指数结果计算单元和输出处理单元;所述64位浮点数的尾数指数结果计算单元用于根据第二流水级输出的乘积符号、指数累加和与第四流水级输出的64位浮点数尾数的乘积求得64位浮点数乘积计算结果,或根据第二流水级输出的乘积符号和第四流水级输出的点积结果的尾数部分和求得点积计算结果;所述输出处理单元用于选择16位、32位或64位浮点数的尾数指数计算结果单元输出送入输出寄存器中。

14、优选地,所述尾数乘法器组的位宽为12比特,其用于通过将设定位宽的数值拆分成小于设定位宽的数值进行计算,再融合累加得到设定位宽数值结果。

15、优选地,所述尾数乘法器组包括16个12位普通乘法器和4个12位融合乘法器,每个乘法器能够单独作为一个16位浮点数的尾数乘法器;

16、通过对16位浮点数的尾数乘法器的结果进行移位累加,每4个16位浮点数的尾数乘法器组加1个32位浮点数的尾数计算单元共同组成一个32位浮点数的尾数乘法器,共5个32位浮点数的尾数乘法器;通过对32位浮点数的尾数乘法器的结果进行移位累加,全部5个32位浮点数乘法器和1个64位浮点数的尾数计算单元共同组成1个64位浮点数乘法器。

17、优选地,各尾数指数结果计算单元能够进行bf16、fp16、fp32和fp64的乘法或点积运算,包含以下内容:

18、各尾数指数结果计算单元支持bf16、fp16、fp32或fp64的单一精度和混合精度的乘法计算,各尾数指数结果计算单元支持bf16、fp16或fp32的单一精度的点积计算。

19、本专利技术提供的基于位融合方法的多精度浮点计算单元具有以下有益效果:

20、本专利技术提出的多精度浮点计算单元具有五个流水级,各级之间计算单元互相递进、关联,通过第一流水级对浮点数进行分解,然后第三至第五流水级依次对上一级输出的尾数、符号及指数进行计算,能够进行多位浮点数的的混合乘法和点积运算;对于每个精度的乘法运算,都可以使用可重构系统的全部单位乘法器进行运算,避免了单位乘法器的冗余位,提高了计算机在计算低精度浮点数时计算速度,提高硬件利用率。在具有相同芯片工艺和功能的情况下,本专利技术提出的计算单元所采用的的计算机芯片硬件面积更小,计算成本会相对降低,占用的计算机硬件资源大大减小。

本文档来自技高网...

【技术保护点】

1.一种基于位融合方法的多精度浮点计算单元,其特征在于,包括:

2.根据权利要求1所述的基于位融合方法的多精度浮点计算单元,其特征在于,若操作数为32位浮点数或64位浮点数,所述第一流水级还用于对尾数部分继续分解重组为新的尾数部分,最后将符号、指数和尾数三部分分配到对应位置的寄存器中。

3.根据权利要求1所述的基于位融合方法的多精度浮点计算单元,其特征在于,所述第二流水级包含尾数乘法器组、符号单元和第一指数计算单元;所述尾数乘法器组用于根据第一流水级输出的尾数数据求得16位浮点数尾数的乘积或32、64位浮点数尾数的部分乘积;所述符号单元用于求得尾数乘积的符号;所述第一指数计算单元包含指数加法器和点积运算相关的指数移位计算单元,所述指数加法器用于求得乘积的指数累加和,所述指数移位计算单元用于求得乘积的指数累加和与下一流水级点积计算尾数偏移量。

4.根据权利要求3所述的基于位融合方法的多精度浮点计算单元,其特征在于,所述指数加法器的数量为20个,所述符号单元采用异或门计算。

5.根据权利要求4所述的基于位融合方法的多精度浮点计算单元,其特征在于,所述第三流水级包含32位浮点数的尾数计算组、第二指数计算单元和20个16位浮点数的尾数指数结果计算单元;所述32位浮点数的尾数计算组用于根据第二流水级输出的部分尾数乘积、尾数乘积的符号求得32位浮点数尾数的乘积或64位浮点数尾数的部分乘积,或根据第二流水级输出的尾数偏移量和16位浮点数尾数部分积的数据求得点积结果在第三流水级的尾数部分和;所述第二指数计算单元用于求得下一流水级点积计算尾数偏移量;所述16位浮点数的尾数指数结果计算单元用于根据第二流水级输出的乘积符号、指数累加和与16位浮点数尾数的乘积求得16位浮点数乘积计算结果。

6.根据权利要求5所述的基于位融合方法的多精度浮点计算单元,其特征在于,所述第四流水级包含64位浮点数的尾数计算单元和5个32位浮点数的尾数指数结果计算单元;所述64位浮点数的尾数计算单元用于根据第三流水级输出的部分尾数乘积、尾数乘积的符号求得64位浮点数尾数的乘积,或根据第三流水级输出的尾数偏移量和第三流水级输出的点积结果的尾数部分和求得点积结果的在第四流水级的尾数部分和;所述32位浮点数的尾数指数结果计算单元用于根据第二流水级输出的乘积符号、指数累加和与第三流水级输出的32位浮点数尾数的乘积求得32位浮点数乘积计算结果。

7.根据权利要求6所述的基于位融合方法的多精度浮点计算单元,其特征在于,所述第五流水级包含1个64位浮点数的尾数指数结果计算单元和输出处理单元;所述64位浮点数的尾数指数结果计算单元用于根据第二流水级输出的乘积符号、指数累加和与第四流水级输出的64位浮点数尾数的乘积求得64位浮点数乘积计算结果,或根据第二流水级输出的乘积符号和第四流水级输出的点积结果的尾数部分和求得点积计算结果;所述输出处理单元用于选择16位、32位或64位浮点数的尾数指数计算结果输出送入输出寄存器中。

8.根据权利要求7所述的基于位融合方法的多精度浮点计算单元,其特征在于,所述尾数乘法器组的位宽为12比特,其用于通过将设定位宽的数值拆分成小于设定位宽的数值进行计算,再融合累加得到设定位宽数值结果。

9.根据权利要求8所述的基于位融合方法的多精度浮点计算单元,其特征在于,所述尾数乘法器组包括16个12位普通乘法器和4个12位融合乘法器,每个乘法器能够单独作为一个16位浮点数的尾数乘法器;

10.根据权利要求9所述的基于位融合方法的多精度浮点计算单元,其特征在于,各尾数指数结果计算单元能够进行BF16、FP16、FP32和FP64的乘法或点积运算,包含以下内容:

...

【技术特征摘要】

1.一种基于位融合方法的多精度浮点计算单元,其特征在于,包括:

2.根据权利要求1所述的基于位融合方法的多精度浮点计算单元,其特征在于,若操作数为32位浮点数或64位浮点数,所述第一流水级还用于对尾数部分继续分解重组为新的尾数部分,最后将符号、指数和尾数三部分分配到对应位置的寄存器中。

3.根据权利要求1所述的基于位融合方法的多精度浮点计算单元,其特征在于,所述第二流水级包含尾数乘法器组、符号单元和第一指数计算单元;所述尾数乘法器组用于根据第一流水级输出的尾数数据求得16位浮点数尾数的乘积或32、64位浮点数尾数的部分乘积;所述符号单元用于求得尾数乘积的符号;所述第一指数计算单元包含指数加法器和点积运算相关的指数移位计算单元,所述指数加法器用于求得乘积的指数累加和,所述指数移位计算单元用于求得乘积的指数累加和与下一流水级点积计算尾数偏移量。

4.根据权利要求3所述的基于位融合方法的多精度浮点计算单元,其特征在于,所述指数加法器的数量为20个,所述符号单元采用异或门计算。

5.根据权利要求4所述的基于位融合方法的多精度浮点计算单元,其特征在于,所述第三流水级包含32位浮点数的尾数计算组、第二指数计算单元和20个16位浮点数的尾数指数结果计算单元;所述32位浮点数的尾数计算组用于根据第二流水级输出的部分尾数乘积、尾数乘积的符号求得32位浮点数尾数的乘积或64位浮点数尾数的部分乘积,或根据第二流水级输出的尾数偏移量和16位浮点数尾数部分积的数据求得点积结果在第三流水级的尾数部分和;所述第二指数计算单元用于求得下一流水级点积计算尾数偏移量;所述16位浮点数的尾数指数结果计算单元用于根据第二流水级输出的乘积符号、指数累加和与16位浮点数尾数的乘积求得16位浮点数乘积计算结果。

6.根据权利要求5所述的基于位融合方...

【专利技术属性】
技术研发人员:张萌张盛兵张馨宇王思佳
申请(专利权)人:西北工业大学
类型:发明
国别省市:

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

1