本發(fā)明屬于協(xié)同設(shè)計的領(lǐng)域,具體應(yīng)用在軟硬件劃分、軟硬件協(xié)同設(shè)計、函數(shù)優(yōu)化等問題的求解過程中,涉及一種基于爬山淘汰粒子群算法的大規(guī)模軟硬件劃分方法。
背景技術(shù):
現(xiàn)代嵌入式系統(tǒng)是軟件和硬件一體化的系統(tǒng),系統(tǒng)的任務(wù)由硬件實現(xiàn)(如:fpga和asic等)和軟件實現(xiàn)(如:arm和dsp等)協(xié)同完成。硬件實現(xiàn)的速度快,但是成本較高;軟件實現(xiàn)的代價低,但是需要耗費更多的時間。軟硬件劃分是軟硬件協(xié)同設(shè)計中最關(guān)鍵的一個步驟,它是在一定的限制條件下,將所有的計算任務(wù)合理地映射到軟件或硬件上,使得整個系統(tǒng)的性能最優(yōu)。
目前,國內(nèi)外學者在軟硬件劃分問題方面進行了大量研究工作,解決方法分為精確算法和啟發(fā)式算法兩類。粒子群算法因?qū)崿F(xiàn)簡單且搜索速度快,已廣泛應(yīng)用于求解軟硬件劃分的問題中。abdelhalim等人指出基于粒子群算法的軟硬件劃分方法在硬件代價和處理時間上優(yōu)于遺傳算法。li等人融合粒子群算法和禁忌搜索算法,求解軟硬件劃分問題,禁忌搜索算法以粒子群算法獲取的解為初始值進行尋優(yōu)。eimuri等人結(jié)合離散的粒子群算法和分支限界法求解軟硬件劃分問題,離散的粒子群算法用于加速分支限界法。
啟發(fā)式算法求解大規(guī)模的軟硬件劃分問題十分耗時,因此相關(guān)研究提出基于高性能服務(wù)器和集群的求解方案。為了減少運行時間,wu等人提出基于多cpu實現(xiàn)的并行混合粒子群算法求解軟硬件劃分問題,farahani等人將基于mpi實現(xiàn)的并行遺傳算法應(yīng)用于軟硬件劃分問題,bordoloi等人提出采用gpu并行加速軟硬件劃分過程。
然而,隨著嵌入式系統(tǒng)設(shè)計規(guī)模的逐漸增大,現(xiàn)有的啟發(fā)式算法已難以獲取最優(yōu)解。本發(fā)明提出一種基于爬山淘汰粒子群算法(eliminationparticleswarmoptimizationwithhillclimbing,簡稱epso-hc)的大規(guī)模軟硬件劃分方法求解大規(guī)模軟硬件劃分問題。根據(jù)達爾文進化論,淘汰群體中當前全局最差位置附近的個體,保持搜索種群的多樣性,防止算法早熟收斂。改進爬山法(hillclimbing,hc)的搜索機制,以粒子自身經(jīng)歷的最優(yōu)位置為方向,在當前全局最優(yōu)位置附近集中搜索,提升解的質(zhì)量。軟硬件通信代價計算是軟硬件劃分中最耗時的過程,為了減少算法的運行時間,采用(graphicprocessingunit,gpu)并行計算該過程。
技術(shù)實現(xiàn)要素:
本發(fā)明提出一種基于爬山淘汰粒子群算法的大規(guī)模軟硬件劃分方法,具體技術(shù)方案如下:
一種基于爬山淘汰粒子群算法的大規(guī)模軟硬件劃分方法,其特征在于,采用無向圖g=(v,e)描述系統(tǒng)任務(wù),其中,v和e分別表示節(jié)點和邊的集合;軟硬件劃分基于求解:
式中,x=(x1,x2,...,xn)表示軟硬件劃分問題的一個解;xi=1表示任務(wù)節(jié)點vi由嵌入式系統(tǒng)中的軟件模塊實現(xiàn),xi=0表示任務(wù)節(jié)點vi由嵌入式系統(tǒng)中的硬件模塊實現(xiàn);c(x)表示軟硬件劃分x中軟件模塊和硬件模塊的通信代價;si和hi分別表示節(jié)點vi的軟件代價和硬件代價;r為約束值,具體包括:
步驟1:初始化epso-hc算法的參數(shù);初始化算法中慣性權(quán)重,種群數(shù)目,最大迭代次數(shù),學習因子c1和c2,范圍因子c3,搜索步長c4和搜索半徑range等參數(shù);
步驟2:noderank算法初始化種群;初始種群由noderank算法獲取的解組成;
步驟3:更新每個粒子的位置和速度,并對種群進行離散化,在本步驟中,由于軟硬件劃分問題屬于一類組合優(yōu)化問題,因此求解該類問題需要采用離散的epso-hc;在離散epso-hc中,每個粒子的位置按如下公式進行離散化:
式中,
步驟4:淘汰當前全局最差位置附近的粒子,隨機產(chǎn)生的新粒子替代群體中弱小的粒子;
步驟5:改進爬山法更新當前全局最優(yōu)位置,改進爬山法以粒子自身經(jīng)歷的最優(yōu)位置為方向,在當前全局最優(yōu)位置附近集中搜索更優(yōu)位置;
步驟6:采用gpu并行計算軟硬件通信代價;
步驟7:若epso-hc算法達到終止條件,則輸出epso-hc算法求解公式(1)的全局最優(yōu)解,該解即為軟硬件劃分問題的最終解;否則,轉(zhuǎn)到步驟3;
在上述的一種基于爬山淘汰粒子群算法的大規(guī)模軟硬件劃分方法,所述步驟4中,模擬達爾文進化論,淘汰當前全局最差位置附近的弱小粒子,由隨機產(chǎn)生的粒子替代;在群體中,當前全局最差位置定義為pw=(pw1,pw2,...,pwd),第j個弱小粒子的位置定義為yj=(yj1,yj2,...,yjd);yj在以pw為中心的圓圈內(nèi),則:
式中,c3是范圍因子,range是粒子的搜索半徑;在淘汰粒子群算法中,隨機產(chǎn)生的新粒子替代弱小的粒子,能增加搜索種群的多樣性,防止算法早熟收斂。
在上述的一種基于爬山淘汰粒子群算法的大規(guī)模軟硬件劃分方法,所述步驟5中,采用爬山法在當前全局最優(yōu)位置pg附近尋優(yōu),利用搜索到的更優(yōu)位置替代pg;爬山法的搜索方向是隨機的,因此該方法的搜索過程盲目且效率較低;本發(fā)明改進爬山法的搜索方向,從粒子群自身最優(yōu)位置pi中隨機取l個點作為算法的搜索方向,改進爬山法向周圍l個方向前進;在當前全局最優(yōu)位置采用改進爬山法向前搜索的位置為:
pg'=pg+r3c4(pi-pg)……(9)
式中,1≤i≤l,r3為[0,1]區(qū)間生成的隨機數(shù),c4為搜索步長;若pg'的值優(yōu)于pg,則用pg'替代pg;否則,pg的值不變;改進爬山法循環(huán)向前搜索,直到將l個方向搜索完,算法結(jié)束;通過改進爬山法更新當前全局最優(yōu)位置,能增強搜索的集中性,提高算法的搜索精度,有利于提升解的質(zhì)量。
在上述的一種基于爬山淘汰粒子群算法的大規(guī)模軟硬件劃分方法,所述步驟6中,cij代表節(jié)點i和節(jié)點j的通信代價,則軟硬件通信代價c(x)的計算公式如下:
軟硬件通信代價c(x)的時間復雜度為o(n2),其中n為任務(wù)節(jié)點的數(shù)目;在epso-hc中,每次迭代都需要計算所有粒子的通信代價c(x);由于c(x)的時間復雜度為o(n2),采用gpu對軟硬件通信代價的計算過程進行并行加速;每次迭代過程中,n個軟硬件通信代價在gpu并行環(huán)境中同時計算,能有效地減少算法epso-hc的整體運行時間。
因此,本發(fā)明具有如下優(yōu)點:1,模擬達爾文進化論,淘汰群體中當前全局最差位置附近的個體,保持搜索種群的多樣性,防止算法早熟收斂;2,改進爬山法(hc)的搜索機制,以粒子自身經(jīng)歷的最優(yōu)位置為方向,在當前全局最優(yōu)位置附近集中搜索,提升解的質(zhì)量;3,采用圖形處理器(gpu)并行計算軟硬件通信代價,以減少epso-hc算法的運行時間;4,通過求解基準任務(wù)和特大規(guī)模任務(wù)來評價epso-hc算法的性能,與其他軟硬件劃分算法相比,epso-hc算法解的質(zhì)量更高,運行時間更少。
附圖說明
圖1是基于epso-hc軟硬件劃分方法的流程圖。
圖2是改進爬山法的搜索過程。
圖3a是100次實例不同算例下,不同算法的平均改進百分比(算例1)。
圖3b是100次實例不同算例下,不同算法的平均改進百分比(算例2)。
圖3c是100次實例不同算例下,不同算法的平均改進百分比(算例3)。
圖3d是100次實例不同算例下,不同算法的平均改進百分比(算例4)。
圖3e是100次實例不同算例下,不同算法的平均改進百分比(算例5)。
圖3f是100次實例不同算例下,不同算法的平均改進百分比(算例6)。
圖4a是100次實例算例3下,不同算法的平均性能(改進百分比)。
圖4b是100次實例算例3下,不同算法的平均性能(運行時間)。
具體實施方式
下面結(jié)合附圖和具體實施方式對本發(fā)明作進一步說明。
本發(fā)明采用wu等人提出的軟硬件劃分模型,利用無向圖g=(v,e)描述系統(tǒng)任務(wù),其中,v和e分別表示節(jié)點和邊的集合。軟硬件劃分問題可以描述為
在標準粒子群算法中,n個粒子在d維目標搜索空間中尋優(yōu),每個粒子具有如下屬性:搜索空間中當前的位置xi,速度vi和自身經(jīng)歷的最優(yōu)位置pi,則:
xi=(xi1,...,xid,...,xid)……(2),vi=(vi1,...,vid,...,vid)……(3),pi=(pi1,...,pid,...,pid)……(4),式中,1≤i≤n,1≤d≤d。群體中當前全局最優(yōu)的位置記為pg=(pg1,pg2,...,pgd),則粒子群算法的進化方程為:
本發(fā)明的具體步驟如下:
步驟1:初始化epso-hc算法的參數(shù)。初始化算法中慣性權(quán)重,種群數(shù)目,最大迭代次數(shù),學習因子c1和c2,范圍因子c3,搜索步長c4和搜索半徑range等參數(shù)。
步驟2:noderank算法初始化種群。初始種群由noderank算法獲取的解組成。
步驟3:更新每個粒子的位置和速度,并對種群進行離散化。
步驟4:淘汰當前全局最差位置附近的粒子,隨機產(chǎn)生的新粒子替代群體中弱小的粒子。
步驟5:改進爬山法更新當前全局最優(yōu)位置,改進爬山法以粒子自身經(jīng)歷的最優(yōu)位置為方向,在當前全局最優(yōu)位置附近集中搜索更優(yōu)位置。
步驟6:采用gpu并行計算軟硬件通信代價。
步驟7:若epso-hc算法達到終止條件,則輸出epso-hc算法求解公式(1)的全局最優(yōu)解,該解即為軟硬件劃分問題的最終解;否則,轉(zhuǎn)到步驟3。
在步驟3中,由于軟硬件劃分問題屬于一類組合優(yōu)化問題,因此求解該類問題需要采用離散的epso-hc。在離散epso-hc中,每個粒子的位置按如下公式進行離散化:
在步驟4中,模擬達爾文進化論,淘汰當前全局最差位置附近的弱小粒子,由隨機產(chǎn)生的粒子替代。在群體中,當前全局最差位置定義為pw=(pw1,pw2,...,pwd),第j個弱小粒子的位置定義為yj=(yj1,yj2,...,yjd)。yj在以pw為中心的圓圈內(nèi),則:
在步驟5中,采用爬山法在當前全局最優(yōu)位置pg附近尋優(yōu),利用搜索到的更優(yōu)位置替代pg。爬山法的搜索方向是隨機的,因此該方法的搜索過程盲目且效率較低。本發(fā)明改進爬山法的搜索方向,從粒子群自身最優(yōu)位置pi中隨機取l個點作為算法的搜索方向,改進爬山法向周圍l個方向前進,如圖2所示。在當前全局最優(yōu)位置采用改進爬山法向前搜索的位置為:pg'=pg+r3c4(pi-pg)……(9),式中,1≤i≤l,r3為[0,1]區(qū)間生成的隨機數(shù),c4為搜索步長。若pg'的值優(yōu)于pg,則用pg'替代pg;否則,pg的值不變。改進爬山法循環(huán)向前搜索,直到將l個方向搜索完,算法結(jié)束。通過改進爬山法更新當前全局最優(yōu)位置,能增強搜索的集中性,提高算法的搜索精度,有利于提升解的質(zhì)量。
在步驟6中,cij代表節(jié)點i和節(jié)點j的通信代價,則軟硬件通信代價c(x)的計算公式如下:
定理1:軟硬件通信代價c(x)的時間復雜度為o(n2),其中n為任務(wù)節(jié)點的數(shù)目。
證明:在式(10)中,共有兩層循環(huán)計算c(x),每一層循環(huán)執(zhí)行的時間為o(n2)。因此,軟硬件通信代價c(x)的時間復雜度為o(n2)。
在epso-hc中,每次迭代都需要計算所有粒子的通信代價c(x)。由于c(x)的時間復雜度為o(n2),在epso-hc的計算過程中,軟硬件通信代價的計算量非常大。為了減少運行時間,本發(fā)明采用gpu對軟硬件通信代價的計算過程進行并行加速。每次迭代過程中,n個軟硬件通信代價在gpu并行環(huán)境中同時計算,能有效地減少算法epso-hc的整體運行時間。
本發(fā)明通過求解軟硬件劃分任務(wù)來驗證軟硬件劃分方法的性能,算法的開發(fā)工具為matlabr2014b,計算機處理器的型號為intel(r)core(tm)i7-4770,主頻為3.4ghz,內(nèi)存大小為16gb。gpu型號為nvidiageforcegtx780,共有2304個流處理器,顯存頻率為6008mhz,顯存容量為3gb。
本發(fā)明考慮兩種不同的約束值(r),根據(jù)通信代價與軟件代價之比(cr)定義三種不同類型的任務(wù)圖,對應(yīng)cr的取值分別為0.1,1,10。當cr和r取不同值時,有六種不同的算例,如表1所示。表2給出全部基準任務(wù),n和m分別為任務(wù)節(jié)點和邊的數(shù)目。
表1六種不同的算例
表2軟硬件劃分的基準任務(wù)
軟硬件劃分問題是一類np難問題,爬山法由于采用了貪心策略,在求解此類問題時很容易陷入局部最優(yōu)解。本發(fā)明將算法alg-new3、heur、noderank、pso和epso-hc用于求解表2中的基準任務(wù)。在epso-hc和pso中,慣性權(quán)重隨著迭代次數(shù)在0.9和0.7之間線性減少,種群數(shù)目為40,最大迭代次數(shù)為50,學習因子c1和c2都為2。范圍因子c3和搜索步長c4對算法epso-hc的性能影響很大,本發(fā)明通過實驗確定這兩個參數(shù)的合適取值為:c3=0.1,c4=0.8,hc法的最大迭代次數(shù)為30。為了不失一般性,在實驗中選擇100個隨機的實例進行統(tǒng)計分析。
為了比較算法解的質(zhì)量,計算其他算法相對算法alg-new3的改進百分比。100次實例不同算例下,不同的算法相對alg-new3的平均改進百分比見圖3,橫軸為任務(wù)規(guī)模,縱軸為算法相對于alg-new3的平均改進百分比。
由圖3可知,epso-hc得到的解優(yōu)于其他算法得到的解。當任務(wù)規(guī)模較小時,noderank算法、pso和epso-hc得到的解幾乎相同。因為此時軟硬件劃分問題的復雜度低,其他算法也可以搜索到全局最優(yōu)解。但是隨著任務(wù)規(guī)模的增加,求解軟硬件劃分優(yōu)化問題的難度增大,此時算法epso-hc的改進百分比明顯優(yōu)于其他算法。
通過算法的運行時間,評價gpu并行計算通信代價的加速效果。在epso-hc中通信代價的計算過程在gpu并行環(huán)境中運行,其他算法中通信代價的計算過程在串行環(huán)境中運行。當任務(wù)規(guī)模小于16000時,算法整體運行時間較短,gpu中數(shù)據(jù)交換和任務(wù)分配等額外操作占據(jù)了主要部分。此時,gpu并行計算的優(yōu)勢不明顯,epso-hc的運行時間長于pso的時間。當任務(wù)規(guī)模大于等于16000時,通信代價計算量大,采用gpu并行計算的優(yōu)勢明顯,此時epso-hc的運行時間少于pso的時間。
隨著現(xiàn)代嵌入式系統(tǒng)的發(fā)展,軟硬件劃分問題的任務(wù)規(guī)模變得越來越大。為了進一步研究算法的性能,將算法epso-hc應(yīng)用于求解特大規(guī)模的軟硬件劃分任務(wù)中,本發(fā)明定義9種典型的特大規(guī)模任務(wù),如表3所示。
表3特大規(guī)模的任務(wù)
算法alg-new3、heur、noderank、pso和epso-hc用于求解特大規(guī)模的任務(wù),本發(fā)明選擇在算例3下分析算法的性能,圖4為在算例3下不同算法100次實例的平均改進百分比和平均運行時間。由圖4可知,對于特大規(guī)模的任務(wù),epso-hc的全局搜索能力更強,相比其他算法,解的質(zhì)量有明顯提升。采用gpu并行加速后,epso-hc和noderank運行時間的差距越來越小,epso-hc和pso運行時間的差距越來越大。當任務(wù)規(guī)模為80000時,epso-hc比pso的運行時間少43.76秒,占pso運行時間的20.91%,并行加速的效果十分明顯。因此,將并行的epso-hc用于求解大規(guī)模軟硬件劃分問題是非常有效的。
本文中所描述的具體實施例僅僅是對本發(fā)明精神作舉例說明。本發(fā)明所屬技術(shù)領(lǐng)域的技術(shù)人員可以對所描述的具體實施例做各種各樣的修改或補充或采用類似的方式替代,但并不會偏離本發(fā)明的精神或者超越所附權(quán)利要求書所定義的范圍。