【導(dǎo)讀】對(duì)FPGA工程師而言,耗費(fèi)數(shù)月精力做出的設(shè)計(jì)卻無(wú)法滿足時(shí)序要求,這是一件令人相當(dāng)郁悶的事情。統(tǒng)設(shè)計(jì)流程,受限于工程師的經(jīng)驗(yàn),因?yàn)樾薷臅r(shí)很可能會(huì)引入新的Bug,或者在解決了一條關(guān)鍵路徑的時(shí)序問(wèn)題時(shí),影響到另外一條關(guān)鍵路徑等等,因此并不高效。
對(duì)FPGA工程師而言,耗費(fèi)數(shù)月精力做出的設(shè)計(jì)卻無(wú)法滿足時(shí)序要求,這是一件令人相當(dāng)郁悶的事情。一般來(lái)說(shuō),解決時(shí)序問(wèn)題的方式無(wú)非是修改設(shè)計(jì)源代碼,并手動(dòng)進(jìn)行優(yōu)化。這樣的傳統(tǒng)設(shè)計(jì)流程,受限于工程師的經(jīng)驗(yàn),因?yàn)樾薷臅r(shí)很可能會(huì)引入新的Bug,或者在解決了一條關(guān)鍵路徑的時(shí)序問(wèn)題時(shí),影響到另外一條關(guān)鍵路徑等等,因此并不高效,甚至是徒勞無(wú)益的。對(duì)于已有的優(yōu)秀設(shè)計(jì)實(shí)現(xiàn),并沒(méi)有相應(yīng)機(jī)制確保這些經(jīng)驗(yàn)?zāi)軌驊?yīng)用到下一次設(shè)計(jì)中,這對(duì)公司來(lái)說(shuō)是個(gè)極大的浪費(fèi)。
Plunify 工程師對(duì)FPGA設(shè)計(jì)流程的諸多挑戰(zhàn)感同身受,基于多年的行業(yè)經(jīng)驗(yàn)開(kāi)發(fā)了FPGA設(shè)計(jì)優(yōu)化專家---InTime。InTime結(jié)合大數(shù)據(jù)分析和人工智能,使得工程師可以調(diào)動(dòng)海量服務(wù)器級(jí)別的資源來(lái)改善設(shè)計(jì),而不僅是傳統(tǒng)的計(jì)算能力有限的單一計(jì)算機(jī)。這極大地增強(qiáng)了每個(gè)工程師的設(shè)計(jì)實(shí)現(xiàn)和解決問(wèn)題的能力,使其能夠關(guān)注于設(shè)計(jì)大局,而不是止步于代碼修改。憑借“InTime”這一開(kāi)創(chuàng)性軟件,Plunify公司也順利成為了Altera全球合作伙伴中的一員。
那么InTime到底是一款怎樣的設(shè)計(jì)軟件呢?據(jù)張偉雄介紹,InTime其實(shí)是一個(gè)針對(duì)FPGA綜合與布局布線問(wèn)題的專家軟件,它的獨(dú)特價(jià)值在于,可以自動(dòng)尋找不同的
工具參數(shù)設(shè)置組合,搜索最優(yōu)解決方案,在無(wú)需修改RTL代碼的前提下,即可滿足時(shí)序要求。
InTime:為FPGA時(shí)序設(shè)計(jì)量身打造的優(yōu)化軟件
隨著大型器件的普及和設(shè)計(jì)功能復(fù)雜度的變化,滿足時(shí)序要求變得更加困難,這不僅延長(zhǎng)了產(chǎn)品上市周期、也增加了開(kāi)發(fā)成本,包括人力資源成本。 Plunify公司的聯(lián)合創(chuàng)始人張偉雄先生指出:“Altera認(rèn)可我們的產(chǎn)品也是基于這個(gè)考慮:能夠幫助客戶更快、更好的地完成設(shè)計(jì)。例如在設(shè)計(jì)收尾階段,用戶會(huì)面臨來(lái)自項(xiàng)目進(jìn)度的巨大壓力。而InTime自身的優(yōu)勢(shì)使其能助用戶一臂之力。”
張偉雄表示,InTime內(nèi)置了很高的智能,它會(huì)從宏觀的角度來(lái)檢查設(shè)計(jì),并理解設(shè)計(jì)結(jié)果、FPGA器件和工具參數(shù)之間的互相關(guān)系,而不僅僅局限于設(shè)計(jì)的關(guān)鍵路徑。首先,InTime會(huì)理解設(shè)計(jì)特點(diǎn),例如設(shè)計(jì)類型,然后采用正確的FPGA工具設(shè)置組合,這些組合也稱為“ 策略” , 是InTime 融合了機(jī)器學(xué)習(xí)和大數(shù)據(jù)分析算法而生成的。策略能協(xié)助設(shè)計(jì)師解決問(wèn)題,讓項(xiàng)目實(shí)現(xiàn)最好的結(jié)果。
張偉雄進(jìn)一步指出,InTime安裝快速、使用方便。“InTime支持業(yè)界通用的LSF(負(fù)載共享系統(tǒng))、SGE(Sun Grid 引擎)等。此外,大型工作站互聯(lián)網(wǎng)絡(luò)通常十分繁忙,需要一個(gè)機(jī)制來(lái)確保任何一個(gè)程序的運(yùn)行不會(huì)占用過(guò)多的資源。作為InTime主程序的助手,InTime Agent插件能幫助實(shí)現(xiàn)這一目標(biāo)。Agent負(fù)責(zé)協(xié)調(diào)服務(wù)器計(jì)算資源,分配作業(yè)并監(jiān)測(cè)運(yùn)行情況,定時(shí)上報(bào)各工人服務(wù)器工作狀態(tài)供主服務(wù)器決策。比如若主服務(wù)器發(fā)現(xiàn)某個(gè)工人服務(wù)器CPU利用率較高,便不再繼續(xù)分配新作業(yè)。”
業(yè)界首次把大數(shù)據(jù)分析和人工智能結(jié)合應(yīng)用到芯片設(shè)計(jì)領(lǐng)域
張偉雄強(qiáng)調(diào),InTime之所以能夠做到根據(jù)項(xiàng)目特點(diǎn)推薦最佳的工具參數(shù)組合,除了利用機(jī)器學(xué)習(xí)的功能外,大數(shù)據(jù)分析同樣起到了至關(guān)重要的作用。這也是業(yè)界首次將大數(shù)據(jù)分析和人工智能結(jié)合應(yīng)用到芯片設(shè)計(jì)領(lǐng)域的案例。采用大數(shù)據(jù)分析的優(yōu)點(diǎn)在于,項(xiàng)目產(chǎn)生的數(shù)據(jù)量越多,InTime越能從中找出有利于設(shè)計(jì)的策略。目前,InTime 的數(shù)據(jù)庫(kù)已累積了超過(guò)4萬(wàn)個(gè)小時(shí)的測(cè)試經(jīng)驗(yàn)。利用從不同的設(shè)計(jì)學(xué)到的經(jīng)驗(yàn),InTime不只能推薦最優(yōu)越的策略,還會(huì)從新的編譯結(jié)果學(xué)習(xí),不斷地自我改良。InTime 不像“掃種子”,它產(chǎn)生的結(jié)果并不是隨機(jī)的或不相關(guān)。InTime會(huì)自動(dòng)整理不同的結(jié)果,然后分析為一體。 這就是說(shuō)下次的編譯作業(yè),InTime會(huì)推薦適當(dāng)?shù)膮?shù)組合,基于之前的結(jié)果分析。
“另外,InTime可以在多種IT環(huán)境下靈活布署。根據(jù)用戶計(jì)算資源的不同,布署類型包括:1、Linux工作站 ;2、本地PC機(jī) ;3、Linux工作站 +本地PC機(jī)等三類情況。這使得用戶能夠充分利用現(xiàn)有的計(jì)算資源來(lái)改善設(shè)計(jì),避免額外的投入。”張偉雄補(bǔ)充道。
優(yōu)化設(shè)計(jì)的最高頻率
作為設(shè)計(jì)出身的創(chuàng)始人,張偉雄先生對(duì)于工程師朋友的需求可以說(shuō)得上是了若指掌。他指出,F(xiàn)PGA 工程師期待能利用現(xiàn)有的器件,提高設(shè)計(jì)頻率,以達(dá)到更為卓越的時(shí)序特性。對(duì)此,InTime依靠機(jī)器計(jì)算能力彌補(bǔ)人為經(jīng)驗(yàn)的不足。設(shè)計(jì)者可以在已達(dá)到時(shí)序要求的工程上手動(dòng)調(diào)高設(shè)計(jì)頻率,InTime會(huì)嘗試不同的編譯策略組合,尤其是那些與設(shè)計(jì)頻率關(guān)系密切的編譯選項(xiàng),諸如流水線優(yōu)化等,根據(jù)海量的編譯結(jié)果分析,結(jié)合數(shù)據(jù)庫(kù)知識(shí),不斷優(yōu)化組合,直到達(dá)到設(shè)定的時(shí)序目標(biāo)。相比于修改代碼,更換更高等級(jí)的器件等方式,高效而且極大降低解決問(wèn)題的的復(fù)雜度。