当前位置: 首页 > 专利查询>南京大学专利>正文

支持可变指数位宽的多精度Posit编解码运算装置及方法制造方法及图纸

技术编号:39188061 阅读:12 留言:0更新日期:2023-10-27 08:35
本发明专利技术提供了支持可变指数位宽的多精度Posit编解码运算装置及方法,所述装置包括多精度Posit译码器、多精度Posit运算单元和多精度Posit编码器;多精度Posit译码器接收Posit输入数据、精度模式控制信号和指数位宽es配置信号,完成译码操作,得到有效的符号、指数及尾数值输出;多精度Posit运算单元完成相应的运算并将运算结果发送给多精度Posit编码器,多精度Posit编码器完成Posit输出数据的编码。本发明专利技术实现了运行时指数位宽动态可配置,能在相同的硬件中同时支持Posit格式大动态范围和高数值精度的优势,同时实现了硬件高效的多精度Posit编解码运算。Posit编解码运算。Posit编解码运算。

【技术实现步骤摘要】
支持可变指数位宽的多精度Posit编解码运算装置及方法


[0001]本专利技术涉及支持可变指数位宽的多精度Posit编解码运算装置及方法。

技术介绍

[0002]Posit(参考文献:Gustafson J L,Yonemoto I T.Beating floating point at its own game:Posit arithmetic[J].Supercomputing frontiers and innovations,2017,4(2):71

86.)格式自提出以来便受到学术界、工业界的广泛关注,并被证明在部分神经网络应用中存在潜在的优势:即利用低精度的Posit格式代替高精度的传统浮点格式,在减少计算复杂度、降低存储需求的同时,也能保持模型精度不变。这得益于Posit格式在动态范围与数值精度间的平衡,而动态可配置的指数位宽es使得这种平衡更加灵活(指数位宽es越大,越偏向大的动态范围;指数位宽es越小,越偏向高的数值精度),极大提升了Posit运算的灵活性。
[0003]另一方面,神经网络应用中不同网络层和操作的计算精度往往不同,通过在运算中实现灵活的精度配置,不仅能够大幅提高计算效率,降低能耗,低精度运算下也能减少神经网络的参数存储需求。然而,Posit格式由于存在独特的regime字段,其编解码过程相比传统浮点格式也更加复杂。若通过在硬件中同时实现各种精度的Posit编解码单元,将极大增加硬件开销,增加Posit运算的成本。因此,实现硬件高效的多精度Posit编解码单元,能更好地满足基于Posit格式的神经网络运算。
[0004]文献“王中风,徐铭阳,方超等.基于posit数据格式的浮点数乘法运算电路[P].江苏省:CN111290732B,2023

03

14.”和“梁峰,吴斌,张国和等.一种Posit浮点数的运算处理器以及运算处理系统[P].陕西省:CN111538472B,2022

11

04.”提出了基于Posit格式的乘法、加法等运算电路,其中均涉及到对Posit数据的编解码,然而都仅支持单精度且固定指数位宽的Posit编解码。论文“Zhang H,Ko S B.Efficient multiple

precision posit multiplier[C]//2021IEEE International Symposium on Circuits and Systems(ISCAS).IEEE,2021:1

5.”中提出了一种支持多精度Posit运算的乘法器,然而在每种精度下依旧固定了指数位宽的大小。论文“Neves N,Tom
á
s P,Roma N.Dynamic fused multiply

accumulate posit unit with variable exponent size for low

precision DSP applications[C]//2020IEEE Workshop on Signal Processing Systems(SiPS).IEEE,2020:1

6.”中提出的Posit乘累加运算单元则支持可变的指数位宽,但未提供高效的多精度运算解决方案。

技术实现思路

[0005]专利技术目的:本专利技术所要解决的技术问题是针对现有技术的不足,提供支持可变指数位宽的多精度Posit编解码运算装置及方法。所述装置包括多精度Posit译码器、多精度Posit运算单元和多精度Posit编码器;
[0006]所述多精度Posit译码器接收Posit输入数据、精度模式控制信号和指数位宽es配
置信号,完成译码操作,得到有效的符号、指数及尾数值输出;
[0007]所述多精度Posit运算单元根据得到的有效符号、指数及尾数值完成相应的运算,并将运算结果发送给多精度Posit编码器,多精度Posit编码器根据精度模式控制信号和指数位宽es配置信号,完成Posit输出数据的编码。
[0008]所述多精度Posit译码器包括多精度二进制补码模块、多精度前导0/1计数模块、多精度regime移位模块和多精度掩码求指数尾数模块;
[0009]所述多精度二进制补码模块采用分段的方法实现多精度的二进制补码操作,具体包括:先将输入的操作数按照所支持的最低精度模式划分为N段子操作数(其中N为输入操作数的位宽除以所支持的最低精度模式位宽的结果,比如输入位宽为32

bit的值,而支持的最低精度模式的位宽为8

bit,则N=32/8=4),即子操作数0~子操作数N

1,并根据精度模式控制信号确定每一段子操作数的有效符号,将子操作数与其对应的有效符号通过异或运算完成对于负数所有位全部取反运算,以及对于正数所有位不变的运算;根据精度模式控制信号、子操作数的有效符号,以及低位产生的进位,确定异或运算后的结果是否需要加1;最终,将得到的N段子结果拼接,并根据精度模式控制信号在符号位比特处与有效符号值进行或运算,得到多精度二进制补码运算后的值。
[0010]所述多精度前导0/1计数模块采用分段计数的方法,低精度模式下的计数结果通过加法器与选择器处理得到高精度下的计数结果,具体包括:将要处理的操作数按照所支持的最低精度划分为N段子操作数(其中N为将要处理的操作数的位宽除以所支持的最低精度模式位宽的值),即子操作数0~子操作数N

1,通过N组并行的前导0/1计数模块计算得到N组子操作数各自的前导0或1数,分别为:cpm[0]~cpm[N

1],以及N组子操作数各自的数据有效信号,分别为:vpm[0]~vpm[N

1],满足数据有效信号vpm为1时,cpm为确切的前导0或前导1数;否则数据有效信号vpm为0时,代表子操作数输入为全0或全1,此时cpm为0;cpm就是子操作数的前导0/1数,共N组,即cpm[0]就是子操作数0的前导零0/1数,类似地,cpm[1],cpm[2],

cpm[N

1]分别为子操作数1至子操作数N

1的前导0/1数;vpm就是子操作数的数据有效信号,共N组,vpm[0]也即子操作数0的数据有效信号,类似地,vpm[1],vpm[2],

,vpm[N

1]即分别为子操作数1至子操作数N

1的数据有效信号;
[0011]当精度模式控制信号为所支持的最低精度时,cpm[0]~cpm[N

1]为需要的前导0/1计数结果;否则,每相邻两段子操作数的计数结果通过逐级两两组合处理,得到下一精度模式的计数结果。
[0012]所述多精度regime移位模块采用分段与分级本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.支持可变指数位宽的多精度Posit编解码运算装置,其特征在于,包括多精度Posit译码器、多精度Posit运算单元和多精度Posit编码器;所述多精度Posit译码器接收Posit输入数据、精度模式控制信号和指数位宽es配置信号,完成译码操作,得到有效的符号、指数及尾数值输出;所述多精度Posit运算单元根据得到的有效符号、指数及尾数值完成相应的运算,并将运算结果发送给多精度Posit编码器,多精度Posit编码器根据精度模式控制信号和指数位宽es配置信号,完成Posit输出数据的编码。2.根据权利要求1所述的装置,其特征在于,所述多精度Posit译码器包括多精度二进制补码模块、多精度前导0/1计数模块、多精度regime移位模块和多精度掩码求指数尾数模块;所述多精度二进制补码模块采用分段的方法实现多精度的二进制补码操作,具体包括:先将输入的操作数按照所支持的最低精度模式划分为N段子操作数,即子操作数0~子操作数N

1,并根据精度模式控制信号确定每一段子操作数的有效符号,将子操作数与其对应的有效符号通过异或运算完成对于负数所有位全部取反运算,以及对于正数所有位不变的运算;根据精度模式控制信号、子操作数的有效符号,以及低位产生的进位,确定异或运算后的结果是否需要加1;最终,将得到的N段子结果拼接,并根据精度模式控制信号在符号位比特处与有效符号值进行或运算,得到多精度二进制补码运算后的值。3.根据权利要求2所述的装置,其特征在于,所述多精度前导0/1计数模块采用分段计数的方法,低精度模式下的计数结果通过加法器与选择器处理得到高精度下的计数结果,具体包括:将要处理的操作数按照所支持的最低精度划分为N段子操作数,即子操作数0~子操作数N

1,通过N组并行的前导0/1计数模块计算得到N组子操作数各自的前导0或1数,分别为:cpm[0]~cpm[N

1],以及N组子操作数各自的数据有效信号,分别为:vpm[0]~vpm[N

1],满足数据有效信号vpm为1时,cpm为确切的前导0或前导1数;否则数据有效信号vpm为0时,代表子操作数输入为全0或全1,此时cpm为0;当精度模式控制信号为所支持的最低精度时,cpm[0]~cpm[N

1]为需要的前导0/1计数结果;否则,每相邻两段子操作数的计数结果通过逐级两两组合处理,得到下一精度模式的计数结果。4.根据权利要求3所述的装置,其特征在于,所述多精度regime移位模块采用分段与分级移位的方法实现对多精度移位的支持,具体包括:将操作数按照所支持的最低的精度模式划分为N段子操作数,即子操作数0~子操作数N

1,并根据精度模式控制信号确定每一段子操作数的左移移位量,在支持的最低精度模式下,每个子操作数的最大移位量为子操作数的位宽,用L比特的数保存,其中L为对子操作数的位宽做log2运算后的值;在支持的最高精度模式下下,最大移位量为操作数的总位宽,用K比特的数保存,其中K为对操作数的总位宽做log2运算后的值;进行分段与分级移位,将N个子操作数并行送入各自的移位器中,完成1~L级的移位;在所支持的最低精度模式下,N组移位器输出的子结果0~子结果N

1为最终移位的结果,直接舍弃左移溢出的高位;如果精度模式控制信号为更高的精度模式,则将高位的移位器左移后的结果与低位的移位器左移时溢出的位进行按位或运算,以实现在高精度模式下的连贯移位。5.根据权利要求4所述的装置,其特征在于,在多精度掩码求指数尾数模块中,根据输
入的指数位宽es配置信号和精度模式控制信号确定指数段及尾数段的掩码,同时,多精度regime移位模块输出的仅含指数段及尾数段的操作数也通过左移es

bit以保证指数段的值右对齐,尾数段的值左对齐;将移位后的值分别与指数段掩码、尾数段掩码按位与运算,得到指数段和尾数段的结果;根据精度模式控制信号选择操作数各个比特对应的掩码为指数段掩码还是零,...

【专利技术属性】
技术研发人员:王中风李琼方超
申请(专利权)人:南京大学
类型:发明
国别省市:

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

1