归一化指数函数算子的量化运算方法、装置及处理设备与流程

xiaoxiao9月前  77


本技术涉及神经网络芯片的编译,尤其涉及一种归一化指数函数算子的量化运算方法、装置及处理设备。


背景技术:

1、在神经网络芯片的编译技术领域中,通过硬件算子支持来加速提升神经网络计算的推理效率,硬件加速是指在计算机中通过把计算量大、耗时高的操作分配给专门的硬件来处理,以减少中央处理器的工作量,进而提升神经网络推理效率的一种技术。这种技术通过在硬件层面实施神经网络的算子支持,加速当前计算图的执行速度,从而提高整个系统的性能和效率。特别是在并行处理方面,特别设计的硬件能够更有效地实现神经网络地硬件加速。硬件加速通过专用的硬件加速器实现。

2、针对归一化指数函数softmax算子的计算场景,softmax算子的计算过程涉及指数计算累加以及计算结果的除法计算,其计算过程复杂,支持softmax算子的硬件加速器有限,影响softmax算子的运算效率。


技术实现思路

1、本技术提供一种归一化指数函数算子的量化运算方法、装置及处理设备,用于提升归一化指数函数算子的量化运算的效率。

2、第一方面,本技术提供一种归一化指数函数算子的量化运算方法,包括:获取运算请求,所述运算请求包括输入特征图,所述输入特征图中包括多个输入数据;根据第一查询表,获取所述多个输入数据在第一运算处理下的多个第一运算结果;确定所述多个第一运算结果的第一和值,并根据第二查询表获取所述第一和值在所述第二运算处理下的第二运算结果;根据所述多个第一运算结果和所述第二运算结果,确定所述输入特征图在所述归一化指数函数算子下的目标运算结果。

3、在一种可能的实施方式中,针对任意一个输入数据,根据第一查询表,获取所述输入数据在第一运算处理下的多个第一运算结果,包括:获取第一查询表,所述第一查询表中包括多个第一数据、以及各第一数据在所述第一运算处理下的量化运算结果;在所述第一查询表中查询所述输入数据对应的量化运算结果,该量化运算结果为该输入数据对应的第一运算结果。

4、在一种可能的实施方式中,所述方法还包括:获取所述多个第一数据;分别对每个第一数据执行所述第一运算处理,得到每个第一数据在所述第一运算处理下的量化运算结果;根据每个第一数据在所述第一运算处理下的量化运算结果,生成所述第一查询表。

5、在一种可能的实施方式中,针对任意一个第一数据,对所述第一数据执行所述第一运算处理,得到所述第一数据在所述第一运算处理下的运算结果,包括:确定尺度缩放系数和预设比特数;根据所述尺度缩放系数和所述预设比特数,对所述第一数据进行反量化处理,得到第一浮点数;根据所述预设比特数,对所述第一浮点数进行指数运算、范围转换处理、以及格式转换处理,得到所述第一数据在所述第一运算处理下的运算结果;其中,所述第一运算处理包括所述反量化处理、所述指数运算、所述范围转换处理、以及所述格式转换处理。

6、在一种可能的实施方式中,根据所述尺度缩放系数和所述预设比特数,对所述第一数据进行反量化处理,得到第一浮点数,包括:确定所述预设比特数对应的取值范围中的最大取值;将所述第一数据与所述最大取值的差值,与所述尺度缩放系数的乘积,确定为所述第一浮点数。

7、在一种可能的实施方式中,根据所述运算参数对所述第一浮点数进行指数运算、范围转换处理、以及格式转换处理,得到所述第一数据在所述第一运算处理下的运算结果,包括:对所述第一浮点数进行所述指数运算,得到指数运算结果;确定所述预设比特数对应的取值范围中的最大取值,获取所述指数运算结果与所述最大取值的乘积,并将所述乘积与预设值之和,确定为第一中间值;对所述第一中间值执行所述格式转换处理,得到所述第一数据在所述第一运算处理下的运算结果,所述运算结果位于预设比特数对应的取值范围。

8、在一种可能的实施方式中,获取所述第一和值在所述第二运算处理下的第二运算结果,包括:获取第二查询表,所述第二查询表包括多个第二数据、以及第二数据在所述第二运算处理下的运算结果,所述第二运算处理为倒数运算处理;根据所述第一和值,在所述第二查询表中查询得到所述第二运算结果。

9、在一种可能的实施方式中,所述方法还包括:获取所述多个第二数据;分别对每个第二数据执行所述第二运算处理,得到每个第二数据在所述第二运算处理下的运算结果;根据每个第二数据在所述第二运算处理下的运算结果,生成所述第二查询表。

10、在一种可能的实施方式中,针对任意一个第二数据,对所述第二数据执行所述第二运算处理,得到所述第二数据在所述第二运算处理下的运算结果,包括:确定量化参数;获取所述量化参数与所述第二数据的第一比值;将所述第一比值与所述量化参数的比值,确定为所述第二数据在所述第二运算处理下的运算结果。

11、在一种可能的实施方式中,根据所述多个第一运算结果和所述第二运算结果,确定所述目标运算结果,包括:确定预设比特数和预设偏移值;针对任意一个第一运算结果,根据所述预设比特数和所述预设偏移值,对所述第一运算结果和所述第二运算结果进行处理,得到所述第一运算结果对应的子运算结果;将每个第一运算结果对应的子运算结果,确定为所述目标运算结果。

12、在一种可能的实施方式中,根据所述预设比特数和所述预设偏移值,对所述第一运算结果和所述第二运算结果进行处理,得到所述第一运算结果对应的子运算结果,包括:将所述第一运算结果和所述第二运算结果的乘积,确定为第二中间值;将所述第二中间值以所述预设比特数对应的右移位数进行右移舍入处理的结果,与所述预设偏移值的和,确定为第三中间值;根据所述归一化指数函数算子的输出数据范围,对所述第三中间值进行量化取值范围的截位处理,得到所述第一运算结果对应的子运算结果。

13、第二方面,本技术提供一种归一化指数函数算子的量化运算装置,包括:获取模块,用于获取运算请求,所述运算请求包括输入特征图,所述输入特征图中包括多个输入数据;查询模块,用于根据第一查询表,获取所述多个输入数据在第一运算处理下的多个第一运算结果;运算模块,用于确定所述多个第一运算结果的第一和值,并根据第二查询表获取所述第一和值在所述第二运算处理下的第二运算结果;处理模块,用于根据所述多个第一运算结果和所述第二运算结果,确定所述输入特征图在所述归一化指数函数算子下的目标运算结果。

14、在一种可能的实施方式中,所述查询模块,具体用于获取第一查询表,所述第一查询表中包括多个第一数据、以及各第一数据在所述第一运算处理下的量化运算结果;所述查询模块,具体还用于在第一查询表中查询所述输入数据对应的量化运算结果,该量化运算结果为该输入数据对应的第一运算结果。

15、在一种可能的实施方式中,所述装置还包括:第一生成模块,用于获取所述多个第一数据;所述第一生成模块,还用于分别对每个第一数据执行所述第一运算处理,得到每个第一数据在所述第一运算处理下的量化运算结果;所述第一生成模块,还用于根据每个第一数据在所述第一运算处理下的量化运算结果,生成所述第一查询表。

16、在一种可能的实施方式中,所述第一生成模块,具体用于确定尺度缩放系数和预设比特数;所述第一生成模块,具体还用于根据所述尺度缩放系数和所述预设比特数,对所述第一数据进行反量化处理,得到第一浮点数;所述第一生成模块,具体还用于根据所述预设比特数,对所述第一浮点数进行指数运算、范围转换处理、以及格式转换处理,得到所述第一数据在所述第一运算处理下的运算结果;其中,所述第一运算处理包括所述反量化处理、所述指数运算、所述范围转换处理、以及所述格式转换处理。

17、在一种可能的实施方式中,所述第一生成模块,具体用于确定所述预设比特数对应的取值范围中的最大取值;所述第一生成模块,具体还用于将所述第一数据与所述最大取值的差值,与所述尺度缩放系数的乘积,确定为所述第一浮点数。

18、在一种可能的实施方式中,所述第一生成模块,具体用于对所述第一浮点数进行所述指数运算,得到指数运算结果;所述第一生成模块,具体还用于确定所述预设比特数对应的取值范围中的最大取值,获取所述指数运算结果与所述最大取值的乘积,并将所述乘积与预设值之和,确定为第一中间值;所述第一生成模块,具体还用于对所述第一中间值执行所述格式转换处理,得到所述第一数据在所述第一运算处理下的运算结果,所述运算结果位于预设比特数对应的取值范围。

19、在一种可能的实施方式中,所述装置还包括:执行模块,用于获取第二查询表,所述第二查询表包括多个第二数据、以及第二数据在所述第二运算处理下的运算结果,所述第二运算处理为倒数运算处理;所述执行模块,还用于根据所述第一和值,在所述第二查询表中查询得到所述第二运算结果。

20、在一种可能的实施方式中,所述装置还包括:第二生成模块,用于获取所述多个第二数据;所述第二生成模块,还用于分别对每个第二数据执行所述第二运算处理,得到每个第二数据在所述第二运算处理下的运算结果;所述第二生成模块,还用于根据每个第二数据在所述第二运算处理下的运算结果,生成所述第二查询表。

21、在一种可能的实施方式中,所述第二生成模块,具体用于确定量化参数;所述第二生成模块,具体还用于获取所述量化参数与所述第二数据的第一比值;所述第二生成模块,具体还用于将所述第一比值与所述量化参数的比值,确定为所述第二数据在所述第二运算处理下的运算结果。

22、在一种可能的实施方式中,所述装置还包括:运算模块,用于确定预设比特数和预设偏移值;所述运算模块,还用于针对任意一个第一运算结果,根据所述预设比特数和所述预设偏移值,对所述第一运算结果和所述第二运算结果进行处理,得到所述第一运算结果对应的子运算结果;所述运算模块,还用于将每个第一运算结果对应的子运算结果,确定为所述目标运算结果。

23、在一种可能的实施方式中,所述运算模块,具体用于将所述第一运算结果和所述第二运算结果的乘积,确定为第二中间值;所述运算模块,具体还用于将所述第二中间值以所述预设比特数对应的右移位数进行右移舍入处理的结果,与所述预设偏移值的和,确定为第三中间值;所述运算模块,具体还用于根据所述归一化指数函数算子的输出数据范围,对所述第三中间值进行量化取值范围的截位处理,得到所述第一运算结果对应的子运算结果。

24、第三方面,本技术提供一种神经网络计算图的处理设备,包括:处理器,以及与所述处理器通信连接的存储器;所述存储器存储有计算机程序和计算图推理所需的外部输入数据;所述处理器执行所述计算机程序,以实现第一方面中任一项所述的方法。

25、第四方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行如第一方面中任一项所述的方法。

26、第五方面,本技术提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行如第一方面中任一项所述的方法。

27、本技术提供的归一化指数函数算子的量化运算方法、装置及处理设备,包括:获取运算请求,所述运算请求包括输入特征图,所述输入特征图中包括多个输入数据;根据第一查询表,获取所述多个输入数据在第一运算处理下的多个第一运算结果;确定所述多个第一运算结果的第一和值,并根据第二查询表获取所述第一和值在所述第二运算处理下的第二运算结果;根据所述多个第一运算结果和所述第二运算结果,确定所述输入特征图在所述归一化指数函数算子下的目标运算结果。以上方案,通过查询表确定第一运算结果和第二运算结果,可以减少处理器的工作量,从而提升量化运算的效率。


技术特征:

1.一种归一化指数函数算子的量化运算方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,针对任意一个输入数据,根据第一查询表,获取所述输入数据在第一运算处理下的多个第一运算结果,包括:

3.根据权利要求2所述的方法,其特征在于,所述方法还包括:

4.根据权利要求3所述的方法,其特征在于,针对任意一个第一数据,对所述第一数据执行所述第一运算处理,得到所述第一数据在所述第一运算处理下的运算结果,包括:

5.根据权利要求4所述的方法,其特征在于,根据所述尺度缩放系数和所述预设比特数,对所述第一数据进行反量化处理,得到第一浮点数,包括:

6.根据权利要求4或5所述的方法,其特征在于,根据所述运算参数对所述第一浮点数进行指数运算、范围转换处理、以及格式转换处理,得到所述第一数据在所述第一运算处理下的运算结果,包括:

7.根据权利要求1-6任一项所述的方法,其特征在于,获取所述第一和值在所述第二运算处理下的第二运算结果,包括:

8.根据权利要求7所述的方法,其特征在于,所述方法还包括:

9.根据权利要求8所述的方法,其特征在于,针对任意一个第二数据,对所述第二数据执行所述第二运算处理,得到所述第二数据在所述第二运算处理下的运算结果,包括:

10.根据权利要求1-9任一项所述的方法,其特征在于,根据所述多个第一运算结果和所述第二运算结果,确定所述目标运算结果,包括:

11.根据权利要求10所述的方法,其特征在于,根据所述预设比特数和所述预设偏移值,对所述第一运算结果和所述第二运算结果进行处理,得到所述第一运算结果对应的子运算结果,包括:

12.一种归一化指数函数算子的量化运算装置,其特征在于,包括:

13.一种神经网络计算图的处理设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;

14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-11中任一项所述的方法。

15.一种计算机程序产品,其特征在于,包括计算机程序,该计算机程序被处理器执行时实现权利要求1-11中任一项所述的方法。


技术总结
本申请实施例提供一种归一化指数函数算子的量化运算方法、装置及处理设备,涉及神经网络芯片的编译技术领域。所述方法包括:获取运算请求,所述运算请求包括输入特征图,所述输入特征图中包括多个输入数据;根据第一查询表,获取所述多个输入数据在第一运算处理下的多个第一运算结果;确定所述多个第一运算结果的第一和值,并根据第二查询表获取所述第一和值在所述第二运算处理下的第二运算结果;根据所述多个第一运算结果和所述第二运算结果,确定所述输入特征图在所述归一化指数函数算子下的目标运算结果。以上方案,通过查询表确定第一运算结果和第二运算结果,可以减少处理器的工作量,从而提升量化运算的效率。

技术研发人员:赵亚娟,赵海丞,李源
受保护的技术使用者:西安紫光展锐科技有限公司
技术研发日:
技术公布日:2024/9/23

最新回复(0)