System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 浮点运算方法、装置、电子设备及存储介质制造方法及图纸_技高网

浮点运算方法、装置、电子设备及存储介质制造方法及图纸

技术编号:41337533 阅读:2 留言:0更新日期:2024-05-20 09:56
本申请公开一种浮点运算方法、装置、电子设备及存储介质,浮点运算方法包括:根据模型运算指令,获取第一向量和第二向量,第一向量包括多个第一元素,第二向量包括多个第二元素,第一元素和第二元素为浮点型数据,第一元素和第二元素一一对应;对第一向量中的所有元素和第二向量中的所有元素进行指数运算得到指数计算结果;根据指数计算结果对第一向量中的所有元素和第二向量中的所有元素进行尾数预对齐得到第一尾数向量和第二尾数向量;将第一尾数向量和第二尾数向量进行乘加运算得到尾数乘加结果;根据指数计算结果和尾数乘加结果进行规格化处理得到模型运算结果。本申请无需在乘加运算过程中进行对阶移位操作,提高计算效率。

【技术实现步骤摘要】

本专利技术涉及人工智能,更具体地,涉及一种浮点运算方法、装置、电子设备及存储介质


技术介绍

1、目前,在一些业界主流ai(artificial intelligence,人工智能)处理器中,内积的应用场景十分广泛,例如在神经网络的推理以及训练中,所有涉及卷积的网络层,都需要进行大量的乘加运算。在神经网络的推理和训练中,常用的数据类型为浮点型,相较于定点型,浮点型数据具有较大的动态范围,可以表示的数值范围远大于定点数。

2、由于神经网络(nn)模型的规模和计算量不断增加,传统的ai处理器通常会在独立的计算和内存之间进行大量数据移动。内存计算(cim)通过将乘加运算集成到内存(如静态随机存取内存(sram)和电阻式ram(reram))中,以减少数据搬运,提高计算效率。

3、现有技术中,对浮点型向量进行乘加运算时,先将向量中相同位置上的浮点型元素通过浮点乘法器进行乘法操作,再将乘法结果通过浮点加法树进行分级的加法操作,最终得到计算结果。由于向量中不同位置的乘法结果的指数不同,因此加法操作之前需要对乘法结果进行对阶移位操作,即乘法结果的指数对齐,尾数相应的移位。在内存计算单元进行对阶移位操作会增加芯片的复杂性和成本、降低计算效率和增加存储需求。


技术实现思路

1、鉴于上述问题,本专利技术的目的在于提供一种浮点运算方法、装置、电子设备及存储介质,无需在乘加运算过程中进行对阶移位操作,提高计算效率,降低算法的复杂性和芯片成本。

2、根据本专利技术的第一方面,提供一种浮点运算方法,包括:根据模型运算指令,获取第一向量和第二向量,其中,所述第一向量包括多个第一元素,第二向量包括多个第二元素,所述第一元素和所述第二元素为浮点型数据,所述第一元素和所述第二元素一一对应;对所述第一向量中的所有元素和所述第二向量中的所有元素进行指数运算得到指数计算结果;根据所述指数计算结果对所述第一向量中的所有元素和所述第二向量中的所有元素进行尾数预对齐得到第一尾数向量和第二尾数向量;将第一尾数向量和第二尾数向量进行乘加运算得到尾数乘加结果;根据所述指数计算结果和所述尾数乘加结果进行规格化处理得到模型运算结果。

3、优选地,对所述第一向量中的所有元素和所述第二向量中的所有元素进行指数运算得到指数计算结果包括:对多个第一元素和多个第二元素分别取出指数部分以得到多个第一指数和多个第二指数;将多个第一指数和多个第二指数对应相加,生成多个指数和;从多个指数和中确定最大的指数和,作为最大指数和;将所述多个指数和以及最大指数和作为所述指数计算结果。

4、优选地,根据所述指数计算结果对所述第一向量中的所有元素和所述第二向量中的所有元素进行尾数预对齐尾数预对齐得到第一尾数向量和第二尾数向量包括:对第一向量中所有第一元素的尾数和第二向量中所有第二元素的尾数进行预处理以得到多个第一中间尾数和多个第二中间尾数,其中,所述第一中间尾数和所述第二中间尾数均包括多个冗余位;将所述最大指数和与所述多个指数和进行减法运算得到多个指数差值;根据所述多个指数差值计算多个第一中间尾数的第一移位值和多个第二中间尾数的第二移位值,对应位置的所述第一移位值和所述第二移位值之和为相应的所述指数差值,所述第一移位值和所述第二移位值为非负整数;根据所述第一移位值和所述第二移位值分别对多个第一中间尾数和多个第二中间尾数进行尾数预对齐得到第一尾数向量和第二尾数向量。

5、优选地,根据所述多个指数差值计算第一向量中所有第一元素的第一移位值和第二向量中所有第二元素的第二移位值包括:对多个第一中间尾数和多个第二中间尾数分别计算冗余位的个数以得到多个第一冗余数和多个第二冗余数;将多个第一冗余数和多个第二冗余数对应相加,生成多个冗余和;将多个所述指数差值与相应的所述冗余和进行比较;当所述指数差值小于或等于所述冗余和时,根据第一冗余数和所述指数差值计算第一移位值和第二移位值;当所述指数差值大于所述冗余和时,根据所述指数差值的均值计算第一移位值和第二移位值。

6、优选地,根据第一冗余数和所述指数差值计算第一移位值和第二移位值包括:将所述指数差值与第一冗余数比较;当所述指数差值小于等于第一冗余数时,将所述指数差值作为第一移位值,第二移位值为0;当所述指数差值大于第一冗余数时,将第一冗余数作为第一移位值,以及将所述指数差值和所述第一冗余数的差值作为第二移位值。

7、优选地,根据所述指数差值的均值计算第一移位值和第二移位值包括:当所述指数差值为正偶数时,将所述指数差值的平均值作为第一移位值以及将所述指数差值和所述第一移位值的差值作为第二移位值;当所述指数差值为正奇数时,将所述指数差值与1的差的平均值作为第一移位值以及将所述指数差值和所述第一移位值的差值作为第二移位值。

8、优选地,根据所述指数差值的均值计算第一移位值和第二移位值包括:对所述指数差值与所述冗余和进行减法运算以得到待分配差值;当所述待分配差值为正偶数时,将所述待分配差值的平均值和第一冗余数之和作为第一移位值,以及将所述指数差值和所述第一移位值的差值作为第二移位值;当所述待分配差值为正奇数时,将所述待分配差值与1的差的平均值和第一冗余数之和作为第一移位值,以及将所述指数差值和所述第一移位值的差值作为第二移位值。

9、优选地,所述浮点运算方法还包括:将所述第一向量和第二向量分别分组得到l个第一子向量和l个第二子向量,所述第一子向量包括m个第一元素,所述第二子向量包括m个第二元素,l和m均为正整数;对l个第一子向量中的所有第一元素和l个第二子向量中的所有第二元素分别取出指数部分得到l个第一指数计算结果;根据l个第一指数计算结果对l个第一子向量和l个第二子向量进行尾数预对齐得到l个第一尾数向量和l个第二尾数向量;将l个第一尾数向量和l个第二尾数向量分别进行乘加运算得到l个尾数乘加结果;根据l个第一指数计算结果和l个尾数乘加结果得到第一和向量,所述第一和向量包括l个第一和结果。

10、优选地,所述浮点运算方法还包括:对第一和向量中的所有第一和结果分别取出指数部分得到第二指数计算结果;根据第二指数结果对所有第一和结果进行移位对阶以得到多个第一和中间尾数;对多个第一和中间尾数进行求和处理得到第二和结果;根据所述第二指数计算结果和所述第二和结果得到模型运算结果。

11、优选地,所述浮点运算方法还包括:将第一和向量分组得到多个第一子和向量,每个第一子和向量包括p个第一和结果,p为正整数;对每个子和向量中的所有第一和结果分别取出指数部分得到第二指数计算结果;根据所述第二指数计算结果对每个子和向量中的所有第一和结果进行移位对阶,得到相应的中间和向量;将中间和向量中的所有元素进行求和处理得到相应的第二和结果;根据所述第二指数计算结果对所述第二和结果进行规格化处理,得到第三和结果,所述第三和结果为浮点数据;将多个第三和结果进行浮点数求和得到模型运算结果。

12、根据本专利技术的第二方面,提供一种浮点运算装置,包括:获取模块,用于根据模型运算指本文档来自技高网...

【技术保护点】

1.一种浮点运算方法,其特征在于,包括:

2.根据权利要求1所述的浮点运算方法,其特征在于,对所述第一向量中的所有元素和所述第二向量中的所有元素进行指数运算得到指数计算结果包括:

3.根据权利要求2所述的浮点运算方法,其特征在于,根据所述指数计算结果对所述第一向量中的所有元素和所述第二向量中的所有元素进行尾数预对齐尾数预对齐得到第一尾数向量和第二尾数向量包括:

4.根据权利要求3所述的浮点运算方法,其特征在于,根据所述多个指数差值计算第一向量中所有第一元素的第一移位值和第二向量中所有第二元素的第二移位值包括:

5.根据权利要求4所述的浮点运算方法,其特征在于,根据第一冗余数和所述指数差值计算第一移位值和第二移位值包括:

6.根据权利要求4所述的浮点运算方法,其特征在于,根据所述指数差值的均值计算第一移位值和第二移位值包括:

7.根据权利要求4所述的浮点运算方法,其特征在于,根据所述指数差值的均值计算第一移位值和第二移位值包括:

8.根据权利要求1所述的浮点运算方法,其特征在于,还包括:

>9.根据权利要求8所述的浮点运算方法,其特征在于,还包括:

10.根据权利要求8所述的浮点运算方法,其特征在于,还包括:

11.一种浮点运算装置,其特征在于,包括:获取模块,用于根据模型运算指令,获取第一向量和第二向量,其中,所述第一向量包括多个第一元素,第二向量包括多个第二元素,所述第一元素和所述第二元素为浮点型数据,所述第一元素和所述第二元素一一对应;

12.根据权利要求11所述的浮点运算装置,其特征在于,所述指数运算模块还用于对多个第一元素和多个第二元素分别取出指数部分以得到多个第一指数和多个第二指数;将多个第一指数和多个第二指数对应相加,生成多个指数和;从多个指数和中确定最大的指数和,作为最大指数和;将所述多个指数和以及最大指数和作为所述指数计算结果。

13.根据权利要求12所述的浮点运算装置,其特征在于,所述尾数预对齐模块包括:

14.根据权利要求11所述的浮点运算装置,其特征在于,还包括:

15.根据权利要求14所述的浮点运算装置,其特征在于,所述指数运算模块还用于对L个第一子向量中的所有第一元素和L个第二子向量中的所有第二元素分别取出指数部分得到L个第一指数计算结果;所述尾数预对齐模块还用于根据L个第一指数计算结果对L个第一子向量和L个第二子向量进行尾数预对齐得到L个第一尾数向量和L个第二尾数向量;

16.根据权利要求15所述的浮点运算装置,其特征在于,所述指数运算模块还用于对第一和向量中的所有第一和结果分别取出指数部分得到第二指数计算结果;

17.根据权利要求15所述的浮点运算装置,其特征在于,所述向量分组模块还用于将第一和向量分组得到多个第一子和向量,每个第一子和向量包括P个第一和结果,P为正整数;

18.一种电子设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-10中任一项所述的浮点运算方法。

19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-10中任一项所述的浮点运算方法。

...

【技术特征摘要】

1.一种浮点运算方法,其特征在于,包括:

2.根据权利要求1所述的浮点运算方法,其特征在于,对所述第一向量中的所有元素和所述第二向量中的所有元素进行指数运算得到指数计算结果包括:

3.根据权利要求2所述的浮点运算方法,其特征在于,根据所述指数计算结果对所述第一向量中的所有元素和所述第二向量中的所有元素进行尾数预对齐尾数预对齐得到第一尾数向量和第二尾数向量包括:

4.根据权利要求3所述的浮点运算方法,其特征在于,根据所述多个指数差值计算第一向量中所有第一元素的第一移位值和第二向量中所有第二元素的第二移位值包括:

5.根据权利要求4所述的浮点运算方法,其特征在于,根据第一冗余数和所述指数差值计算第一移位值和第二移位值包括:

6.根据权利要求4所述的浮点运算方法,其特征在于,根据所述指数差值的均值计算第一移位值和第二移位值包括:

7.根据权利要求4所述的浮点运算方法,其特征在于,根据所述指数差值的均值计算第一移位值和第二移位值包括:

8.根据权利要求1所述的浮点运算方法,其特征在于,还包括:

9.根据权利要求8所述的浮点运算方法,其特征在于,还包括:

10.根据权利要求8所述的浮点运算方法,其特征在于,还包括:

11.一种浮点运算装置,其特征在于,包括:获取模块,用于根据模型运算指令,获取第一向量和第二向量,其中,所述第一向量包括多个第一元素,第二向量包括多个第二元素,所述第一元素和所述第二元素为浮点型数据,所述第一元素和所述第二元素一一对应;

12.根据权利要求11所述的浮点运算装置,其特征在于,所述指数运算...

【专利技术属性】
技术研发人员:请求不公布姓名唐文超熊大鹏
申请(专利权)人:苏州亿铸智能科技有限公司
类型:发明
国别省市:

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

1