北京大學(xué)+北京微電子技術(shù)研究所最新綜述:當(dāng)機(jī)器學(xué)習(xí)遇見EDA | 《電子與信息學(xué)報(bào)》佳文速遞

來(lái)自北京大學(xué)與北京微電子技術(shù)研究所的研究團(tuán)隊(duì)在《電子與信息學(xué)報(bào)》發(fā)表最新綜述文章:
基于機(jī)器學(xué)習(xí)的FPGA電子設(shè)計(jì)自動(dòng)化技術(shù)研究綜述>>
文章討論了機(jī)器學(xué)習(xí)技術(shù)在FPGA中的應(yīng)用,涉及到高層次綜合、邏輯綜合及布局布線等多個(gè)層面。
審稿專家意見:該選題有較高的價(jià)值,對(duì)于后續(xù)學(xué)術(shù)研究和應(yīng)用均有一定幫助,通過(guò)閱讀這篇論文能對(duì)機(jī)器學(xué)習(xí)在FPGA自動(dòng)化應(yīng)用上有整體的了解;且FPGA與當(dāng)前熱門的機(jī)器學(xué)習(xí)相結(jié)合,對(duì)FPGA的智能化發(fā)展具有一定的指導(dǎo)作用。
引 言
隨著硅工藝發(fā)展接近物理極限,用來(lái)刻畫工藝演進(jìn)速度的摩爾定律也開始被打破,半導(dǎo)體行業(yè)迎來(lái)了后摩爾時(shí)代。然而集成電路芯片產(chǎn)業(yè)并沒(méi)有因此而停滯發(fā)展,現(xiàn)場(chǎng)可編程門陣列(Field Programmable Gate Array, FPGA)由于所具有的高度靈活、可定制以及支持高并發(fā)等特性,被廣泛應(yīng)用于后摩爾時(shí)代的各個(gè)領(lǐng)域。
與此同時(shí),為了能夠適應(yīng)更加復(fù)雜的電路系統(tǒng),F(xiàn)PGA芯片的集成度也在不斷增大,從最初只包含有幾千個(gè)邏輯門的單功能芯片發(fā)展到了現(xiàn)今集成了數(shù)據(jù)信號(hào)處理(Digital Signal Processing, DSP)單元、塊隨機(jī)存取存儲(chǔ)器(Block Random Access Memory, BRAM)以及多核微處理器的片上系統(tǒng),F(xiàn)PGA芯片的集成度增加了數(shù)萬(wàn)倍。
如此高的芯片集成度使得手動(dòng)進(jìn)行電路設(shè)計(jì)已經(jīng)不現(xiàn)實(shí),開發(fā)設(shè)計(jì)人員更加依賴于電子設(shè)計(jì)自動(dòng)化(Electronic Design Automation, EDA)工具對(duì)FPGA數(shù)字集成電路進(jìn)行設(shè)計(jì)。
但隨著FPGA芯片規(guī)模的不斷增大以及片上設(shè)計(jì)復(fù)雜度的不斷提升,例如,AMDXilinx發(fā)布的Virtex Ultra Scale+VU19P FPGA,其包含900萬(wàn)個(gè)邏輯單元以及近350億個(gè)晶體管,而Intel發(fā)布的Stratix10 GX 10M FPGA,更是包含了1020萬(wàn)個(gè)邏輯單元以及近430億個(gè)晶體管,基于傳統(tǒng)的分析和優(yōu)化的FPGA EDA技術(shù)越來(lái)越難以應(yīng)對(duì)大規(guī)模電路設(shè)計(jì)空間探索和算法求解復(fù)雜度問(wèn)題,亟需探索以機(jī)器學(xué)習(xí)為代表的智能化EDA技術(shù),大幅提升設(shè)計(jì)實(shí)現(xiàn)效率。
可喜的是,國(guó)內(nèi)外學(xué)者針對(duì)基于機(jī)器學(xué)習(xí)方法的FPGA EDA技術(shù)的研究已經(jīng)取得了具有前瞻性的研究成果和進(jìn)展。來(lái)自北京大學(xué)與北京微電子技術(shù)研究所的田春生博士后研究團(tuán)隊(duì)在《電子與信息學(xué)報(bào)》發(fā)表最新綜述文章《基于機(jī)器學(xué)習(xí)的FPGA電子設(shè)計(jì)自動(dòng)化技術(shù)研究綜述》。
文章分析梳理了近年來(lái)應(yīng)用機(jī)器學(xué)習(xí)解決FPGA EDA中一些關(guān)鍵問(wèn)題的研究成果,對(duì)FPGA EDA和機(jī)器學(xué)習(xí)的背景知識(shí)進(jìn)行了簡(jiǎn)要概述,調(diào)研了機(jī)器學(xué)習(xí)在FPGA EDA流程不同階段應(yīng)用的研究現(xiàn)狀,即高層次綜合(High Level Synthesis, HLS)、邏輯綜合、布局以及布線,在此基礎(chǔ)上對(duì)機(jī)器學(xué)習(xí)未來(lái)在FPGAEDA技術(shù)中的應(yīng)用進(jìn)行了展望。
FPGA EDA技術(shù)概述
作為FPGA芯片設(shè)計(jì)、應(yīng)用過(guò)程中不可或缺的重要組成部分,在過(guò)去的30余年中,F(xiàn)PGA EDA的設(shè)計(jì)流程變得越來(lái)越規(guī)范且復(fù)雜,具體包括高層次綜合(HighLevel Synthesis, HLS)、邏輯綜合、布局、布線以及碼流生成,如圖1所示。
圖1 FPGA EDA基本流程
HLS是指將高層次語(yǔ)言描述的邏輯結(jié)構(gòu)自動(dòng)轉(zhuǎn)換成低抽象級(jí)語(yǔ)言描述的電路模型的過(guò)程,即HLS能夠?qū)、C++、SystemC等具有較高的抽象度、且不具備時(shí)鐘或時(shí)序概念的高層次語(yǔ)言自動(dòng)轉(zhuǎn)化為Verilog、VHDL、System Verilog等低層次語(yǔ)言。
由于Verilog、VHDL、System Verilog能夠用來(lái)描述時(shí)鐘周期精確的寄存器傳輸級(jí)(Register Transfer Level, RTL)電路模型,是當(dāng)前FPGA設(shè)計(jì)中最為普遍適用的電路建模與描述方式。
HLS技術(shù)的應(yīng)用可以提高設(shè)計(jì)速度、縮短設(shè)計(jì)周期,方便設(shè)計(jì)者在系統(tǒng)級(jí)進(jìn)行設(shè)計(jì)方案的探索、在算法級(jí)對(duì)設(shè)計(jì)進(jìn)行優(yōu)化。
邏輯綜合能夠?qū)DL文件轉(zhuǎn)換為描述指定FPGA器件上不同邏輯單元連接關(guān)系的網(wǎng)表文件,需要指出的是,網(wǎng)表中的連接關(guān)系只是邏輯連接,即邏輯綜合工具只是給出了所需實(shí)現(xiàn)的設(shè)計(jì)的一個(gè)“草圖”,這個(gè)“草圖”最終需要由FPGA芯片中可用的邏輯資源來(lái)實(shí)現(xiàn)。邏輯綜合是一個(gè)非常復(fù)雜的過(guò)程,通常情形下只能通過(guò)啟發(fā)式方法來(lái)得到一個(gè)次優(yōu)的解決方案。
布局是指在一定的約束條件下(例如,線長(zhǎng)、時(shí)延、功耗以及面積等),將邏輯綜合過(guò)程得到的電路網(wǎng)表中的邏輯單元與實(shí)際FPGA芯片中的物理位置建立一對(duì)一映射的過(guò)程。布局作為FPGA EDA流程中的關(guān)鍵環(huán)節(jié),同時(shí)也是FPGA編譯過(guò)程中最耗時(shí)的步驟之一。
由于FPGA中的布線資源都是預(yù)置的、且容量有限,一旦布局算法的解需要過(guò)多的布線資源,后續(xù)的布線過(guò)程將會(huì)失敗或是需要很長(zhǎng)的時(shí)間才會(huì)得到一個(gè)可行的布線解決方案,因此,一個(gè)好的布局解決方案對(duì)于FPGA EDA的工作流程至關(guān)重要。
布線能夠在保證資源合法使用的前提下,通過(guò)配置FPGA芯片中的可編程開關(guān),從而通過(guò)利用硬連線資源連通電路線網(wǎng)中所有的邏輯連接。與此同時(shí),為了保證最終在FPGA芯片實(shí)現(xiàn)后的電路設(shè)計(jì)中的邏輯信號(hào)的正常傳輸,不同線網(wǎng)間的邏輯連接不能夠共享相同的硬連線資源。
執(zhí)行完布線操作后,便可以生成二進(jìn)制的碼流文件,將其下載到芯片內(nèi)部,最終完成FPGA的配置流程。
得益于學(xué)術(shù)界和工業(yè)界30余年的努力,F(xiàn)PGA芯片的設(shè)計(jì)流程得到了很好的發(fā)展。然而,隨著FPGA芯片規(guī)模的不斷增長(zhǎng),亟需引入更加高效的設(shè)計(jì)方法來(lái)降低設(shè)計(jì)成本、提升設(shè)計(jì)效率以及QoR。
近年來(lái),機(jī)器學(xué)習(xí)技術(shù)的飛速發(fā)展為解決上述問(wèn)題提供了一個(gè)全新的視角。本文綜述了機(jī)器學(xué)習(xí)技術(shù)在FPGA EDA HLS、邏輯綜合、布局、布線等流程中的應(yīng)用情況,并對(duì)發(fā)展趨勢(shì)進(jìn)行了總結(jié),希冀為未來(lái)FPGA EDA技術(shù)的發(fā)展起到一定促進(jìn)作用。
研究進(jìn)展
高層次綜合技術(shù)
為了提高設(shè)計(jì)效率并向更廣泛的用戶群體推廣FPGA,高層次綜合工具應(yīng)運(yùn)而生。高層次綜合工具接受高級(jí)語(yǔ)言(例如C、C++以及SystemC)作為輸入,能夠?qū)⑵渥詣?dòng)轉(zhuǎn)換為Verilog或VHDL等形式的硬件描述語(yǔ)言。
但隨著片上設(shè)計(jì)復(fù)雜度的不斷提升,如何在保證HLS工具輸出結(jié)果質(zhì)量的同時(shí)減少HLS所需花費(fèi)的時(shí)間、提升設(shè)計(jì)空間的探索效率是現(xiàn)階段迫切需解決的關(guān)鍵問(wèn)題。
機(jī)器學(xué)習(xí)技術(shù)的引入為解決上述問(wèn)題提供了一種新的思路。機(jī)器學(xué)習(xí)技術(shù)在HLS中的應(yīng)用主要包括性能評(píng)估以及設(shè)計(jì)空間的探索等兩方面,具體如表1所示。
[28] DAI S, ZHOU Yuan, ZHANG Hang, et al. Fast and accurate estimation of quality of results in high-level synthesis with machine learning[C]. The 26th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM), Boulder, USA, 2018: 129–132. doi: 10.1109/FCCM.2018.00029.
[29] MAKRANI H M, FARAHMAND F, SAYADI H, et al. Pyramid: Machine learning framework to estimate the optimal timing and resource usage of a high-Level synthesis design[C]. The 29th International Conference on Field Programmable Logic and Applications (FPL), Barcelona, Spain, 2019: 397–403. doi: 10.1109/FPL.2019.00069.
[30] FARAHMAND F, FEROZPURI A, DIEHL W, et al. Minerva: Automated hardware optimization tool[C]. 2017 International Conference on ReConFigurable Computing and FPGAs (ReConFig), Cancun, Mexico, 2017: 1–8. doi: 10.1109/RECONFIG.2017.8279804.
[31] USTUN E, DENG Chenhui, PAL D, et al. Accurate operation delay prediction for FPGA HLS using graph neural networks[C]. The 39th International Conference on Computer-Aided Design, San Diego, USA, 2020: 87. doi: 10.1145/3400302.3415657..
[32] MAKRANI H M, SAYADI H, MOHSENIN T, et al. XPPE: Cross-platform performance estimation of hardware accelerators using machine learning[C]. The 24th Asia and South Pacific Design Automation Conference, Tokyo, Japan, 2019: 727–732. doi: 10.1145/3287624.3288756.
[33] O’NEAL K, LIU M, TANG H, et al. HLSPredict: Cross platform performance prediction for FPGA high-level synthesis[C]. 2018 IEEE/ACM International Conference on Computer-Aided Design (ICCAD), San Diego, USA, 2018:1–8. doi: 10.1145/3240765.3240816.
[34] LIU Dong and SCHAFER B C. Efficient and reliable High-Level Synthesis design space explorer for FPGAs[C]. The 26th International Conference on Field Programmable Logic and Applications (FPL), Lausanne, Switzerland, 2016: 1–8.doi: 10.1109/FPL.2016.7577370.
[35] LIU H Y and CARLONI L P. On learning-based methods for design-space exploration with high-level synthesis[C]. Proceedings of the 50th Annual Design Automation Conference, Austin, USA, 2013: 50. doi: 10.1145/2463209.2488795.
[36] MENG Pingfan, ALTHOFF A, GAUTIER Q, et al. Adaptive threshold non-pareto elimination: Re-thinking machine learning for system level design space exploration on FPGAs[C]. 2016 Design, Automation & Test in Europe Conference & Exhibition (DATE), Dresden, Germany, 2016:918–923. doi: 10.3850/9783981537079_0350.
邏輯綜合技術(shù)
邏輯綜合是一個(gè)具有復(fù)雜約束條件的優(yōu)化問(wèn)題,需要精確的求解才能夠保證后續(xù)設(shè)計(jì)流程的準(zhǔn)確性。
使用機(jī)器學(xué)習(xí)算法來(lái)直接生成邏輯綜合的解決方案是非常困難的,現(xiàn)階段機(jī)器學(xué)習(xí)算法的主要應(yīng)用是用來(lái)調(diào)度一些已有的優(yōu)化策略。
例如,Lau等人[37]提出了一種人工智能驅(qū)動(dòng)的邏輯綜合架構(gòu):LSOracle,LSOracle中集成了與非圖(And-Inverter Graph, AIG)和表決器非圖(Major-Inverter Graph, MIG)兩種優(yōu)化器,首先使用k劃分的方法將電路的有向無(wú)環(huán)圖(Directed Acyclic Graph, DAG)劃分為k個(gè)部分,在此基礎(chǔ)上,依靠深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network, DNN)來(lái)動(dòng)態(tài)決定將哪個(gè)優(yōu)化器應(yīng)用于電路的不同部分。
最終實(shí)驗(yàn)結(jié)果表明,與單獨(dú)使用AIG優(yōu)化器和DAG優(yōu)化器相比較,LSOracle在面積-時(shí)延方面的性能平均提升了6.87%和2.70%。
當(dāng)前的綜合工具(例如,加州大學(xué)伯克利分校開發(fā)的ABC工具)中包含有許多邏輯轉(zhuǎn)換的流程[38],為了選擇一個(gè)合適的流程,Yu等人[39]提出了一種完全自動(dòng)化的邏輯綜合架構(gòu),該架構(gòu)以待綜合的HDL代碼作為輸入,輸出為兩組不同的邏輯綜合流程:即“天使流程”(Angel-flows)和“魔鬼流程”(Devil-flows),它們分別對(duì)應(yīng)了設(shè)計(jì)目標(biāo)的最佳和最差的結(jié)果質(zhì)量(QoR)。
該問(wèn)題被建模為一個(gè)多分類問(wèn)題并使用基于卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)的分類器進(jìn)行求解。其主要思想是用一小組經(jīng)過(guò)標(biāo)記的隨機(jī)的邏輯綜合的流程來(lái)訓(xùn)練一個(gè)CNN的分類器,此處所提到的不同的邏輯綜合流程的標(biāo)簽是通過(guò)一個(gè)或多個(gè)不同QoR的指標(biāo)進(jìn)行標(biāo)記的,例如時(shí)延、面積以及功率等。經(jīng)過(guò)訓(xùn)練后的分類器便可以用來(lái)預(yù)測(cè)未被標(biāo)記的邏輯綜合的流程。
最后,通過(guò)對(duì)預(yù)測(cè)置信度(即屬于某個(gè)類別的概率)進(jìn)行排序來(lái)生成“天使流”與“魔鬼流”。整個(gè)架構(gòu)的具體流程如圖2所示。Wu等人[40]提出了一種基于混合圖神經(jīng)網(wǎng)絡(luò)的優(yōu)化方法,針對(duì)邏輯綜合的流程進(jìn)行優(yōu)化,以提升結(jié)果質(zhì)量的評(píng)估以及優(yōu)化方法的泛化能力。其關(guān)鍵思想在于同時(shí)利用來(lái)自硬件設(shè)計(jì)和邏輯綜合流程的時(shí)空信息來(lái)預(yù)測(cè)不同設(shè)計(jì)上各種不同綜合流程的性能指標(biāo),最終的實(shí)驗(yàn)結(jié)果也表明利用混合圖神經(jīng)網(wǎng)絡(luò)的優(yōu)化方法在誤差精度是現(xiàn)有方法的7~15倍。
圖2 自動(dòng)化邏輯綜合架構(gòu)
除了上述工作外,也有研究學(xué)者提出使用強(qiáng)化學(xué)習(xí)(Reinforcement Learning, RL)方法來(lái)優(yōu)化邏輯綜合的流程。
例如在文獻(xiàn)[42]中,圖卷積網(wǎng)絡(luò)(Graph Convolutional Network, GCN)被用作策略函數(shù)來(lái)獲取每個(gè)動(dòng)作的概率。文獻(xiàn)[43]則采用無(wú)監(jiān)督的優(yōu)勢(shì)演員-評(píng)論家(AdvantageActor Critic, A2C)機(jī)制來(lái)搜索最佳的解決方案。
寧波大學(xué)儲(chǔ)著飛老師團(tuán)隊(duì)提出了一種基于強(qiáng)化學(xué)習(xí)的近端策略優(yōu)化方法來(lái)訓(xùn)練調(diào)整優(yōu)化序列,具體地,使用具有邊緣特征聚合能力的圖同構(gòu)網(wǎng)絡(luò)來(lái)學(xué)習(xí)電路表示,并將電路表示作為強(qiáng)化學(xué)習(xí)的智能體的狀態(tài),在此基礎(chǔ)上,為了使智能體能夠從歷史的經(jīng)驗(yàn)中學(xué)習(xí)到相關(guān)的知識(shí),長(zhǎng)短期記憶網(wǎng)絡(luò)(Long Short-Term Memory, LSTM)被進(jìn)一步嵌入到強(qiáng)化學(xué)習(xí)的模型中,與文獻(xiàn)[43]相比較,面積指標(biāo)優(yōu)化了21.21%。
基于機(jī)器學(xué)習(xí)的邏輯綜合技術(shù)雖然得到了大范圍的研究,但上述方法要么需要大量標(biāo)記數(shù)據(jù)進(jìn)行訓(xùn)練,要么由于計(jì)算開銷,在實(shí)際EDA工程的應(yīng)用中受到了極大的限制。為了克服上述問(wèn)題,Yu等人提出了一種全新的適用于布爾邏輯優(yōu)化的端到端的、高性能的、針對(duì)特定領(lǐng)域的Bandit計(jì)算架構(gòu),該架構(gòu)能夠同時(shí)對(duì)AIG、布爾可滿足性的連接范式、標(biāo)準(zhǔn)單元技術(shù)映射后的靜態(tài)時(shí)序分析以及6輸入查找表(LookUp Table,LUT)架構(gòu)的FPGA技術(shù)映射問(wèn)題進(jìn)行優(yōu)化,最終的實(shí)驗(yàn)結(jié)果也表明,該方法的運(yùn)算速度要優(yōu)于文獻(xiàn)[39]與文[43]中所提出的方法。
GROSNIT等人則是提出了一種基于貝葉斯理論的方法來(lái)解決樣本復(fù)雜度過(guò)高的問(wèn)題,實(shí)現(xiàn)了高效且可擴(kuò)展的基于機(jī)器學(xué)習(xí)的邏輯綜合的解決方案。
布局技術(shù)
布局作為FPGA EDA工作流程中的核心步驟之一,是典型的超大規(guī)模非確定性多項(xiàng)式(Non-deterministic Polynomial, NP)困難組合優(yōu)化問(wèn)題,對(duì)時(shí)延、線網(wǎng)可布通性、功耗等功能指標(biāo)影響巨大。
由于過(guò)去30余年FPGA架構(gòu)的不斷演進(jìn),現(xiàn)代FPGA擁有數(shù)以千計(jì)的DSP、RAM以及數(shù)百萬(wàn)個(gè)查找表(Look-Up Table, LUT)和觸發(fā)器(Flip-Flop, FF)實(shí)例,這些異構(gòu)資源通常完全分散在FPGA架構(gòu)的離散位置上,這種復(fù)雜性和異構(gòu)性對(duì)現(xiàn)代FPGA布局器的運(yùn)行效率和結(jié)果質(zhì)量提出了嚴(yán)峻的挑戰(zhàn),將機(jī)器學(xué)習(xí)與傳統(tǒng)布局方法相結(jié)合是解決上述問(wèn)題的有效途徑,具體如表2所示。
[44] YANG Chenghao, XIA Yinshui, CHU Zhufei, et al. Logic synthesis optimization sequence tuning using RL-based LSTM and graph isomorphism network[J]. IEEE Transactions on Circuits and Systems II:Express Briefs, 2022, 69(8): 3600–3604. doi: 10.1109/TCSII.2022.3168344.
[45] YU Cunxi. FlowTune: Practical multi-armed bandits in Boolean optimization[C]. The 39th International Conference on Computer-Aided Design, San Diego, USA, 2020: 130. doi: 10.1145/3400302.3415615.
[46] GROSNIT A, MALHERBE C, TUTUNOV R, et al. BOiLS: Bayesian optimisation for logic synthesis[C]. 2022 Design, Automation & Test in Europe Conference & Exhibition (DATE), Antwerp, Belgium, 2022: 1193–1196. doi: 10.23919/DATE54114.2022.9774632.
[58] MENG Yibai, LI Wuxi, LIN Yibo, et al. elfPlace: Electrostatics-based placement for large-scale heterogeneous FPGAs[J]. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2022, 41(1): 155–168. doi: 10.1109/TCAD.2021.3053191.
[59] LU Jingwei, CHEN Pengwen, CHANG C C, et al. ePlace: Electrostatics based placement using Nesterov's method[C]. The 51st Annual Design Automation Conference, San Francisco, USA, 2014: 1–6. doi: 10.1145/2593069.2593133.
[60] LI Wuxi, DHAR S, and PAN D Z. UTPlaceF: A routability-driven FPGA placer with physical and congestion aware packing[J]. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,2018, 37(4): 869–882. doi: 10.1109/TCAD.2017.2729349.
[61] CHEN Gengjie, PUI C W , CHOW W K , et al. RippleFPGA: Routability-driven simultaneous packing and placement for modern FPGAs[J]. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2018, 37(10): 2022–2035. doi: 10.1109/TCAD.2017.2778058.
[62] ABUOWAIMER Z, MAAROUF D, MARTIN T, et al. GPlace3.0: Routability-driven analytic placer for UltraScale FPGA architectures[J]. ACM Transactions on Design Automation of Electronic Systems, 2018, 23(5): 66. doi: 10.1145/3233244.