预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共18页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN113986194A(43)申请公布日2022.01.28(21)申请号202111176418.4(22)申请日2021.10.09(71)申请人清华大学地址100084北京市海淀区双清路30号清华大学(72)发明人谢翔胡毅李国林王自强王志华(74)专利代理机构北京路浩知识产权代理有限公司11002代理人郭亮(51)Int.Cl.G06F7/523(2006.01)G06N3/04(2006.01)权利要求书2页说明书10页附图5页(54)发明名称基于预处理的神经网络近似乘法器实现方法及装置(57)摘要本发明提供一种基于预处理的神经网络近似乘法器实现方法及装置,该方法包括:未知操作数输入前,确定已知操作数保留目标位数后截断的第一结果,以及截断对应的第一位移量;未知操作数输入后,确定所述未知操作数保留目标位数后截断的第二结果,以及截断对应的第二位移量;对所述第一结果和所述第二结果进行乘法运算,得到部分积;根据所述第一位移量和所述第二位移量对所述部分积进行位移,得到近似结果。该方法对已知的操作数提前进行预处理并进行储存,避免同时对多个操作数进行处理,从而可以降低乘法器单元在该处理步骤时的能耗,减小乘法器单元的设计面积,进而降低整个神经网络计算时所需要的能耗,同时减少神经网络输出结果的时间。CN113986194ACN113986194A权利要求书1/2页1.一种基于预处理的神经网络近似乘法器实现方法,其特征在于,包括:未知操作数输入前,确定已知操作数保留目标位数后截断的第一结果,以及截断对应的第一位移量;未知操作数输入后,确定所述未知操作数保留目标位数后截断的第二结果,以及截断对应的第二位移量;对所述第一结果和所述第二结果进行乘法运算,得到部分积;根据所述第一位移量和所述第二位移量对所述部分积进行位移,得到近似结果;其中,所述已知操作数为神经网络的模型参数,所述未知操作数为模型处理对象的输入参数。2.根据权利要求1所述的基于预处理的神经网络近似乘法器实现方法,其特征在于,所述确定已知操作数保留目标位数后截断的第一结果,以及截断对应的第一位移量之前,还包括获取已知操作数的第一符号位;所述确定所述未知操作数保留目标位数后截断的第二结果,以及截断对应的第二位移量之前,还包括获取所述未知操作数的第二符号位;相应地,所述根据所述第一位移量和所述第二位移量对所述部分积进行位移之后,还包括根据所述第一符号位和所述第二符号位对部分积进行符号位添加。3.根据权利要求1所述的基于预处理的神经网络近似乘法器实现方法,其特征在于,所述确定已知操作数保留目标位数后截断的第一结果之前,以及确定所述未知操作数保留目标位数后截断的第二结果之前,分别包括:接收包含k位目标位数的控制信号,所述k位目标位数用于控制已知操作数或未知操作数保留的目标位数。4.根据权利要求1所述的基于预处理的神经网络近似乘法器实现方法,其特征在于,所述确定已知操作数保留目标位数后截断的第一结果,或者,所述确定所述未知操作数保留目标位数后截断的第二结果,包括:对已知操作数或未知操作数进行首1位的检测后,根据首1位的检测结果,进行相应位移以保留目标位数的已知操作数或未知操作数,并且得到对应的第一位移量和第二位移量。5.根据权利要求4所述的基于预处理的神经网络近似乘法器实现方法,其特征在于,所述根据首1位的检测结果,进行相应位移以保留目标位数的已知操作数或未知操作数,包括:对已知操作数或未知操作数进行首1位的检测后,进行相应位移的过程中,对已知操作数或未知操作数进行四舍五入的保留目标位数的截断。6.根据权利要求1所述的基于预处理的神经网络近似乘法器实现方法,其特征在于,所述对所述第一结果和所述第二结果进行乘法运算,得到部分积,包括:根据所述第一结果和所述第二结果,采用近似4‑2压缩机的优化后近似树结构,计算部分积;其中,所述优化后近似树结构,为根据产生错误时各输入的取值,对近似树结构进行调整后得到。7.根据权利要求6所述的基于预处理的神经网络近似乘法器实现方法,其特征在于,所2CN113986194A权利要求书2/2页述优化后近似树结构为,将X4输入作为控制信号,根据X4的取值分别控制不同的carry和sum取值。8.一种基于预处理的神经网络近似乘法器实现装置,其特征在于,包括:第一预处理模块,用于确定已知操作数保留目标位数后截断的第一结果,以及截断对应的第一位移量;第二预处理模块,用于未知操作数输入后,确定所述未知操作数保留目标位数后截断的第二结果,以及截断对应的第二位移量;后处理模块,用于对所述第一结果和所述第二结果进行乘法运算,得到部分积;结果输出模块,用于根据所述第一位移量和所述第二位移量对所述部分积进行位移