一种基于bp神经网络的fpga动态功耗估算方法

文档序号:6621051阅读:1213来源:国知局
一种基于bp神经网络的fpga动态功耗估算方法
【专利摘要】本发明一种基于BP神经网络的FPGA动态功耗估算方法,包括以下步骤:(1)获取四个模块的输入输出量作为样本数据;(2)对样本数据进行数据筛选和数据预处理;(3)根据处理后的样本数据分别构造四个模块的BP神经网络模型;(4)将样本数据的一部分作为BP神经网络的训练数据,进行BP神经网络训练得到训练后的神经网络,进而得到神经网络输出的功耗;(5)将去除训练数据后的样本数据作为BP神经网络的测试数据,将得到的功耗与测试数据进行比较;(6)将神经网络输出的功耗还原为实际功耗值;(7)将获取的四个模块的功耗估计值进行求和得到总功耗值。本发明通过BP神经网络的自动学习,可以对功耗值实现准确预测。
【专利说明】—种基于BP神经网络的FPGA动态功耗估算方法

【技术领域】
[0001]本发明涉及一种基于BP神经网络的FPGA动态功耗估算方法,属于FPGA动态功耗估算【技术领域】。

【背景技术】
[0002]FPGA功耗一般由静态功耗和动态功耗组成。静态功耗主要是晶体管的漏电流引起,与工艺有关;动态功耗主要由电容充放电引起,主要体现为时钟、可编程资源、I/0、BRAM消耗的功耗。一般情况下,动态功耗占总功耗的比例较大,所以一般来说,FPGA功耗中只考虑动态功耗。
[0003]目前主流的FPGA供应商都提供了相关的软件去计算功耗,比如Xilinx公司的Xpower功耗分析工具,如果已经做好了设计,便可以直接在功耗分析软件上看到功耗估算结果,但是上述方法要求必须完成设计文件;Xilinx公司的XPower Estimator (XPE),可以仅凭设计利用率估计就能获得初步的功耗评估,而无需实际设计文件,但是无法对功耗与影响因素之间的关系做定量的分析。
[0004]BP (Back Propagat1n)神经网络是目前应用最广泛的神经网络模型之一,学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。传统的BP神经网络收敛速度非常慢,改进的方法有学习速度自适应调整法和LM(Levenberg-Marquardt)算法等等。学习速度自适应调整法保证了 BP神经网络能选用学习率允许范围内的最大值进行学习,但是学习时间依然较长。LM算法根据学习结果动态调节阻尼因子,即动态收敛方向,收敛速度比较快,但是没有对学习率进行改进。


【发明内容】

[0005]本发明的技术解决问题是:克服现有技术的不足,提供一种基于改进BP神经网络的FPGA的功耗估算方法,本发明通过BP神经网路的权值实现隐形表达估算因素间的内在联系,获取功耗与影响因素之间的关系。
[0006]本发明的技术解决方案是:
[0007]一种基于BP神经网络的FPGA动态功耗估算方法,FPGA的动态功耗主要来源于四个模块,分别为时钟树、可编程资源、I/o、块存储器,包括步骤如下:
[0008](I)根据XPE获取四个模块的样本数据,即各模块的输入输出量;
[0009](2)对步骤(I)获得的样本数据进行数据筛选和数据预处理;
[0010](3)根据步骤(2)中处理后的样本数据的输入与其对应的输出分别构造四个模块的BP神经网络模型;
[0011](4)将样本数据的一部分作为BP神经网络的训练数据,另外一部分作为BP神经网络的测试数据,同时通过训练数据中各模块的输入与其对应的输出进行BP神经网络训练得到训练后的神经网络,进而得到神经网络输出的功耗;
[0012](5)将步骤⑷中神经网络输出的功耗与步骤⑷中的测试数据进行比较,判断两者之间的误差是否小于设定的阈值,若小于则进入步骤(6),否则进入步骤(3);
[0013](6)将步骤(4)中神经网络输出的功耗还原为实际功耗值;
[0014](7)将获取的四个模块的功耗估计值进行求和得到总功耗值。
[0015]所述步骤(1)中获取四个模块样本数据的具体步骤如下:
[0016](Ia)确定四个模块的输入作为样本数据;时钟树模块的输入为时钟频率;可编程资源模块的输入为时钟频率、LUT个数、Shift Registe个数、LUTRAM个数、FF个数;1/0模块的输入为时钟频率、I/O端口个数;块存储器的输入为时钟频率、块存储器个数;
[0017](Ib)分别获取四个模块的N组动态功耗作为样本数据,即为各模块的输出,N为正整数。
[0018]所述步骤(2)中进行数据筛选和数据预处理的方法如下:
[0019](2a)计算各模块样本数据的均值

【权利要求】
1.一种基于BP神经网络的FPGA动态功耗估算方法,FPGA的动态功耗主要来源于四个模块,分别为时钟树、可编程资源、I/O、块存储器,其特征在于步骤如下: (1)根据XPE获取四个模块的样本数据,即各模块的输入输出量; (2)对步骤(1)获得的样本数据进行数据筛选和数据预处理; (3)根据步骤(2)中处理后的样本数据的输入与其对应的输出分别构造四个模块的BP神经网络模型; (4)将样本数据的一部分作为BP神经网络的训练数据,另外一部分作为BP神经网络的测试数据,同时通过训练数据中各模块的输入与其对应的输出进行BP神经网络训练得到训练后的神经网络,进而得到神经网络输出的功耗; (5)将步骤(4)中神经网络输出的功耗与步骤(4)中的测试数据进行比较,判断两者之间的误差是否小于设定的阈值,若小于则进入步骤(6),否则进入步骤(3); (6)将步骤(4)中神经网络输出的功耗还原为实际功耗值; (7)将获取的四个模块的功耗估计值进行求和得到总功耗值。
2.根据权利要求1所述的一种基于BP神经网络的FPGA动态功耗估算方法,其特征在于:所述步骤(1)中获取四个模块样本数据的具体步骤如下: (Ia)确定四个模块的输入作为样本数据;时钟树模块的输入为时钟频率;可编程资源模块的输入为时钟频率、LUT个数、Shift Registe个数、LUTRAM个数、FF个数;1/0模块的输入为时钟频率、I/O端口个数;块存储器的输入为时钟频率、块存储器个数; (Ib)分别获取四个模块的N组动态功耗作为样本数据,即为各模块的输出,N为正整数。
3.根据权利要求1所述的一种基于BP神经网络的FPGA动态功耗估算方法,其特征在于:所述步骤(2)中进行数据筛选和数据预处理的方法如下:





I N (2a)计算各模块样本数据的均值
与标准偏差
,其中Xi为样
N μ? = I ^^ ?本数据中某模块的动态功耗值; (2b)对各模块的样本数据与步骤(2a)中求出的样本均值的标准偏差采用3σ准则进行判断,若H1: - ;| > 3S,则此样本误差较大,剔除此样本数据; (2c)对(2b)筛选后的样本数据进行预处理;预处理:对筛选后的样本数据进行归一化处理,将样本数据映射到[O, I]区间为:
,其中,xmin为某模块的动态功耗的最小值,Xfflax为某模块的动态功耗的最大值,I为预处理后的结果。
4.根据权利要求2所述的一种基于BP神经网络的FPGA动态功耗估算方法,其特征在于:所述步骤(3)中构造BP神经网络模型的具体步骤如下: (3a)根据四个模块的输入元素数量确定输入神经元数量; (3b)根据四个模块的输入输出确定隐含层神经元数量;具体确定方式如下:隐含层神经元数量?% = ^nl + n, +1 + a,Ii1是输入神经元数量,η3是输出神经元数量,a为I到10之间的常数; (3c)隐含层神经元传递函数采用S型正切函数tansig ; (3d)根据输出元素个数确定输出神经元数量,输出元素为输出功耗,输出神经元数量为I ; (3e)输出层神经元传递函数采用S型对数函数logsig。
5.根据权利要求1所述的一种基于BP神经网络的FPGA动态功耗估算方法,其特征在于:所述步骤(4)的具体实现方式如下: (4a)设置训练参数,所述训练参数包括目标误差、权值和偏置阈值组成的向量W、最大迭代次数、学习率Hn以及阻尼因子μη; (4b)计算BP神经网络的输出Ji以及全局误差函数E (η);
其中Φ和Ψ分别表不隐含层和输出层的传递函数,Wij表不隐含层的权值,表不隐含层偏置阈值,Wki表示输出层的权值,ak表示输出层的偏置阈值,Xj表示训练数据中神经网络的输入元素,ei(w)为误差向量,Yi为样本数据中作为训练数据中的功耗值,i取1、2、.3、4 ; (4c)计算权值和阈值组成的向量的修正量dw ; 将所有权值和阈值组成向量:W = Iwij, Θ J, Wki, aj ,则修正量dw为: dw = - n n [ Jt (w) J (w) + μ nI] J (w) ei (w) 修正后的向量为:w(n+1) = wn+dw 其中,
代表学习率,J(w)为误差对权值 微分矩阵,μ ?代表阻尼因子,I为单位矩阵; (4d)若Ε(η)大于设定阈值,则利用步骤(4c)中公式修正权值和阈值向量以及利用步骤(4b)的公式计算新的误差E(n+1),并进入步骤(4e);否则若E(n)小于设定阈值或者训练过程达到设定的最大迭代次数,则结束训练过程,并进入步骤(4f);



(4e)若 E(n+l)〈E(n),则 ηη+1 = m ηη, A+ι = j;否则,rU1 = η ηη, μ = θ μ η ;其中,E(η)和Ε(η+1)代表连续两次迭代的全局误差函数,进入步骤(4b) ;m、η和Θ分别为(1,2), (O, I)和(1,2)范围内的常数; (4f)训练结束。
6.根据权利要求1所述的一种基于BP神经网络的FPGA动态功耗估算方法,其特征在于:所述步骤(6)中将步骤(4)中神经网络输出的功耗还原为实际功耗值;采用公式y =Yi*(ymax-ymin) +ymin,其中y_、ymin为训练数样本数据输出功耗值最大值和最小值。
【文档编号】G06F11/36GK104199536SQ201410352614
【公开日】2014年12月10日 申请日期:2014年7月23日 优先权日:2014年7月23日
【发明者】袁雅婧, 巨艇, 贾亮, 郭宝龙, 徐芳 申请人:西安空间无线电技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1