晶片設計效率提升2.5倍,中科大華為諾亞聯合,用GNN+蒙特卡洛樹搜尋最佳化電路設計|ICLR2025

白寅岐 投稿量子位 | 公眾號 QbitAI
晶片設計是現代科技的核心,邏輯最佳化(Logic Optimization, LO)作為晶片設計流程中的關鍵環節,其效率直接影響著晶片設計的整體效能。
然而,傳統邏輯最佳化運算元由於存在大量無效和冗餘的變換,導致最佳化過程耗時較長,成為制約晶片設計效率的主要瓶頸。
為解決這一挑戰,中科大王傑教授團隊(MIRALab)和華為諾亞方舟實驗室(HuaweiNoah’sArkLab)聯合提出了基於神經符號函式挖掘的高效邏輯最佳化方法,顯著提升傳統關鍵邏輯最佳化運算元執行效率最高達2.5倍
論文已被ICLR 2025接收。
研究團隊提出了一種創新的資料驅動的電路神經符號學習框架——CMO
通俗解釋,研究團隊開發了一種聰明又高效的AI演算法框架。這個系統透過“看圖識路”(圖神經網路)加上“會下棋的策略”(蒙特卡洛樹搜尋),能夠自動學會如何更快、更智慧地“剪枝”電路邏輯——就像幫電路減肥,讓它執行得更快但不丟效能。
在實際測試中,CMO能讓關鍵演算法執行效率提升最多2.5倍,也就是說,原來跑10分鐘的任務,現在4分鐘就搞定了。這個技術已經被整合進華為自研的EMU邏輯綜合工具中,有力地支援了EDA工具全鏈條國產化任務。

引言

晶片設計自動化(EDA)被稱為“晶片之母”,是半導體行業的關鍵基石。邏輯最佳化(LO)是前端設計流程中最重要的EDA工具之一,其核心任務是透過功能等效的轉換來最佳化電路,減少電路的規模和深度,從而提升晶片的質量。
LO任務是一個NP-hard問題。為了解決LO問題,現有的啟發式運算元(如Mfs2[1]、Resub[2]、Rewrite[3]、Refactor[4]等)透過遍歷電路圖節點並進行區域性轉換而實現邏輯最佳化。但由於現有運算元存在大量無效和冗餘的轉換,導致最佳化過程非常耗時,嚴重限制了晶片設計的效率。為了提高LO的效率,先前的研究提出使用打分函式來預測並剪枝無效的節點轉換。
現有的打分函式大致分為兩類,第一類是人工設計的啟發式方案[5],這些方法雖然具有可解釋性,但設計過程複雜,且泛化效能較差,難以保證運算元最佳化效能。第二類是基於圖神經網路(GNN)的深度學習方案[6],儘管GNN在LO任務中表現出色,但且推理嚴重依賴於GPU,難以在純CPU的工業環境中部署。此外,GNN的“黑箱”特性也引發了對其可靠性的擔憂。因此,如何找到兼具推理效率、可解釋性和泛化效能的打分函式是邏輯最佳化領域亟待解決的難題。
為了解決上述難題,研究團隊提出了首個數據驅動的電路神經符號學習框架(Circuit symbolic learning framework,CMO),該框架採用教師-學生正規化,利用泛化性強的GNN模型作為教師,並指導作為學生的基於蒙特卡洛樹搜尋的符號學習方案,從而有效生成兼具泛化能力與輕量化的符號打分函式。
在三個具有挑戰性的電路基準測試中,離線實驗結果表明,CMO學習到的可解釋符號函式在推理效率和泛化能力方面均顯著優於此前基於GPU的最先進方法以及人工設計的方案。此外,線上實驗進一步驗證了CMO的實際應用價值:CMO能夠在保持關鍵運算元最佳化效能的同時提升其執行效率最高達2.5倍。該方案為晶片設計工具的高效化提供了新的解決方案,目前已成功應用於華為自研EMU邏輯綜合工具中。

背景與問題介紹

1.邏輯最佳化(Logic Optimization,LO)

邏輯最佳化是電子設計自動化(EDA)工具中的關鍵模組,旨在透過最佳化由有向無環圖表示的電路圖(即減少電路圖的面積與深度),提升晶片的效能、功耗和麵積(PPA)。邏輯最佳化通常分為兩個階段:
  • 對映前最佳化(Pre-mapping Optimization):在電路對映到技術庫之前,使用啟發式演算法(如Rewrite、 Resub、 Refactor等)對電路進行最佳化。
  • 對映後最佳化(Post-mapping Optimization):在電路對映到技術庫(如標準單元網表或K輸入查詢表)後,進一步使用啟發式演算法(如Mfs2)對電路進行最佳化。
邏輯最佳化的核心任務是透過功能等效的轉換減少電路的規模和深度,從而提升晶片的質量。然而,邏輯最佳化是一個NP難問題,現有的啟發式演算法雖然有效,但由於存在大量無效和冗餘的轉換,導致最佳化過程非常耗時。因此,如何提高邏輯最佳化的效率成為晶片設計中的一個關鍵挑戰。

2.基於節點剪枝的高效邏輯最佳化框架

為了提升邏輯最佳化的效率,研究者提出瞭如圖1所示的預測與剪枝框架(Prediction and Prune Framework),該框架透過引入打分函式來預測並剪枝無效的節點轉換,從而減少不必要的計算開銷。具體來說:
  • 節點級轉換(Node-level Transformations):邏輯最佳化啟發式運算元(如Mfs2)通常會對電路中的每個節點依次應用轉換。然而,許多轉換是無效的,即它們不會對電路的最佳化結果產生實質性影響。
  • 打分函式的作用:打分函式用於評估每個節點的轉換是否有效。透過預測並剪枝無效的節點轉換,可以顯著減少啟發式演算法的計算量,從而提升最佳化效率。
圖1.邏輯最佳化中的預測與剪枝框架
然而,現有的評分函式在以下幾個方面存在侷限性:
1.推理效率:基於深度學習的評分函式(如GNN)雖然預測準確率高,但其推理時間長,在純CPU環境的大規模工業電路上推理時間最高可佔運算元執行時間的30%,因此難以滿足工業需求。2.可解釋性:深度學習模型(如GNN)的“黑箱”特性使得其在實際應用中的可靠性受到質疑。3.泛化效能:人工設計的評分函式雖然具有可解釋性,但其泛化效能較差,難以適應不同電路的特性。為了解決這些問題,本文提出了CMO框架,透過學習輕量級、可解釋且泛化能力強的符號函式來最佳化邏輯綜合運算元。

方法

為了挖掘輕量化符號打分函式,首先提出了資料驅動的神經符號學習框架(Circuit Symbolic Learning framework, CMO),在CMO中的核心技術貢獻是圖增強的蒙特卡洛樹搜尋方案(Graph Enhanced Symbolic Discovery Framework, GESD),透過學習圖神經網路內蘊的知識以提升符號函式的泛化能力。

1.資料驅動的神經符號學習框架-CMO

如圖2所示,CMO描述了該研究整個符號函式學習與實際部署的pipeline。
資料驅動的神經符號學習框架CMO

資料收集

透過應用邏輯最佳化啟發式演算法(如Mfs2)對電路進行最佳化,生成資料集。對於電路中的每個節點,生成一個數據對

,其中

是節點特徵,

是標籤(如果節點轉換有效則標籤為1,否則為0)。

對於一個給定的電路圖,收集到的資料為

,目標是從中學習輕量且可解釋的符號函式。

結構-語義特徵分解

對於節點特徵

的設計,研究團隊參考了[5]的設計,將節點特徵設計為了包含圖結構與圖語義資訊的高維特徵。其中,結構特徵包含電路的拓撲資訊(如節點的層級、扇入/扇出數等),而語義特徵包含功能資訊(如節點的真值表)。然而,高維特徵會導致搜尋空間急劇增加,為了解決這一問題,提出了結構-語義特徵分解策略。團隊觀察到結構特徵是連續的,適合數學符號迴歸;而語義特徵是離散的,適合布林符號學習。因此,將特徵分離並分別使用不同的符號迴歸方案學習,顯著減少了符號搜尋空間,並從結構與語義兩個維度整合資訊,有利於模型泛化效能的提升。

神經符號函式學習

  • 結構函式學習:對於連續的結構特徵

    ,該函式將結構特徵對映為連續值。

  • 語義函式學習:對於離散的語義特徵

    ,該函式將語義特徵對映為離散值。

特徵資訊融合

在測試階段,將訓練得到的結構函式與語義函式同時作為部署模型,並將結構函式和語義函式的輸出融合,得到節點的最終分數

其中

是一個權重引數,用於平衡兩種特徵的重要性。

2.圖增強的蒙特卡洛樹符號搜尋方案-GESD

在CMO中,如何從給定的電路資料中發現具有強泛化能力的符號函式是一個關鍵問題。為此,提出了首個圖增強的蒙特卡洛樹符號搜尋方案——GESD(如圖3所示)。
該方案透過圖神經網路(GNN)指導蒙特卡洛樹的生成,巧妙結合了圖神經網路的高泛化能力與符號函式的輕量化優勢,從而顯著提升了符號函式的泛化效能。
圖3. 圖增強的蒙特卡洛樹符號搜尋方案GESD

符號樹生成

  • 符號運算子:在生成符號函式之前,需要定義搜尋中使用的符號。用於生成結構表示式樹的數學運算子包括:{+, −, ×, ÷, log, exp, sin, cos}。團隊沒有使用佔位符來生成常數,因為引入內部常熟最佳化迴圈通常會導致 更高的訓練成本。此外,團隊發現像exp、sin、cos等複雜運算子能夠有效提升符號函式的預測效能。對於生成語義表示式樹的布林運算子包括:{與,或,非},透過與或非的組合能夠擬合任意一個布林表示式。
  • 蒙特卡洛樹搜尋:受到蒙特卡洛樹搜尋(MCTS)在有效探索大型複雜符號空間方面的優勢啟發(Sun等,2023;Xu等,2024),使用符號表達式樹來表示符號函式透過表示式樹並利用MCTS生成符號樹。對於一棵符號樹,他的內部節點是數學運算子(如加、減、乘、除、對數、指數等),葉子節點是輸入變數或常數。定義狀態(s)為當前表示式樹的先序遍歷,動作(a)為新增到狀態中的符號運算子或變數。具體來說,此研究中的MCTS包括四個步驟:選擇、擴充套件、模擬和反向傳播。
1.選擇:在選擇階段,MCTS代理遍歷當前表示式樹,選擇具有最大UCT值的動作。為了確保生成表示式的合法性,在當前狀態下,MCTS代理會遮蔽掉當前非終端節點的無效動作,並在此基礎上選擇一個有效的動作作為。2.擴充套件:當選擇階段達到一個可擴充套件節點——即它的子節點並非全部已被訪問——MCTS代理會透過隨機選擇一個未訪問的有效子節點來擴充套件該節點。3.模擬:在當前狀態和擴充套件節點的基礎上,透過隨機選擇下一個節點進行模擬,直到表示式樹完成。具體來說,進行10次模擬,並返回最大模擬獎勵,而不是傳統MCTS演算法中的平均獎勵,以找到唯一的最優符號解,這是一種與傳統MCTS演算法不同的貪婪搜尋啟發式方法。4.反向傳播:模擬結束後,更新路徑中從當前節點到根節點的最大獎勵Q和訪問次數N。該搜尋演算法會不斷重複上述步驟,直到滿足停止準則。

圖增強符號函式

  • 教師-學生框架:
引入圖神經網路(GNN)作為教師模型,透過蒸餾GNN的“暗知識”來增強符號函式的泛化能力。具體來說,首先在訓練資料集上訓練一個GNN,該GNN能夠有效捕捉電路中的複雜結構和語義資訊,從而解決由於電路領域分佈大幅度變化而導致的泛化能力差的問題。然後,利用GNN的預測輸出和真實標籤來指導符號函式的學習過程。
這種教師-學生框架的核心思想是透過GNN的高泛化能力來引導符號函式的生成,從而彌補傳統符號方法在泛化效能上的不足。
  • 獎勵函式設計:
在MCTS的模擬階段,使用以下獎勵函式評估符號函式:

其中

是基於標籤的損失,用於確保符號函式的預測結果與真實標籤一致;

是基於GNN輸出的損失,用於將GNN的泛化能力遷移到符號函式中。透過調整權重

可以平衡標籤資訊和教師知識的重要性。此外,

是一個懲罰因子,用於控制符號函式的複雜度,確保生成的符號函式既簡潔又高效。

  • 圖蒸餾
透過最小化符號函式輸出與GNN輸出之間的均方誤差(MSE),將GNN的泛化能力遷移到符號函式中。與以往使用KL散度的方法不同,MSE能夠直接學習GNN輸出的泛化資訊,從而實現與GNN相當的泛化效能。具體來說,研究團隊發現電路特徵與GNN輸出之間存在簡單的非線性對映關係,這使得符號函式能夠在不犧牲效能的情況下保持輕量化。
此外,針對電路資料中正負樣本嚴重不平衡的問題,採用焦點損失(Focal Loss)作為學生模型的損失函式,進一步提升符號函式的學習效果。焦點損失透過調整難易樣本的權重,有效緩解了樣本不平衡帶來的負面影響,從而提高了符號函式在稀疏資料上的表現。

實驗結果

在實驗部分,在兩個廣泛使用的開源電路資料集(EPFL和IWLS)以及一個工業電路資料集上進行了全面測試。實驗結果表明,該方法在多個方面表現出色:
1.效率提升:CMO框架顯著提升了傳統關鍵邏輯最佳化運算元(如Mfs2)的執行效率,最高可達2.5倍加速。例如,在超大規模電路Sixteen上,CMO-Mfs2將執行時間從78,784秒減少到32,001秒,提升了約59.4%
2.最佳化質量提升:過在相同時間內多次執行CMO驅動的新型運算元(如2CMO-Mfs2),進一步提升了電路的最佳化質量(QoR)。具體來說,電路的規模和深度得到了顯著改善,其中電路深度的最大最佳化幅度達到30.23%。例如,在Hyp電路上,2CMO-Mfs2將電路深度從8,259層減少到5,762層,顯著降低了電路的延遲。
這些實驗結果充分證明了CMO框架在提升邏輯最佳化效率和質量方面的雙重優勢,為晶片設計中的邏輯最佳化任務提供了強有力的支援。
表1.實驗結果表明該方法不僅能夠提升運算元效率,同時還能夠提升運算元最佳化質量
本論文作者白寅岐是中國科學技術大學2024級碩士生,師從王傑教授,主要研究方向為人工智慧驅動的晶片設計、圖機器學習、大模型等。他曾在人工智慧頂級會議ICML、Neurips等會議上發表論文兩篇,本科期間曾獲首批國家青年學生基礎研究專案資助(全國108人)。
論文地址:https://openreview.net/forum?id=EG9nDN3eGB程式碼地址:https://gitee.com/yinqi-bai/cmo
一鍵三連「點贊」「轉發」「小心心」
歡迎在評論區留下你的想法!
—  —
學術投稿請於工作日發郵件到:
標題註明【投稿】,告訴我們:
你是誰,從哪來,投稿內容
附上論文/專案主頁連結,以及聯絡方式哦
我們會(儘量)及時回覆你

🌟 點亮星標 🌟
科技前沿進展每日見

相關文章