[发明专利]面向神经网络处理器的近似浮点乘法器及浮点数乘法有效
申请号: | 201710311756.1 | 申请日: | 2017-05-05 |
公开(公告)号: | CN107273090B | 公开(公告)日: | 2020-07-31 |
发明(设计)人: | 韩银和;许浩博;王颖 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06F7/57 | 分类号: | G06F7/57;G06N3/063 |
代理公司: | 北京泛华伟业知识产权代理有限公司 11280 | 代理人: | 王勇;苏晓丽 |
地址: | 100190 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 面向 神经网络 处理器 近似 浮点 乘法器 乘法 | ||
本发明公开了用于神经网络处理器的近似浮点乘法器及浮点数乘法。该近似浮点乘法器在执行操作数的尾数乘法操作时根据指定的精度从各操作数尾数高位开始截取部分位并在所截取的部分位前后补1得到两个新的尾数,对这两个新的尾数进行乘法运算,以得到乘积的近似尾数,以及在经规格化后的近似尾数的低位补零使其位数与操作数的尾数位数一致从而得到所述乘积的尾数。该近似浮点乘法器采用近似计算的方式,根据精度需求截取尾数的不同位数进行相应乘法操作,降低了乘法操作的能量损耗,提高了乘法运算速度,进而使得神经网络处理系统性能更加高效。
技术领域
本发明涉及神经网络处理器,尤其涉及神经网络处理器内的乘法运算。
背景技术
目前神经网络处理器通常采用已训练好的权重数据作为输入信号进行神经网络模型的运算操作。乘法和加法操作是神经网络运算操作中的重要环节,大部分专用硬件加速器为了降低设计复杂度并提高运算效率,通常运用定点乘法器进行乘法操作,而训练得到的权重数据大多在以浮点计算环境下得到,训练环境与硬件加速环境之间数据存储及计算形式的不匹配导致在硬件加速处理结果与训练结果产生较大差异。然而,如果在硬件加速器中采用传统浮点乘法器,又会造成加速效率降低、硬件开销大和运行功耗提高等问题,严重阻碍了神经网络处理器在嵌入式设备的应用,同于也无法满足在未来超低功耗物联网端节点中采用神经网络处理器实时分析处理数据的需求
发明内容
因此,本发明的目的在于克服上述现有技术的缺陷,提供一种新的用于神经网络处理器的近似浮点乘法器及浮点数乘法。
本发明的目的是通过以下技术方案实现的:
一方面,本发明提供了一种近似浮点乘法器,包括:
符号位运算单元,其对输入的两个操作数的符号位进行异或运算以得到这两个操作数的乘积的符号位;
阶码运算单元,其对输入的两个操作数的阶码进行加法运算,以得到所述乘积的阶码;
尾数运算单元,其根据指定的精度从各操作数尾数高位开始截取部分位并在所截取的部分位前后补1得到两个新的尾数,对这两个新的尾数进行乘法运算,以得到乘积的近似尾数,其中所述精度指示操作数的尾数中需要参与乘法运算的位数;
规格化单元,其对所述近似尾数和所述乘积的阶码进行规格化处理;
移位单元,其在经规格化后的近似尾数的低位补零使其位数与操作数的尾数位数一致,以得到所述乘积的尾数。
在上述近似浮点乘法器中,还可包括特殊值判断单元,其判断输入的两个操作数中是否存在特殊值并向阶码运算单元和尾数运算单元发出指示所述判断的结果的特殊值指示信号,以及当判断这两个操作数中存在特殊值时,直接输出预先设定的与所检测的特殊值对应的结果作为这两个操作数的乘积。
在上述近似浮点乘法器中,所述阶码运算单元和所述尾数运算单元可以在收到来自特殊值判断单元指示操作数中存在特殊值的特殊值指示信号时,不再继续进行相关运算。
在上述近似浮点乘法器中,所述尾数计算单元可包括第一编码器、第二编码器和定位乘法器,其中第一编码器和第二编码器根据收到的精度指示信号分别从各操作数尾数高位开始截取部分位并在所截取的部分位前后补1;定位乘法器对第一和第二编码器的输入数据进行乘法运算并输出运算结果。
在上述近似浮点乘法器中,所述精度的最大值为操作数尾数的位数,最小值为零。
又一方面,本发明提供了一种浮点数乘法,包括:
步骤a1,将待相乘的两个操作数的符号位进行异或运算,得到这两个操作数的乘积的符号位;
步骤a2,将这两个操作数的阶码进行加法运算,以得到所述乘积的阶码;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710311756.1/2.html,转载请声明来源钻瓜专利网。