运算方法、装置、芯片、电子装置及存储介质制造方法及图纸

技术编号:31088615 阅读:14 留言:0更新日期:2021-12-01 12:47
本公开提供了一种运算方法、装置、芯片、电子设备及介质,涉及计算机技术领域,尤其涉及芯片技术。方案包括:获取目标浮点数相应的整数部分和小数部分;对二进制表示的小数部分进行划分,得到最高位的预设数量的高位子部分;通过查表获得高位子部分的查表值,查表值为以高位子部分为指数进行以目标值为底的指数运算所得到的结果;基于查表值,利用硬件确定以小数部分为指数进行以目标值为底的指数运算所得到的结果;以及基于以整数部分为指数进行以目标值为底的指数运算所得到的结果,以及以小数部分为指数进行以目标值为底的指数运算所得到的结果,利用硬件确定以目标浮点数为指数进行指数运算所得到的结果。数进行指数运算所得到的结果。数进行指数运算所得到的结果。

【技术实现步骤摘要】
运算方法、装置、芯片、电子装置及存储介质


[0001]本公开涉及计算机
,尤其涉及芯片
,具体涉及一种运算方法、装置、芯片、电子设备、计算机可读存储介质和计算机程序产品。

技术介绍

[0002]人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术:人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术以及机器学习/深度学习、大数据处理技术、知识图谱技术等几大方向。用于实现人工智能处理的芯片往往涉及大量的神经网络运算。随着人工智能技术的迭代,需要芯片能够具有处理复杂神经网络运算的能力。
[0003]当前的浮点数指数运算和对数运算通常采用软件实现。通过软件的方法,通常需要400个周期以上才能实现对一个元素的浮点数的指数运算和对数运算。这样的计算效率已经无法满足当前人工智能网络对芯片运算能力的需求。
[0004]在此部分中描述的方法不一定是之前已经设想到或采用的方法。除非另有指明,否则不应假定此部分中描述的任何方法仅因其包括在此部分中就被认为是现有技术。类似地,除非另有指明,否则此部分中提及的问题不应认为在任何现有技术中已被公认。

技术实现思路

[0005]本公开提供了一种运算方法、装置、芯片、电子设备、计算机可读存储介质和计算机程序产品。
[0006]根据本公开的一方面,提供了一种运算方法,包括:获取目标浮点数相应的整数部分和小数部分;对二进制表示的所述小数部分进行划分,得到最高位的预设数量的高位子部分;通过查表获得所述高位子部分的查表值,所述查表值为以所述高位子部分为指数进行以目标值为底的指数运算所得到的结果;基于所述查表值,利用硬件确定以所述小数部分为指数进行以所述目标值为底的指数运算所得到的结果;以及基于以所述整数部分为指数进行以所述目标值为底的指数运算所得到的结果,以及以所述小数部分为指数进行以所述目标值为底的指数运算所得到的结果,利用硬件确定以所述目标浮点数为指数进行指数运算所得到的结果。
[0007]根据本公开的另一方面,提供了一种运算装置,包括:获取单元,被配置用于获取目标浮点数相应的整数部分和小数部分;划分单元,被配置用于对二进制表示的所述小数部分进行划分,得到最高位的预设数量的高位子部分;查表单元,被配置用于通过查表获得所述高位子部分的查表值,所述查表值为以所述高位子部分为指数进行以目标值为底的指数运算所得到的结果;第一确定单元,被配置用于基于所述查表值,利用硬件确定以所述小数部分为指数进行以所述目标值为底的指数运算所得到的结果;以及第二确定单元,被配
置用于基于以所述整数部分为指数进行以所述目标值为底的指数所得到的结果,以及以所述小数部分为指数进行以所述目标值为底的指数运算所得到的结果,利用硬件确定以所述目标浮点数为指数进行指数运算所得到的结果。
[0008]根据本公开的另一方面,提供了一种运算方法,包括:将目标浮点数表示为A*2
B
,其中,A为尾数,B为指数;对于目标浮点数,对二进制表示的尾数进行划分,得到最高位的预设数量的目标子部分;通过查表获得目标子部分的查表值,查表值为对目标子部分进行以预设值为底的预设对数运算所得到的结果;基于查表值,确定对尾数部分进行预设对数运算所得到的结果;以及以对2
B
进行预设对数运算所得到的结果,以及对尾数部分进行预设对数运算所得到的结果作为输入,利用加法器获得对目标浮点数进行预设对数运算所得到的结果。
[0009]根据本公开的另一方面,提供了一种运算装置,包括:表示单元,被配置用于将目标浮点数表示为A*2
B
,其中,A为尾数,B为指数;划分单元,被配置用于对于目标浮点数,对二进制表示的尾数进行划分,得到最高位的预设数量的目标子部分;第一查表单元,被配置用于通过查表获得目标子部分的查表值,查表值为对目标子部分进行以预设值为底的预设对数运算所得到的结果;确定单元,被配置用于基于查表值,确定对尾数部分进行预设对数运算所得到的结果;以及加法器,被配置用于接收所输入的对2
B
进行预设对数运算所得到的结果,以及对尾数部分进行预设对数运算所得到的结果,并输出对目标浮点数进行预设对数运算所得到的结果。
[0010]根据本公开的另一方面,提供了一种芯片,包括以下装置中的至少其中之一:上述对浮点数进行指数运算的装置,以及上述对浮点数进行对数运算的装置。
[0011]根据本公开的另一方面,提供了一种电子设备,包括上述的芯片。
[0012]根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述对浮点数进行指数运算的方法或上述对浮点数进行对数运算的方法。
[0013]根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行上述对浮点数进行指数运算的方法或上述对浮点数进行对数运算的方法。
[0014]根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,其中,计算机程序在被处理器执行时实现上述对浮点数进行指数运算的方法或上述对浮点数进行对数运算的方法。
[0015]根据本公开的一个或多个实施例,能够将浮点数的指数和对数运算转换为能够基于乘法器、加法器和查表来实现的硬件层面的运算,能够在保证计算精度的情况下,有效提升运算效率。
[0016]应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0017]附图示例性地示出了实施例并且构成说明书的一部分,与说明书的文字描述一起
用于讲解实施例的示例性实施方式。所示出的实施例仅出于例示的目的,并不限制权利要求的范围。在所有附图中,相同的附图标记指代类似但不一定相同的要素。
[0018]图1示出了根据本公开的实施例的运算方法的流程图;
[0019]图2示出了根据本公开的实施例的运算装置的结构框图;
[0020]图3示出了根据本公开的实施例的另一种运算方法的流程图;
[0021]图4示出了根据本公开的实施例的另一种运算装置的结构框图;
[0022]图5示出了能够用于实现本公开的实施例的示例性电子设备的结构框图。
具体实施方式
[0023]以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种运算方法,包括:获取目标浮点数相应的整数部分和小数部分;对二进制表示的所述小数部分进行划分,得到最高位的预设数量的高位子部分;通过查表获得所述高位子部分的查表值,所述查表值为以所述高位子部分为指数进行以目标值为底的指数运算所得到的结果;基于所述查表值,利用硬件确定以所述小数部分为指数进行以所述目标值为底的指数运算所得到的结果;以及基于以所述整数部分为指数进行以所述目标值为底的指数运算所得到的结果,以及以所述小数部分为指数进行以所述目标值为底的指数运算所得到的结果,利用硬件确定以所述目标浮点数为指数进行指数运算所得到的结果。2.根据权利要求1所述的方法,其中,获取目标浮点数相应的整数部分和小数部分包括:计算用于将以第一预设值为底的预设指数运算转换为以所述目标值为底的指数运算的第二预设值;以及将以目标浮点数为指数的预设指数运算转换为对相应的转换指数的以所述目标值为底的指数运算,其中,所述转换指数为将所述目标浮点数和所述第二预设值输入第一乘法器而所述第一乘法器来计算得到的,其中,所述目标浮点数相应的所述整数部分为所述转换指数的整数部分,所述目标浮点数相应的所述小数部分为所述转换指数的小数部分。3.根据权利要求2所述的方法,其中,所述目标值为2。4.根据权利要求2所述的方法,其中,所述转换指数和所述高位子部分的查表值均用定点数表示,并且所述转换指数的小数位的数量和所述查表值的小数位的数量相同。5.根据权利要求1所述的方法,其中,二进制表示的所述小数部分被划分为所述高位子部分和低位子部分两部分,并且其中,基于所述查表值,利用硬件确定以所述小数部分为指数进行以所述目标值为底的指数运算所得到的结果包括:利用第二乘法器计算所述低位子部分和以e为底对所述目标值进行指数运算的结果之间的第一乘积值;基于所述查表值和所述第一乘积值,利用泰勒级数计算以所述小数部分为指数进行以所述目标值为底的指数运算所得到的结果。6.根据权利要求2

5中任一项所述的方法,还包括:利用第一移位器将目标浮点数转换为目标定点数,其中,将以目标浮点数为指数的预设指数运算转换为对相应的转换指数的以所述目标值为底的指数运算包括:将以所述目标定点数为指数的预设指数运算转换为对相应的转换指数的以目标值为底的指数运算。7.根据权利要求6所述的方法,其中,所述第二预设值用定点数表示,并且所述目标定点数的小数位的数量和所述第二预设值的小数位的数量相同。8.根据权利要求6所述的方法,其中,所述第一预设值为e,
其中,在所述目标值为2的情况下,所述目标浮点数相应的转换指数为通过以下步骤获得:以所述目标定点数和1/ln2作为输入,利用第一乘法器获得所述转换指数。9.根据权利要求6

8中任一项所述的方法,其中,当所述转换指数用定点数表示时,所述转换指数的小数位的数量和所述目标定点数的小数位的数量相同。10.根据权利要求5

9中任一项所述的方法,其中,在所述目标值为2的情况下,基于以所述整数部分为指数进行以2为底的指数运算所得到的结果,以及以所述小数部分为指数进行以2为底的指数运算所得到的结果,利用硬件确定以所述目标浮点数为指数进行指数运算所得到的结果包括:利用与门将以所述小数部分为指数进行以2为底的指数运算所得到的结果与0X7FFFFF进行与操作,得到第一中间值;利用第二移位器将以二进制表示的所述整数部分左移预设位,得到第二中间值,其中,所述预设位与所述转换指数的小数位的数量相同;以及对所述第一中间值和第二中间值进行连接,获得以所述目标浮点数为指数进行指数运算所得到的结果。11.根据权利要求1

10中任一项所述的方法,所述目标浮点数为单精度浮点数。12.根据权利要求1

10中任一项所述的方法,其中,所述目标浮点数为神经网络中分类器的输入。13.一种运算装置,包括:获取单元,被配置用于获取目标浮点数相应的整数部分和小数部分;划分单元,被配置用于对二进制表示的所述小数部分进行划分,得到最高位的预设数量的高位子部分;查表单元,被配置用于通过查表获得所述高位子部分的查表值,所述查表值为以所述高位子部分为指数进行以目标值为底的指数运算所得到的结果;第一确定单元,被配置用于基于所述查表值,利用硬件确定以所述小数部分为指数进行以所述目标值为底的指数运算所得到的结果;以及第二确定单元,被配置用于基于以所述整数部分为指数进行以所述目标值为底的指数所得到的结果,以及以所述小数部分为指数进行以所述目标值为底的指数运算所得到的结果,利用硬件确定以所述目标浮点数为指数进行指数运算所得到的结果。14.根据权利要求13所述的装置,其中,所述获取单元包括:第一计算单元,被配置用于计算用于将以第一预设值为底的预设指数运算转换为以所述目标值为底的指数运算的第二预设值;第一乘法器,被配置用于接收所输入的所述目标浮点数和所述第二预设值,并输出所述目标浮点数相应的转换指数;以及转换单元,被配置用于将以目标浮点数为指数的预设指数运算转换为对相应的所述转换指数的以所述目标值为底的指数运算,其中,所述目标浮点数相应的所述整数部分为所述转换指数的整数部分,所述目标浮点数相应的所述小数部分为所述转换指数的小数部分。15.根据权利要求13所述的装置,还包括:
第一移位器,被配置用于接收所输入的目标浮点数,并输出目标定点数,其中,所述转换单元被配置用于将以所述目标定点数为指数的预设指数运算转换为对相应的转换指数的以所述目标值为底的指数运算。16.根据权利要求13所述的装置,其中,二进制表示的所述小数部分被划分为所述高位子部分和低位子部分两部分,并且其中,所述第一确定单元包括:第二乘法器,被配置用于接收所输入的所述低位子部分和以e为底对所述目标值进行指数运算的结果,并输出第一乘积值;以及第二计算单元,被配置用于基于所述查表值和所述第一乘积值,利用泰勒级数计算以所述小数部分为指数进行以所述目标值为底的指数运算所得到的结果。17.根据权利要求16所述的装置,其中,所述第二计算单元包括多个子乘法器和多个子加法器;其中一个子乘法器被配置用于计算所述第一乘积值的平方;另一个子乘法器被配置用于计算所述查表值和所述第一乘积值相应的乘积,得到第二乘积值;另一个乘法器被配置用于计算所述第一乘积值的平方和所述查表值相应的乘积,得到第三乘积值;所述多个子加法器被配置用于对所述查表值、所述第二乘积值和所述第三乘积值进行求和,并且所得到的求和值为以所述小数部分为指数进行以所述目标值为底的指数运算所得到的结果。18.根据权利要求13

16中任一项所述的装置,其中,所述转换指数和所述多个子部分各自的查表值均用定点数表示,并且所述转换指数的小数位的数量和各查表值的小...

【专利技术属性】
技术研发人员:田超贾磊王海峰
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:

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

1