[发明专利]面向神经网络处理器的近似浮点乘法器及浮点数乘法有效
申请号: | 201710311756.1 | 申请日: | 2017-05-05 |
公开(公告)号: | CN107273090B | 公开(公告)日: | 2020-07-31 |
发明(设计)人: | 韩银和;许浩博;王颖 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06F7/57 | 分类号: | G06F7/57;G06N3/063 |
代理公司: | 北京泛华伟业知识产权代理有限公司 11280 | 代理人: | 王勇;苏晓丽 |
地址: | 100190 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 面向 神经网络 处理器 近似 浮点 乘法器 乘法 | ||
1.一种用于神经网络处理器的近似浮点乘法器,包括:
符号位运算单元,其对输入的两个操作数的符号位进行异或运算以得到这两个操作数的乘积的符号位;
阶码运算单元,其对输入的两个操作数的阶码进行加法运算,以得到所述乘积的阶码;
尾数运算单元,其根据指定的精度从各操作数尾数高位开始截取部分位并在所截取的部分位前后补1得到两个新的尾数,对这两个新的尾数进行乘法运算,以得到乘积的近似尾数,其中所述精度指示操作数的尾数中需要参与乘法运算的位数;
规格化单元,其对所述近似尾数和所述乘积的阶码进行规格化处理;
移位单元,其在经规格化后的近似尾数的低位补零使其位数与操作数的尾数位数一致,以得到所述乘积的尾数;
其中所述尾数运算单元包括第一编码器、第二编码器和定位乘法器,其中第一编码器和第二编码器根据收到的精度指示信号分别从各操作数尾数高位开始截取部分位并在所截取的部分位前后补1;定位乘法器对第一和第二编码器的输入数据进行乘法运算并输出运算结果。
2.根据权利要求1所述的近似浮点乘法器,还包括特殊值判断单元,其判断输入的两个操作数中是否存在特殊值并向阶码运算单元和尾数运算单元发出指示所述判断的结果的特殊值指示信号,以及当判断这两个操作数中存在特殊值时,直接输出预先设定的与所检测的特殊值对应的结果作为这两个操作数的乘积。
3.根据权利要求2所述的近似浮点乘法器,其中所述阶码运算单元和所述尾数运算单元在收到来自特殊值判断单元指示操作数中存在特殊值的特殊值指示信号时,不再继续进行相关运算。
4.根据权利要求1-3中任一项所述的近似浮点乘法器,其中所述精度的最大值为操作数尾数的位数,最小值为零。
5.一种用于神经网络处理器的浮点数乘法,该神经网络处理器包括根据权利要求1-4中任一项所述的近似浮点乘法器,所述浮点数乘法包括:
步骤a1,由符号位运算单元将待相乘的两个操作数的符号位进行异或运算,得到这两个操作数的乘积的符号位;
步骤a2,由阶码运算单元将这两个操作数的阶码进行加法运算,以得到所述乘积的阶码;
步骤a3,由尾数运算单元根据指定的精度从各操作数尾数高位开始截取部分位并在所截取的部分位前后补1得到两个新的尾数,其中所述精度指示操作数的尾数中需要参与乘法运算的位数;
步骤a4,由尾数运算单元对这两个新的尾数进行乘法运算,以得到乘积的近似尾数;
步骤a5,由规格化单元对所述近似尾数和所述乘积的阶码进行规格化处理;
步骤a6,由移位单元在经规格化处理的近似尾数的低位补零使其位数与操作数的尾数位数一致,以得到所述乘积的尾数。
6.根据权利要求5所述的浮点数乘法,在步骤a1-a6之前还包括步骤a0,由特殊值判断单元判断待相乘的两个操作数中是否存在特殊值,若有特殊值,则直接输出预先设定的与所述特殊值对应的结果值作为这两个操作数的乘积,否则继续至步骤a1。
7.根据权利要求6所述的浮点数乘法,在步骤a0中:
如果这两个操作数中存在零值,则直接输出零值;
如果这两个操作数相同且均为浮点表示范围内的最大值或最小值,则直接输出最大值;
如果这两个操作数中一个为最大值且另一个为最小值,则直接输出最小值;
如果这两个操作数中仅存在一个最大值或最小值,则直接输出该最大值或最小值。
8.根据权利要求5-7中任一项所述的浮点数乘法,还包括动态调整或设置所述精度的步骤。
9.根据权利要求5-7中任一项所述的浮点数乘法,其中所述精度的最大值为操作数尾数的位数,最小值为零。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710311756.1/1.html,转载请声明来源钻瓜专利网。