今天小編分享的科學經驗:芯片設計效率提升2.5倍,中科大華為諾亞聯合,用GNN+蒙特卡洛樹搜索優化電路設計,歡迎閱讀。
芯片設計是現代科技的核心,邏輯優化(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
一鍵三連「點贊」「轉發」「小心心」
歡迎在評論區留下你的想法!
— 完 —
學術投稿請于工作日發郵件到:
标題注明【投稿】,告訴我們:
你是誰,從哪來,投稿内容
附上論文 / 項目主頁鏈接,以及聯系方式哦
我們會(盡量)及時回復你
點亮星标
科技前沿進展每日見