一種基于bp神經(jīng)網(wǎng)絡(luò)的fpga動(dòng)態(tài)功耗估算方法
【專利摘要】本發(fā)明一種基于BP神經(jīng)網(wǎng)絡(luò)的FPGA動(dòng)態(tài)功耗估算方法,包括以下步驟:(1)獲取四個(gè)模塊的輸入輸出量作為樣本數(shù)據(jù);(2)對(duì)樣本數(shù)據(jù)進(jìn)行數(shù)據(jù)篩選和數(shù)據(jù)預(yù)處理;(3)根據(jù)處理后的樣本數(shù)據(jù)分別構(gòu)造四個(gè)模塊的BP神經(jīng)網(wǎng)絡(luò)模型;(4)將樣本數(shù)據(jù)的一部分作為BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練數(shù)據(jù),進(jìn)行BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練得到訓(xùn)練后的神經(jīng)網(wǎng)絡(luò),進(jìn)而得到神經(jīng)網(wǎng)絡(luò)輸出的功耗;(5)將去除訓(xùn)練數(shù)據(jù)后的樣本數(shù)據(jù)作為BP神經(jīng)網(wǎng)絡(luò)的測(cè)試數(shù)據(jù),將得到的功耗與測(cè)試數(shù)據(jù)進(jìn)行比較;(6)將神經(jīng)網(wǎng)絡(luò)輸出的功耗還原為實(shí)際功耗值;(7)將獲取的四個(gè)模塊的功耗估計(jì)值進(jìn)行求和得到總功耗值。本發(fā)明通過BP神經(jīng)網(wǎng)絡(luò)的自動(dòng)學(xué)習(xí),可以對(duì)功耗值實(shí)現(xiàn)準(zhǔn)確預(yù)測(cè)。
【專利說(shuō)明】—種基于BP神經(jīng)網(wǎng)絡(luò)的FPGA動(dòng)態(tài)功耗估算方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種基于BP神經(jīng)網(wǎng)絡(luò)的FPGA動(dòng)態(tài)功耗估算方法,屬于FPGA動(dòng)態(tài)功耗估算【技術(shù)領(lǐng)域】。
【背景技術(shù)】
[0002]FPGA功耗一般由靜態(tài)功耗和動(dòng)態(tài)功耗組成。靜態(tài)功耗主要是晶體管的漏電流引起,與工藝有關(guān);動(dòng)態(tài)功耗主要由電容充放電引起,主要體現(xiàn)為時(shí)鐘、可編程資源、I/0、BRAM消耗的功耗。一般情況下,動(dòng)態(tài)功耗占總功耗的比例較大,所以一般來(lái)說(shuō),F(xiàn)PGA功耗中只考慮動(dòng)態(tài)功耗。
[0003]目前主流的FPGA供應(yīng)商都提供了相關(guān)的軟件去計(jì)算功耗,比如Xilinx公司的Xpower功耗分析工具,如果已經(jīng)做好了設(shè)計(jì),便可以直接在功耗分析軟件上看到功耗估算結(jié)果,但是上述方法要求必須完成設(shè)計(jì)文件;Xilinx公司的XPower Estimator (XPE),可以僅憑設(shè)計(jì)利用率估計(jì)就能獲得初步的功耗評(píng)估,而無(wú)需實(shí)際設(shè)計(jì)文件,但是無(wú)法對(duì)功耗與影響因素之間的關(guān)系做定量的分析。
[0004]BP (Back Propagat1n)神經(jīng)網(wǎng)絡(luò)是目前應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一,學(xué)習(xí)規(guī)則是使用最速下降法,通過反向傳播來(lái)不斷調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值,使網(wǎng)絡(luò)的誤差平方和最小。傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)收斂速度非常慢,改進(jìn)的方法有學(xué)習(xí)速度自適應(yīng)調(diào)整法和LM(Levenberg-Marquardt)算法等等。學(xué)習(xí)速度自適應(yīng)調(diào)整法保證了 BP神經(jīng)網(wǎng)絡(luò)能選用學(xué)習(xí)率允許范圍內(nèi)的最大值進(jìn)行學(xué)習(xí),但是學(xué)習(xí)時(shí)間依然較長(zhǎng)。LM算法根據(jù)學(xué)習(xí)結(jié)果動(dòng)態(tài)調(diào)節(jié)阻尼因子,即動(dòng)態(tài)收斂方向,收斂速度比較快,但是沒有對(duì)學(xué)習(xí)率進(jìn)行改進(jìn)。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的技術(shù)解決問題是:克服現(xiàn)有技術(shù)的不足,提供一種基于改進(jìn)BP神經(jīng)網(wǎng)絡(luò)的FPGA的功耗估算方法,本發(fā)明通過BP神經(jīng)網(wǎng)路的權(quán)值實(shí)現(xiàn)隱形表達(dá)估算因素間的內(nèi)在聯(lián)系,獲取功耗與影響因素之間的關(guān)系。
[0006]本發(fā)明的技術(shù)解決方案是:
[0007]一種基于BP神經(jīng)網(wǎng)絡(luò)的FPGA動(dòng)態(tài)功耗估算方法,F(xiàn)PGA的動(dòng)態(tài)功耗主要來(lái)源于四個(gè)模塊,分別為時(shí)鐘樹、可編程資源、I/o、塊存儲(chǔ)器,包括步驟如下:
[0008](I)根據(jù)XPE獲取四個(gè)模塊的樣本數(shù)據(jù),即各模塊的輸入輸出量;
[0009](2)對(duì)步驟(I)獲得的樣本數(shù)據(jù)進(jìn)行數(shù)據(jù)篩選和數(shù)據(jù)預(yù)處理;
[0010](3)根據(jù)步驟(2)中處理后的樣本數(shù)據(jù)的輸入與其對(duì)應(yīng)的輸出分別構(gòu)造四個(gè)模塊的BP神經(jīng)網(wǎng)絡(luò)模型;
[0011](4)將樣本數(shù)據(jù)的一部分作為BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練數(shù)據(jù),另外一部分作為BP神經(jīng)網(wǎng)絡(luò)的測(cè)試數(shù)據(jù),同時(shí)通過訓(xùn)練數(shù)據(jù)中各模塊的輸入與其對(duì)應(yīng)的輸出進(jìn)行BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練得到訓(xùn)練后的神經(jīng)網(wǎng)絡(luò),進(jìn)而得到神經(jīng)網(wǎng)絡(luò)輸出的功耗;
[0012](5)將步驟⑷中神經(jīng)網(wǎng)絡(luò)輸出的功耗與步驟⑷中的測(cè)試數(shù)據(jù)進(jìn)行比較,判斷兩者之間的誤差是否小于設(shè)定的閾值,若小于則進(jìn)入步驟(6),否則進(jìn)入步驟(3);
[0013](6)將步驟(4)中神經(jīng)網(wǎng)絡(luò)輸出的功耗還原為實(shí)際功耗值;
[0014](7)將獲取的四個(gè)模塊的功耗估計(jì)值進(jìn)行求和得到總功耗值。
[0015]所述步驟(1)中獲取四個(gè)模塊樣本數(shù)據(jù)的具體步驟如下:
[0016](Ia)確定四個(gè)模塊的輸入作為樣本數(shù)據(jù);時(shí)鐘樹模塊的輸入為時(shí)鐘頻率;可編程資源模塊的輸入為時(shí)鐘頻率、LUT個(gè)數(shù)、Shift Registe個(gè)數(shù)、LUTRAM個(gè)數(shù)、FF個(gè)數(shù);1/0模塊的輸入為時(shí)鐘頻率、I/O端口個(gè)數(shù);塊存儲(chǔ)器的輸入為時(shí)鐘頻率、塊存儲(chǔ)器個(gè)數(shù);
[0017](Ib)分別獲取四個(gè)模塊的N組動(dòng)態(tài)功耗作為樣本數(shù)據(jù),即為各模塊的輸出,N為正整數(shù)。
[0018]所述步驟(2)中進(jìn)行數(shù)據(jù)篩選和數(shù)據(jù)預(yù)處理的方法如下:
[0019](2a)計(jì)算各模塊樣本數(shù)據(jù)的均值
【權(quán)利要求】
1.一種基于BP神經(jīng)網(wǎng)絡(luò)的FPGA動(dòng)態(tài)功耗估算方法,F(xiàn)PGA的動(dòng)態(tài)功耗主要來(lái)源于四個(gè)模塊,分別為時(shí)鐘樹、可編程資源、I/O、塊存儲(chǔ)器,其特征在于步驟如下: (1)根據(jù)XPE獲取四個(gè)模塊的樣本數(shù)據(jù),即各模塊的輸入輸出量; (2)對(duì)步驟(1)獲得的樣本數(shù)據(jù)進(jìn)行數(shù)據(jù)篩選和數(shù)據(jù)預(yù)處理; (3)根據(jù)步驟(2)中處理后的樣本數(shù)據(jù)的輸入與其對(duì)應(yīng)的輸出分別構(gòu)造四個(gè)模塊的BP神經(jīng)網(wǎng)絡(luò)模型; (4)將樣本數(shù)據(jù)的一部分作為BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練數(shù)據(jù),另外一部分作為BP神經(jīng)網(wǎng)絡(luò)的測(cè)試數(shù)據(jù),同時(shí)通過訓(xùn)練數(shù)據(jù)中各模塊的輸入與其對(duì)應(yīng)的輸出進(jìn)行BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練得到訓(xùn)練后的神經(jīng)網(wǎng)絡(luò),進(jìn)而得到神經(jīng)網(wǎng)絡(luò)輸出的功耗; (5)將步驟(4)中神經(jīng)網(wǎng)絡(luò)輸出的功耗與步驟(4)中的測(cè)試數(shù)據(jù)進(jìn)行比較,判斷兩者之間的誤差是否小于設(shè)定的閾值,若小于則進(jìn)入步驟(6),否則進(jìn)入步驟(3); (6)將步驟(4)中神經(jīng)網(wǎng)絡(luò)輸出的功耗還原為實(shí)際功耗值; (7)將獲取的四個(gè)模塊的功耗估計(jì)值進(jìn)行求和得到總功耗值。
2.根據(jù)權(quán)利要求1所述的一種基于BP神經(jīng)網(wǎng)絡(luò)的FPGA動(dòng)態(tài)功耗估算方法,其特征在于:所述步驟(1)中獲取四個(gè)模塊樣本數(shù)據(jù)的具體步驟如下: (Ia)確定四個(gè)模塊的輸入作為樣本數(shù)據(jù);時(shí)鐘樹模塊的輸入為時(shí)鐘頻率;可編程資源模塊的輸入為時(shí)鐘頻率、LUT個(gè)數(shù)、Shift Registe個(gè)數(shù)、LUTRAM個(gè)數(shù)、FF個(gè)數(shù);1/0模塊的輸入為時(shí)鐘頻率、I/O端口個(gè)數(shù);塊存儲(chǔ)器的輸入為時(shí)鐘頻率、塊存儲(chǔ)器個(gè)數(shù); (Ib)分別獲取四個(gè)模塊的N組動(dòng)態(tài)功耗作為樣本數(shù)據(jù),即為各模塊的輸出,N為正整數(shù)。
3.根據(jù)權(quán)利要求1所述的一種基于BP神經(jīng)網(wǎng)絡(luò)的FPGA動(dòng)態(tài)功耗估算方法,其特征在于:所述步驟(2)中進(jìn)行數(shù)據(jù)篩選和數(shù)據(jù)預(yù)處理的方法如下:
I N (2a)計(jì)算各模塊樣本數(shù)據(jù)的均值
與標(biāo)準(zhǔn)偏差
,其中Xi為樣
N μ? = I ^^ ?本數(shù)據(jù)中某模塊的動(dòng)態(tài)功耗值; (2b)對(duì)各模塊的樣本數(shù)據(jù)與步驟(2a)中求出的樣本均值的標(biāo)準(zhǔn)偏差采用3σ準(zhǔn)則進(jìn)行判斷,若H1: - ;| > 3S,則此樣本誤差較大,剔除此樣本數(shù)據(jù); (2c)對(duì)(2b)篩選后的樣本數(shù)據(jù)進(jìn)行預(yù)處理;預(yù)處理:對(duì)篩選后的樣本數(shù)據(jù)進(jìn)行歸一化處理,將樣本數(shù)據(jù)映射到[O, I]區(qū)間為:
,其中,xmin為某模塊的動(dòng)態(tài)功耗的最小值,Xfflax為某模塊的動(dòng)態(tài)功耗的最大值,I為預(yù)處理后的結(jié)果。
4.根據(jù)權(quán)利要求2所述的一種基于BP神經(jīng)網(wǎng)絡(luò)的FPGA動(dòng)態(tài)功耗估算方法,其特征在于:所述步驟(3)中構(gòu)造BP神經(jīng)網(wǎng)絡(luò)模型的具體步驟如下: (3a)根據(jù)四個(gè)模塊的輸入元素?cái)?shù)量確定輸入神經(jīng)元數(shù)量; (3b)根據(jù)四個(gè)模塊的輸入輸出確定隱含層神經(jīng)元數(shù)量;具體確定方式如下:隱含層神經(jīng)元數(shù)量?% = ^nl + n, +1 + a,Ii1是輸入神經(jīng)元數(shù)量,η3是輸出神經(jīng)元數(shù)量,a為I到10之間的常數(shù); (3c)隱含層神經(jīng)元傳遞函數(shù)采用S型正切函數(shù)tansig ; (3d)根據(jù)輸出元素個(gè)數(shù)確定輸出神經(jīng)元數(shù)量,輸出元素為輸出功耗,輸出神經(jīng)元數(shù)量為I ; (3e)輸出層神經(jīng)元傳遞函數(shù)采用S型對(duì)數(shù)函數(shù)logsig。
5.根據(jù)權(quán)利要求1所述的一種基于BP神經(jīng)網(wǎng)絡(luò)的FPGA動(dòng)態(tài)功耗估算方法,其特征在于:所述步驟(4)的具體實(shí)現(xiàn)方式如下: (4a)設(shè)置訓(xùn)練參數(shù),所述訓(xùn)練參數(shù)包括目標(biāo)誤差、權(quán)值和偏置閾值組成的向量W、最大迭代次數(shù)、學(xué)習(xí)率Hn以及阻尼因子μη; (4b)計(jì)算BP神經(jīng)網(wǎng)絡(luò)的輸出Ji以及全局誤差函數(shù)E (η);
其中Φ和Ψ分別表不隱含層和輸出層的傳遞函數(shù),Wij表不隱含層的權(quán)值,表不隱含層偏置閾值,Wki表示輸出層的權(quán)值,ak表示輸出層的偏置閾值,Xj表示訓(xùn)練數(shù)據(jù)中神經(jīng)網(wǎng)絡(luò)的輸入元素,ei(w)為誤差向量,Yi為樣本數(shù)據(jù)中作為訓(xùn)練數(shù)據(jù)中的功耗值,i取1、2、.3、4 ; (4c)計(jì)算權(quán)值和閾值組成的向量的修正量dw ; 將所有權(quán)值和閾值組成向量:W = Iwij, Θ J, Wki, aj ,則修正量dw為: dw = - n n [ Jt (w) J (w) + μ nI] J (w) ei (w) 修正后的向量為:w(n+1) = wn+dw 其中,
代表學(xué)習(xí)率,J(w)為誤差對(duì)權(quán)值 微分矩陣,μ ?代表阻尼因子,I為單位矩陣; (4d)若Ε(η)大于設(shè)定閾值,則利用步驟(4c)中公式修正權(quán)值和閾值向量以及利用步驟(4b)的公式計(jì)算新的誤差E(n+1),并進(jìn)入步驟(4e);否則若E(n)小于設(shè)定閾值或者訓(xùn)練過程達(dá)到設(shè)定的最大迭代次數(shù),則結(jié)束訓(xùn)練過程,并進(jìn)入步驟(4f);
(4e)若 E(n+l)〈E(n),則 ηη+1 = m ηη, A+ι = j;否則,rU1 = η ηη, μ = θ μ η ;其中,E(η)和Ε(η+1)代表連續(xù)兩次迭代的全局誤差函數(shù),進(jìn)入步驟(4b) ;m、η和Θ分別為(1,2), (O, I)和(1,2)范圍內(nèi)的常數(shù); (4f)訓(xùn)練結(jié)束。
6.根據(jù)權(quán)利要求1所述的一種基于BP神經(jīng)網(wǎng)絡(luò)的FPGA動(dòng)態(tài)功耗估算方法,其特征在于:所述步驟(6)中將步驟(4)中神經(jīng)網(wǎng)絡(luò)輸出的功耗還原為實(shí)際功耗值;采用公式y(tǒng) =Yi*(ymax-ymin) +ymin,其中y_、ymin為訓(xùn)練數(shù)樣本數(shù)據(jù)輸出功耗值最大值和最小值。
【文檔編號(hào)】G06F11/36GK104199536SQ201410352614
【公開日】2014年12月10日 申請(qǐng)日期:2014年7月23日 優(yōu)先權(quán)日:2014年7月23日
【發(fā)明者】袁雅婧, 巨艇, 賈亮, 郭寶龍, 徐芳 申請(qǐng)人:西安空間無(wú)線電技術(shù)研究所