可重构的支持多精度浮点或定点运算的方法及系统技术方案

技术编号:38609011 阅读:11 留言:0更新日期:2023-08-26 23:38
本发明专利技术提供了一种可重构的支持多精度浮点或定点运算的方法及系统,能够完成多路并行的浮点或定点低精度运算,也可以整体实现一个高精度的浮点或定点运算。相比于现阶段已经提出的运算单元,本发明专利技术面向神经网络中的训练和推断、已经多种数据密集型应用的多精度、多规格的计算需求,在粗粒度可重构阵列的数据位宽首先得前提下,设计支持多精度及混合精度定/浮点操作的高能效、低延迟、低面积开销运算单元;统一浮点与定点数据通路,以更小的资源开销同时支持更多样化的计算模式,避免了在处理单元中独立放置浮点和定点计算引擎后,面向不同计算需求时资源浪费的问题,大幅提升可重构阵列的混合精度运算性能。阵列的混合精度运算性能。阵列的混合精度运算性能。

【技术实现步骤摘要】
可重构的支持多精度浮点或定点运算的方法及系统


[0001]本专利技术涉及运算单元设计的
,具体地,涉及可重构的支持多精度浮点或定点运算的方法及系统,尤其涉及支持可重构阵列面向神经网络训练的混合精度浮点/定点运算单元。

技术介绍

[0002]粗粒度可重构架构(Coarse

Grained Reconfigurable Array,CGRA)由一个通过二维网格连接的可重构计算阵列组成,它具有接近专用集成电路的能效和性能,以及比其更广泛的可编程性。粗粒度可重构架构适用于对功耗和灵活性都有更高要求的领域,它能在数据中心、云服务器和机器人更有效地替代FPGA。移动端和物联网场景也是CGRA的有前途的领域,因为这些场景对包括人工智能、信号和图像处理以及安全在内的广泛应用的功耗和功能更新有严格的要求。其中对于人工智能领域而言,低精度定点数经常用于深度神经网络推理,如4位/8位/16位定点数据。浮点数通常用于神经网络训练,大部分深度学习训练采用单精度或半精度浮点数。由此,目前的重构阵列中仅支持不同精度的定点计算的单元设计,还不足以应对神经网络多样化的计算需求。
[0003]此外,混合精度乘加操作最近也越来越流行,在深度学习应用中,当计算输出特征图时,需要大量的累加操作,其中舍入误差也被累加,而混合精度乘累加不仅能提升运算效率,更能减少累加的舍入误差。因此,为了在粗粒度可重构阵列中支持神经网络多精度浮点运算和混合精度运算的特性,也支持通用计算密集型应用高精度的定点计算规格,可重构阵列必须在运算单元的设计上支持多精度的定点或浮点运算的运算单元。
[0004]近年来,为了在单个架构中有效地支持不同应用需要的多精度的浮点操作,研究人员提出了一些通过高精度拆分(High Preci sion Split,HPS)和低精度组合(Low Precis ion Combined,LPC)方法实现的可配置浮点FMA设计。这些FMA设计不仅支持双精度操作和单精度操作,还支持四倍精度操作以支持科学计算。此外,16位半精度FMA也被广泛研究和应用于多款中央处理器和图像处理器中,如Intel Knights Mi ll和NVIDIA Tesla P100。
[0005]然而不论是高精度拆分,还是低精度组合,在执行较低精度的浮点操作时,都只用到了乘法阵列的低位部分,乘法阵列总是会有超过一半处于空闲状态。毛伟等人针对多精度乘法器利用率低的问题,提出通过增大输入带宽充分利用每个低精度组合乘法器设计,支持多达16组半精度浮点数乘加、4组单精度浮点数乘加和1组双精度浮点数乘加。然而对于数据流驱动型的粗粒度可重构架构而言,整体的数据流位宽是一致的,因此数据位宽设计为256

bit。但在双精度计算模式时,运算单元只能用到带宽的1/4,导致低精度运算时的最大带宽需求与高精度运算时的吞吐率难以权衡。此外,它也不支持混合精度运算,16组乘积同时移位相加带来了更大的移位器和加法树开销的同时,也对舍入精度造成一定损失。
[0006]现有技术中提出了一种混合精度浮点融合乘加单元,将多个单精度乘积与双精度加数相加得到双精度计算结果,即融合乘

乘累加运算(Fused Mult iply Multiply

Accumulate,FMMA)。与普通的多精度浮点融合乘加单元相比,混合精度浮点融合乘加单元为了支持高精度加和,其加法数据路径更宽而消耗更多的硬件。但用于更高精度加数的加法数据路径本身可以被高精度乘加操作复用,同时更宽的加法路径也带来了更准确的舍入精度。随着对混合精度训练的支持,越来越多的混合精度乘加结构被提出,从半精度到四倍精度,研究人员利用高精度拆分的方式用较低的硬件开销实现了对多种混合精度运算支持。
[0007]相较于多精度和混合精度浮点融合乘加设计而言,目前对于结合定点和浮点运算的乘加单元研究较少。目前,大部分粗粒度可重构架构仍采用浮点和定点解耦合的数据路径。现有技术设计了面向深度学习的低精度AI芯片,其训练引擎能够支持FP16乘加以及FP8与FP16混合精度FMMA,而推理引擎可以进行4位或2位定点乘法与16位定点加数相累加。利用时钟门控技术关断其中一条通路从而最大化节省功耗,但这种方式带来了额外的面积开销。
[0008]Hao Zhang、Dongdong Chen等人提出了能够灵活支持不同位宽的阶码和尾数的多精度乘累加单元设计,其对于16位半精度浮点数可支持1~8位阶码,对于8位浮点数可支持1~6位阶码,同时支持定点4位、8位和16位的混合精度点积运算。然而其数据位宽仅为16比特,只面向神经网络推理和训练,通用性受限。
[0009]因此,需要提出一种新的技术方案以改善上述技术问题。

技术实现思路

[0010]针对现有技术中的缺陷,本专利技术的目的是提供一种可重构的支持多精度浮点或定点运算的方法及系统。
[0011]根据本专利技术提供的一种可重构的支持多精度浮点或定点运算的方法,所述方法包括如下步骤:
[0012]步骤S1:操作数A、B、C经过输入处理单元进行预处理,拆分其中的符号位、指数和尾数,并将操作数的符号与运算符异或,指数输入到指数比较单元,尾数输入到乘法阵列进行计算;
[0013]步骤S2:乘法阵列M1

M4分别输入四对操作数MulA1

MulA4、MulB1

MulB4,同时指数比较单元输出移位位数给移位器,将操作数C移位后输入给加法树;
[0014]步骤S3:在进位选择加法器中完成最终加法,补码器判断结果是否为负数选择是否进行补码运算,输出74位结果;
[0015]步骤S4:根据规格化移位位数进行规格化移位以及指数调整,将移位后的尾数和调整后的指数输入后处理单元;后处理单元进行浮点结果的舍入,并根据运算符和运算精度配置输出最终运算结果。
[0016]优选地,所述步骤S1中的操作数A、B、C为32位。
[0017]优选地,所述步骤S1中:输入处理模块根据运算精度配置拆分各操作数,不同运算对应的输入数据格式;在进行加/减运算时,将操作数B置为1.0或1,将输入B赋给操作数C,利用乘加的计算通路完成加/减运算;对于多精度数据,根据运算单元的配置信息fp/int和precision拆分各个输入操作数,输出给乘法阵列进行乘法运算;对于浮点操作,输入处理模块根据指数判断小数的最高位是1还是0,若指数全0,则最高位为0,否则为1。
[0018]优选地,所述步骤S2中:Booth编码得到的四组部分积经过加法树压缩得到2组进位保留CSA形式的半加和,交换小的半加和并按浮点指数差或者定点固定移位量移位,再经过两级压缩器,最终输出为进位保留CSA形式的48位半加和sum和carry。
[0019]优选地,所述步骤S3中:头零预测单元并行计算前导零个数并输出规格化移位位数。
[0020]本专利技术还提供一种可重构的支持多精度浮点或定点运算本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种可重构的支持多精度浮点或定点运算的方法,其特征在于,所述方法包括如下步骤:步骤S1:操作数A、B、C经过输入处理单元进行预处理,拆分其中的符号位、指数和尾数,并将操作数的符号与运算符异或,指数输入到指数比较单元,尾数输入到乘法阵列进行计算;步骤S2:乘法阵列M1

M4分别输入四对操作数MulA1

MulA4、MulB1

MulB4,同时指数比较单元输出移位位数给移位器,将操作数C移位后输入给加法树;步骤S3:在进位选择加法器中完成最终加法,补码器判断结果是否为负数选择是否进行补码运算,输出74位结果;步骤S4:根据规格化移位位数进行规格化移位以及指数调整,将移位后的尾数和调整后的指数输入后处理单元;后处理单元进行浮点结果的舍入,并根据运算符和运算精度配置输出最终运算结果。2.根据权利要求1所述的可重构的支持多精度浮点或定点运算的方法,其特征在于,所述步骤S1中的操作数A、B、C为32位。3.根据权利要求1所述的可重构的支持多精度浮点或定点运算的方法,其特征在于,所述步骤S1中:输入处理模块根据运算精度配置拆分各操作数,不同运算对应的输入数据格式;在进行加/减运算时,将操作数B置为1.0或1,将输入B赋给操作数C,利用乘加的计算通路完成加/减运算;对于多精度数据,根据运算单元的配置信息fp/int和precision拆分各个输入操作数,输出给乘法阵列进行乘法运算;对于浮点操作,输入处理模块根据指数判断小数的最高位是1还是0,若指数全0,则最高位为0,否则为1。4.根据权利要求1所述的可重构的支持多精度浮点或定点运算的方法,其特征在于,所述步骤S2中:Booth编码得到的四组部分积经过加法树压缩得到2组进位保留CSA形式的半加和,交换小的半加和并按浮点指数差或者定点固定移位量移位,再经过两级压缩器,最终输出为进位保留CSA形式的48位半加和sum和carry。5.根据权利要求1所述的可重构的支持多精度浮点或定点运算的方法,其特征在于,所述步骤S3中:头零预测单元并行计算前导零个数并输出规格化移位位数。6.一种可重构...

【专利技术属性】
技术研发人员:景乃锋何静怡张子涵蒋剑飞王琴
申请(专利权)人:上海交通大学
类型:发明
国别省市:

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

1