CN117667009A - 加法树计算装置和方法及计算设备 - Google Patents

加法树计算装置和方法及计算设备 Download PDF

Info

Publication number
CN117667009A
CN117667009A CN202311408926.XA CN202311408926A CN117667009A CN 117667009 A CN117667009 A CN 117667009A CN 202311408926 A CN202311408926 A CN 202311408926A CN 117667009 A CN117667009 A CN 117667009A
Authority
CN
China
Prior art keywords
floating point
point number
module
data
calculation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311408926.XA
Other languages
English (en)
Inventor
卢臣臣
蔡权雄
牛昕宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Corerain Technologies Co Ltd
Original Assignee
Shenzhen Corerain Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Corerain Technologies Co Ltd filed Critical Shenzhen Corerain Technologies Co Ltd
Priority to CN202311408926.XA priority Critical patent/CN117667009A/zh
Publication of CN117667009A publication Critical patent/CN117667009A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

本申请提供一种加法树计算装置和方法及计算设备,用于浮点数及定点数的加法运算,所述加法树计算装置包括数据输入模块、第一多路选择器、传输控制模块、融合计算模块、数据规格化输出模块。所述数据输入模块接收输入数据及计算类型指令;所述传输控制模块根据计算类型指令控制所述第一多路选择器将浮点数送入所述融合计算模块的第一入口,或将定点数送入所述融合计算模块的第二入口;所述融合计算模块用于执行加法运算,所述数据规格化输出模块根据所述传输控制模块的控制对所述运算结果进行输出处理,并输出最终计算结果。根据本申请的技术方案通过对定点数加法树芯片电路的改造设计,实现了对浮点数和定点数双数据类型的加法高速、高精度运算。

Description

加法树计算装置和方法及计算设备
技术领域
本发明涉及芯片电路技术领域,具体涉及一种加法树装置和方法及计算设备。
背景技术
随着人工智能技术的快速发展,像卷积神经网络算法、transformer等算法已经大量应用于机器视觉、大语言模型等众多领域中。然而,卷积神经网络、transformer等人工智能算法包含大量的浮点数或定点数数乘累加运算,这些运算如果在CPU上运行,将耗费大量的计算时间。特别是针对一些实时性要求很高的应用领域(如车载自动驾驶领域),如果计算时间过长将阻碍人工智能算法在日常应用中的部署。因此近些年出现了诸如GPU、谷歌TPU等专门用于加速人工智能算法计算的专用芯片。因为像卷积神经网络、transformer等算法中包含大量浮点数或定点数乘累加运算,人工智能专用芯片设计过程中如何提高浮点数或定点数乘累加运算速度便成为十分重要的话题之一。
在芯片电路设计中,提高浮点数或定点数乘累加运算速度的方法有提高运算电路的时钟频率、提高运算电路的并行度、提高运算电路的流水线程度等等。其中提高运算电路并行度的方法可采用例化众多乘法器、加法器等计算单元,并行地执行乘累加运算。而将众多乘法器的计算结果相加到一起,就会采用加法树电路。
传统的加法树只能够对单一的数据类型进行加法运算处理,对于定点数加法树,数据通过多级加法器进行加法运算,就得到最终的运算结果。相比之于定点数加法树,浮点数加法树就要相对复杂很多。浮点数加法树由浮点数加法器构成,浮点数加法器结构复杂,且对比于定点数加法器,增加了指数比较,指数移位等复杂操作,在每一层级的每一加法器做加法运算之前都进行这样的处理,十分繁琐复杂。
除了复杂的数据处理流程外,在应用传统浮点数加法树计算浮点数据两两相加的过程中需要依据两个浮点数彼此的指数差进行移位,如果需要交换浮点数据的位置,就可能导致计算结果不一样。举例来说,假设4个浮点数相加,四个浮点数分别是0.987、1.23、12.3、123,浮点数尾数位宽为3位,尾数相加的加法器位宽为3位。那么浮点数按照0.987、1.23、12.3、123的顺序做相加运算时,计算结果为137。但如果按照0.987、123、1.23、12.3的顺序做相加运算时,计算结果为136。显而易见的这样繁琐的计算步骤并没保证加法运算的精度及运算速度,反而占用了更多的计算机资源。
为此,需要一种技术方案,能够在提高加法树预算精度的同时简化运算过程提高运算速度。
发明内容
本申请旨在提供一种加法树计算装置和方法及计算设备,通过对定点数加法树芯片电路的改造设计,实现了对浮点数和定点数双数据类型的加法高速、高精度运算。
根据本申请的一方面,提供一种加法树计算装置,用于浮点数及定点数的加法运算,所述加法树计算装置包括数据输入模块、第一多路选择器、传输控制模块、融合计算模块、数据规格化输出模块,所述融合计算模块具有第一入口和第二入口,其中:
所述数据输入模块接收输入数据及计算类型指令;
所述传输控制模块根据所述计算类型指令控制所述第一多路选择器将浮点数送入所述融合计算模块的所述第一入口,或将定点数送入所述融合计算模块的所述第二入口;
所述融合计算模块用于执行定点数加法运算以及浮点数加法运算,输出运算结果到所述数据规格化输出模块;
所述传输控制模块根据所述计算类型指令控制所述数据规格化输出模块对所述运算结果进行输出处理,并输出最终计算结果。
根据一些实施例,所述融合计算模块中包括预处理模块、第二多路选择器及定点加法树模块,其中:
所述预处理模块通过所述第一入口接收浮点数,并将预处理结果送入所述第二多路选择器;
所述第二多路选择器通过所述第二入口接收来自所述第一多路选择器的定点数,并根据所述传输控制模块的控制输出所述定点数或所述预处理结果;
所述定点加法树接收所述第二多路选择器的输出用以执行定点加法运算。
根据一些实施例,所述预处理模块包括指数差模块、尾数对齐模块及指数寄存器阵列,其中:
所述指数差模块用于输入的浮点数与浮点数基准指数之间的指数差计算;
所述尾数对齐模块应用计算出的指数差对浮点数进行尾数移位;
所述指数寄存器阵列用于存储所述浮点数基准指数,所述浮点数基准指数可通过所述指数差模块对输入的浮点数进行指数比较获得或预先设定。
指数之间。
根据一些实施例,所述数据规格化输出模块包括:第三多路选择器、规格化处理单元、第四多路选择器,其中:
所述第三多路选择器根据所述传输控制模块的控制,将所述融合计算模块的运算结果送入所述规格化处理单元或所述第四多路选择器;
所述规格化处理单元用于将输入的运算结果根据浮点数规格进行规格化操作,将所述规格化的结果数据送入所述第四多路选择器中;
所述第四多路选择器根据所述传输控制模块的控制,输出最终计算结果。
根据一些实施例,所述规格化处理单元配置为:
读取所述指数寄存器阵列中存储的浮点数基准指数,对所述浮点加法运算结果进行数据规格化操作和舍入处理,输出符合规格的浮点数。
根据本申请的其他方面,提供一种用于加法树计算装置的方法,实现浮点数及定点数的加法运算,所述方法包括:
接收输入数据,所述输入数据为定点数或浮点数;
将浮点数送入第一计算通道;
将定点数数据送入第二计算通道;
对来自第一计算通道或第二通道的输入数据进行定点加法运算;
根据数据类型对运算结果进行输出处理。
根据一些实施例,将浮点数送入第一计算通道,还包括:
将输入的浮点数按照所述浮点数基准指数计算各个浮点数的指数差,所述浮点数基准指数可通过对输入的浮点数进行指数比较获得或预先设定;;
按照所述各个浮点数的指数差对所述浮点数进行尾数移位。
根据一些实施例,对来自第一通道或第二通道的输入数据进行定点加法运算,包括:
接收所述尾数移位后的浮点数和/或所述定点数并送入定点加法树;
利用所述定点加法树进行加法运算,得到运算结果。
根据一些实施例,根据数据类型对运算结果进行输出处理,包括:
若为浮点数,将运算结果做规则化处理后输出规格化后的结果数据作为最终计算结果;
若为定点数数据,则输出所述运算结果作为最终计算结果。
根据本申请的其他方面,提供一种芯片电路,能够实现以上所述的装置。
根据本申请的另一方面,提供一种计算设备,包括:
处理器;以及
存储器,存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行如上任一项所述的方法。
根据本申请的另一方面,提供一种非瞬时性计算机可读存储介质,其上存储有计算机可读指令,当所述指令被处理器执行时,使得所述处理器执行如上任一项所述的方法。
根据本申请的实施例,通过对两种不同类型的输入数据进行分通道处理,将复杂的浮点数加法计算应用融合改造的定点数加法树芯片电路实现,不仅实现了加法树对不同数据类型加法融合运算,并在此基础上避免了由于反复调整浮点数据相加顺序带来的计算精度及运算速度问题,真正意义上应用简单的加法树芯片电路实现了高精度、高运算速度的多数据类型加法运算。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1示出根据示例实施例用于加法树计算装置的结构示意图。
图2示出根据示例实施例用于融合计算模块结构示意图。
图3示出根据示例实施例用于预处理模块结构示意图。
图4示出根据示例实施例用于数据规格化输出模块结构示意图。
图5示出根据另一示例实施例用加法树计算装置的结构示意图。
图6示出根据示例实施例用加法树计算装置的方法流程图。
图7示出根据示例性实施例的计算设备的框图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本申请将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本申请概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本申请所必须的,因此不能用于限制本申请的保护范围。
随着人工智能技术的快速发展,像卷积神经网络算法、transformer等算法已经大量应用于机器视觉、大语言模型等众多领域中。然而,卷积神经网络、transformer等人工智能算法包含大量的浮点数或定点数数乘累加运算,这些运算如果在CPU上运行,将耗费大量的计算时间。特别是针对一些实时性要求很高的应用领域(如车载自动驾驶领域),如果计算时间过长将阻碍人工智能算法在日常应用中的部署。因此近些年如何在人工智能专用芯片设计过程提高浮点数或定点数乘累加运算速度成为了十分重要的话题之一。在芯片电路设计中,高速的加法运算通常应用加法树电路完成。
传统的加法树只能够对单一的数据类型进行加法运算处理,对于定点数加法树,数据通过多级加法器进行加法运算,就得到最终的运算结果。相比之于定点数加法树,浮点数加法树就要相对复杂很多。浮点数加法树由浮点数加法器构成,浮点数加法器结构复杂,且对比于定点数加法器,增加了指数比较,指数移位等复杂操作,在每一层级的每一加法器做加法运算之前都进行这样的处理,十分繁琐复杂,不仅难以提高运算速度而且大大占用了计算机资源。
除了复杂的数据处理流程外,在应用传统浮点数加法树计算浮点数据两两相加的过程中需要依据两个浮点数彼此的指数差进行移位。这样就需要交换浮点数据的位置,可能导致计算结果不一样,难以保证加法运算的精度。
为此,本申请提出一种加法树计算装置和方法及计算设备。通过对定点数加法树芯片电路的改造设计,实现了对浮点数和定点数双数据类型的加法高速、高精度运算。根据一些实施例,本发明加法树计算装置将输入的浮点数送入设计的第一浮点数计算通道,在该通道内对多个浮点数参照浮点数基准指数进行尾数移位,保存浮点数基准指数并将尾数送入定点加法树模块中进行加法运算,再对输出结果进行规格化处理,提高了运算精度及运算速度,对于定点数数据则由第二计算通道直接送入定点数加法树中,实现了多种数据类型在同一加法树中的融合高速运算。
下面结合附图对本申请的示例实施例进行说明。
图1示出根据示例实施例用于加法树计算装置的结构示意图。
如图1所示,根据示例实施例的一种加法树计算装置,用于浮点数及定点数的加法运算。所述加法树计算装置包括数据输入模块101、第一多路选择器105、传输控制模块103、融合计算模块107、数据规格化输出模块109,所述融合计算模块107具有第一入口1071和第二入口1073。
所述数据输入101模块接收输入数据及计算类型指令。
根据一些实施例,所述数据输入模块用于接收来自用户或其他程序的输入数据。所述计算类型指令为描述所述输入数据的数据类型约定语句或操作码,例如,可用“f”作为计算类型指令,即表示计算类型为浮点数运算。
所述传输控制模块103根据所述计算类型指令控制所述第一多路选择器105将浮点数送入所述融合计算模块107的所述第一入口1071,或将定点数送入所述融合计算模块107的所述第二入口1073。
根据一些实施例,所述传输控制模块103接收来自所述数据输入101的计算类型指令后,根据计算类型指令向所述第一多路选择器105输出控制指令,所述第一多路选择器105根据所述计算类型指令将输入数据送入所述融合计算模块107,当所述计算类型指令为浮点数运算指令,则将输入数据送入所述融合计算模块107的第一入口1071;当所述计算类型指令为定点数运算指令,则将定点数送入所述融合计算模块107的第二入口1073。
所述融合计算模块107用于执行定点数加法运算以及浮点数加法运算,输出运算结果到数据规格化输出模块109。
根据一些实施例,所述融合计算模块107含有定点数加法运算模块用于对输入的定点数数据或浮点数进行加法运算,并输出结果数据。由所述数据规格化输出模块109对结果数据进行数据规格化处理,再将满足要求的数据作为最终结果输出。
所述传输控制模块103根据所述计算类型指令控制所述数据规格化输出模块109对输出结果进行输出处理,并输出最终计算结果。
根据一些实施例,所述数据规格化输出模块109根据所述传输控制模块103的控制对输出结果进行输出处理,并输出最终计算结果。例如,当控制指令或控制信号为用于定点数运算时,那么可将定点数加法树模块的运算结果作为最终计算结果输出。
根据一些实施例,所述数据规格化输出模块109主要应用于对于浮点数加法运算结果的规格化处理,并判断处理后的结果是否满足浮点数规格。
图2示出根据示例实施例用于融合计算模块结构示意图。
参见图2,根据示例实施例所述融合计算模块107具有第一入口1071和第二入口1073。所述融合计算模块107中还包括预处理模块1075、第二多路选择器1077及定点加法树模块1079。
所述预处理模块1075通过所述第一入口1071接收浮点数,并将预处理结果送入所述第二多路选择器1077。
根据一些实施例,所述预处理模块1075用于对浮点数据数据进行预处理。浮点数通过所述第一入口1071输入到所述预处理模块1075中,在所述预处理模块1075中对浮点数进行预处理,并输出处理结果到所述第二多路选择器1077中。
根据一些实施例,在所述预处理模块1075中对浮点数的预处理操作包括应用浮点数基准指数对输入的浮点数进行指数差计算,并应用计算出的指数差将浮点数的尾数进行移位对齐。
根据一些实施例,所述多路选择器1077接收来自所述预处理模块1075的浮点数尾数,并将所述浮点数尾数送入所述定点加法树1079中进行加法运算。
所述第二多路选择器1077通过所述第二入口1073接收来自所述第一多路选择器105的定点数,并根据所述传输控制模块103的控制输出所述定点数或所述预处理结果。
根据一些实施例,所述第一多路选择器105将定点数数据通过所述第二入口1073送入所述第二多路选择器1077中,所述第二多路选择器1077根据所述传输控制模块103的控制输出所述定点数数据或所述预处理结果到所述定点加法树中,进行加法运算。
所述定点加法树1079接收所述第二多路选择器1077的输出用以执行定点加法运算。
根据一些实施例,所述定点加法树1079接收来自所述第二多路选择器1077输出的所述定点数数据或所述预处理结果作为输入数据,对输入数据进行定点加法运算,并输出运算结果。
图3示出根据示例实施例用于预处理模块结构示意图。
如图3所示,根据示例实施例所述预处理模块1075包括指数差模块10751、尾数对齐模块10753及指数寄存器阵列10755。
所述指数差模块用于输入的浮点数与所述浮点数基准指数之间的指数差计算。
根据一些实施例,浮点数通过所述第一入口1071输入到所述预处理模块1075中的指数差模块10751中,在所述指数差模块10751中,对多个浮点数进行指数比较,比较结果作为浮点数基准指数,并将所述浮点数基准指数送入所述指数寄存器阵列10755中保存。应用所述浮点数基准指数对各个浮点数进行指数差计算,得到各个浮点数的指数差。
所述尾数对齐模块10753应用计算出的指数差对浮点数进行尾数移位。
根据一些实施例,在所述尾数对齐模块10753中,应用计算出的指数差对各个浮点数进行尾数移位。保证输入的各个浮点数尾数对齐,以便于后续计算。
根据一些实施例,所述浮点数基准指数可由多个浮点数据进行比较后,按照计算精度要求可选择指数最大值、指数最小值、指数平均值等,作为浮点数基准指数。也可以按照用户实际计算要求设定固定的指数作为浮点数基准指数进行计算,并将设定或确定的浮点数基准指数储存到所述指数寄存器阵列10755中,留待后续使用。
所述指数寄存器阵列10755用于存储所述浮点数基准指数,所述浮点数基准指数可通过对输入的浮点数进行指数比较获得或预先设定。
根据一些实施例,通过指数比较确定或设定统一的浮点数基准指数,并参照浮点数基准指数进行统一的尾数移位,免去了加法树在每次运算前的移位操作又避免了因为累加运算顺序不同带来的精度损失,在提升了运算速度的同时又提高了加法运算精度。不仅如此,统一指数后尾数对齐的浮点数能够采用更加简便快速的定点数加法树进行加法运算,不再依赖复杂的浮点数加法器,更是大大提升了运算效率,减少了计算机的资源占用。
图4示出根据示例实施例用于数据规格化输出模块结构示意图。
如图4所示,根据示例实施例所述数据规格化输出模块109包括:第三多路选择器1091、规格化处理单元1093、第四多路选择器1095。
所述第三多路选择器1091根据所述传输控制模块103的控制,将所述融合计算模块107的运算结果送入所述规格化处理单元1093或所述第四多路选择器1095。
根据一些实施例,所述第三多路选择器1091根据所述传输控制模块103的控制将所述融合计算模块107的运算结果送入所述规格化处理单元1093或所述第四多路选择器1095。例如,当所述指令为浮点数运算指令,则将所述运算结果送入所述规格化处理模块1093中,进行规格化处理。
所述规格化处理单元1093用于将输入的运算结果根据浮点数规格进行规格化操作,将所述规格化的结果数据送入所述第四多路选择器1095中。
所述规格化处理单元1093配置为:读取所述指数寄存器阵列10755中存储的浮点数基准指数,对所述浮点加法运算结果进行数据规格化操作和舍入处理,输出符合规格的浮点数。
根据一些实施例,所述规格化处理单元1093用于将输入的运算结果根据浮点数规格进行规格化操作,所述规格化处理单元1093读取存储于所述指数寄存器阵列中的浮点数基准指数,将所述运算结果规格化处理。在规格化处理后,对处理后的结果数据进行验证判断,判断规格化后的结果数据是否符合浮点数的规格化标准,若不符合,则重新对其进行规格化操作,直至规格化后的数据符合标准。所述规格化处理单元1093将符合规格化标准的结果数据传送入所述第四多路选择器1095中。
根据一些实施例,在所述规格化处理单元1093中可对于符合标准的浮点数按照要求进行舍入操作,之后再将符合规格化标准的舍入后结果数据传送入所述第四多路选择器1095中。
所述第四多路选择器1095根据所述传输控制模块103的控制,输出最终计算结果。
根据一些实施例,所述第四多路选择器1095根据所述传输控制模块103的控制输出其中的最终计算结果。
根据一些实施例,在所述规格化处理模块109中,对来自定点加法树模块1079的运算结果进行规格化处理。对于浮点数运算结果进行规格化处理能够保证输出结果的正确性。对于定点数运算结果也可在所述规格化模块中按照预先设定或具体的应用场景要求对结果数据进行舍入操作,具体的处理方式可适用于应用场景及精度要求决定。本发明中只在运算结束后将得到的结果数据进行规格化处理,而不是在每一级加法树都做数据规格化,这样避免了每一级加法树规格化带来的误差,提高了精度。
图5示出根据另一示例实施例用加法树计算装置的结构示意图。
根据另一示例实施例,如图5所示,含有上述说明中介绍的各个模块及相关的数据处理装置外,根据本示例所示所述融合计算模块的应用含有三级定点加法器的定点加法树结构,能够满足示例中8个输入数据的加法运算需求。
根据一些实施例,所述定点加法数结构可根据需要处理的数据规模对所述定点加法树中的加法器级数及个数进行适应需求的调整,从而满足数据处理需求提高运算速度。
图6示出根据示例实施例用加法树计算装置的方法流程图。
根据示例实施例,如图6所示,一种用于加法树计算装置的方法,实现浮点数及定点数的加法运算,所述方法包括如下步骤:
在S601,接收输入数据。
根据一些实施例,接收外部的输入数据,所述输入数据的输入类型可为定点数或浮点数。
在S602,根据输入数据是浮点数还是定点数,对输入数据进行分通道处理。
根据一些实施例,根据接收输入数据的数据类型的不同,将所述浮点数松日第一计算通道,将定点数送入第二计算通道。
在S603,将浮点数送入第一计算通道。
将输入的浮点数按照所述浮点数基准指数计算各个浮点数的指数差,按照所述各个浮点数的指数差对所述浮点数进行尾数移位。
根据一些实施例,所述第一计算通道用于浮点数的处理,将输入的浮点数送入第一计算通道进行数据预处理。将预处理后的数据送入定点加法树。
根据一些实施例,所述数据预处理包括对各个浮点数进行指数比较,确定浮点数基准指数,所述浮点数基准指数可通过对输入的浮点数进行指数比较获得或预先设定。将输入的浮点数按照所述浮点数基准指数计算各个浮点数的指数差,应用计算出的指数差对各个浮点数进行尾数移位对齐,将对齐的浮点数尾数送入所述定点加法树。
在S605,将定点数数据送入第二计算通道。
根据一些实施例,将输入的定点数数据送入第二计算通道,由所述第二计算通道将所述定点数输入数据送入定点加法树。
在S607,对来自第一计算通道或第二计算通道的输入数据进行定点加法运算。
接收所述尾数移位后的浮点数和/或所述定点数并送入定点加法树,利用所述定点加法树进行加法运算,得到运算结果。
根据一些实施例,对于来自第一计算通道经预处理后的浮点数或来自第二计算通道的定点数数据,在所述定点加法树中进行加法运算,并输出运算结果。
在S609,根据数据类型对运算结果进行输出处理。
根据一些实施例,根据数据类型对运算结果进行输出处理,若数据类型为浮点数,将运算结果做规则化处理后输出规格化后的结果数据作为最终计算结果;若数据类型为定点数数据,则输出所述运算结果作为最终计算结果。
根据一些实施例,对所述运算结果进行规格化处理可按照实际场景要求及精度要求对输出数据进行舍入操作,将舍入后的结果数作为最终计算结果输出。
根据一些实施例,本发明所述加法树计算装置通过对传统定点加法树芯片电路的改造设计,在简化了芯片电路的同时,实现了定点数和浮点数的融合加法运算。
根据一些实施例,本发明所述加法树计算装置相较于传统的浮点数加法树结构更加简单,实现了更少了计算机资源占用,使得数据运算速度更快。
根据一些实施例,本发明所述加法树计算装置的方法通过一次的数据预处理将浮点数的指数统一,将尾数移位对齐后,送入定点加法树中进行尾数加法运算,再通过规则化处理对浮点数进行还原,避免了传统浮点数加法树运算过程中的多次舍入及执行加法运算的顺序调整带来的精度损失,在获得高运算速度的同时提高了数据精度。
图7示出根据本申请示例实施例的计算设备的框图。
如图7所示,计算设备30包括处理器12和存储器14。计算设备30还可以包括总线22、网络接口16以及I/O接口18。处理器12、存储器14、网络接口16以及I/O接口18可以通过总线22相互通信。
处理器12可以包括一个或多个通用CPU(Central Processing Unit,处理器)、微处理器、或专用集成电路等,用于执行相关程序指令。根据一些实施例,计算设备30还可包括为处理器12进行加速的高性能显示适配器(GPU)20。
存储器14可以包括易失性存储器形式的机器系统可读介质,例如随机存取存储器(RAM)、只读存储器(ROM)和/或高速缓存存储器。存储器14用于存储包含指令的一个或多个程序以及数据。处理器12可读取存储在存储器14中的指令以执行上述根据本申请实施例的方法。
计算设备30也可以通过网络接口16与一个或者多个网络通信。该网络接口16可以是无线网络接口。
总线22可以为包括地址总线、数据总线、控制总线等。总线22提供了各组件之间交换信息的通路。
需要说明的是,在具体实施过程中,计算设备30还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。计算机可读存储介质可以包括但不限于任何类型的盘,包括软盘、光盘、DVD、CD-ROM、微型驱动器以及磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪速存储器设备、磁卡或光卡、纳米系统(包括分子存储器IC)、网络存储设备、云存储设备,或适合于存储指令和/或数据的任何类型的媒介或设备。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括存储计算机程序的非瞬时性计算机可读存储介质,该计算机程序可操作来使计算机执行如上述方法实施例中记载的任何一种方法的部分或全部步骤。
本领域的技术人员可以清楚地了解到本申请的技术方案可借助软件和/或硬件来实现。本说明书中的“单元”和“模块”是指能够独立完成或与其他部件配合完成特定功能的软件和/或硬件,其中硬件例如可以是现场可编程门阵列、集成电路等。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些服务接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
以上具体地展示和描述了本申请的示例性实施例。应可理解的是,本申请不限于这里描述的详细结构、设置方式或实现方法;相反,本申请意图涵盖包含在所附条款的精神和范围内的各种修改和等效设置。

Claims (11)

1.一种加法树计算装置,用于浮点数及定点数的加法运算,其特征在于,所述加法树计算装置包括数据输入模块、第一多路选择器、传输控制模块、融合计算模块、数据规格化输出模块,所述融合计算模块具有第一入口和第二入口,其中:
所述数据输入模块接收输入数据及计算类型指令;
所述传输控制模块根据所述计算类型指令控制所述第一多路选择器将浮点数送入所述融合计算模块的所述第一入口,或将定点数送入所述融合计算模块的所述第二入口;
所述融合计算模块用于执行定点数加法运算以及浮点数加法运算,输出运算结果到所述数据规格化输出模块;
所述传输控制模块根据所述计算类型指令控制所述数据规格化输出模块对所述运算结果进行输出处理,并输出最终计算结果。
2.根据权利要求1所述的加法树计算装置,其特征在于,所述融合计算模块中包括预处理模块、第二多路选择器及定点加法树模块,其中:
所述预处理模块通过所述第一入口接收浮点数,并将预处理结果送入所述第二多路选择器;
所述第二多路选择器通过所述第二入口接收来自所述第一多路选择器的定点数,并根据所述传输控制模块的控制输出所述定点数或所述预处理结果;
所述定点加法树接收所述第二多路选择器的输出用以执行定点加法运算。
3.根据权利要求2所述的加法树计算装置,其特征在于,所述预处理模块包括指数差模块、尾数对齐模块及指数寄存器阵列,其中:
所述指数差模块用于输入的浮点数与浮点数基准指数之间的指数差计算;
所述尾数对齐模块应用计算出的指数差对浮点数进行尾数移位;
所述指数寄存器阵列用于存储所述浮点数基准指数,所述浮点数基准指数可通过所述指数差模块对输入的浮点数进行指数比较获得或预先设定。
4.根据权利要求3所述的加法树计算装置,其特征在于,所述数据规格化输出模块包括:第三多路选择器、规格化处理单元、第四多路选择器,其中:
所述第三多路选择器根据所述传输控制模块的控制,将所述融合计算模块的运算结果送入所述规格化处理单元或所述第四多路选择器;
所述规格化处理单元用于将输入的运算结果根据浮点数规格进行规格化操作,将所述规格化的结果数据送入所述第四多路选择器中;
所述第四多路选择器根据所述传输控制模块的控制,输出最终计算结果。
5.根据权利要求4所述的加法树计算装置,其特征在于,所述数据规格化处理单元配置为:
读取所述指数寄存器阵列中存储的浮点数基准指数,对所述浮点加法运算结果进行数据规格化操作和舍入处理,输出符合规格的浮点数。
6.一种用于加法树计算装置的方法,实现浮点数及定点数的加法运算,其特征在于,所述方法包括:
接收输入数据,所述输入数据为定点数或浮点数;
将浮点数送入第一计算通道;
将定点数数据送入第二计算通道;
对来自第一计算通道或第二通道的输入数据进行定点加法运算;
根据数据类型对运算结果进行输出处理。
7.根据权利要求6所述的方法,其特征在于,将浮点数送入第一计算通道,还包括:
将输入的浮点数按照浮点数基准指数计算各个浮点数的指数差,所述浮点数基准指数通过对输入的浮点数进行指数比较获得或预先设定;
按照所述各个浮点数的指数差对所述浮点数进行尾数移位。
8.根据权利要求6所述的方法,其特征在于,对来自第一通道或第二通道的输入数据进行定点加法运算,包括:
接收所述尾数移位后的浮点数和/或所述定点数并送入定点加法树;
利用所述定点加法树进行加法运算,得到运算结果。
9.根据权利要求6所述的方法,其特征在于,根据数据类型对运算结果进行输出处理,包括:
若为浮点数,将运算结果做规则化处理后输出规格化后的结果数据作为最终计算结果;
若为定点数数据,则输出所述运算结果作为最终计算结果。
10.一种芯片电路,其特征在于,包括根据权利要求1-5中任一项所述的装置。
11.一种计算设备,其特征在于,包括:
处理器;以及
存储器,存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求6-9中任一项所述的方法。
CN202311408926.XA 2023-10-27 2023-10-27 加法树计算装置和方法及计算设备 Pending CN117667009A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311408926.XA CN117667009A (zh) 2023-10-27 2023-10-27 加法树计算装置和方法及计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311408926.XA CN117667009A (zh) 2023-10-27 2023-10-27 加法树计算装置和方法及计算设备

Publications (1)

Publication Number Publication Date
CN117667009A true CN117667009A (zh) 2024-03-08

Family

ID=90076026

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311408926.XA Pending CN117667009A (zh) 2023-10-27 2023-10-27 加法树计算装置和方法及计算设备

Country Status (1)

Country Link
CN (1) CN117667009A (zh)

Similar Documents

Publication Publication Date Title
CN101438232B (zh) 不同浮点格式的浮点加法
CN112184508B (zh) 一种用于图像处理的学生模型的训练方法及装置
CN110929860B (zh) 一种卷积加速运算方法、装置、存储介质及终端设备
CN112488297B (zh) 一种神经网络剪枝方法、模型生成方法及装置
WO2022120995A1 (zh) 一种基于PoW共识机制的设备算力评价方法及系统
CN106778015A (zh) 一种基于云平台中fpga异构加速基因计算方法
CN110825435B (zh) 用于处理数据的方法和装置
CN114626516A (zh) 一种基于对数块浮点量化的神经网络加速系统
CN112214402A (zh) 一种代码验证算法的选择方法、装置及存储介质
US10140090B2 (en) Computing and summing up multiple products in a single multiplier
CN102567254B (zh) 采用dma控制器进行数据归一化处理的方法
CN111340207A (zh) 浮点数转换方法及装置
WO2019104844A1 (zh) 货币基金系统自动性能测试方法、装置、设备及存储介质
CN113805974A (zh) 基于应用程序的数据类型选择
CN117667009A (zh) 加法树计算装置和方法及计算设备
CN109388784A (zh) 最小熵核密度估计器生成方法、装置和计算机可读存储介质
CN117170622B (zh) 累加器及用于累加器的方法和芯片电路及计算设备
CN114936921A (zh) 贷款风险控制方法及装置
CN114065913A (zh) 模型量化方法、装置及终端设备
US10275391B2 (en) Combining of several execution units to compute a single wide scalar result
CN111367497B (zh) 基于posit数据格式的浮点数乘法运算方法及装置
CN117648959B (zh) 支持神经网络运算的多精度操作数运算装置
CN116151964A (zh) 数据处理方法、装置、设备、介质和程序产品
CN116910179A (zh) 实体链接方法、装置、电子设备及存储介质
CN115905236A (zh) 一种数据处理方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination