吴成均 单伟伟
摘要:近似计算单元以一定的计算误差换取更低功耗,近年来在神经网络加速器中得到应用。本文通过研究不同近似加法器的误差特性、在典型神经网络应用中的结果以及功耗节省情况,对神经网络加速器进行最优近似设计。首先利用MATLAB对近似加法器建立数学模型,分析平均误差距离等误差特性,用HSPICE设计电路进行功耗仿真,为近似加法器在神经网络上的应用提供指导原则。用Python搭建多层感知机和卷积神经网络,设计两层结构的近似加法器算法模型,替换网络中的精确加法器,研究不同误差特性、不同近似位宽的加法器对神经网络各个指标的影响。研究表明,平均误差小的近似加法器对输出质量影响小,且近似位宽存在阈值,超过阈值会导致输出质量骤降,同时近似加法器能大幅降低计算功耗,而通过提出的输出质量一功耗收益可以找到整体收益最高的设计。本文提出的方法能高效系统地为神经网络加速器进行最优的近似设计。
关键词:近似计算;神经网络;近似位宽;低功耗;整体收益
中图分类号:TN49 文献标识码:A
近似计算技术是一种新兴的高能效设计技术,其计算过程并非完全正确,但由于采用精简计算逻辑,简化了计算过程,大大减少了系统的计算功耗,可以在电路[1,2]、架构[3]、算法[4]三个层面上实现,电路级别主要是近似计算单元的设计。近似计算适合具有容错性[5]的应用,容错性是指应用计算过程中出现的一些错误不会对最终输出结果产生严重影响。人工神经网络是典型的容错性应用之一,它的容错性主要来源于两个方面:一个是分层分布式结构使其具有弱化计算错误对输出质量影响程度的能力,另一个是特有的训练过程可以减少实际输出和理想输出的误差。而人工神经网络作为人工智能的主流实现算法正在蓬勃发展,基于其特殊的计算模式,相比于CPU或者GPU,利用专用的神经网络加速器[6]进行计算是一种更高效的设计,神经网络加速器主要由乘加计算单元构成,大量的乘加计算会产生很高的功耗。随着人工智能向移动化发展,考虑到电池供电的特性,神经网络加速器的低功耗设计成为一大需求。结合近似计算和神经网络的特性以及需求,将近似计算技术加人神经网络加速器中具有很好的应用前景。
已有的研究[7,8]通常在算法层面上将近似计算技术加入到简单神经网络,而缺乏在电路级别将近似计算单元加人神经网络加速器的设计。本文研究了近似计算单元对神经网络输出质量和功耗的影响,为其应用提供指导原则,提出了一套完整的设计方法,可以在电路级别为神经网络加速器进行最优的近似设计,在降低输出质量损失的同时,尽可能地降低系统计算功耗。
1 近似加法器及误差衡量指标
神经网络加速器中最基本的计算单元是加法器,因此近似计算单元的设计往往是近似加法器和近似乘法器的設计。
1.1 精确加法器
精确1-bit加法器实现两操作数相加,逻辑表达式如下:
最基本的全加器电路结构是按照式(1)和式(2)由两个异或门、两个与门和一个或门构成,本文以上述经典结构来实现精确加法器,为近似加法器提供对比基准。
1.2 近似镜像加法器
近似镜像加法器(AMA)[9]是在镜像加法器(MA)的基础上设计的,相比传统CMOS电路的对偶结构,MA的镜像结构可以保证移除部分晶体管时不会出现电源到地短路或输出断路的情况。通过移除部分计算电路的晶体管,得到三种近似镜像加法器(AMA1、AMA2、AMA3),如图1所示,极大降低了计算功耗。
1.3 低位或加法器(LOA)
低位或加法器(LOA)[7]将一个P位的加法器拆分成两个分别为m位和n位的小加法器(p=m+n),其中m位的小加法器由精确加法器构成,而n位的小加法器由或门构成,实现两个操作数低n位的近似相加,如图2所示。由于舍弃了低位部分的进位链,LOA在功耗、延迟和面积方面都有不错的表现。
1.4 低位忽略加法器(LIA)
低位忽略加法器(LIA)并不是一种具体的近似计算单元,而是对减少位宽这种近似方法的一个抽象,将低位直接截断后,只进行高位的加法运算,可以理解成输出恒为0的近似加法器,用其来实现低位部分的相加,通过这种抽象,可以使减少位宽的近似方法与近似加法器有统一的描述,以便后面作为衡量近似加法器的一个基准。
1.5 误差衡量指标
各个近似加法器差别很大,本文使用以下几个指标综合衡量其误差特性:
(1)误差率
误差率指近似计算单元错误输出占总输出的比例,可以反应近似计算单元出错的频率。
(2)平均误差距离
误差距离[10]指近似输出与精确输出的差值,大量输入下的平均效应能更好地反应近似加法器的误差累积效应,平均误差距离越大,误差累积越严重,对输出质量影响越大。近似计算单元的所有输入具有随机性,可以认为呈现均匀分布,因此对所有输入下的误差距离求均值即可获得平均误差距离。
(3)最大误差距离
最大误差距离指近似加法器在单次计算中可能出现的最大误差,反应最大的误差严重程度,最大误差距离越大,越容易对应用的结果产生严重影响。
2 近似加法器的误差特性分析
本文利用MATLAB建立误差模型,从多个指标综合分析误差特性,为近似加法器在神经网络中的应用提供指导原则。
多位近似加法器在实际应用中通常分成高位精确部分和低位近似部分,通过建立一个模型框架,高位采用精确加法器,低位替换成各种近似加法器,即可实现模型复用,将5种近似加法器LIA、LOA、AMA1、AMA2、AMA3的真值表导入框架,设定多位加法器的总位宽N为8位,近似位宽k分别设定为1~8位,让模型遍历所有可能的输入,以精确加法器输出为基准,统计各种误差指标,如图3所示,横坐标是近似部分位宽,纵坐标分别是误差率、平均误差距离、最大误
仿真结果表明,随着近似位宽的增大,5种近似加法器的误差率都不断增大,LOA误差率最低,而LIA的误差率最高。LOA和AMA3的平均误差距离最小并且基本不随近似位宽而变化,不会产生严重的误差累积,而LIA和AMA2的平均误差距离的绝对值比较大,并且随着近似位宽的增大误差累积越来越严重。此外,LIA的最大误差距离明显大于其余4种近似加法器,表明LIA在实际应用中很容易对计算结果产生严重影响,而LOA和AMA3的最大误差距离是最小的。
综合以上指标,理论上,在将近似加法器加人到神经网络时,LOA和AMA3对网络的影响是最小的,而传统减少位宽的方法影响是最大的。
3 近似加法器的日SPICE仿真及功耗特性分析
本文利用HSPICE,使用SMIC40nm工艺的单元库设计各加法器,采用TT工艺角,在电源电压1.1V和测试温度25℃的条件下,对几种近似加法器和精确加法器进行功耗仿真,由于静态功耗相比动态功耗非常小,本文只考虑动态功耗。输入包含64种状态转变情况的激励波形,通过瞬态分析获得如图4所示的功耗迹曲线。
仿真结果表明,加法器在不同状态转变时产生的功耗差别很大,不同加法器的功耗迹形状也不同。对64种状态转变下的功耗求平均值,用平均功耗来表征加法器的功耗水平。可以看出,近似加法器的平均功耗均明显低于精确加法器,LOA和AMA3相比于精确加法器减少了约85%的功耗。
4 近似加法器在神经网络中的应用
4.1 近似神经网络的搭建
在Python环境下搭建了5层的多层感知机MLP-5和8层的卷积神经网络CNN-8,如图5所示。网络中每一层的神经元数量可以通过参数设定,激活函数可以选择为tanh函数或者sigmoid函数,网络具有很大的靈活性,可以适配不同的应用。MLP-5网络结构简单,采用全连接结构,分类IRIS数据集,而CNN-8包含卷积层、池化层和全连接层,相对复杂,分类MNIST数据集。采用12位定点数数据格式训练网络,MLP-5和CNN-8分别达到97.78%和96.7%的分类准确率。两种网络的乘加计算量见表1。
为了研究近似加法器对神经网络输出质量和功耗的影响,需要将网络中的精确加法器替换成近似加法器,而传统框架(如TensorFlow)很难单独对加法运算进行修改,设计效率低,而本文搭建的网络灵活性很大,每一个神经元的加法器以及位宽都可以单独修改,非常适合搭建近似神经网络。
根据每种近似加法器的真值表编写对应的近似加法函数,并且编写了两层结构的多位加法函数,高位部分采用精确加法函数,低位部分采用近似加法器对应的近似加法函数,总位宽为12位,低位近似部分的位宽可以修改,如图6所示,最后在MLP-5和CNN-8的基础上,利用多位近似加法函数替换多位精确加法函数,搭建近似神经网络。而通过替换近似加法函数、修改近似位宽,可以研究不同误差特性和不同近似位宽的加法器对神经网络的影响。
在图6中,m为近似位宽,而m-bit的近似加法器可以由LIA、LOA、AMAl、AMA2、AMA3的任意一种构成。
4.2 衡量指标
本文从输出质量、归一化功耗、整体收益三个指标来综合衡量近似加法器对神经网络的影响。
(1)输出质量
输出质量具体指MLP-5和CNN-8对相应数据集的分类准确率。
(2)归一化功耗
神经网络的功耗通常指执行阶段的功耗,即执行单次分类任务产生的功耗,又可分解为参数访存功耗和计算功耗。计算功耗与操作次数以及单次操作功耗有关,神经网络中涉及到的计算包括加法运算、乘法运算和非线性激活函数的运算。由于本文只修改了MLP-5和CNN-8网络中的加法器,后续的功耗分析都是针对加法计算功耗。根据上面功耗分析的结果,可以估算得到加法计算功耗EAPPRO,并且除以精确网络的加法计算功耗EACC,得到各个近似神经网路的归一化加法计算功耗NE。
(3)输出质量一功耗收益
本文提出了输出质量一功耗收益的概念来综合评估近似加法器的影响,对于一个近似神经网络,其输出质量一功耗收益定义为:式中:ESAVE为功耗的节省值,QLOSS为输出质量的损失值,w1和w2为权重,根据不同应用对输出质量和功耗的要求,可以设置不同的权重,输出质量一功耗收益数值越大,表示整体收益越高。本文w1和w2都设置为1,指每单位输出质量损失下功耗的节省值。通过输出质量一功耗收益指标,可以为应用找到收益最高的设计。
4.3 试验结果
将本文提出的两层结构多位近似加法器模型加入MLP-5和CNN-8中,探究不同误差特性的近似加法器(LIA、LOA、AMAI、AMA2、AMA3)和不同近似位宽(1~8位)对4.2节神经网络三个指标的影响,结果如图7、图8所示。
图7中横坐标均表示低位近似部分的位宽,实线表示分类准确率,虚线表示归一化功耗。仿真发现,不同误差特性的近似加法器对神经网络分类准确率的影响差别很大,LOA和AMA3对网络输出质量影响最小,LIA和AMA2影响最大。试验结果与误差特性理论分析预测的结果是一致的,这表明,平均误差越小的近似加法器对神经网络的输出质量影响越小,原因在于实际运算时误差可以互相削弱甚至补偿,误差累积小,而传统减少位宽的近似方法是最差的方案。其次,随着近似位宽的增加,分类准确率不断下降,且存在一个突变节点,当近似位宽大于阈值之后,分类准确率严重下降。不同近似加法器的近似阈值存在差别,在CNN-8网络中,LOA、AMA3为6位,LIA和AMA2为2位。此外,归一化加法计算功耗随着近似位宽增加线性下降。特别地,当近似位宽位为阈值时,LOA和AMA3能减少约45%的加法计算功耗,而LIA只能减少约20%。
而從本文提出的整体收益角度看,计算出各种近似设计下的输出质量一功耗收益,如图8所示,横坐标表示近似位宽,纵坐标表示输出质量一功耗综合收益数值,研究发现,LOA、AMA3为网络带来的输出质量一功耗收益最高,LIA、AMA2的收益最低,且每种近似加法器都存在一个收益最高的近似位宽,输出质量一功耗收益随着近似位宽的增大先上升后下降,以MLP-5为例,采用LOA和AMA3近似5位时为网络带来的整体收益最高。采用这种方法可以很直观地为不同应用找到最合适的近似加法器以及近似位宽。而通过改变输出质量一功耗收益指标中的权重值,可以满足不同应用对输出质量、功耗的不同需求,实现不同应用的最优近似设计。5结论
本文提出了一套完整的面向神经网络加速器的电路级近似计算单元的设计方法,通过对近似加法器进行误差和功耗分析,为其在神经网络的应用提供指导原则,通过搭建灵活性高的典型神经网络框架和近似加法器的算法模型,解决了传统网络框架不便于进行近似处理的问题,研究了不同误差特性和不同近似位宽的加法器对神经网络的影响,研究表明,平均误差小的近似加法器对神经网络的输出质量影响小,且存在近似位宽阈值,超过阈值会导致输出质量骤降,近似加法器可以大幅降低加法计算功耗。而采用本文提出的输出质量一功耗收益指标,可以直观地在电路级别对不同应用进行最优设计。当然,本研究还存在一些不足,只对加法器进行了近似处理,但从表1看出神经网络中乘法运算也占据很大比重,进一步对乘法器进行近似处理可以降低更多的计算功耗。此外,神经网络内部各个神经元容错性存在很大差异,充分利用差异对近似方法进行优化可以为神经网络加速器带来更高的收益。
参考文献
[1]Gupta V,Mohapatra D,Raghunathan A,et al.Low-powerdigital signal processing using approximate adders[J].IEEETransactions on Computer-Aided Design of Integrated Circuitsand Systems,2013,32(1):124-137.
[2]Yang T,Ukezono T,Sato T.A low-power yet high-speedconfigurable adder for approximate computing[C]//InternationalSymposium on Circuits and Systems,2018.
[3]Liu B,Dong W,Xu T,et al.E-ERA:An energy-efficientreconfigurable architecture for RNNs using dynamically adaptiveapproximate computing[J].Ieice Electronics Express,2017,14(15):66-77.
[4]Ho N M,Manogaran E,Wong W F,et al.Efficient floatingpoint precision tuning for approximate computing[C]//DesignAutomation Conference.IEEE,2017:63-68.
[5]Venkatesan R,Agarwal A,Roy K,et al.MACACO:Modelingand analysis of circuits for approximate computing[C]//IEEE/ACM International Conference on Computer-Aided Design.IEEE,2011:667-673.
[6]Huynh T V Deep neural network accelerator based on FPGA[C]//Nafosted Conference on Information and Computer Science,2017:254-257.
[7]Mahdiani H R,Ahmadi A,Fakhraie S M,et al.Bio-inspired imprecise computational blocks for efficient VLSIimplementation of soft-computing applications[J].IEEETransactions on Circuits&Systems,2010,57(4):850-862.
[8]Venkataramani S,Ranjan A,Roy K,et al.AxNN:energy-efficient neuromorphic systems using approximate computing[C]//Low Power Electronics and Design(ISLPED),2014.
[9]Gupta V,Mohapatra D,Sang P P,et al.IMPACT:Impreciseadders for low-power approximate computing[C]//Low PowerElectronics and Design.IEEE,2011:409-414.
[10]Liang J,Han J,Lombardi F.New metrics for the reliability ofapproximate and probabilistic adders[J].IEEE Transactions onComputers,2013,62(9):1760-1771.