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