System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种定浮点加法器设计方法技术_技高网

一种定浮点加法器设计方法技术

技术编号:41327892 阅读:4 留言:0更新日期:2024-05-13 15:05
本发明专利技术公开了一种定浮点加法器设计方法,包括如下步骤:S1、利用共享尾数加法模块进行定浮点区分;S2、对定点数,在共享尾数加法模块进行低位计算;设置定点数处理模块,将低位计算结果中最高位的进位保留并传输给定点数处理模块,得到定点数加法计算结果;S3、对浮点数,在共享尾数加法模块对浮点数的尾数进行计算;设置浮点数处理模块,将浮点数的指数进行对阶处理和规格化处理,得到规格化处理结果;根据浮点数的符号位、对阶处理后的指数和规格化处理结果,得到浮点数加法计算结果;S4、将结果传输到输出模块输出。本发明专利技术利用共享尾数加法模块,兼容计算浮点数和定点数,还用预移位器提前预判规格化,可有效降低功耗和延迟。

【技术实现步骤摘要】

本专利技术涉及神经网络处理元件,具体涉及一种定浮点加法器设计方法


技术介绍

1、在人工智能的飞速发展之下,ai的训练和推理是计算密集的任务,需要强大的高性能计算解决方案。npu(neural network processing unit)作为一种专用设计用于进行神经网络计算来处理复杂的算法和海量的数据,广泛用于加速人工智能任务,特别是深度学习算法和机器学习算法。在神经网络的训练和推理计算中,对数据精度要求具有多样化,同时浮点和定点计算能力对npu来说都至关重要。加法器是npu核心计算单元,其性能直接影响npu的处理能力,按数据格式可分为定点加法器和浮点加法器。定点数,包括定点整数和定点小数,定点数的小数点位置固定,所能表示的数据范围有限,并且定点数在计算过程中不存在尾数对齐问题,计算简单。浮点数由指数和尾数组成,其相较于定点数,数据表示的动态范围更大,数据精度也更高,因此其电路规模较大,消耗的逻辑资源也更多。

2、经典的神经网络有卷积神经网络、循环神经网络等,通常由卷积层、激活函数层、池化层、全连接层、softmax层等组成。神经网络在利用加法器进行计算的时候,有时需要进行定点数计算,有时需要进行浮点数计算。例如,卷积层在神经网络中通常处于靠前的位置,受限于内存和带宽,更适合采用定点计算;激活函数层由于是一些非线性操作,更适合采用浮点计算,精度更高。全连接层的计算密集度较高,也更适合浮点计算,可以保证一定的精度。

3、然而,在神经网络中应用的加法器还存在以下问题:1)难以同时兼容定点和浮点两种格式的数据,需要进行格式转换,无法直接满足神经网络的应用;2)神经网络所需要的加法器模块面积大,导致功耗增加;3)加法器在工作时的延迟过高,例如:串行进位加法器门电路延迟过大;超前进位加法器在递归次数变多时,也会增大功耗和延迟;加法器内部的移位器需要等待计算结果再移位,也使得延迟较高。


技术实现思路

1、本专利技术所要解决的技术问题是:如何设计一种定浮点加法器,兼容神经网络所需的定点数计算和浮点数计算,同时有效的降低延迟和功耗。

2、针对上述技术问题,提出一种定浮点加法器设计方法;通过以下技术方案实现的:

3、一种定浮点加法器设计方法,包括如下步骤:

4、s1、在定浮点加法器的输入端设置共享尾数加法模块,利用共享尾数加法模块接收输入端的输入数据,对输入数据进行定浮点区分,区分出输入数据的数据类型;其中,数据类型包括定点数和浮点数,定点数包括符号位和数值位,浮点数包括符号位、指数和尾数;

5、s2、在输入数据为定点数时,在步骤s1的共享尾数加法模块中对定点数的数值位进行低位计算,得到低位计算结果;设置定点数处理模块,将低位计算结果中最高位的进位保留,将保留的进位传输给定点数处理模块,根据定点数的符号位和保留的进位,得到定点数加法计算结果;

6、s3、在输入数据为浮点数时,在步骤s1的共享尾数加法模块中对浮点数的尾数进行计算,得到浮点尾数加法计算结果;设置浮点数处理模块,将浮点数的指数进行对阶处理;在浮点数处理模块中设置预移位器,利用预移位器对浮点尾数加法计算结果进行规格化处理,得到规格化处理结果;根据浮点数的符号位、对阶处理后的指数和规格化处理结果,得到浮点数加法计算结果;

7、s4、将步骤s2中的定点数加法计算结果或步骤s3中的浮点数加法计算结果传输到输出模块,通过定浮点加法器的输出端进行输出。

8、通过共享尾数加法模块同时对浮点数和定点数进行初步处理,完成浮点数的尾数加法计算和定点数的低位计算,这种模块共享、复用的形式降低了加法器所需要的逻辑资源,节省面积和功耗开销,并且也兼容了定点数和浮点数两种格式,能够满足神经网络的使用需求;此外,在浮点数处理模块还设置有预移位器快速进行规格化处理,进一步加快计算速度,降低延迟。

9、优选地,步骤s1中,共享尾数加法模块包括多组超前进位加法器,每组超前进位加法器之间采用串行进位的方式依次连接。将多组超前进位加法器串行连接,降低功耗和面积。

10、优选地,任意一组超前进位加法器由多个1bit全加器以组内超前进位的方式组成。多个1bit全加器在组内超前进位,提升了计算速度,有效降低了延迟。

11、优选地,步骤s3中,进行规格化处理时,若浮点尾数加法计算结果为非规格数,则进行左规格化处理;若浮点尾数加法计算结果溢出,则进行右规格化处理。进行规格化处理,是为了保证数据的有效精度,也减少计算误差。

12、优选地,步骤s3中,浮点尾数加法计算结果在经过规格化处理后,按照ieee-754标准进行就近舍入。定浮点加法器内部表示浮点数的精度是有限的,并且定浮点加法器在向外输出时,接收的设备中表示浮点数的精度也是有限的,因此对于浮点数的计算结果必然要进行舍入,而采用就近舍入能够将计算结果舍入到最接近的可表示值,接近真实的数学结果,能够减少舍入误差。

13、优选地,步骤s3中,得到规格化处理结果后,还需要对规格化处理结果进行浮点数溢出处理,浮点数溢出处理包括正溢出处理和负溢出处理;将最大正规格数作为正溢出处理的结果,将最小负规格数作为负溢出处理的结果。浮点数溢出即是计算结果超出实际能够表示的范围,溢出的部分也会破坏计算的稳定性和准确性,所以需要进行溢出处理,保证计算的准确性。

14、优选地,步骤s3中预移位器与共享尾数加法模块之间采用并行逻辑。预移位器无需等待共享尾数加法模块计算结束,就可以并行的提前预判后续如何进行规格化处理,有效降低了计算延迟。

15、优选地,浮点数的尾数包括操作数,在步骤s3中进行规格化处理时,预移位器根据操作数计算前导0/1的数量,依据该前导0/1的数量提前判断规格化处理时需要左移的位数。前导0/1指的是规格化后的尾数最高位的值,依据操作数可以快速确定前导0/1的数量,从而使得预移位器进行提前预判,加快计算速度。

16、优选地,步骤s3中,使用预移位器进行规格化处理时,预移位器采用了进位产生函数、进位传输函数和湮没函数。采用这三种函数可以快速计算出预移位器在规格化处理时所需要进行的操作,加快计算效率,降低计算延迟。

17、本专利技术与现有技术相比具有的有益效果是:

18、本专利技术的定浮点加法器,兼容定点数计算和浮点数计算,相比于只能定点数计算或只能浮点数计算的现有加法器而言,本专利技术的方案性能更强,更能够满足神经网络的复杂应用要求;此外,本专利技术的方案中复用了共享尾数处理模块,减少了加法器的面积,大大降低功耗;并且,本专利技术还利用预移位器提前进行规格化处理的判断,省去了规格化处理需要等待计算完成的环节,有效降低了延迟,提升计算速度。

本文档来自技高网...

【技术保护点】

1.一种定浮点加法器设计方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的一种定浮点加法器设计方法,其特征在于,步骤S1中,共享尾数加法模块包括多组超前进位加法器,每组超前进位加法器之间采用串行进位的方式依次连接。

3.根据权利要求2所述的一种定浮点加法器设计方法,其特征在于,任意一组超前进位加法器由多个1bit全加器以组内超前进位的方式组成。

4.根据权利要求1所述的一种定浮点加法器设计方法,其特征在于,步骤S3中,进行规格化处理时,若浮点尾数加法计算结果为非规格数,则进行左规格化处理;若浮点尾数加法计算结果溢出,则进行右规格化处理。

5.根据权利要求1所述的一种定浮点加法器设计方法,其特征在于,步骤S3中,浮点尾数加法计算结果在经过规格化处理后,按照IEEE-754标准进行就近舍入。

6.根据权利要求1所述的一种定浮点加法器设计方法,其特征在于,步骤S3中,得到规格化处理结果后,还需要对规格化处理结果进行浮点数溢出处理;所述浮点数溢出处理包括正溢出处理和负溢出处理;将最大正规格数作为正溢出处理的结果,将最小负规格数作为负溢出处理的结果。

7.根据权利要求1所述的一种定浮点加法器设计方法,其特征在于,步骤S3中预移位器与共享尾数加法模块之间采用并行逻辑。

8.根据权利要求1所述的一种定浮点加法器设计方法,其特征在于,浮点数的尾数中包括操作数;在步骤S3中进行规格化处理时,预移位器根据所述操作数计算前导0/1的数量,依据所述前导0/1的数量提前判断规格化处理时需要左移的位数。

9.根据权利要求1所述的一种定浮点加法器设计方法,其特征在于,步骤S3中,使用预移位器进行规格化处理时,预移位器采用了进位产生函数、进位传输函数和湮没函数。

...

【技术特征摘要】

1.一种定浮点加法器设计方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的一种定浮点加法器设计方法,其特征在于,步骤s1中,共享尾数加法模块包括多组超前进位加法器,每组超前进位加法器之间采用串行进位的方式依次连接。

3.根据权利要求2所述的一种定浮点加法器设计方法,其特征在于,任意一组超前进位加法器由多个1bit全加器以组内超前进位的方式组成。

4.根据权利要求1所述的一种定浮点加法器设计方法,其特征在于,步骤s3中,进行规格化处理时,若浮点尾数加法计算结果为非规格数,则进行左规格化处理;若浮点尾数加法计算结果溢出,则进行右规格化处理。

5.根据权利要求1所述的一种定浮点加法器设计方法,其特征在于,步骤s3中,浮点尾数加法计算结果在经过规格化处理后,按照ieee-754标准进行就近舍入。

6.根据权利要...

【专利技术属性】
技术研发人员:岳鑫李世平何国强林叶
申请(专利权)人:江苏华创微系统有限公司
类型:发明
国别省市:

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

1