计算装置、计算方法、电子设备及存储介质与流程

文档序号:39197774发布日期:2024-08-27 19:05阅读:12来源:国知局
计算装置、计算方法、电子设备及存储介质与流程

本公开的实施例涉及一种计算装置、计算方法、电子设备及存储介质。


背景技术:

1、浮点数据广泛应用于神经网络领域,尤其在模型训练方面,使用的几乎都是浮点数据类型。在神经网络加速器中浮点加法器数量众多,浮点加法运算单元的面积会直观地反映到整个神经网络加速器的面积上。

2、浮点加法运算的复杂度远高于整型数据加法,通常需要将浮点加法分解成多个步骤才能保证最终的时序(timing)收敛。但是这种多步骤运算往往会带来数据依赖问题,避免数据依赖问题通常需要在其他影响功耗和性能的方面做出牺牲。如果不能避免数据依赖问题,又会导致神经网络加速器的吞吐量成倍下降。因此一种速度更快,面积更小的浮点加法运算单元对于神经网络处理器的性能(例如ppa:performance,power,area)至关重要。


技术实现思路

1、本公开至少一些实施例提供一种计算装置,该计算装置配置为依次执行n-1轮累加操作以得到n个类型为浮点数的输入数据的累加结果,其中,n为正整数且大于2,所述n-1轮累加操作包括依次顺序执行的第i轮累加操作以及第i+1轮累加操作,i为正整数且小于等于n-2,所述计算装置包括比较模块、移位模块以及加法模块,其中,所述比较模块配置为接收所述第i+1轮累加操作的第一输入参数以及第二输入参数,比较所述第一输入参数的阶码值以及所述第二输入参数的阶码值的大小,其中,所述第一输入参数为所述第i轮累加操作的输出结果,所述第i轮累加操作的输出结果包括所述第i轮累加操作的尾数加和结果以及所述第i轮累加操作对应的进位标识符,所述第i轮累加操作对应的进位标识符指示所述第i轮累加操作的尾数加和结果是否进行进位,所述第二输入参数为所述n个输入数据中未进行过所述累加操作的一个输入数据;述移位模块配置为根据所述第一输入参数的阶码值以及所述第二输入参数的阶码值的大小关系,对所述第一输入参数或所述第二输入参数进行移位处理,得到移位处理后的第一输入参数、移位处理后的第二输入参数,其中,所述移位处理后的第一输入参数与所述移位处理后的第二输入参数的阶码值相同;所述加法模块配置为根据所述移位处理后的第一输入参数、所述移位处理后的第二输入参数以及所述第i轮累加操作对应的进位标识符得到所述第i+1轮累加操作的中间加和结果;所述移位模块还配置为根据所述第i+1轮累加操作的中间加和结果得到所述第i+1轮累加操作的输出结果,其中,所述第i+1轮累加操作的输出结果包括所述第i+1轮累加操作的尾数加和结果以及所述第i+1轮累加操作对应的进位标识符。

2、例如,在本公开至少一些实施例提供的计算装置中,所述移位模块执行根据所述第一输入参数的阶码值以及所述第二输入参数的阶码值的大小关系,对所述第一输入参数或所述第二输入参数进行移位处理,得到移位处理后的第一输入参数、移位处理后的第二输入参数,包括执行以下操作:响应于所述第一输入参数的阶码值大于或等于所述第二输入参数的阶码值,对所述第二输入参数进行移位,得到所述移位处理后的第二输入参数,并将所述第一输入参数作为移位处理后的第一输入参数,其中,所述移位处理后的第二输入参数的阶码值等于所述第一输入参数的阶码值;响应于所述第一输入参数的阶码值小于所述第二输入参数的阶码值,对所述第一输入参数进行移位,得到所述移位处理后的第一输入参数,并将所述第二输入参数作为移位处理后的第二输入参数,其中,所述移位处理后的第一输入参数的阶码值等于所述第二输入参数的阶码值。

3、例如,在本公开至少一些实施例提供的计算装置中,所述加法模块执行根据所述移位处理后的第一输入参数、所述移位处理后的第二输入参数以及所述第i轮累加操作对应的进位标识符得到所述第i+1轮累加操作的中间加和结果,包括执行以下操作:响应于所述第一输入参数的阶码值大于或等于所述第二输入参数的阶码值,计算所述移位处理后的第一输入参数、所述移位处理后的第二输入参数以及所述第i轮累加操作对应的进位标识符的加和,作为所述第i+1轮累加操作的中间加和结果。

4、例如,在本公开至少一些实施例提供的计算装置中,所述加法模块执行根据所述移位处理后的第一输入参数、所述移位处理后的第二输入参数以及所述第i轮累加操作对应的进位标识符得到所述第i+1轮累加操作的中间加和结果,包括执行以下操作:响应于所述第一输入参数的阶码值小于所述第二输入参数的阶码值,将所述设置所述第i轮累加操作对应的进位标识符指示所述第i轮累加操作的尾数加和结果不进行进位,计算所述移位处理后的第一输入参数以及所述移位处理后的第二输入参数的加和作为所述第i+1轮累加操作的中间加和结果。

5、例如,在本公开至少一些实施例提供的计算装置中,所述移位模块执行根据所述第一输入参数的阶码值以及所述第二输入参数的阶码值的大小关系,对所述第一输入参数或所述第二输入参数进行移位处理,得到移位处理后的第一输入参数、移位处理后的第二输入参数,还包括执行以下操作:响应于所述第一输入参数的阶码值小于所述第二输入参数的阶码值,设置所述第i轮累加操作对应的进位标识符指示所述第i轮累加操作的尾数加和结果不进行进位,所述加法模块执行根据所述移位处理后的第一输入参数、所述移位处理后的第二输入参数以及所述第i轮累加操作对应的进位标识符得到所述第i+1轮累加操作的中间加和结果,包括执行以下操作:计算所述移位处理后的第一输入参数、所述移位处理后的第二输入参数的加和作为所述第i+1轮累加操作的中间加和结果。

6、例如,在本公开至少一些实施例提供的计算装置中,所述移位模块执行响应于所述第一输入参数的阶码值小于所述第二输入参数的阶码值,对所述第一输入参数进行移位,得到所述移位处理后的第一输入参数,并将所述第二输入参数作为移位处理后的第二输入参数,包括执行以下操作:响应于所述第一输入参数的阶码值小于所述第二输入参数的阶码值以及所述第i轮累加操作对应的进位标识符指示所述第i轮累加操作的尾数加和结果进行进位,对所述第一输入参数的尾数从第m+1位起补充m个1,得到中间第一输入参数,其中,m为输入数据的尾数位数,将所述中间第一输入参数进行移位,得到移位处理后的第一输入参数,并将所述第二输入参数作为所述移位处理后的第二输入参数,其中,所述中间第一输入参数进行移位的位数为n,n为正整数,所述移位处理后的第一输入参数的阶码值等于所述移位处理后的第二输入参数的阶码值;所述加法模块配置为根据所述移位处理后的第一输入参数、所述移位处理后的第二输入参数以及所述第i轮累加操作对应的进位标识符得到所述第i+1轮累加操作的中间加和结果,包括执行以下操作:在所述移位处理后的第一输入参数的尾数的第2m+n位加1,并与所述移位处理后的第二输入参数相加,作为所述第i+1轮累加操作的中间加和结果。

7、例如,在本公开至少一些实施例提供的计算装置中,所述加法模块执行根据所述移位处理后的第一输入参数、所述移位处理后的第二输入参数以及所述第i轮累加操作对应的进位标识符得到所述第i+1轮累加操作的中间加和结果,包括执行以下操作:响应于所述第一输入参数的阶码值小于所述第二输入参数的阶码值以及所述第i轮累加操作对应的进位标识符指示所述第i轮累加操作的尾数加和结果不进行进位,计算所述移位处理后的第一输入参数、所述移位处理后的第二输入参数的加和,作为所述第i+1轮累加操作的中间加和结果。

8、例如,在本公开至少一些实施例提供的计算装置中,所述移位模块执行根据所述第i+1轮累加操作的中间加和结果得到所述第i+1轮累加操作的输出结果,包括执行以下操作:根据所述中间加和结果确定规格化结果;根据所述规格化结果的尾数部分确定所述第i+1轮累加操作对应的进位标识符;将所述规格化结果的尾数部分的第1位至第m位直接作为所述第i+1轮累加操作的尾数加和结果,其中,m为输入数据的尾数位数;将所述规格化结果的阶码值作为所述第i+1轮累加操作的输出结果的阶码值,以得到所述第i+1轮累加操作的输出结果。

9、例如,在本公开至少一些实施例提供的计算装置中,所述移位模块执行根据所述中间加和结果确定规格化结果,包括执行以下操作:响应于所述中间加和结果的数据格式是规格化浮点数,将所述中间加和结果作为所述规格化结果;响应于所述中间加和结果的数据格式不是规格化浮点数,对所述中间加和结果进行规格化移位得到所述规格化结果。

10、例如,在本公开至少一些实施例提供的计算装置中,所述移位模块执行根据所述规格化结果的尾数部分确定所述第i+1轮累加操作对应的进位标识符,包括执行以下操作:根据所述规格化结果的尾数部分的第m+1位以及第m+2位,确定所述第i+1轮累加操作对应的进位标识符。

11、例如,在本公开至少一些实施例提供的计算装置中,所述移位模块为多路复用树。

12、例如,在本公开至少一些实施例提供的计算装置中,所述多路复用树的级数根据所述输入数据的浮点数精度类型的尾数有效位数的两倍确定。

13、本公开至少一些实施例还提供一种计算方法,用于依次执行n-1轮累加操作以得到n个类型为浮点数的输入数据的累加结果,其中,n为正整数且大于2,所述n-1轮累加操作包括依次顺序执行的第i轮累加操作和第i+1轮累加操作,i为正整数且小于等于n-2,所述计算方法包括:接收所述第i+1轮累加操作的第一输入参数以及第二输入参数,比较所述第一输入参数的阶码值与所述第二输入参数的阶码值的大小,其中,所述第一输入参数为所述第i轮累加操作的输出结果,所述第i轮累加操作的输出结果包括所述第i轮累加操作的尾数加和结果以及所述第i轮累加操作对应的进位标识符,所述第i轮累加操作对应的进位标识符指示所述第i轮累加操作的尾数加和结果是否进行进位,所述第二输入参数为所述n个输入数据中未进行过所述累加操作的一个输入数据;根据所述第一输入参数的阶码值以及所述第二输入参数的阶码值的大小关系,对所述第一输入参数或所述第二输入参数进行移位处理,得到移位处理后的第一输入参数、移位处理后的第二输入参数,其中,所述移位处理后的第一输入参数与所述移位处理后的第二输入参数的阶码值相同;根据所述移位处理后的第一输入参数、所述移位处理后的第二输入参数以及所述第i轮累加操作对应的进位标识符得到所述第i+1轮累加操作的中间加和结果;根据所述第i+1轮累加操作的中间加和结果得到所述第i+1轮累加操作的输出结果,其中,所述第i+1轮累加操作的输出结果包括所述第i+1轮累加操作的尾数加和结果以及所述第i+1轮累加操作对应的进位标识符。

14、本公开至少一些实施例还提供一种电子设备,包括本公开任一实施例提供的计算装置。

15、本公开至少一些实施例还提供一种电子设备,包括:存储器,非瞬时性地存储有计算机可执行指令;处理器,配置为运行所述计算机可执行指令,其中,所述计算机可执行指令被所述处理器运行时实现本公开实施例提供的计算方法。

16、本公开至少一些实施例还提供一种非暂时性存储介质,所述非暂时性存储介质非暂时性地存储计算机可读指令,其中,当所述计算机可读指令由计算机执行时,执行本公开实施例提供的集成电路的计算方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1