一种面向神经网络的高精度低功耗近似移位乘法器制造技术

技术编号:37373121 阅读:16 留言:0更新日期:2023-04-27 07:17
本发明专利技术公开了一种面向神经网络的高精度低功耗近似移位乘法器,包括乘数近似单元、优先编码器、桶形移位器、近似加法器单元。其中乘数近似单元包括非零最高位置零模块和高位检测模块。基于米切尔原理,通过高位检测单元将其中一个输入操作数近似为其最接近的2的幂次,对另一个输入操作数使用优先编码器提取其最高次幂,使用非零最高位置零模块提取其次高次幂,这种设计方法显著提高了精度,同时也完成了对输入乘数的近似。移位器是本设计的核心使用模块,移位运算相比于乘法运算功耗低,故该设计可以显著地降低功耗。最后移位得到的结果使用LOA型近似加法器执行累加后输出相乘结果。本设计在大大降低设计电路功耗的同时也提高了乘法器的精度。高了乘法器的精度。高了乘法器的精度。

【技术实现步骤摘要】
一种面向神经网络的高精度低功耗近似移位乘法器


[0001]本专利技术涉及一种高精度低功耗近似移位乘法器,属于神经网络


技术介绍

[0002]卷积神经网络作为机器学习中应用最广泛的技术之一,通过大量重复的卷积操作来执行图像分类等任务,不断地对输入图像数据和权重数据进行乘法操作,并对乘积进行累加得到输出。从卷积神经网络的发展历程可以看出:为了解决更复杂的问题,卷积神经网络的网络规模和层数在迅速增加,卷积计算量的激增带来了更多的计算功耗和存储需求。
[0003]卷积计算的核心是乘累加单元,由乘法器和加法器组成,乘累加操作是计算功耗的主要来源。因此,高效的乘累加计算单元对卷积神经网络来讲十分重要。
[0004]传统的乘法器计算要经过三个步骤,第一步生成部分积,第二步进行部分积的压缩,第三步将压缩后的部分积进行最后累加。这样的乘法器结构运算逻辑复杂且电路面积较大,对于一些硬件资源要求高的应用不能很好的满足。
[0005]近似电路作为一种用于容错性应用中的节能电路,通过牺牲一定数据精度来提升集成电路的功耗、延时和面积性能。目前在软件和硬件领域对近似计算进行了大量的研究,但是,事实证明这些方法都存在不小的误差且产生的结果不可靠。
[0006]由于多媒体处理、机器学习等高度计算密集型的应用程序网络具有容错性,在具有容错性的应用中主要以计算单元为核心,在很大程度上依赖于乘法和加法运算。因此优化乘法器对于提高计算效率,缩减应用整体功耗至关重要。因此我们致力于提出一种高精度低功耗的近似移位乘法器。

技术实现思路

[0007]技术问题:为了解决现有技术中存在的功耗和误差较大等问题,本专利技术提供一种面向神经网络的高精度低功耗近似移位乘法器,在有效提升精度的情况下,同时能够显著降低卷积神经网络的计算功耗。
[0008]技术方案:本专利技术的一种面向神经网络的高精度低功耗近似移位乘法器包括乘数近似模块、优先编码器模块、桶形移位器模块和近似加法器模块;
[0009]其中,所述近似移位乘法器的乘数近似模块包括非零最高位置零模块、非零最高位置零单元和高位检测模块,其中的非零最高位置零模块用于将输入操作数的非零的最高位置零;非零最高位置零单元将输入的操作数最高位“1”置零,再将置零后的操作数送入优先编码器模块中即可检测出非零次高位的索引值;高位检测模块将输入操作数近似为最接近2的幂,实现输入操作数的近似转换,最后通过优先编码器模块控制桶形移位器模块移位即可得到余项的结果;
[0010]所述优先编码器模块包括第一优先编码器、第二优先编码器以及第三优先编码器,检测非零最高位并控制桶形移位器模块做逻辑左移,从而实现2
k1
*r2、2
k2
*B、2
k3
*B的计算;根据非零最高位置零模块、非零最高位置零单元和高位检测模块的输出提取出最高位
的索引值,以此确定所需的移位数;其中,k1、k2和k3对应着第三、第一和第二优先编码器控制的移位数,r2为余项,B为输入操作数之一,*为乘法运算;
[0011]所述桶形移位器模块包括第一桶形移位器模块、第二桶形移位器模块、第三桶形移位器模块,根据第一优先编码器、第二优先编码器以及第三优先编码器这三个模块提取出的k1、k2和k3指引其向左移位的位数;
[0012]所述近似加法器模块,采用LOA型近似加法器,即低位采用“或”运算的近似加法器,将乘法运算转化为移位和加法运算,简化运算,降低功耗;LOA型近似加法器是将乘积项得到的三个部分和使用低位采用“或”运算,用高位精确运算的形式进行加法运算。
[0013]所述的乘数近似模块中的非零最高位置零模块、非零最高位置零单元由十四个或门、十四个与门和一个缓冲器组成,该非零最高位置零模块通过与门、或门和缓冲器将输入操作数的最高位置零。
[0014]所述的非零最高位置零模块、非零最高位置零单元,当输入操作数为0110_1010,通过非零最高位置零模块、非零最高位置零单元将次高位的1置零,其余位保持不变,即输出为0010_1010;其最高位由缓冲器控制,即输入等于输出,次高位的输出由输入数据的最高位和次高位相与得到,其余位保持不变,即可将输入操作数的非零最高位置零。
[0015]所述的高位检测模块由十八个与门、三个或门和十一个非门组成,通过高位检测单元来近似输入操作数的最接近2的幂,且高位检测模块的输出使用独热码表示,该设计改变了误差分布模式,提高了精度。
[0016]所述的高位检测模块,输入操作数为0111_1101,经过高位检测模块后将输入操作数向其最接近2的幂近似,即近似为1000_0000,实现该操作数的近似转换;通过将高位检测模块近似转换得到的输出送入优先编码器模块将输入操作数的最高次幂的索引值提取出来,以便控制桶形移位器模块进行移位操作。
[0017]所述优先编码器模块包括第一优先编码器、第二优先编码器和第三优先编码器,检测输入操作数的非零最高位的位置,探测最高位为“1”时的位置,根据非零最高位的值所在的位置,通过与门或门的逻辑判断,生成并输出该位置相应的移位数k1、k2、k3,该索引值用来控制第一桶形移位器、第二桶形移位器和第三桶形移位器做逻辑左移。
[0018]所述桶形移位器模块,接收第一优先编码器、第二优先编码器和第三优先编码器生成的索引值k1、k2和k3,根据优先编码器模块提供的移位数对输入操作数进行向左移位操作k1、k2和k3位,并将移位后的结果送入LOA型近似加法器模块中执行近似加法运算。
[0019]所述近似加法器模块,将输入的32位操作数分为两个部分,一个高位部分的14位和一个低位部分的18位;其中,高位采用一个精确子加法器进行计算,精确子加法器是一个纹波进位加法器,保证得到高精度的结果;近似加法器模块使用“或”门计算低位部分的18位;当两个操作数的低位部分的最高有效位即第17位均为1时,则用“与”门产生一个进位信号给高位,减小高位子加法器的计算误差;由于近似加法器模块的LOA型加法器采用了“或”门对低位进行计算,因此其电路的面积小,延时低,关键路径由精确子加法器决定。且截断的位数越多,乘法器的计算速度越快。
[0020]有益效果:本专利技术采用以上技术方案与现有技术相比,具有以下技术效果:
[0021](1)设计逻辑简单。现有的近似乘法器多数是通过生成部分积的方式进行计算,逻辑比较复杂。本专利技术采用移位和累加的方式进行乘法计算,计算逻辑简单。
[0022](2)功耗显著降低。本专利技术中采用桶型移位器作为近似移位乘法器电路核心单元,使电路功耗显著降低58.44%。
[0023](3)本专利技术的计算误差在1.8%以内,精度显著提升。硬件资源消耗少,更加适用于神经网络这样的容错型应用。
附图说明
[0024]图1为本专利技术的近似移位乘法器工作流程示意图,
[0025]图2为本专利技术的近似移位乘法器整体结构框图,
[0026]图3为本专利技术的近似移位乘法器本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向神经网络的高精度低功耗近似移位乘法器,其特征在于:所述近似移位乘法器包括乘数近似模块(1)、优先编码器模块(2)、桶形移位器模块(3)和近似加法器模块(4);其中,所述近似移位乘法器的乘数近似模块(1)包括非零最高位置零模块(1.1)、非零最高位置零单元(1.2)和高位检测模块(1.3),其中的非零最高位置零模块(1.1)用于将输入操作数的非零的最高位置零;非零最高位置零单元(1.2)将输入的操作数最高位“1”置零,再将置零后的操作数送入优先编码器模块(2)中即可检测出非零次高位的索引值;高位检测模块(1.3)将输入操作数近似为最接近2的幂,实现输入操作数的近似转换,最后通过优先编码器模块(2)控制桶形移位器模块(3)移位即可得到余项的结果;所述优先编码器模块(2)包括第一优先编码器(2.1)、第二优先编码器(2.2)以及第三优先编码器(2.3),检测非零最高位并控制桶形移位器模块(3)做逻辑左移,从而实现2
k1
*r2、2
k2
*B、2
k3
*B的计算;根据非零最高位置零模块(1.1)、非零最高位置零单元(1.2)和高位检测模块(1.3)的输出提取出最高位的索引值,以此确定所需的移位数;其中,k1、k2和k3对应着第三、第一和第二优先编码器控制的移位数,r2为余项,B为输入操作数之一,*为乘法运算;所述桶形移位器模块(3)包括第一桶形移位器模块(3.1)、第二桶形移位器模块(3.2)、第三桶形移位器模块(3.3),根据第一优先编码器(2.1)、第二优先编码器(2.2)以及第三优先编码器(2.3)这三个模块提取出的k1、k2和k3指引其向左移位的位数;所述近似加法器模块(4),采用LOA型近似加法器,即低位采用“或”运算的近似加法器,将乘法运算转化为移位和加法运算,简化运算,降低功耗;LOA型近似加法器是将乘积项得到的三个部分和使用低位采用“或”运算,用高位精确运算的形式进行加法运算。2.根据权利要求1所述的一种面向神经网络的高精度低功耗近似移位乘法器,其特征在于:所述的乘数近似模块(1)中的非零最高位置零模块(1.1)、非零最高位置零单元(1.2)由十四个或门、十四个与门和一个缓冲器组成,该非零最高位置零模块通过与门、或门和缓冲器将输入操作数的最高位置零。3.根据权利要求2所述的一种面向神经网络的高精度低功耗近似移位乘法器,其特征在于:所述的非零最高位置零模块(1.1)、非零最高位置零单元(1.2),当输入操作数为0110_1010,通过非零最高位置零模块(1.1)、非零最高位置零单元(1.2)将次高位的1置零,其余位保持不变,即输出为0010_1010;其最高...

【专利技术属性】
技术研发人员:刘昊李强陈韩阳
申请(专利权)人:东南大学苏州研究院
类型:发明
国别省市:

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

1