楊立群李 威黃志洪孫嘉斌楊海鋼*
現(xiàn)場(chǎng)可編程門(mén)陣列(Field Programmable Gate Array, FPGA)的架構(gòu)對(duì)在其上實(shí)現(xiàn)的電路性能有顯著影響。架構(gòu)指FPGA內(nèi)部可編程邏輯單元的結(jié)構(gòu)以及邏輯單元之間的互連結(jié)構(gòu),其可由一系列的架構(gòu)參數(shù)進(jìn)行表征。隨著工藝尺寸的縮減以及應(yīng)用電路的復(fù)雜化,F(xiàn)PGA架構(gòu)設(shè)計(jì)過(guò)程中需要考慮的架構(gòu)參數(shù)日益增多。所有架構(gòu)參數(shù)的組合構(gòu)成了FPGA的架構(gòu)設(shè)計(jì)空間,顯然,從呈指數(shù)型擴(kuò)增的FPGA架構(gòu)設(shè)計(jì)空間中快速選擇一個(gè)滿足設(shè)計(jì)指標(biāo)的優(yōu)化架構(gòu)成為FPGA設(shè)計(jì)初期需要解決的重要問(wèn)題。
一種傳統(tǒng)的架構(gòu)選擇方法是借助特定 CAD流程工具,例如 VTR[1],來(lái)探索 FPGA 架構(gòu)設(shè)計(jì)空間[24]-。設(shè)計(jì)空間中的所有待選架構(gòu)通過(guò)VTR獲得相應(yīng)的性能,如面積、延時(shí)等。通過(guò)對(duì)所有架構(gòu)的性能進(jìn)行比較,獲得最佳性能(最小面積或最小延時(shí))的架構(gòu)被選作最優(yōu)架構(gòu)。由于 VTR包含綜合、映射、裝箱、布局和布線一系列步驟[5],并且設(shè)計(jì)空間隨著架構(gòu)參數(shù)增長(zhǎng),因此將設(shè)計(jì)空間中的每一個(gè)架構(gòu)通過(guò) VTR來(lái)獲得相應(yīng)的性能非常耗時(shí)且不符合工程應(yīng)用實(shí)際。另一種解析建模方法通過(guò)構(gòu)建FPGA性能解析模型來(lái)對(duì)FPGA架構(gòu)設(shè)計(jì)空間進(jìn)行探索[69]-。解析建模方法手工推導(dǎo)FPGA架構(gòu)性能關(guān)于架構(gòu)參數(shù)的數(shù)學(xué)模型[1012]-。基于該性能模型并借助于幾何規(guī)劃,就可從設(shè)計(jì)空間中獲得滿足具體設(shè)計(jì)指標(biāo)的優(yōu)化架構(gòu)。這種方法省時(shí),而且推導(dǎo)出的性能模型是關(guān)于架構(gòu)參數(shù)的顯示模型,更加直觀。然而,在模型推導(dǎo)過(guò)程中進(jìn)行的一些簡(jiǎn)化和假設(shè)使得該性能模型不是十分精確和通用。此外,這種方法需要推導(dǎo)性能模型的設(shè)計(jì)人員對(duì)FPGA架構(gòu)有非常全面的了解。
半監(jiān)督模型樹(shù)(Semi-supervised Model Tree, SMT)方法被提出以解決上述實(shí)驗(yàn)方法和解析建模方法中存在的問(wèn)題[13]。首先,從設(shè)計(jì)空間中選出部分架構(gòu)通過(guò) VTR獲得相應(yīng)性能。然后采用半監(jiān)督模型樹(shù)算法學(xué)習(xí)表征這些架構(gòu)的架構(gòu)參數(shù)與相應(yīng)性能之間的關(guān)系,而后自動(dòng)建立關(guān)于架構(gòu)參數(shù)的顯示性能模型。獲得的性能模型可預(yù)測(cè)設(shè)計(jì)空間中其他架構(gòu)的性能。最后,結(jié)合非線性規(guī)劃可從整體架構(gòu)設(shè)計(jì)空間中獲取優(yōu)化架構(gòu)。因?yàn)檫@種方法不需要將設(shè)計(jì)空間中的每一個(gè)架構(gòu)通過(guò)VTR獲得性能,所以SMT方法比實(shí)驗(yàn)方法更省時(shí)。同時(shí),SMT方法是通過(guò)對(duì)基于VTR得到實(shí)際性能的FPGA架構(gòu)進(jìn)行學(xué)習(xí)來(lái)構(gòu)建性能模型,因此它比解析建模方法更精確。然而SMT方法沒(méi)有考慮實(shí)驗(yàn)電路信息。對(duì)于待學(xué)習(xí)的每一個(gè)架構(gòu),需要通過(guò) VTR將實(shí)驗(yàn)電路集中的所有電路映射到這個(gè)架構(gòu)上,對(duì)所有電路的性能結(jié)果取幾何平均后作為這個(gè)架構(gòu)的性能。這就導(dǎo)致了較長(zhǎng)的建模時(shí)間。例如,要獲得17個(gè)VTR實(shí)驗(yàn)電路在68個(gè)架構(gòu)上的性能需要多達(dá)500 h[13]。此外,SMT方法只使用了 VTR電路集,如果實(shí)驗(yàn)電路集中加入新的電路時(shí),就需要再運(yùn)行 VTR獲得新增的電路的性能來(lái)更新架構(gòu)性能。
針對(duì)上述情況,本文提出一種基于電路特性的半監(jiān)督建模方法。該方法能精確預(yù)測(cè)特定實(shí)驗(yàn)電路在指定架構(gòu)上的實(shí)現(xiàn)性能,并加速FPGA性能建模過(guò)程,從而進(jìn)一步加速FPGA設(shè)計(jì)空間探索過(guò)程。實(shí)驗(yàn)結(jié)果顯示本文方法在預(yù)測(cè)FPGA實(shí)現(xiàn)面積和延時(shí)時(shí)預(yù)測(cè)精度分別高達(dá)6.25%和4.23%,與SMT方法的預(yù)測(cè)精度可比擬。同時(shí),相較于SMT方法,建模時(shí)間可至少減半。此外,本文提出方法構(gòu)建了一個(gè)通用的FPGA性能模型,當(dāng)預(yù)測(cè)新的電路在新的FPGA架構(gòu)上的實(shí)現(xiàn)性能時(shí)不需要再額外運(yùn)行VTR。
本文方法采用類(lèi)似 SMT[7]方法機(jī)制來(lái)構(gòu)建FPGA性能模型。然而,本文加入了電路相關(guān)特性作為先驗(yàn)知識(shí)使得構(gòu)建的 FPGA性能模型更加通用。
圖 1展示了本文方法的建模過(guò)程。首先,從FPGA架構(gòu)設(shè)計(jì)空間中選擇一些架構(gòu)1A。然后,借助于VTR,將實(shí)驗(yàn)電路集中的部分電路1S分別映射到1A上。裝箱、布局和布線之后,獲得1S中每個(gè)電路在1A中每個(gè)架構(gòu)上的實(shí)現(xiàn)性能(面積和延時(shí))。以獲得性能的架構(gòu)和電路為基礎(chǔ),應(yīng)用半監(jiān)督模型樹(shù)算法,開(kāi)發(fā)未獲得性能的架構(gòu)2A和電路特性2S,構(gòu)建一個(gè)關(guān)于架構(gòu)參數(shù)和電路特性參數(shù)的FPGA性能模型。
表1簡(jiǎn)要呈現(xiàn)了上述建模過(guò)程中采用的改進(jìn)的機(jī)器學(xué)習(xí)算法—半監(jiān)督模型樹(shù)算法[13]。該算法使用M5P[14]算法先對(duì)電路在特定架構(gòu)上的實(shí)現(xiàn)性能進(jìn)行學(xué)習(xí)構(gòu)建初始性能模型,然后以半監(jiān)督的方式對(duì)沒(méi)有性能結(jié)果的架構(gòu)和電路進(jìn)行開(kāi)發(fā)、學(xué)習(xí),精煉模型。最終獲得的性能模型可以預(yù)測(cè)新的電路在設(shè)計(jì)空間中其他架構(gòu)上實(shí)現(xiàn)的性能。
本文旨在通過(guò)構(gòu)建FPGA實(shí)現(xiàn)面積和延時(shí)關(guān)于FPGA架構(gòu)參數(shù)以及電路參數(shù)的模型進(jìn)而探索FPGA架構(gòu)設(shè)計(jì)空間。即采用FPGA架構(gòu)參數(shù)和電路參數(shù)對(duì)FPGA實(shí)現(xiàn)面積和延時(shí)進(jìn)行表征,以得到解析模型。基于該模型預(yù)測(cè)FPGA架構(gòu)的性能,并研究模型參數(shù)對(duì)性能的影響,探索FPGA架構(gòu)設(shè)計(jì)空間。本節(jié)主要介紹性能建模過(guò)程中采用的架構(gòu)參數(shù)與電路特性參數(shù)。
圖1 本文方法的建??蚣?/p>
表1 半監(jiān)督模型樹(shù)算法偽代碼
目前主流的商用FPGA芯片都采用基于查找表的島式結(jié)構(gòu)[5],本文以此為研究對(duì)象。如圖2所示,基于查找表的FPGA主要架構(gòu)參數(shù)包括查找表的輸入數(shù)目(K),邏輯塊中的查找表數(shù)目(N),邏輯塊的輸入數(shù)目(I),邏輯塊的扇入系數(shù)(inFc )和扇出系數(shù)(outFc )。上述架構(gòu)參數(shù)反映了FPGA的邏輯和互連結(jié)構(gòu),影響電路在FPGA上實(shí)現(xiàn)的面積和延時(shí)。K值越大,在一個(gè)K輸入查找表中可以實(shí)現(xiàn)的邏輯功能越多,關(guān)鍵路徑上的查找表數(shù)目減小,電路的延時(shí)越小,而同時(shí)K值的增大使得查找表的面積增大。N值的變化對(duì)面積與延時(shí)的影響效果與K值類(lèi)似。I, N與inFc,outFc 聯(lián)合作用影響邏輯塊與其周?chē)ミB通道之間的通信能力。inFc與outFc 變大,邏輯塊與通道的通信能力增強(qiáng),與此同時(shí)卻帶來(lái)FPGA互連面積的增加。因此,要設(shè)計(jì)一個(gè)滿足設(shè)計(jì)指標(biāo)的FPGA架構(gòu),需要在上述架構(gòu)參數(shù)之間進(jìn)行折中選擇。
對(duì)于任一應(yīng)用電路,可用5個(gè)基本電路參數(shù)來(lái)對(duì)其進(jìn)行描述。這5個(gè)電路參數(shù)分別為實(shí)現(xiàn)電路需要的 2輸入查找表的數(shù)目(n2),電路網(wǎng)表中觸發(fā)器之間的最大門(mén)數(shù)(d2),電路的輸入輸出數(shù)目(nio),電路中觸發(fā)器的數(shù)目(nDFF)以及線網(wǎng)數(shù)目(nnet)[9]。其中, n2,nio,nDFF和 nnet反映了應(yīng)用電路的規(guī)模,而 d2,nDFF和 nnet則表征了應(yīng)用電路的性能。本文基于VTR和MCNC兩個(gè)實(shí)驗(yàn)電路集中的25個(gè)電路來(lái)探索上述電路參數(shù)與電路實(shí)現(xiàn)的面積和延時(shí)的關(guān)系。表2列出各個(gè)電路參數(shù)與電路面積和延時(shí)之間的相關(guān)系數(shù)。從表2可以看出 n2與面積之間相關(guān)系數(shù)最大,d2與延時(shí)最相關(guān),而 nio對(duì)面積和延時(shí)的影響最小。此外, nnet與 nDFF也與面積密切相關(guān),其與 n2之間的相關(guān)系數(shù)分別為0.9989, 0.7893,這說(shuō)明nnet,nDFF與 n2不是相互獨(dú)立的。因此,在本文提出的建模方法中,使用兩個(gè)電路特性參數(shù) n2和 d2來(lái)表征一個(gè)電路。
n2與 d2反映了電路的規(guī)模和時(shí)序信息。從這兩個(gè)特性參數(shù)的定義上理解, n2的增大會(huì)使得電路面積增大,電路延時(shí)會(huì)隨 d2的增加而增加。圖3顯示了VTR各電路中面積、延時(shí)隨 n2, d2的變化趨勢(shì)。
表2 各電路參數(shù)與面積和延時(shí)之間的相關(guān)系數(shù)
圖2 FPGA架構(gòu)示意圖
圖3 VTR電路中 2n,2d與面積、延時(shí)的變化關(guān)系
本文中FPGA性能模型涉及的參數(shù),包括架構(gòu)和電路特性參數(shù)總結(jié)在表3中。
表3 FPGA性能模型參數(shù)
本節(jié)通過(guò)實(shí)驗(yàn)來(lái)驗(yàn)證本文方法的精確性、時(shí)效性和通用性。
本文使用VTR和MCNC兩個(gè)實(shí)驗(yàn)電路集中的電路進(jìn)行相關(guān)實(shí)驗(yàn)。由于規(guī)模較大,VTR工具運(yùn)行時(shí)間較長(zhǎng),兩個(gè)最大的電路 LU32PEEng和 mcml被排除VTR實(shí)驗(yàn)電路集之外。MCNC實(shí)驗(yàn)電路集中的電路規(guī)模普遍較小,因此從中選擇了8個(gè)最大的電路。使用ABC[15]來(lái)提取電路特性參數(shù)。表4列出了選用的17個(gè)VTR電路和8個(gè)MCNC電路的特性參數(shù)值。這些電路涵蓋了不同領(lǐng)域的典型應(yīng)用。本文采用VTR工具對(duì)電路在FPGA上實(shí)現(xiàn)的過(guò)程進(jìn)行模擬,獲得架構(gòu)和電路對(duì)應(yīng)的實(shí)現(xiàn)性能。
本文采用平均相對(duì)誤差(Mean Relative Error,MRE)作為評(píng)估指標(biāo)來(lái)評(píng)價(jià)本文方法的精確性。MRE定義見(jiàn)式(1)。其中, xi是通過(guò) VTR獲得的FPGA實(shí)現(xiàn)性能,而 x'i是通過(guò)本文方法獲得的性能模型預(yù)測(cè)得到的性能。tN代表測(cè)試集中測(cè)試項(xiàng)的數(shù)目。
表4 VTR和MCNC電路特性參數(shù)
使用本文方法進(jìn)行性能模型建模過(guò)程中,訓(xùn)練集的選擇決定了最終生成的性能模型。為使模型更加精確和通用,訓(xùn)練集應(yīng)該包含盡可能多的信息供學(xué)習(xí)算法進(jìn)行學(xué)習(xí)。對(duì)于FPGA架構(gòu)性能進(jìn)行建模,訓(xùn)練集即為FPGA架構(gòu)參數(shù)、電路特性參數(shù)和其相應(yīng)的性能的數(shù)值組合。因此,訓(xùn)練集中FPGA架構(gòu)參數(shù)和電路特性參數(shù)的數(shù)值選取應(yīng)該具有代表性和多樣性。以FPGA架構(gòu)參數(shù)中的查找表輸入數(shù)目K為例,K的取值范圍為[4,10],那么在選擇訓(xùn)練集時(shí),F(xiàn)PGA架構(gòu)參數(shù)中K值的選取不應(yīng)該集中于其取值范圍中的某一區(qū)域,防止訓(xùn)練得到的性能模型只能預(yù)測(cè)該區(qū)域附近K值的性能值,而不能精確預(yù)測(cè)其他值。其他模型參數(shù)的數(shù)值選擇也遵循此規(guī)則。
本實(shí)驗(yàn)首先通過(guò)VTR獲得了11個(gè)VTR電路在 6個(gè) FPGA架構(gòu)上的實(shí)現(xiàn)面積和延時(shí)作為訓(xùn)練集?;谠撚?xùn)練集使用本文方法學(xué)習(xí)FPGA實(shí)現(xiàn)面積和延時(shí)與其對(duì)應(yīng)的電路特性和架構(gòu)參數(shù)之間的關(guān)系。學(xué)習(xí)后構(gòu)建的面積/延時(shí)模型用于預(yù)測(cè)測(cè)試集中另外6個(gè)VTR電路在2個(gè)新的FPGA架構(gòu)上的實(shí)現(xiàn)性能。同時(shí),通過(guò) VTR獲得測(cè)試集中電路的實(shí)現(xiàn)性能。針對(duì)測(cè)試集中的電路和架構(gòu)組合,將本文方法構(gòu)建模型預(yù)測(cè)的性能與通過(guò) VTR獲得的實(shí)現(xiàn)性能進(jìn)行比較,計(jì)算兩者之間的MRE,檢驗(yàn)本文方法的預(yù)測(cè)精度。然后,減少訓(xùn)練集中本文方法學(xué)習(xí)的電路數(shù)目,觀察預(yù)測(cè)MRE的變化。
圖4展示了這一實(shí)驗(yàn)過(guò)程中MRE的變化過(guò)程。如圖所示,學(xué)習(xí)11個(gè)VTR電路的性能得到的FPGA性能模型進(jìn)行面積預(yù)測(cè)時(shí)MRE可達(dá)6.25%,延時(shí)預(yù)測(cè)時(shí)可達(dá)4.23%。SMT方法中不考慮電路特性(學(xué)習(xí)所有17個(gè)VTR電路的性能)預(yù)測(cè)面積和延時(shí)時(shí)的平均相對(duì)誤差分別為5.96%和2.70%[13]。本文方法與文獻(xiàn)[13]中方法預(yù)測(cè)精度可比擬。此外,當(dāng)學(xué)習(xí)的實(shí)驗(yàn)電路數(shù)目從10個(gè)降到7個(gè)時(shí),面積預(yù)測(cè)精度保持不變。并且當(dāng)學(xué)習(xí)的電路數(shù)目從11個(gè)降到7個(gè)時(shí),預(yù)測(cè)MRE僅從6.25%增長(zhǎng)到7.80%。這說(shuō)明通過(guò)使用本文方法可以減少學(xué)習(xí)的電路數(shù)目從而降低面積/延時(shí)模型建模過(guò)程的時(shí)間開(kāi)銷(xiāo),同時(shí)仍保持一定的預(yù)測(cè)精度。從圖4中還可以觀察到當(dāng)學(xué)習(xí)的實(shí)驗(yàn)電路數(shù)目從10降到9時(shí),MRE減少。這是因?yàn)檫@個(gè)移除的電路與測(cè)試電路差異較大,學(xué)習(xí)這個(gè)電路的性能從而構(gòu)建的性能模型會(huì)降低預(yù)測(cè)測(cè)試電路時(shí)的精度。當(dāng)只學(xué)習(xí)3個(gè)電路的性能來(lái)構(gòu)建面積/延時(shí)模型時(shí),預(yù)測(cè)測(cè)試電路時(shí)的 MRE驟增,這說(shuō)明學(xué)習(xí)的電路數(shù)目太少,不足以構(gòu)建一個(gè)精確的性能模型。
圖4 MRE隨學(xué)習(xí)的電路數(shù)目的變化趨勢(shì)
利用半監(jiān)督模型樹(shù)算法進(jìn)行FPGA性能建模的時(shí)間僅為1~5 min,探索FPGA架構(gòu)設(shè)計(jì)空間的時(shí)間成本主要在于通過(guò) VTR為學(xué)習(xí)算法提供帶有性能結(jié)果的FPGA架構(gòu),如式(2)所示。
其中,n和m分別代表需要學(xué)習(xí)的架構(gòu)和電路數(shù)目??偟臅r(shí)間成本tolT 為將m個(gè)電路在n個(gè)FPGA架構(gòu)上通過(guò)VTR實(shí)現(xiàn)的時(shí)間之和。
文獻(xiàn)[13]中方法在對(duì) FPGA架構(gòu)性能建模過(guò)程中沒(méi)有考慮電路參數(shù)的影響,該算法需要將實(shí)驗(yàn)電路集中的所有電路在一個(gè)FPGA架構(gòu)上實(shí)現(xiàn),取電路性能的幾何平均作為該FPGA架構(gòu)的性能。因此,對(duì)于文獻(xiàn)[13]中方法,時(shí)間成本中的 m為電路集的大小,并且文獻(xiàn)[13]中方法不能預(yù)測(cè)某個(gè)指定電路在FPGA上的實(shí)現(xiàn)性能。而本文方法通過(guò)構(gòu)建關(guān)于架構(gòu)參數(shù)和電路參數(shù)的FPGA性能模型,可以預(yù)測(cè)特定電路在特定FPGA架構(gòu)上的實(shí)現(xiàn)性能。
如表5所示,本文方法學(xué)習(xí)11個(gè)VTR電路(近似VTR電路集的2/3)構(gòu)建面積/延時(shí)性能模型預(yù)測(cè)性能時(shí)與文獻(xiàn)[13]學(xué)習(xí)所有17個(gè)VTR實(shí)驗(yàn)電路的建模方法預(yù)測(cè)性能的精度可比擬。學(xué)習(xí)7個(gè)電路(小于 1/2VTR電路集)性能構(gòu)建的面積模型預(yù)測(cè)精度只降低到文獻(xiàn)[13]中方法精度的92%。并且學(xué)習(xí)的電路數(shù)目從17減少到9個(gè)時(shí),延時(shí)預(yù)測(cè)的精度幾乎不變。
上述實(shí)驗(yàn)結(jié)果說(shuō)明在保證預(yù)測(cè)精度的前提下,學(xué)習(xí)的電路數(shù)目可至少減半。因此,對(duì)于本文方法,時(shí)間成本中的 m為實(shí)驗(yàn)電路集的一半。文獻(xiàn)[13]方法在Intel Xeon E7-4807上探索具有百萬(wàn)FPGA架構(gòu)的設(shè)計(jì)空間時(shí)需要 500 h,采用本文方法僅需要250 h。此外,學(xué)習(xí)的實(shí)驗(yàn)電路數(shù)目可以進(jìn)一步減少,這就需要在時(shí)間開(kāi)銷(xiāo)和預(yù)測(cè)精度之間進(jìn)行折中選擇。
表5 預(yù)測(cè)精度與時(shí)間開(kāi)銷(xiāo)隨學(xué)習(xí)的電路數(shù)目的變化趨勢(shì)
本文加入電路特性作為先驗(yàn)知識(shí)來(lái)構(gòu)建FPGA性能模型,所以獲得的性能模型能夠精確預(yù)測(cè)新的電路的實(shí)現(xiàn)性能。這一節(jié)進(jìn)行兩組相關(guān)實(shí)驗(yàn)來(lái)驗(yàn)證本文方法的通用性。
在第1組實(shí)驗(yàn)中,基于訓(xùn)練集中2個(gè)VTR電路在8個(gè)架構(gòu)上的實(shí)現(xiàn)性能,構(gòu)建性能模型來(lái)預(yù)測(cè)測(cè)試集中另外一個(gè)VTR電路在相同8個(gè)架構(gòu)上的實(shí)現(xiàn)性能。使用上述流程測(cè)試了預(yù)測(cè)每一個(gè) VTR電路性能的預(yù)測(cè)精度。在第2組實(shí)驗(yàn)中,基于2個(gè)VTR電路在8個(gè)架構(gòu)上的實(shí)現(xiàn)性能,構(gòu)建性能模型來(lái)預(yù)測(cè)MCNC電路集中的電路在相同8個(gè)架構(gòu)上的實(shí)現(xiàn)性能。
圖 5顯示了本文方法在預(yù)測(cè) VTR(圖 5(a))和MCNC(圖 5(b))中每個(gè)電路時(shí)預(yù)測(cè)性能與實(shí)際性能之間的平均相對(duì)誤差??梢?jiàn),在預(yù)測(cè) VTR電路的面積和延時(shí)時(shí),除個(gè)別電路外,預(yù)測(cè)MRE在10%左右。然而在預(yù)測(cè)ch_intrinsics和stereovision3這兩個(gè)電路的面積, 以及在預(yù)測(cè) LU8PEEng和stereovision2這兩個(gè)電路的延時(shí)時(shí),預(yù)測(cè)結(jié)果不精確。如表 4所示,這是因?yàn)樵?VTR電路集中stereovision3電路的2n值最小,stereovision2的2n最大。類(lèi)似地,ch_intrinsics的2d是最小的而LU8PEEng的2d是最大的。這4個(gè)電路體現(xiàn)了VTR電路集中2n和2d特性參數(shù)的4個(gè)極端值,沒(méi)有合適的電路去學(xué)習(xí)來(lái)表征這4個(gè)電路的性能。結(jié)果,獲得的面積/延時(shí)模型對(duì)于這些電路來(lái)說(shuō)不是足夠精確。因此,為使最終的性能模型足夠精確,所選取的待學(xué)習(xí)電路的特性需要有代表性。在用學(xué)習(xí)VTR電路性能構(gòu)建的性能模型預(yù)測(cè) MCNC電路的性能時(shí),最大的平均相對(duì)誤差不超過(guò)13%,證明了本文提出的基于電路特性的建模方法可以較好地預(yù)測(cè)新電路的性能,提供了一個(gè)通用的性能建模方法。
圖5 預(yù)測(cè)來(lái)自不同電路集的電路性能時(shí)本文方法的MRE
本文采用的半監(jiān)督模型樹(shù)算法最終生成一個(gè)關(guān)于FPGA架構(gòu)和電路特性參數(shù)的顯示性能模型。該模型能反映出電路特性對(duì)性能的影響趨勢(shì)。
圖 6為使用本文方法生成的面積(圖 6(a))和延時(shí)(圖6(b))性能模型示例。如圖所示,面積模型中2n和延時(shí)模型中2d的系數(shù)均為正,說(shuō)明在相同F(xiàn)PGA架構(gòu)上(模型中FPGA架構(gòu)參數(shù)相同時(shí)),面積和延時(shí)隨電路參數(shù)2n和2d正比例增長(zhǎng),這與圖3實(shí)驗(yàn)分析得到的趨勢(shì)一致。因此,本文方法能對(duì)電路參數(shù)的影響進(jìn)行良好的預(yù)測(cè)。
在表1呈現(xiàn)的半監(jiān)督模型樹(shù)算法中,主要有兩個(gè)參數(shù)1L和2L,代表了建模過(guò)程中兩個(gè)模型樹(shù)上葉端存在的最小樣本數(shù)目。上述實(shí)驗(yàn)使用了這兩個(gè)參數(shù)的經(jīng)驗(yàn)值。本實(shí)驗(yàn)改變這兩個(gè)參數(shù)的數(shù)值并觀察MRE的變化。
圖6 面積、延時(shí)模型樹(shù)
表6呈現(xiàn)了變化的L 值對(duì)MRE的影響??梢?jiàn),當(dāng)這兩個(gè)參數(shù)取相同值時(shí),預(yù)測(cè)精度通常較差。因?yàn)閮蓚€(gè)模型樹(shù)之間的相似性使得他們?yōu)楸舜颂暨x相似的未標(biāo)記樣本。一旦挑選了一個(gè)不合適的樣本,誤差就會(huì)循環(huán)累積,最終導(dǎo)致一個(gè)不是十分精確的性能模型產(chǎn)生。此外,當(dāng)兩個(gè)參數(shù)數(shù)值都較小時(shí),預(yù)測(cè)精度也不高。這是因?yàn)槟P蜆?shù)葉端較少的樣本數(shù)目使得性能模型過(guò)于精細(xì),也就是說(shuō)獲得的性能模型在擬合訓(xùn)練樣本時(shí)產(chǎn)生了過(guò)擬合的現(xiàn)象,這在一定程度上降低了預(yù)測(cè)測(cè)試樣本的精度,尤其當(dāng)測(cè)試樣本與訓(xùn)練樣本特性相差較大時(shí)。
本文呈現(xiàn)了一個(gè)電路特性驅(qū)動(dòng)的FPGA架構(gòu)性能半監(jiān)督建模方法。該方法通過(guò)學(xué)習(xí)電路特性與實(shí)現(xiàn)性能之間的關(guān)系來(lái)構(gòu)建FPGA性能模型。本文方法不需要獲得所有應(yīng)用電路在FPGA架構(gòu)上的實(shí)現(xiàn)性能就可構(gòu)建一個(gè)精確且通用的性能模型,加快了FPGA性能建模及架構(gòu)設(shè)計(jì)探索過(guò)程。實(shí)驗(yàn)結(jié)果顯示該方法能以6.25%的MRE預(yù)測(cè)FPGA性能,并可將具有百萬(wàn)架構(gòu)的 FPGA設(shè)計(jì)空間探索時(shí)間由500 h降低為250 h。此外,本文方法不局限于只對(duì)基于LUT結(jié)構(gòu)的FPGA性能進(jìn)行建模,未來(lái)工作將對(duì)基于新型邏輯結(jié)構(gòu)的FPGA性能建模,如基于與非錐結(jié)構(gòu)的FPGA[16]。
表6 L值對(duì)MRE的影響
[1] Luu J, Goeders J, Wainberg M, et al.. VTR 7.0: next generation architecture and CAD system for FPGAs[J].ACM Transactions on Reconfigurable Technology and Systems, 2014, 7(2): 6:1-6:30.
[2] Marquardt A, Betz V, and Rose J. Speed and area tradeoffs in cluster-based FPGA architectures[J]. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 2000, 8(1):84-93.
[3] Ahmed E and Rose J. The effect of LUT and cluster size on deep-submicron FPGA performance and density[J]. IEEE Transactions on Very Large Scale Integration (VLSI) Systems,2004, 12(3): 288-298.
[4] Jiang Zheng-hong, Lin C Y, Yang Li-qun, et al.. Exploring architecture parameters for dual-output LUT based FPGAs[C]. Proceedings of the 24th International Conference on Field Programmable Logic and Applications, Munich,Germany, 2014: 1-6.
[5] Betz V, Rose J, and Marquardt A. Architecture and CAD for Deep-Submicron FPGAs [M]. Netherlands, Kluwer Academic Publishers, 1999: 15-20.
[6] Gao Hai-xia, Yang Yin-tang, Ma Xiao-hua, et al.. Analysis of the effect of LUT size on FPGA area and delay using theoretical derivations[C]. Proceedings of the 6th International Symposium on Quality of Electronic Design,San Jose, CA, USA, 2005: 370-374.
[7] Smith A, Wilton S, and Das J. Wirelength modeling for homogeneous and heterogeneous FPGA architectural development[C]. Proceedings of the 17th ACM/SIGDA international symposium on Field programmable gate arrays,Monterey, CA, USA, 2009: 181-190.
[8] Das J, Lam A, Wilton S, et al.. An analytical model relating FPGA architecture to logic density and depth[J]. IEEE Transactions on Very Large Scale Integration (VLSI) Systems,2011, 19(12): 2229-2242.
[9] Smith A, Constantinides G, and Cheung P. FPGA architecture optimization using geometric programming[J].IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2010, 29(8): 1163-1176.
[10] Pandurangaiah Y, Reddy V, and Chakravarthy K.Area-delay estimation by concurrent optimization of FPGA architecture parameters using geometric programming[J].International Journal of Computer Applications, 2013, 82(18):4-11.
[11] Mehri H and Alizadeh B. An analytical dynamic and leakage power model for FPGAs[C]. Proceedings of the 22nd Iranian Conference on Electrical Engineering (ICEE), Tehran, 2014:300-305.
[12] Leow Yoon-kah. Post-routing analytical models for homogeneous FPGA architectures[D]. [Ph. D. dissertation],The University of Arizona, 2013.
[13] Yang Li-qun, Yang Hai-gang, Li Wei, et al.. A semi-supervised modeling approach for performance characterization of FPGA architectures[C]. Proceedings of the 24th International Conference on Field Programmable Logic and Applications, Munich, Germany, 2014: 1-6.
[14] Wang Y and Witten I H. Inducing model trees for continuous classes[C]. Proceedings of the Ninth European Conference on Machine Learning, Prague, Czech Republic, 1997: 128-137.
[15] Brayton R and Mishchenko A. ABC: an academic industrial-strength verification tool[J]. Computer Aided Verification, 2010, 6174: 24-40.
[16] Zgheib G, Yang Li-qun, Huang Zhi-hong, et al.. Revisiting and-inverter cones[C]. Proceedings of the 2014 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays, Monterey, CA, USA, 2014: 45-54.