【技术实现步骤摘要】
运算方法、装置、芯片、电子装置及存储介质
[0001]本公开涉及计算机
,尤其涉及芯片
,具体涉及一种运算方法、装置、芯片、电子设备、计算机可读存储介质和计算机程序产品。
技术介绍
[0002]人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术:人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术以及机器学习/深度学习、大数据处理技术、知识图谱技术等几大方向。用于实现人工智能处理的芯片往往涉及大量的神经网络运算。随着人工智能技术的迭代,需要芯片能够具有处理复杂神经网络运算的能力。
[0003]当前的浮点数指数运算和对数运算通常采用软件实现。通过软件的方法,通常需要400个周期以上才能实现对一个元素的浮点数的指数运算和对数运算。这样的计算效率已经无法满足当前人工智能网络对芯片运算能力的需求。
[0004]在此部分中描述的方法不一定是之前已经设想到或采用的方法。除非另有指明,否则不应假定此部分中描述的任何方法仅因其包括在此部分中就被认为是现有技术。类似地,除非另有指明,否则此部分中提及的问题不应认为在任何现有技术中已被公认。
技术实现思路
[0005]本公开提供了一种运算方法、装置、芯片、电子设备、计算机可读存储介质和计算机程序产品。
[0006]根据本公开的一方面,提供了一种运算方法, ...
【技术保护点】
【技术特征摘要】
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中任一项所述的装置,其中,所述转换指数和所述多个子部分各自的查表值均用定点数表示,并且所述转换指数的小数位的数量和各查表值的小...
【专利技术属性】
技术研发人员:田超,贾磊,王海峰,
申请(专利权)人:北京百度网讯科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。