中科院團隊自研大模型,自動設計超強芯片
當前位置: 主页 > HK News 香港新聞 > 香港看世界 > 產業新聞 > 《中科院團隊自研大模型,自動設計超強芯片》
2025-Jun-16
公衆號記得加星標??,第一時間看推送不會錯過。來源:內容編譯自arxiv。處理器芯片設計技術是推動計算機科學及相關領域突破的關鍵前沿技術。隨着信息技術的快速發展,傳統的設計範式面臨三大挑戰:製造技術的物理約束、日益增長的設計資源需求以及生態系統的日益多樣化。自動化處理器芯片設計已成爲應對這些挑戰的變革性解決方案。儘管人工智能(AI)領域的最新突破,尤其是大型語言模型(LLM)技術,爲完全自動化的處理器芯片設計開闢了新的可能性,但爲處理器芯片設計建立特定領域的LLM仍然存在巨大的挑戰。本文提出了一種全新的處理器芯片軟硬件全自動設計系統——QiMeng。QiMeng 包含三個層次。在底層,我們構建了一箇面向特定領域的大型處理器芯片模型 (LPCM: Large Processor Chip Model),在架構、訓練和推理方面引入了新穎的設計,以應對知識表示缺口、數據稀缺、正確性保證以及巨大的解空間等關鍵挑戰。在中間層,我們利用 LPCM 的知識表示和推理能力,開發了硬件設計代理和軟件設計代理,以實現處理器芯片軟硬件設計的自動化。目前,QiMeng 的多箇組件已經完成,併成功應用於各種頂層應用,展現出顯著的優勢,爲高效、全自動的處理器芯片軟硬件設計提供了可行的解決方案。未來的研究將致力於集成所有組件,並執行自上而下和自下而上的迭代設計流程,以建立一箇完整的 QiMeng 系統。介紹作爲計算系統的基礎硬件平臺,處理器和芯片承擔着指令執行、數據處理和資源管理等關鍵功能。這些處理器和芯片驅動着從個人電腦、服務器、智能手機到物聯網(IoT)設備等各種設備,構成了現代數字經濟的技術基礎。處理器芯片設計既是國家經濟發展的戰略性產業,也是推動計算機科學進步的前沿研究領域。處理器芯片設計是一項高度複雜且系統性的任務,需要緊密的軟硬件協同設計才能滿足功能需求,並優化性能、功耗和麪積(PPA)。這些要求使得處理器芯片設計成爲工業界和學術界最具挑戰性的研究課題之一。信息技術的演進揭示了當前處理器芯片設計方法的三大根本侷限性:製造工藝受限、資源有限以及生態系統多樣化。在製造工藝方面,隨着半導體制造工藝接近7納米以下的物理極限,量子隧穿和短溝道效應等現象變得越來越棘手,使得基於傳統制造工藝的性能擴展變得無效,從而迫切需要設計方法的創新。從資源角度來看,傳統的設計流程需要大量的專業知識和勞動密集型的設計驗證迭代,以確保功能正確性,同時平衡PPA等相互衝突的設計目標。這導致開發週期延長和成本高昂。在生態系統方面,人工智能、雲計算和邊緣計算等新興應用需要專門的架構和定製的基礎軟件支持。因此,傳統的芯片設計方法由於其固有的耗時和高昂的成本要求,無法有效應對生態系統的挑戰。總而言之,這些挑戰凸顯了對新型設計範式的迫切需求,這種範式能夠在滿足多樣化應用需求的同時,提供更高性能、更高效能和更低成本。自動化處理器芯片設計旨在實現處理器芯片整個設計和驗證流程的自動化,爲克服上述侷限性提供了一種頗具前景的解決方案。通過利用人工智能方法,自動化處理器芯片設計有望超越手工設計,並在相同的製造工藝下實現更佳性能。此外,自動化處理器設計方法能夠大幅減少人工干預,顯著提高設計效率,同時縮短開發週期並降低成本。此外,它還能快速定製芯片架構和軟件堆棧,以滿足特定應用領域的定製需求,從而滿足日益增長的專用計算解決方案需求。大型語言模型 (LLM) 和多智能體系統的最新突破爲自動化處理器芯片設計創造了新的機遇。最先進的 LLM,例如 DeepSeek-V3、DeepSeek-R1, Qwen3,GPT-4o和 Gemini 2.5 Pro 在問答、規劃和推理方面展現了卓越的能力,展現了通用人工智能 (AGI) 的潛力。經過領域特定數據的後期訓練,可以獲得領域特定的打磨性格 (LLM),並且在計算生物學等科學學科中取得了令人矚目的成果 。更先進的基於 LLM 的代理將認知能力與 LLM 的工具使用技能相結合,以自主規劃和執行復雜的工作流程。大模型和代理的這些發展爲完全自動化處理器芯片設計指明瞭新的途徑。然而,由於處理器芯片設計的特殊性,將LLM和代理應用於自動化處理器芯片設計面臨四大挑戰:知識表示缺口(knowledge representation gap)、數據稀缺(data scarcity)、正確性保證(correctness guarantee)以及巨大的解空間(enormous solution space)。首先,知識表示缺口:關鍵的處理器芯片設計數據採用圖結構,例如抽象語法樹(AST:abstract syntax trees)、數據流圖(DFG:data flow diagrams )和控制流圖(CFG:control flow diagrams)。圖數據與LLM通常處理的順序文本存在固有的語義缺口,這限制了領域知識表示能力,並限制了LLM的處理器芯片設計能力。其次,數據稀缺:與互聯網上可用於訓練通用LLM的海量PB級文本語料庫不同,處理器芯片設計數據規模較小,在GitHub等開源社區中僅有TB級數據,這嚴重製約了針對處理器芯片設計領域專用LLM的開發。第三,正確性保證:處理器設計需要嚴格的驗證標準,這與LLM的概率性本質存在根本衝突。例如,英特爾奔騰 4 處理器在功能驗證中要求準確率達到 99.99999999999% 。最後,巨大的解決方案空間:處理器設計涵蓋從基礎軟件到物理佈局的多箇抽象階段,因此,直接在原始比特流級別對設計空間進行建模會面臨維度爆炸的問題。例如,32 位 CPU 的方案空間達到10^10540。這個巨大的解決方案空間對於獲得功能正確且性能優化的處理器設計提出了極大的挑戰。圖 1:概述,QiMeng 由三層組成:底層是領域專用的大型處理器芯片模型 (LPCM);中間層是基於 LPCM 實現自動化軟硬件設計的硬件設計代理和軟件設計代理;頂層是各種處理器芯片設計應用程序。爲了應對上述挑戰並開創變革範式,我們提出了 QiMeng ,這是一箇用於處理器芯片全自動軟硬件設計的全新系統。QiMeng 由三層組成。底層構建了一箇大型處理器芯片模型 (LPCM),作爲處理器芯片設計領域專用的 LLM;中間層基於 LPCM 創建了硬件設計代理和軟件設計代理,分別用於實現硬件和軟件的自動化設計。最後,這兩個代理在頂層支持各種處理器芯片設計應用,如圖1所示。在QiMeng中,爲了克服上述四大挑戰,LPCM經過精心設計,融合了領域專業知識和處理器芯片設計的基本能力。LPCM在架構、訓練和推理方面的獨特創新,使其區別於通用LLM。在架構方面,LPCM採用多模態結構,能夠理解和表徵處理器芯片領域固有的圖數據,從而解決了知識表徵缺口這一關鍵挑戰。在訓練方面,自動生成大量處理器芯片設計領域特定數據至關重要。對於處理器芯片設計的每個抽象階段,系統地收集領域特定數據,並獨立訓練單階段自動化設計模型。隨後,這些模型被級聯,自主生成大量跨階段對齊的處理器芯片設計數據。利用這些對齊數據,LPCM可以訓練從分層設計流程中學習領域知識,從而有效緩解數據稀缺的挑戰。在推理過程中,實現了兩種反饋驅動機制。通過構建來自自動化功能驗證的正確性反饋,LPCM 能夠自主修復錯誤結果並確保生成輸出的有效性,從而解決處理器設計中確保正確性的挑戰。同時,利用來自自動化性能評估的性能反饋,LPCM 能夠分解解空間並修剪低性能子空間。因此,LPCM 可以有效降低解空間的維度,並高效地探索高性能設計方案,從而克服了龐大解空間帶來的挑戰。基於LPCM,QiMeng開發了兩個專用代理:硬件設計代理和軟件設計代理,致力於處理器和芯片軟硬件的自動化設計。硬件設計代理採用雙循環機制,由基於性能優化的外部模塊分解反饋循環和基於自動驗證和修復的內部模塊生成反饋循環組成。該雙循環機制實現了從功能規範到物理佈局的端到端自動化設計,統一了邏輯設計、電路設計和物理設計等傳統上相互脫節的階段。因此,硬件設計代理實現了一箇完全集成的跨階段協同設計範式,有望超越傳統的人工設計,在相同的製造工藝下實現卓越的性能。同時,軟件設計代理也採用雙循環機制,由LLM引導的外部性能優化反饋循環和基於自動驗證和修復的內部功能適配反饋循環組成。軟件設計代理自主實現目標處理器芯片基礎軟件的無縫功能適配和性能優化,滿足現代應用不斷變化的需求。利用硬件設計代理和軟件設計代理,可以開發各種應用程序,以解決處理器芯片設計的各種實際用例。在自動化硬件設計方面,我們已取得重大進展,包括自動化前端設計和自動化HDL生成。在自動化軟件設計方面,我們取得了包括自動化操作系統配置優化、自動化編譯器工具鏈設計、自動化張量程序轉編譯器以及自動化高性能庫生成在內的成就。這些應用推動了QiMeng關鍵組件的實現,爲其全面實現奠定了堅實的基礎。未來,我們將採用三階段方法構建QiMeng,從自上而下過渡到自下而上,最終實現一箇可自我演化的框架。首先,在自上而下的階段,頂層各種自動化設計應用程序的實現將爲中間層的兩個代理提供設計專業知識,並生成大量特定領域的數據,以增強底層LPCM的功能。隨後,在自下而上的階段,改進的LPCM、硬件和軟件設計代理將以自下而上的方式應用於更廣泛的處理器芯片設計應用。最終,在迭代階段,將建立自上而下和自下而上相結合的迭代循環,實現QiMeng的自我演進,逐步提升其全自動處理器芯片設計能力,同時擴展其適用性以支持日益多樣化和複雜的場景。本文旨在構建一箇全面的處理器芯片全自動軟硬件設計框架,並介紹了QiMeng及其發展路線圖、設計方法和應用。本文結構如下:第二部分闡述了QiMeng的開發動機及其發展路線圖;第三部分闡述了LPCM的設計,涵蓋架構、訓練和推理;第四部分詳細介紹了硬件設計代理和軟件設計代理;第五部分展示了QiMeng關鍵組件支持的多種應用;第六部分概述了自動化處理器芯片設計的相關研究;第七部分總結了未來研究的發展方向。路線圖自動處理器芯片設計是計算機科學領域的核心問題之一,源於丘奇問題(Church’s Problem):如何自動設計電路以滿足給定輸入和輸出之間的關係?這個問題由計算機科學奠基人阿隆佐·丘奇(Alonzo Church)於1957年提出,幾十年來一直是一箇巨大的挑戰,吸引了Rabin, Scott和 Pnueli等圖靈獎獲得者的廣泛研究,但至今仍未得到解決。早期的電子設計自動化 (EDA) 工具基於預定義規則和布爾邏輯,可以自動完成邏輯綜合、佈局和佈線等特定設計任務。隨着電路複雜度的增加,基於優化的技術應運而生,包括高級綜合 (HLS),它可以自動將高級描述轉換爲 RTL 結構,以及設計空間探索 (DSE),它可以優化 PPA 的設計參數。近年來,人工智能技術推動處理器芯片的自動化設計進入更加智能、數據驅動的階段。隨機森林(Random Forests)、強化學習 (RL) 和圖神經網絡 (GNN) 等技術使電路優化、佈局和佈線的自動化成爲可能,顯著提高了複雜場景下的設計效率。然而,這些方法主要將 AI 用作改進傳統 EDA 流程步驟的工具,而沒有從根本上改變整體設計範式。當前的自動化設計方法主要存在三個侷限性。首先,實際應用中的處理器芯片設計需求通常以模糊、非正式的自然語言表達,而現有方法只能處理精確、正式的輸入,通常以硬件描述語言 (HDL) 的形式出現。因此,從非正式到正式的轉變需要專家進行大量工作。其次,這些方法只能自動化處理器芯片設計的某些步驟,例如邏輯綜合、形式驗證、自動佈局和佈線。然而,邏輯設計、指令集擴展、軟件工具鏈適配和優化等關鍵任務仍然無法完全自動化。最後,現有方法通常侷限於單個任務,設計空間受限,缺乏跨階段的軟硬件協同設計,難以突破人爲驅動設計的界限。LLM 和智能體的發展爲克服傳統自動設計方法的三大關鍵侷限性開闢了新的可能性。首先,LLM 可以將非形式化的自然語言描述轉換爲形式化的編程語言,從而使其能夠根據自然語言規範自動生成從基本功能到完整程序等各種任務的正確代碼。其次,基於 LLM 構建的智能體可以自主規劃和執行復雜任務,並能夠獨立使用外部工具。這種能力爲人工智能技術與領域特定工具的集成提供了一種新穎的方法,爲實現全自動處理器芯片設計開闢了新的視角。最後,LLM 擁有強大的多任務處理能力,在完成複雜的規劃和推理任務方面展現出巨大的潛力,這爲實現軟硬件設計中的跨階段協作奠定了基礎。基於以上分析,我們提出了QiMeng,一箇用於處理器芯片全自動軟硬件設計的創新範例。QiMeng由三層結構組成,如圖1所示。底層是LPCM,它將領域專業知識嵌入到處理器芯片設計領域。中間層是硬件設計代理和軟件設計代理,它們利用LPCM的領域知識實現軟硬件的自動化設計。頂層專注於實現各種應用程序,這些應用程序利用硬件設計代理和軟件設計代理提供的自動化設計功能來滿足處理器芯片的不同設計需求。這三層協同工作,形成一箇完整的處理器芯片全自動軟硬件設計系統。然而,QiMeng 的實現並非一蹴而就。三個層級各自面臨挑戰,難以自下而上地直接構建完整的 QiMeng 系統。具體而言,底層 LPCM 的實現需要大量處理器芯片軟硬件設計領域的專業數據。然而,這些領域數據極其匱乏,阻礙了 LPCM 的訓練。在中間層,軟硬件設計代理的開發依賴於 LPCM 提供的領域知識,同時還需要集成用於驗證正確性和評估性能的專用工具。在頂層,各種應用程序的實現依賴於 LPCM 和兩個代理。儘管存在這些挑戰,但這三個層級仍然保持着高度的相互依賴性,並可以相互促進。頂層的各種應用程序可以爲 LPCM 提供寶貴的領域數據,並有助於使用專用工具對軟硬件設計代理進行功能驗證和性能評估。此外,軟硬件設計Agent實現了LPCM與專用工具之間完整交互流程的構建,爲LPCM提供了數據自動生成機制,通過三個層次的協同作用,有效解決各層次面臨的挑戰。雖然QiMeng最初是採用自下而上的方式設計的,但在實際實現過程中,採用自上而下的方式更容易。在以實現各種硬件和軟件設計爲目標的驅動下,頂層應用程序的實現可以爲LPCM提供豐富的合成領域專用數據,同時也能提供與專用工具協同設計軟硬件設計代理的設計經驗。基於以上分析,我們提出了一箇分三階段實現完整QiMeng系統的路線圖。第一階段採用自上而下的構建方法,基於LPCM開發各種應用程序,並以通用LLM作爲初始化。在應用程序的實現過程中,構建軟硬件設計Agent的關鍵組件和功能,並將它們組合起來,建立兩個Agent的完整流程。同時,整合大量的軟硬件設計領域專業數據用於訓練LPCM,使LPCM獲得優於通用LLM的領域知識。第二階段採用自下而上的構建方法,基於訓練好的LPCM重構軟硬件設計Agent,並重新開發各種應用程序。由於LPCM增強了領域知識和專業能力,第二階段重新開發的應用程序將比第一階段獲得更好的自動化設計效果。在此基礎上,基於第二階段的應用程序可以獲得更高質量的軟硬件設計數據。第三階段是將自上而下和自下而上的設計流程結合起來,形成一箇迭代循環。受約翰·馮·諾依曼的“Theory of Self-Replicating Automata”的啓發,我們希望通過這樣的循環,實現QiMeng的自我進化。在進化的過程中,一方面,我們致力於拓展QiMeng的深度,不斷提升其面向處理器芯片的全自動化軟硬件設計能力;另一方面,我們致力於拓展QiMeng的廣度,不斷拓展其應用範圍,爲更廣泛的處理器芯片設計場景提供智能化支持。目前的工作仍處於三階段方法的第一階段。迄今爲止,已成功實現了包括自動化前端設計、自動化 HDL 生成、自動化 OS 配置優化、自動化編譯器工具鏈設計、自動化張量程序轉譯器以及自動化高性能庫生成在內的代表性應用。這些應用實現了軟硬件設計代理的一些關鍵組件。在未來的工作中,我們將完成第一階段,將這些關鍵組件集成到一箇完整的軟硬件設計代理中,並自動生成大量領域專用數據來訓練 LPCM。之後,我們將進行第二階段和第三階段,以構建一箇完整的 QiMeng 系統。大型處理器芯片模型圖2:左圖:LPCM 的多模態架構,能夠理解、表示和生成文本和圖形數據。右圖:LPCM 的反饋驅動推理,採用雙循環機制,由外部性能反饋循環和內部功能正確性反饋循環組成。由於處理器芯片設計的獨特性,必須解決四個關鍵挑戰:知識表示差距、數據稀缺、正確性保證以及巨大的解決方案空間。爲了應對這些挑戰,QiMeng 開發的 LPCM 在架構、訓練和推理方面採用了獨特的方法,使其有別於通用的 LLM。本節將詳細討論這些創新。值得注意的是,設計一箇全面的LPCM芯片本身就帶來了巨大的挑戰,因爲它需要從基礎軟件開發到芯片設計的專業知識和能力。我們之前的工作研究了LPCM的構建,將流程分爲三個層次:)以人爲中心(Human-Centric),輔助人類進行代碼生成和參數調優並提供建議;2)代理編排(Agent-Orchestrated),通過工具鏈集成獨立完成部分子任務,以促進跨層優化;3)模型治理(Model-Governed),實現軟硬件協同設計、仿真和迭代改進全過程的完全自動化。本文特別關注第三層的設計方法論。A.多模態結構由於文本通常以順序數據的形式組織,因此大多數現有的 LLM 架構主要側重於處理順序信息。即使在處理圖像或其他模態數據的多模態 LLM 中,多模態特徵也被視爲一種特殊的序列類型,並在輸入模型之前與文本序列連接起來。然而,在處理器芯片設計領域,除了功能需求的文本描述和正式的代碼表示之外,許多關鍵信息和知識都以圖形插圖的形式呈現。例如,軟件架構通常表示爲抽象語法樹 (AST),芯片邏輯架構表示爲數據圖 (DFG),芯片電路架構表示爲組合圖 (CFG)。這些圖形數據對於處理器芯片設計至關重要。因此,LPCM 被專門設計爲一種多模態架構,能夠理解、表示和生成圖形數據,從而更有效地學習和呈現處理器芯片領域的知識,如圖2左圖所示。具體來說,LPCM 的輸入包含兩種形式:需求規範的文本描述和圖形說明。理解和表示圖數據有兩個關鍵問題:特徵表示和特徵對齊。一種簡單的方法是將圖數據表示爲特殊的文本格式,並將其與文本標記連接起來,然後再輸入模型。然而,這種方法會序列化圖的拓撲結構,可能導致圖中拓撲結構接近的節點在序列中位置相距較遠,從而丟失圖數據的拓撲信息。爲了更好地保留圖的拓撲信息,圖神經網絡 (GNN) 可用於編碼圖數據並生成其嵌入。然後,可以應用對比學習將圖嵌入的特徵與相應的文本嵌入對齊。一旦實現特徵對齊,圖嵌入就會與其他文本標記連接起來,並輸入到 LPCM 中。B.跨階段協作訓練爲了實現處理器芯片的全流程自動化設計,收集用於訓練LPCM的跨階段設計數據至關重要。然而,處理器芯片領域面臨着嚴重的數據匱乏問題。與互聯網上PB級的文本語料庫相比,GitHub等開源社區提供的軟硬件代碼數據通常只有TB級。而且,這些數據通常僅涵蓋處理器芯片設計流程中的特定階段。因此,包含多箇設計抽象階段的跨階段設計數據嚴重匱乏。這種數據匱乏的挑戰對LPCM的有效訓練構成了重大障礙。因此,開發一箇跨階段協同設計數據庫,爲LPCM的訓練提供必要的基礎至關重要。爲了構建跨階段協同設計數據庫,需要建立跨階段設計數據的自動化生成流程。對於處理器芯片設計的多箇抽象階段,包括高性能庫設計、操作系統內核設計、編譯器工具鏈設計、邏輯設計、電路設計和物理設計,首先需要分別收集每個階段的設計數據。這些數據只需捕捉各個階段的信息,無需進行跨階段對齊。高層信息更接近自然語言,包含更豐富的語義內容,而低層信息則更接近芯片的實際圖形表示。因此,每個階段的數據必須同時包含文本和圖形模態。這些單階段設計數據隨後用於訓練模型,從而爲每個階段生成自動化設計模型。通過將這些模型級聯在一起,可以自動生成大規模、跨階段對齊的處理器芯片軟硬件設計數據,以應對數據稀缺的挑戰。構建跨階段協同設計數據庫後,我們便可以訓練LPCM,使其具備生成跨階段協同設計推理的能力。這可以通過基於數據庫應用思維鏈(CoT)模仿學習來實現。在此過程中,跨階段協同設計數據集中來自處理器芯片設計多箇階段的設計數據被視爲推理序列,生成多箇(輸入、CoT、輸出)三元組,用於訓練LPCM的CoT推理。爲了增強LPCM對中間階段設計細節的理解,在訓練目標中引入了分佈對齊損失。爲了確保訓練的穩定性,可以採用課程學習策略,從CoT較短、設計複雜度較低的樣本開始,逐步增加樣本的複雜度。基於這個全面的跨階段協同設計數據庫進行訓練,將使處理器模型獲得生成協同設計流程和最終設計結果的能力。此外,將採用自動化單元測試框架來創建獎勵函數,並應用 RL 方法進一步完善 LPCM 的 CoT 生成並提高其處理器芯片設計能力。LPCM 的輸出也包含兩種模態:文本和圖形。文本模態包括處理器芯片設計的軟件和硬件代碼,而圖形模態包括生成的圖表,例如軟件架構圖、芯片電路圖和芯片佈局圖。圖形的生成過程與其表示密切相關。如果圖形數據直接用特殊的文本格式表示,LPCM 也可以直接以這種格式輸出圖形。然而,這種表示方法可能會丟失拓撲信息,從而影響生成圖形的準確性。爲了更好地保留圖形的拓撲信息,LPCM 可以首先輸出圖形的嵌入,然後使用專門的圖形生成模型(例如 GRAPHARM 等擴散模型)將其映射到圖形結構14或像 GPT-GNN 這樣的生成式 GNN 15爲了更準確地反映電路的特性,可以採用電路設計中常用的二元決策圖(BDD)。此外,二元推測圖(BSD )是用於電路生成的 BDD 的增強版本,也可用於爲自動化處理器芯片設計提供更好的適用性。C.反饋驅動推理雖然LPCM具備處理圖信息的領域專業知識和跨階段協同設計的能力,但上下文長度限制和幻覺等挑戰阻礙了LPCM實現無縫的端到端處理器芯片設計以及基礎軟件的適配和優化。爲了確保生成的處理器芯片軟硬件的正確性和高性能,必須開發一種反饋驅動的LPCM推理機制,以促進有效的設計規劃、利用外部功能驗證工具並通過反饋優化性能。具體而言,反饋驅動的推理可以分爲兩類:功能正確性反饋和性能反饋,如圖2右所示。LPCM通過雙循環機制執行這兩個反饋,包括外部性能反饋循環和內部功能正確性反饋循環。· 功能正確性反饋功能驗證是確保手工設計的處理器芯片正確性的關鍵步驟。通過模擬各種用例和極端情況,該過程驗證處理器指令集、數據路徑、控制邏輯和多核協調等關鍵組件的功能。功能驗證確保處理器芯片在流片前符合規範,避免因邏輯錯誤或功能缺陷而導致代價高昂的返工。功能驗證貫穿處理器芯片設計的所有階段,包括邏輯設計、電路設計和物理設計。在驗證過程中,會採用形式驗證、動態仿真和硬件仿真等技術。如果發現功能錯誤,專家會手動改進設計並進行迭代驗證,直到設計完全達到功能正確性。受此啓發,爲了在自動化處理器芯片設計過程中提高功能正確性,必須在LPCM推理中集成面向功能正確性的反饋機制。該功能正確性反饋機制利用驗證反饋自動驗證設計並進一步修復設計錯誤,確保設計結果的正確性,並解決正確性保證的挑戰。爲了在推理中實現功能正確性反饋,在推理的中間步驟中集成了額外的自動驗證和修復循環。具體而言,LPCM 在推理過程中會主動評估當前推理步驟是否需要自動驗證。當需要自動驗證時,LPCM 會利用適當的專用工具或模型來驗證中間設計的功能。如果檢測到功能錯誤,則會觸發自動修復,這包括恢復到推理鏈中最後一箇已驗證的功能步驟,合併當前驗證中的錯誤反饋,並重新生成當前步驟的設計。此驗證和修復過程不斷重複,直到獲得功能正確的設計。通過這種迭代的功能正確性反饋循環,設計的正確性不斷得到改進,最終使自動設計的處理器芯片的功能正確性接近 100%。· 性能反饋性能優化旨在提升已設計工藝芯片的PPA,在處理器芯片設計和基礎軟件適配中發揮着至關重要的作用。現有的自動化優化工具,例如深度學習編譯器和DSE方法,通常依賴於專家設計的基於規則的優化方法或機器學習技術。雖然這些工具與手動調優相比顯著減少了人力,但它們仍然存在覆蓋範圍窄、效率不理想以及跨領域可遷移性差等問題。爲了增強自動化性能優化的能力,跨階段協同設計至關重要。LPCM應該能夠根據功能規範直接生成芯片版圖。然而,直接使用處理器芯片的原始比特流輸入來表達設計問題會導致維數災難。例如,32位CPU的解空間可能會增長到10^10540。爲了應對巨大的解空間挑戰,處理器芯片設計被劃分爲多箇抽象階段。在邏輯設計階段,功能規範被轉化爲高級HDL(硬件描述語言)。在電路設計階段,這些高級HDL被轉換爲門級網表。而在物理設計階段,門級網表被轉化爲芯片版圖。該工作流程遵循由粗到精的漸進式設計流程。每個階段都會包含額外的實現細節,逐步引入更多約束,逐漸修剪包含最優解概率較低的解子空間,從而減小整體解空間的大小。受此啓發,爲了實現自動化性能優化,LPCM需要採用一種基於性能反饋引導的分層搜索推理機制。這涉及構建分層分解,基於領域知識和性能反饋對解空間進行修剪,從而有效降低解空間的維度。同時,通過利用 LLM 在推理過程中表現出的迭代推理和測試時間縮放 (TTS) 優勢,可以有效地探索解決方案空間,解決巨大的解決方案空間挑戰並提高自動化設計的性能。處理器芯片設計代理在LPCM的基礎上,QiMeng開發了兩個專門的代理:硬件設計代理和軟件設計代理,實現了處理器芯片的全自動硬件/軟件設計。A.硬件設計代理隨着製造技術不斷接近物理極限,傳統的通過7納米以下工藝製程提升芯片性能的方法已遭遇根本性侷限。因此,設計重點需要從以製造爲中心的改進轉向設計方法的創新。爲了突破處理器芯片製造技術的制約,有必要探索全自動硬件設計。這需要建立一箇從功能規範到物理佈局的無縫設計框架,突破傳統的邏輯設計、電路設計和物理設計等多階段設計層級,探索更廣闊的跨階段協作設計空間,從而獲得更卓越的解決方案。自動化設計框架必須滿足兩個關鍵目標:1)功能正確性,確保自動設計的處理器芯片能夠提供準確的計算結果;2)高性能,優化計算吞吐量、功耗和麪積利用率等性能。爲了在推理中實現性能反饋,必須將高效的搜索技術融入推理過程,以便從廣闊的解空間中獲得高性能結果。具體而言,LPCM 可以根據目標硬件架構和軟件特性生成不同的優化策略,從而構建一箇搜索樹,其中初始結果爲根節點,中間節點和葉節點代表當前的優化結果。此外,通過預測中間節點的性能並利用來自實際部署測試的性能反饋,LPCM 可以修剪次優搜索分支,並基於當前最優搜索分支生成進一步的優化策略,直至達到固定的優化預算或達到性能提升飽和。通過性能反饋引導的基於樹搜索的推理,可以逐步提升硬件和軟件的性能,並根據特定場景進行定製。圖3:硬件設計代理的結構具有雙循環反饋機制:基於性能優化的外部模塊分解反饋循環和由自動驗證和修復支持的內部模塊生成反饋循環。爲了實現上述兩個關鍵目標,硬件設計代理需要實現自動化的模塊分解和模塊生成。這使我們能夠通過模塊分解獲得性能優化的細粒度設計方案,進而生成功能正確的模塊,最終獲得完全自動化的硬件設計結果。自動模塊分解通過將處理器架構劃分爲功能獨立且可驗證的模塊,旨在減少解空間並優化全局性能,從而解決硬件設計中巨大的解空間挑戰。值得注意的是,存在多種有效的分解方案,這些方案滿足功能規範,但性能差異很大。因此,建立性能驅動的分解機制以提升處理器芯片的PPA至關重要。分解完成後,模塊生成將根據功能規範和所選的分解方案進行。隨後,這些模塊的集成將產生最終的硬件設計結果。在模塊生成過程中,必須保證功能的正確性。爲此,硬件設計代理將LPCM與符號方法協同結合,建立了自動化的驗證和修復機制,以確保生成模塊的功能正確性。具體來說,LPCM 能夠將非正式的自然語言規範轉換爲正式的 HDL,從而滿足各種應用需求。之後,使用基於 BSD 16自動驗證並修復生成的模塊,確保功能正確性。基於LPCM,我們開發了一箇硬件設計代理,以實現從高級規範開始的自動化處理器芯片設計。硬件設計代理具有雙循環反饋機制:基於性能優化的外部模塊分解反饋循環,以及由自動驗證和修復賦能的內部模塊生成反饋循環,如圖3所示。外部循環通過模塊分解解決巨大的解空間挑戰,而內部循環通過自動驗證和修復解決正確性保證挑戰。在實現過程中,外部循環以未分解的設計作爲搜索樹的根節點啓動。在每次迭代中,LPCM根據功能規範、當前分解狀態和積累的領域知識,提出並識別出有潛力帶來性能提升的更細粒度分解候選方案作爲子節點。也就是說,在可用的分解方案中,性能欠佳的節點將被丟棄,從而同時降低解空間維度和計算複雜度。此迭代過程構建了一箇模塊分解搜索樹,其中的葉節點對應於完整的分解方案。每個葉節點的最終性能評估將外部模塊分解方案與內部已驗證的模塊整合在一起,從而實現基於回溯的模塊分解方案優化和搜索。當前模塊分解方案的評估結果將被添加到領域知識庫中,以支持後續的模塊分解。同時,在內循環中,LPCM 根據模塊分解方案提取目標模塊對應的功能規範,並生成相應的 HDL。然而,初始生成的 HDL 可能存在功能錯誤。爲了解決這個問題,需要基於 LPCM 推理中功能正確性反饋的能力來驗證和修復生成的模塊。具體而言,首先將目標模塊的 HDL 轉換爲 BSD 表示,並從真值表中採樣一組輸入輸出對進行基於仿真的驗證。當出現差異時,錯誤的 BSD 節點會進行香農展開,從而實現自動糾錯。每個修復週期都會單調增加 BSD 的功能準確度。通過反覆的驗證修復迭代,BSD 漸近接近 100% 的正確性,最終產生經過驗證的模塊設計。B.軟件設計代理圖4:軟件設計代理的結構採用雙循環反饋機制:外循環通過 LLM 引導的搜索關注性能優化反饋,內循環通過自動驗證和修復管理功能適應反饋基礎軟件在構建處理器芯片的全面技術生態系統中發揮着關鍵作用,是芯片成功商業化和廣泛應用的決定性因素。然而,調整和優化此類軟件面臨着巨大的挑戰,尤其是在當前指令集架構碎片化和軟件生態系統多樣化的背景下。RISC-V ISA 就體現了這一挑戰,其開放和模塊化的設計雖然提供了前所未有的靈活性,但同時也帶來了比 x86/ARM 架構高出幾個數量級的複雜性。它擁有近 100 種可選的指令擴展,包括向量擴展、矩陣擴展和密碼擴展,組合數量呈指數級增長,而每種變體都需要在整個軟件堆棧中進行細緻的兼容性驗證。例如,openEuler OS包含超過 10,000 個存儲庫,其中包含 400 萬個文件,所有文件都需要針對不同的 RISC-V 指令組合進行詳盡驗證。這種組合激增使得傳統的手動開發方法變得不切實際,並凸顯了兩大根本挑戰:1) 實現全面的功能適配,以確保跨不同指令集的軟件穩定性;2) 進行深度性能優化,以充分利用硬件功能。爲了應對在特定處理器上開發基礎軟件生態系統的這些挑戰,必須實現由人工智能驅動的自動化方法,以實現基礎軟件的功能適配和性能優化。功能適配問題可以抽象爲“程序生成”任務,其中代理將源代碼/平臺轉換爲目標代碼/平臺。典型的應用包括自動編譯器工具鏈設計和自動張量程序轉譯器。該方法的關鍵在於協同結合神經方法和符號方法:LLM 通過元提示處理高級程序骨架生成以實現靈活性,而基於 SMT 的程序綜合則通過糾正低級實現錯誤來確保正確性。基礎軟件的性能優化問題可以抽象爲一箇“搜索”問題,其目標是高效探索巨大的優化原語和參數組合空間,以找到最優配置。典型的應用包括高性能運算符庫的自動生成和操作系統配置優化。LLM 可以通過精心設計的元提示(對硬件特性和優化原語進行編碼)利用其上下文學習能力來有效地指導這種搜索,然後有效地修剪搜索空間以發現針對特定硬件-軟件組合定製的最佳實現。按照這種方法,我們開發了基於LPCM的軟件設計代理,如圖 4所示。軟件設計代理採用雙循環反饋機制,外循環通過LLM引導的搜索進行性能優化反饋,內循環通過自動驗證和修復管理功能自適應反饋。這個過程最終可以將原始代碼庫轉變爲一箇既可調整又可優化的代碼庫,以增強基礎軟件生態系統。需要注意的是,外循環通過分層分解和優化反饋解決了巨大的解空間挑戰,而內循環通過自動驗證和修復解決了正確性保證挑戰。具體而言,在外部性能優化反饋循環中,原始代碼被用作蒙特卡洛樹搜索的起點。然後,來自 LLM 的領域專家知識幫助評估搜索樹,修剪低效分支,並選擇具有潛在性能提升的分支。最後根據性能測量對樹進行細化,形成迭代的“觀察-修剪-優化-評估”循環,直到達到所需的優化結果。在內部功能自適應反饋循環中,我們利用 LLM 的 TTS 進行程序採樣以生成多樣化的程序草圖,然後對高質量草圖進行單元測試和執行跟蹤分析,以識別最少的錯誤片段。然後使用基於求解器的程序綜合(例如 Z3 ,針對原始實現,迭代“生成-驗證-修復”循環,直到實現功能等價。應用QiMeng基於LPCM和軟硬件設計代理,開發了一系列創新的自動化設計應用,以滿足各種軟硬件設計需求。這些應用通過策略性地應用軟硬件設計代理的特定組件,實現了處理器芯片的軟硬件自動化設計,有效地解決了實際應用需求。圖5:在 ARM 官方 CPU 基準測試 Dhrystone 上,QiMeng-CPU 系列(藍色)與人工設計的商用 CPU(灰色)的性能對比。結果顯示,QiMeng-CPU-v1 的性能與 Intel 486(20 世紀 90 年代的 CPU)相當,而 QiMeng-CPU-v2 的性能與 Arm Cortex A53(2010 年代的 CPU)相當。A.自動化前端設計自 20 世紀 50 年代以來,通用計算機 CPU 的自動化設計一直是一項關鍵的研究挑戰,引起了圖靈和丘奇等人工智能先驅的關注。隨着人工智能技術的進步,決策樹等各種方法, 大模型,以及 RL 已被嘗試用於自動化電路設計。然而,由於缺乏明確定義的電路形式化表示,現有方法的精度受到限制,導致當前方法只能處理大約數千門的電路,而無法保證更大規模電路的準確性。爲了實現大規模處理器和芯片的自動化設計,我們在硬件設計代理中採用了基於自動驗證和修復的模塊生成反饋迴路來確保功能正確性,同時採用二進制推測圖(BSD:Binary Speculation Diagrams)作爲電路的圖形表示。BSD 展現出組合邏輯電路的兩個關鍵特性:1)設計精度隨設計節點數量的增加單調提升;2)精度隨數據採樣次數的增加漸近收斂到 100%。該實現基於自動驗證和修復反饋,使用隨機生成的 BSD 進行初始化,並在模擬器中迭代驗證當前 BSD。當檢測到錯誤時,通過香農展開式修復相應的 BSD 節點,從而單調提升 BSD 的功能精度。通過迭代循環自動驗證和修復步驟,功能精度逐步收斂到 100%。應用該方法,32 位 RISC-V CPU 的整個前端設計在 5 小時內自動完成,生成了 QiMeng-CPU-v1(也稱爲 Enlightenment-1),這是世界上第一個完全自動化設計的處理器內核16。如表一所示,QiMeng-CPU-V1約有400萬門,比現有工作規模更大,超過1700×,並達到了工業規模。QiMeng-CPU-v1 於 2021 年完成流片,其計算性能可與英特爾 20 世紀 90 年代的 486 處理器相媲美,如圖5所示。此外,我們利用硬件設計代理中基於性能優化的模塊分解反饋迴路來提升自動化前端設計的性能。在自動化流水線設計中,我們利用門級依賴性分析來探索流水線模塊的分解策略,從而找到更高效的細粒度門級流水線劃分方案。隨後,我們實現了門級流水線控制器,以促進門級短路徑轉發。最後,我們利用BSD將分解後的流水線模塊綜合成電路。最終的門級流水線平均性能提升了1.57倍,吞吐量比手動設計的同類產品高出 37% 。同時,在超標量處理器的自動化設計中,我們採用模擬退火算法來搜索可預測的處理器狀態,從而實現指令級模塊分解。之後,我們設計了一種狀態二進制推測圖 (S-BSD) 架構,通過預測指令間數據依賴關係來生成指令模塊,從而實現指令級並行並提升處理器性能。基於此方法,我們開發了全球首個自動化設計的超標量 CPU——QiMeng-CPU-v2,比單週期前代QiMeng-CPU-v1(Enlightenment-1)有顯著加速(約有 380×),且與ARM Cortex A53的性能相當,如表一和圖五所示。值得注意的是,QiMeng-CPU-v1 的設計採用隨機電路初始化,並利用了硬件設計代理中基於自動驗證和修復的模塊生成反饋迴路;而 QiMeng-CPU-v2 則進行了擴展,進一步集成了硬件設計代理中基於性能優化的模塊分解反饋迴路。然而,目前兩者均未使用 LPCM 進行運行。在後續研究中,我們計劃將基於 LPCM 的 HDL 自動生成方法(見第VB節介紹)與 QiMeng-CPU-v1 中的驗證-修復引導模塊生成迴路以及 QiMeng-CPU-v2 中的性能引導模塊分解迴路相結合,最終構建完整的硬件設計代理。B.自動 HDL 生成HDL 在處理器芯片設計中發揮着關鍵作用,它能夠創建寄存器傳輸級 (RTL) 代碼,將自然語言規範與可製造的芯片佈局連接起來。作爲功能、性能、能效和生產成本的關鍵決定因素,HDL 的實現目前佔據了芯片開發週期的 70% 以上,這凸顯了對自動化解決方案的迫切需求。LLM 在軟件工程領域展現出了革命性的潛力,例如 GitHub Copilot 的效率提升了 55% ,但它們在 HDL 生成中的應用仍然不是最優的,因爲存在兩個挑戰:1)數據稀缺:公共代碼數據集包含 42×Verilog 樣本(1.91M)比 Python 代碼(80.6M)少。此外,軟件領域幾乎沒有像 LeetCode 或 Codeforces 這樣的專注於 HDL 的競賽數據集;2)語義差異:HDL 需要精確的低級控制,例如信號位寬管理,這在規範和實現之間造成了顯著的抽象差距。爲了應對上述挑戰,我們提出了一種基於多級彙總的數據合成方法,並使用合成數據對通用 LLM 進行微調,以開發一系列 HDL 代碼生成模型,稱爲 CodeV 。CodeV 實現了硬件設計代理的模塊生成組件,該組件利用 LPCM 進行硬件設計。具體而言,基於“將代碼概括爲自然語言比從自然語言生成代碼更容易、更直接”的理念,我們開發了一種漸進式抽象技術,將現有的 HDL 代碼轉換爲高質量的自然語言代碼對,從而有效地彌合了 HDL 語義鴻溝。如表 II所示,此過程產生了 18 萬個優化訓練樣本,使 CodeV-Verilog 在 VerilogEval-Machine 上實現了 80.1% 的 pass@1 ,超越此前 SOTA 開源模型 RTLCoder。。基於CodeV,我們做了兩個關鍵的擴展:1) 爲了更好地契合實際開發流程,我們通過 Chat-FIM-Tag 監督微調方法,將 CodeV-Verilog 擴展爲 CodeV-All。CodeV-All 不僅支持更廣泛的語言(包括 Verilog 和 Chisel),以及更廣泛的任務集(例如 Chat 和填入中間詞 (FIM)),而且在 VerilogEval 上的性能也匹敵甚至超越了僅基於 Verilog 進行微調的 CodeV-Verilog(如表 二所示)。這使得 CodeV 系列成爲首批專爲多場景 HDL 生成而設計的開源 LLM 系列。2) 受到數學和軟件編碼任務中展示的推理能力的啓發,我們提出了幾項創新:基於規則的測試平臺生成器,可根據黃金參考驗證預測代碼;往返數據合成方法,僅使用源代碼片段作爲輸入即可生成高質量的自然語言代碼對;自適應 DAPO,DAPO 的快速版本,根據過去的樣本丟棄率動態調整每步的樣本數量。這些組件被集成到一箇“先提取後強化學習”的兩階段訓練流水線中,以開發 CodeV-R1,一箇具有推理增強功能的 Verilog 生成 LLM,具有思考能力和測試時間擴展能力。如表 三所示,CodeV-R1 在 VerilogEval v2 和 RTLLM v2 上分別實現了 68.6% 和 72.9% 的 pass@1 率,比之前最先進的模型高出 12% 到 21%,並且匹敵甚至超過了 671B 的 DeepSeek-R1 的性能。C.自動操作系統配置優化操作系統(OS)是連接處理器和上層軟件的重要橋樑,在最大限度地發揮處理器芯片性能方面發揮着至關重要的作用。Linux 是一箇廣泛使用的開源操作系統,旨在滿足不同應用場景和處理器的多樣化需求,它由來自世界各地的開發人員貢獻了超過 2000 萬行代碼,是迄今爲止最複雜的軟件項目之一。如此龐大的代碼庫提供了巨大的優化空間,迫切需要針對特定的處理器和應用場景定製或優化操作系統,以充分釋放整個計算機系統的潛力。然而,定製或優化操作系統面臨三大挑戰。首先,這項任務的複雜性極高。即使只是優化操作系統內核,也涉及超過 15,000 個相互依賴的配置選項,這超出了傳統優化方法的能力。其次,評估每個配置的成本很高,因爲編譯、安裝和測試操作系統可能需要 1 到 2 個小時 ,這限制了神經網絡等數據驅動方法的可行性。第三,優化過程高度敏感,即使是一箇很小的錯誤也可能導致操作系統無法正常啓動,並使調試變得極其困難。爲了應對這些挑戰,我們利用軟件設計代理的 LLM 引導性能反饋循環來開發自動化操作系統配置優化方法 AutoOS,它可以在無需人工干預的情況下生成優化的內核配置,並超越硬件供應商手動優化所達到的性能。爲了實現這一點,我們引入了一箇“觀察-修剪-提出-行動-糾正”的反饋循環,它利用嵌入在 LLM 中的先驗知識來消除對性能優化沒有貢獻並且可能導致啓動問題的不相關配置選項,從而顯着減少定製的搜索空間。只需幾次搜索迭代(大約一天),該方法就可以自動生成定製優化的操作系統內核配置。與手動專家優化相比,此方法可以將性能提高多達 25.6%,如表 IV所示。D.自動編譯器工具鏈設計現代處理器的編譯器負責兩項基本任務:1)準確高效地翻譯與處理器指令集對應的精確且無歧義的編程語言,即翻譯;2)在廣闊的高維優化空間中構建編譯優化序列,即優化。目前,編譯器中的人工智能技術主要集中於改進現有編譯器框架高維空間中的優化序列,也稱爲“相位排序問題”。然而,他們難以生成一箇能夠同時處理處理器這兩項基本任務的端到端編譯器。爲了實現創建能夠同時執行翻譯和優化任務的端到端編譯器的長期目標,我們探索了基於軟件設計代理的自動化編譯器工具鏈設計方法,並研究了兩種不同的方法:(1) 自動生成編譯器後端代碼。基於 LLVM 等現有架構,我們構建了編譯器後端數據集 ComBack 並對 LLM 進行微調,以改進和充分利用 LLM 對編譯器後端代碼的理解能力 VEGA 。最終,我們成功生成了針對特定處理器定製的編譯器後端代碼,準確率超過 70%,並通過明確的置信度得分突出顯示了關鍵區域,幾乎無需進行手動優化。這種方法有望徹底改變傳統的後端開發工作流程。(2) 使用 LLM 作爲端到端編譯器。我們發現編譯器的翻譯任務與自然語言翻譯有着顯著的相似之處,而自然語言翻譯正是 LLM 的優勢所在。這表明 LLM 有潛力徹底改變編譯器的構造,使其能夠真正充當編譯器的角色。然而,由於自然語言本質上具有歧義性,而編程語言則具有由語法定義的精確語義,因此直接將 LLM 應用於翻譯任務會導致結果不理想。例如,使用 GPT-4 將 C 語言翻譯成 RISC-V 彙編語言的準確率低於 50%,複雜函數的性能接近於零。因此,我們提出了一種端到端神經編譯器方法基於軟件設計代理。該方法結合了編程語言的語法信息和編譯器領域知識,以指導專用 LLM 的生成。一方面,我們使用由編譯器專業知識指導的數據增強技術來創建高質量數據集,從而對 LLM 進行微調。另一方面,我們在推理階段利用程序的語法信息,爲特定翻譯任務定製 LLM。這種組合使我們在 ExeBench 上實現了 C 語言翻譯超過 99% 的準確率。數據集併成功從 AnsiBench 等真實數據集編譯代碼和 CoreMark ,證實了該方法的可行性。展望未來,我們將繼續改進如何提升基於LPCM直接用作端到端編譯器的軟件設計代理的性能。E.自動張量程序轉譯器當代的 LLM,包括 GPT 和 DeepSeek 等著名示例,都表現出對 NVIDIA CUDA 生態系統的深度依賴。這種依賴既包括供應商提供的庫,例如 cuBLAS ,cuDNN ,TensorRT,以及社區開發的內核,如 FlashAttention-v1、FlashAttention-v2、FlashAttention-v3. 就連國內開源的LLM DeepSeek 還開發了像 FlashMLA 這樣的定製加速庫和DeepGEMM 適用於 NVIDIA GPU。然而,國產 AI 芯片的軟件生態系統面臨嚴重的碎片化問題,因爲不同的芯片製造商各自開發獨立的算子庫。這使得國產 AI 芯片的軟件生態系統難以統一,阻礙了其大規模普及。爲了應對這一挑戰,我們開發了一箇自動張量程序轉編譯器,QiMeng-Xpiler ,基於軟件設計代理,實現跨不同 AI 芯片(包括 NVIDIA GPU 和國產 AI 芯片)的“一次編寫,隨處運行”。其關鍵在於,程序翻譯過程基於函數自適應反饋迴路自動進行一系列神經符號轉換,其中 LLM 生成高級程序草圖,並通過小規模符號綜合修復錯誤的代碼細節。同時,通過基於性能優化反饋迴路的分層自動調整來識別最佳轉換過程。具體而言,我們結合了跨通道蒙特卡洛樹搜索,以實現最佳轉換排序和基於約束的通道內自動調整關鍵調整參數,例如內存平鋪配置。最終,我們的解決方案能夠跨 Nvidia GPU、寒武紀 MLU、AMD MI加速器、英特爾 DLBoost ,以及像 SIMT、SIMD 這樣的編程模型等各種處理器實現自動化張量程序轉譯器。在 LLM 等實際應用中,對這些模型跨不同的處理器進行實驗證明,QiMeng-Xpiler 可以正確翻譯不同的張量程序,平均準確率爲 95%,如表 V所示。F.自動化高性能庫生成領先的硬件供應商,例如 NVIDIA、ARM、Intel、AMD 和 Cambricon,都在手動優化庫方面投入巨資,以最大限度地提升其處理器的性能。這些專家精心打造的解決方案需要對微架構細節有深入的瞭解,需要對計算和內存操作進行細緻的並行化,而這些通常需要使用特定於供應商的語言或彙編代碼來實現。雖然這種手動優化模式能夠提供卓越的性能,但它從根本上缺乏跨不同硬件架構的可擴展性和可移植性。爲了應對這些挑戰,除了通過上述自動張量程序轉編譯器利用現有的軟件生態系統外,我們還基於軟件設計代理開創了一種名爲 QiMeng-GEMM 的自動化方法,用於生成具有矩陣乘法(即 GEMM)的高性能庫,由於其在 LLM 中的核心作用,因此深度學習和科學計算成爲我們的主要目標。我們提出的 QiMeng-GEMM 是第一個利用 LLM 自動生成高性能 GEMM 代碼的方案。具體來說,我們抽象出了常見的 GEMM 優化方法和硬件架構特性,併爲 LLM 創建了一組通用的元提示,用於生成高性能矩陣乘法運算符。這些元提示使 LLM 能夠通過捕捉不同平臺的架構特性來理解和實現優化目標。然後,我們將軟件設計代理中的性能反饋迴路與思維樹(ToT:Tree of Thoughts)技術系統地探索優化原語組合。這使我們能夠探索由元提示生成的所有可能的優化序列,從而能夠生成針對不同硬件架構特性定製的高性能矩陣乘法算子。進一步擴展我們基於 LLM 的自動化框架,我們提出了 QiMeng-TensorOp,這是首個利用 LLM 自動生成具有硬件原語的高性能張量算子的方法。我們開發了結構化的硬件固有優化提示和知識引導的工作流程,使 LLM 能夠理解特定平臺的架構和優化策略。爲了優化生成的算子,我們設計了一種 LLM 引導的蒙特卡洛樹搜索 (MCTS) 算法,該算法有效提升了在特定硬件上調優原語級張量算子的效率和性能。我們進一步提出了 QiMeng-Attention,這是第一個用於跨平臺注意力算子生成的硬件感知自動化框架。我們提出了一種 LLM 友好的思維語言 (LLM-TL),幫助 LLM 解耦高級優化邏輯的生成和 GPU 上的低級實現,並增強 LLM 對注意力算子的理解。結合兩階段推理工作流程、TL 代碼生成和翻譯,LLM 可以在不同的 GPU 上自動生成 FlashAttention 實現,從而爲在以注意力爲中心的算法中生成高性能注意力算子建立了一箇自優化範式。我們已經在玄鐵C910開發板、MuseBook (K1) ,ARM A76 和 NVIDIA GPU(RTX 4070 87、RTX 8000 ,T4 和A100等不同平臺上驗證了這些方法,見表六、表七和表八。在RISC-V平臺上,QiMeng-GEMM和QiMeng-TensorOp生成的高性能矩陣乘法算子分別可以達到OpenBLAS性能的211%和251%。在NVIDIA平臺上,它們分別可以達到cuBLAS性能的115%和124%。與傳統的LLM快速方法相比,我們的方法顯著提高了生成代碼的性能,提高了開發效率。爲了驗證Qimeng-Attention的性能,我們在各種NVIDIA硬件架構上進行了實驗。在NVIDIA T4平臺和NVIDIA RTX8000平臺上,Qimeng-Attention生成的高性能注意算子與所有四種實現相比始終具有優異的性能指標。以上爲大部分翻譯,僅供參考。感謝本文作者,另外,可以點擊後文的“閱讀原文”,以查看英文原文。*免責聲明:本文由作者原創。文章內容系作者個人觀點,半導體行業觀察轉載僅爲了傳達一種不同的觀點,不代表半導體行業觀察對該觀點贊同或支持,如果有任何異議,歡迎聯繫半導體行業觀察。今天是《半導體行業觀察》爲您分享的第4063期內容,歡迎關注。加星標??第一時間看推送,小號防走丟求推薦
(請各位謹慎甄別內容,自擔風險。)
2025-Jun-16
公衆號記得加星標??,第一時間看推送不會錯過。來源:內容編譯自arxiv。處理器芯片設計技術是推動計算機科學及相關領域突破的關鍵前沿技術。隨着信息技術的快速發展,傳統的設計範式面臨三大挑戰:製造技術的物理約束、日益增長的設計資源需求以及生態系統的日益多樣化。自動化處理器芯片設計已成爲應對這些挑戰的變革性解決方案。儘管人工智能(AI)領域的最新突破,尤其是大型語言模型(LLM)技術,爲完全自動化的處理器芯片設計開闢了新的可能性,但爲處理器芯片設計建立特定領域的LLM仍然存在巨大的挑戰。本文提出了一種全新的處理器芯片軟硬件全自動設計系統——QiMeng。QiMeng 包含三個層次。在底層,我們構建了一箇面向特定領域的大型處理器芯片模型 (LPCM: Large Processor Chip Model),在架構、訓練和推理方面引入了新穎的設計,以應對知識表示缺口、數據稀缺、正確性保證以及巨大的解空間等關鍵挑戰。在中間層,我們利用 LPCM 的知識表示和推理能力,開發了硬件設計代理和軟件設計代理,以實現處理器芯片軟硬件設計的自動化。目前,QiMeng 的多箇組件已經完成,併成功應用於各種頂層應用,展現出顯著的優勢,爲高效、全自動的處理器芯片軟硬件設計提供了可行的解決方案。未來的研究將致力於集成所有組件,並執行自上而下和自下而上的迭代設計流程,以建立一箇完整的 QiMeng 系統。介紹作爲計算系統的基礎硬件平臺,處理器和芯片承擔着指令執行、數據處理和資源管理等關鍵功能。這些處理器和芯片驅動着從個人電腦、服務器、智能手機到物聯網(IoT)設備等各種設備,構成了現代數字經濟的技術基礎。處理器芯片設計既是國家經濟發展的戰略性產業,也是推動計算機科學進步的前沿研究領域。處理器芯片設計是一項高度複雜且系統性的任務,需要緊密的軟硬件協同設計才能滿足功能需求,並優化性能、功耗和麪積(PPA)。這些要求使得處理器芯片設計成爲工業界和學術界最具挑戰性的研究課題之一。信息技術的演進揭示了當前處理器芯片設計方法的三大根本侷限性:製造工藝受限、資源有限以及生態系統多樣化。在製造工藝方面,隨着半導體制造工藝接近7納米以下的物理極限,量子隧穿和短溝道效應等現象變得越來越棘手,使得基於傳統制造工藝的性能擴展變得無效,從而迫切需要設計方法的創新。從資源角度來看,傳統的設計流程需要大量的專業知識和勞動密集型的設計驗證迭代,以確保功能正確性,同時平衡PPA等相互衝突的設計目標。這導致開發週期延長和成本高昂。在生態系統方面,人工智能、雲計算和邊緣計算等新興應用需要專門的架構和定製的基礎軟件支持。因此,傳統的芯片設計方法由於其固有的耗時和高昂的成本要求,無法有效應對生態系統的挑戰。總而言之,這些挑戰凸顯了對新型設計範式的迫切需求,這種範式能夠在滿足多樣化應用需求的同時,提供更高性能、更高效能和更低成本。自動化處理器芯片設計旨在實現處理器芯片整個設計和驗證流程的自動化,爲克服上述侷限性提供了一種頗具前景的解決方案。通過利用人工智能方法,自動化處理器芯片設計有望超越手工設計,並在相同的製造工藝下實現更佳性能。此外,自動化處理器設計方法能夠大幅減少人工干預,顯著提高設計效率,同時縮短開發週期並降低成本。此外,它還能快速定製芯片架構和軟件堆棧,以滿足特定應用領域的定製需求,從而滿足日益增長的專用計算解決方案需求。大型語言模型 (LLM) 和多智能體系統的最新突破爲自動化處理器芯片設計創造了新的機遇。最先進的 LLM,例如 DeepSeek-V3、DeepSeek-R1, Qwen3,GPT-4o和 Gemini 2.5 Pro 在問答、規劃和推理方面展現了卓越的能力,展現了通用人工智能 (AGI) 的潛力。經過領域特定數據的後期訓練,可以獲得領域特定的打磨性格 (LLM),並且在計算生物學等科學學科中取得了令人矚目的成果 。更先進的基於 LLM 的代理將認知能力與 LLM 的工具使用技能相結合,以自主規劃和執行復雜的工作流程。大模型和代理的這些發展爲完全自動化處理器芯片設計指明瞭新的途徑。然而,由於處理器芯片設計的特殊性,將LLM和代理應用於自動化處理器芯片設計面臨四大挑戰:知識表示缺口(knowledge representation gap)、數據稀缺(data scarcity)、正確性保證(correctness guarantee)以及巨大的解空間(enormous solution space)。首先,知識表示缺口:關鍵的處理器芯片設計數據採用圖結構,例如抽象語法樹(AST:abstract syntax trees)、數據流圖(DFG:data flow diagrams )和控制流圖(CFG:control flow diagrams)。圖數據與LLM通常處理的順序文本存在固有的語義缺口,這限制了領域知識表示能力,並限制了LLM的處理器芯片設計能力。其次,數據稀缺:與互聯網上可用於訓練通用LLM的海量PB級文本語料庫不同,處理器芯片設計數據規模較小,在GitHub等開源社區中僅有TB級數據,這嚴重製約了針對處理器芯片設計領域專用LLM的開發。第三,正確性保證:處理器設計需要嚴格的驗證標準,這與LLM的概率性本質存在根本衝突。例如,英特爾奔騰 4 處理器在功能驗證中要求準確率達到 99.99999999999% 。最後,巨大的解決方案空間:處理器設計涵蓋從基礎軟件到物理佈局的多箇抽象階段,因此,直接在原始比特流級別對設計空間進行建模會面臨維度爆炸的問題。例如,32 位 CPU 的方案空間達到10^10540。這個巨大的解決方案空間對於獲得功能正確且性能優化的處理器設計提出了極大的挑戰。圖 1:概述,QiMeng 由三層組成:底層是領域專用的大型處理器芯片模型 (LPCM);中間層是基於 LPCM 實現自動化軟硬件設計的硬件設計代理和軟件設計代理;頂層是各種處理器芯片設計應用程序。爲了應對上述挑戰並開創變革範式,我們提出了 QiMeng ,這是一箇用於處理器芯片全自動軟硬件設計的全新系統。QiMeng 由三層組成。底層構建了一箇大型處理器芯片模型 (LPCM),作爲處理器芯片設計領域專用的 LLM;中間層基於 LPCM 創建了硬件設計代理和軟件設計代理,分別用於實現硬件和軟件的自動化設計。最後,這兩個代理在頂層支持各種處理器芯片設計應用,如圖1所示。在QiMeng中,爲了克服上述四大挑戰,LPCM經過精心設計,融合了領域專業知識和處理器芯片設計的基本能力。LPCM在架構、訓練和推理方面的獨特創新,使其區別於通用LLM。在架構方面,LPCM採用多模態結構,能夠理解和表徵處理器芯片領域固有的圖數據,從而解決了知識表徵缺口這一關鍵挑戰。在訓練方面,自動生成大量處理器芯片設計領域特定數據至關重要。對於處理器芯片設計的每個抽象階段,系統地收集領域特定數據,並獨立訓練單階段自動化設計模型。隨後,這些模型被級聯,自主生成大量跨階段對齊的處理器芯片設計數據。利用這些對齊數據,LPCM可以訓練從分層設計流程中學習領域知識,從而有效緩解數據稀缺的挑戰。在推理過程中,實現了兩種反饋驅動機制。通過構建來自自動化功能驗證的正確性反饋,LPCM 能夠自主修復錯誤結果並確保生成輸出的有效性,從而解決處理器設計中確保正確性的挑戰。同時,利用來自自動化性能評估的性能反饋,LPCM 能夠分解解空間並修剪低性能子空間。因此,LPCM 可以有效降低解空間的維度,並高效地探索高性能設計方案,從而克服了龐大解空間帶來的挑戰。基於LPCM,QiMeng開發了兩個專用代理:硬件設計代理和軟件設計代理,致力於處理器和芯片軟硬件的自動化設計。硬件設計代理採用雙循環機制,由基於性能優化的外部模塊分解反饋循環和基於自動驗證和修復的內部模塊生成反饋循環組成。該雙循環機制實現了從功能規範到物理佈局的端到端自動化設計,統一了邏輯設計、電路設計和物理設計等傳統上相互脫節的階段。因此,硬件設計代理實現了一箇完全集成的跨階段協同設計範式,有望超越傳統的人工設計,在相同的製造工藝下實現卓越的性能。同時,軟件設計代理也採用雙循環機制,由LLM引導的外部性能優化反饋循環和基於自動驗證和修復的內部功能適配反饋循環組成。軟件設計代理自主實現目標處理器芯片基礎軟件的無縫功能適配和性能優化,滿足現代應用不斷變化的需求。利用硬件設計代理和軟件設計代理,可以開發各種應用程序,以解決處理器芯片設計的各種實際用例。在自動化硬件設計方面,我們已取得重大進展,包括自動化前端設計和自動化HDL生成。在自動化軟件設計方面,我們取得了包括自動化操作系統配置優化、自動化編譯器工具鏈設計、自動化張量程序轉編譯器以及自動化高性能庫生成在內的成就。這些應用推動了QiMeng關鍵組件的實現,爲其全面實現奠定了堅實的基礎。未來,我們將採用三階段方法構建QiMeng,從自上而下過渡到自下而上,最終實現一箇可自我演化的框架。首先,在自上而下的階段,頂層各種自動化設計應用程序的實現將爲中間層的兩個代理提供設計專業知識,並生成大量特定領域的數據,以增強底層LPCM的功能。隨後,在自下而上的階段,改進的LPCM、硬件和軟件設計代理將以自下而上的方式應用於更廣泛的處理器芯片設計應用。最終,在迭代階段,將建立自上而下和自下而上相結合的迭代循環,實現QiMeng的自我演進,逐步提升其全自動處理器芯片設計能力,同時擴展其適用性以支持日益多樣化和複雜的場景。本文旨在構建一箇全面的處理器芯片全自動軟硬件設計框架,並介紹了QiMeng及其發展路線圖、設計方法和應用。本文結構如下:第二部分闡述了QiMeng的開發動機及其發展路線圖;第三部分闡述了LPCM的設計,涵蓋架構、訓練和推理;第四部分詳細介紹了硬件設計代理和軟件設計代理;第五部分展示了QiMeng關鍵組件支持的多種應用;第六部分概述了自動化處理器芯片設計的相關研究;第七部分總結了未來研究的發展方向。路線圖自動處理器芯片設計是計算機科學領域的核心問題之一,源於丘奇問題(Church’s Problem):如何自動設計電路以滿足給定輸入和輸出之間的關係?這個問題由計算機科學奠基人阿隆佐·丘奇(Alonzo Church)於1957年提出,幾十年來一直是一箇巨大的挑戰,吸引了Rabin, Scott和 Pnueli等圖靈獎獲得者的廣泛研究,但至今仍未得到解決。早期的電子設計自動化 (EDA) 工具基於預定義規則和布爾邏輯,可以自動完成邏輯綜合、佈局和佈線等特定設計任務。隨着電路複雜度的增加,基於優化的技術應運而生,包括高級綜合 (HLS),它可以自動將高級描述轉換爲 RTL 結構,以及設計空間探索 (DSE),它可以優化 PPA 的設計參數。近年來,人工智能技術推動處理器芯片的自動化設計進入更加智能、數據驅動的階段。隨機森林(Random Forests)、強化學習 (RL) 和圖神經網絡 (GNN) 等技術使電路優化、佈局和佈線的自動化成爲可能,顯著提高了複雜場景下的設計效率。然而,這些方法主要將 AI 用作改進傳統 EDA 流程步驟的工具,而沒有從根本上改變整體設計範式。當前的自動化設計方法主要存在三個侷限性。首先,實際應用中的處理器芯片設計需求通常以模糊、非正式的自然語言表達,而現有方法只能處理精確、正式的輸入,通常以硬件描述語言 (HDL) 的形式出現。因此,從非正式到正式的轉變需要專家進行大量工作。其次,這些方法只能自動化處理器芯片設計的某些步驟,例如邏輯綜合、形式驗證、自動佈局和佈線。然而,邏輯設計、指令集擴展、軟件工具鏈適配和優化等關鍵任務仍然無法完全自動化。最後,現有方法通常侷限於單個任務,設計空間受限,缺乏跨階段的軟硬件協同設計,難以突破人爲驅動設計的界限。LLM 和智能體的發展爲克服傳統自動設計方法的三大關鍵侷限性開闢了新的可能性。首先,LLM 可以將非形式化的自然語言描述轉換爲形式化的編程語言,從而使其能夠根據自然語言規範自動生成從基本功能到完整程序等各種任務的正確代碼。其次,基於 LLM 構建的智能體可以自主規劃和執行復雜任務,並能夠獨立使用外部工具。這種能力爲人工智能技術與領域特定工具的集成提供了一種新穎的方法,爲實現全自動處理器芯片設計開闢了新的視角。最後,LLM 擁有強大的多任務處理能力,在完成複雜的規劃和推理任務方面展現出巨大的潛力,這爲實現軟硬件設計中的跨階段協作奠定了基礎。基於以上分析,我們提出了QiMeng,一箇用於處理器芯片全自動軟硬件設計的創新範例。QiMeng由三層結構組成,如圖1所示。底層是LPCM,它將領域專業知識嵌入到處理器芯片設計領域。中間層是硬件設計代理和軟件設計代理,它們利用LPCM的領域知識實現軟硬件的自動化設計。頂層專注於實現各種應用程序,這些應用程序利用硬件設計代理和軟件設計代理提供的自動化設計功能來滿足處理器芯片的不同設計需求。這三層協同工作,形成一箇完整的處理器芯片全自動軟硬件設計系統。然而,QiMeng 的實現並非一蹴而就。三個層級各自面臨挑戰,難以自下而上地直接構建完整的 QiMeng 系統。具體而言,底層 LPCM 的實現需要大量處理器芯片軟硬件設計領域的專業數據。然而,這些領域數據極其匱乏,阻礙了 LPCM 的訓練。在中間層,軟硬件設計代理的開發依賴於 LPCM 提供的領域知識,同時還需要集成用於驗證正確性和評估性能的專用工具。在頂層,各種應用程序的實現依賴於 LPCM 和兩個代理。儘管存在這些挑戰,但這三個層級仍然保持着高度的相互依賴性,並可以相互促進。頂層的各種應用程序可以爲 LPCM 提供寶貴的領域數據,並有助於使用專用工具對軟硬件設計代理進行功能驗證和性能評估。此外,軟硬件設計Agent實現了LPCM與專用工具之間完整交互流程的構建,爲LPCM提供了數據自動生成機制,通過三個層次的協同作用,有效解決各層次面臨的挑戰。雖然QiMeng最初是採用自下而上的方式設計的,但在實際實現過程中,採用自上而下的方式更容易。在以實現各種硬件和軟件設計爲目標的驅動下,頂層應用程序的實現可以爲LPCM提供豐富的合成領域專用數據,同時也能提供與專用工具協同設計軟硬件設計代理的設計經驗。基於以上分析,我們提出了一箇分三階段實現完整QiMeng系統的路線圖。第一階段採用自上而下的構建方法,基於LPCM開發各種應用程序,並以通用LLM作爲初始化。在應用程序的實現過程中,構建軟硬件設計Agent的關鍵組件和功能,並將它們組合起來,建立兩個Agent的完整流程。同時,整合大量的軟硬件設計領域專業數據用於訓練LPCM,使LPCM獲得優於通用LLM的領域知識。第二階段採用自下而上的構建方法,基於訓練好的LPCM重構軟硬件設計Agent,並重新開發各種應用程序。由於LPCM增強了領域知識和專業能力,第二階段重新開發的應用程序將比第一階段獲得更好的自動化設計效果。在此基礎上,基於第二階段的應用程序可以獲得更高質量的軟硬件設計數據。第三階段是將自上而下和自下而上的設計流程結合起來,形成一箇迭代循環。受約翰·馮·諾依曼的“Theory of Self-Replicating Automata”的啓發,我們希望通過這樣的循環,實現QiMeng的自我進化。在進化的過程中,一方面,我們致力於拓展QiMeng的深度,不斷提升其面向處理器芯片的全自動化軟硬件設計能力;另一方面,我們致力於拓展QiMeng的廣度,不斷拓展其應用範圍,爲更廣泛的處理器芯片設計場景提供智能化支持。目前的工作仍處於三階段方法的第一階段。迄今爲止,已成功實現了包括自動化前端設計、自動化 HDL 生成、自動化 OS 配置優化、自動化編譯器工具鏈設計、自動化張量程序轉譯器以及自動化高性能庫生成在內的代表性應用。這些應用實現了軟硬件設計代理的一些關鍵組件。在未來的工作中,我們將完成第一階段,將這些關鍵組件集成到一箇完整的軟硬件設計代理中,並自動生成大量領域專用數據來訓練 LPCM。之後,我們將進行第二階段和第三階段,以構建一箇完整的 QiMeng 系統。大型處理器芯片模型圖2:左圖:LPCM 的多模態架構,能夠理解、表示和生成文本和圖形數據。右圖:LPCM 的反饋驅動推理,採用雙循環機制,由外部性能反饋循環和內部功能正確性反饋循環組成。由於處理器芯片設計的獨特性,必須解決四個關鍵挑戰:知識表示差距、數據稀缺、正確性保證以及巨大的解決方案空間。爲了應對這些挑戰,QiMeng 開發的 LPCM 在架構、訓練和推理方面採用了獨特的方法,使其有別於通用的 LLM。本節將詳細討論這些創新。值得注意的是,設計一箇全面的LPCM芯片本身就帶來了巨大的挑戰,因爲它需要從基礎軟件開發到芯片設計的專業知識和能力。我們之前的工作研究了LPCM的構建,將流程分爲三個層次:)以人爲中心(Human-Centric),輔助人類進行代碼生成和參數調優並提供建議;2)代理編排(Agent-Orchestrated),通過工具鏈集成獨立完成部分子任務,以促進跨層優化;3)模型治理(Model-Governed),實現軟硬件協同設計、仿真和迭代改進全過程的完全自動化。本文特別關注第三層的設計方法論。A.多模態結構由於文本通常以順序數據的形式組織,因此大多數現有的 LLM 架構主要側重於處理順序信息。即使在處理圖像或其他模態數據的多模態 LLM 中,多模態特徵也被視爲一種特殊的序列類型,並在輸入模型之前與文本序列連接起來。然而,在處理器芯片設計領域,除了功能需求的文本描述和正式的代碼表示之外,許多關鍵信息和知識都以圖形插圖的形式呈現。例如,軟件架構通常表示爲抽象語法樹 (AST),芯片邏輯架構表示爲數據圖 (DFG),芯片電路架構表示爲組合圖 (CFG)。這些圖形數據對於處理器芯片設計至關重要。因此,LPCM 被專門設計爲一種多模態架構,能夠理解、表示和生成圖形數據,從而更有效地學習和呈現處理器芯片領域的知識,如圖2左圖所示。具體來說,LPCM 的輸入包含兩種形式:需求規範的文本描述和圖形說明。理解和表示圖數據有兩個關鍵問題:特徵表示和特徵對齊。一種簡單的方法是將圖數據表示爲特殊的文本格式,並將其與文本標記連接起來,然後再輸入模型。然而,這種方法會序列化圖的拓撲結構,可能導致圖中拓撲結構接近的節點在序列中位置相距較遠,從而丟失圖數據的拓撲信息。爲了更好地保留圖的拓撲信息,圖神經網絡 (GNN) 可用於編碼圖數據並生成其嵌入。然後,可以應用對比學習將圖嵌入的特徵與相應的文本嵌入對齊。一旦實現特徵對齊,圖嵌入就會與其他文本標記連接起來,並輸入到 LPCM 中。B.跨階段協作訓練爲了實現處理器芯片的全流程自動化設計,收集用於訓練LPCM的跨階段設計數據至關重要。然而,處理器芯片領域面臨着嚴重的數據匱乏問題。與互聯網上PB級的文本語料庫相比,GitHub等開源社區提供的軟硬件代碼數據通常只有TB級。而且,這些數據通常僅涵蓋處理器芯片設計流程中的特定階段。因此,包含多箇設計抽象階段的跨階段設計數據嚴重匱乏。這種數據匱乏的挑戰對LPCM的有效訓練構成了重大障礙。因此,開發一箇跨階段協同設計數據庫,爲LPCM的訓練提供必要的基礎至關重要。爲了構建跨階段協同設計數據庫,需要建立跨階段設計數據的自動化生成流程。對於處理器芯片設計的多箇抽象階段,包括高性能庫設計、操作系統內核設計、編譯器工具鏈設計、邏輯設計、電路設計和物理設計,首先需要分別收集每個階段的設計數據。這些數據只需捕捉各個階段的信息,無需進行跨階段對齊。高層信息更接近自然語言,包含更豐富的語義內容,而低層信息則更接近芯片的實際圖形表示。因此,每個階段的數據必須同時包含文本和圖形模態。這些單階段設計數據隨後用於訓練模型,從而爲每個階段生成自動化設計模型。通過將這些模型級聯在一起,可以自動生成大規模、跨階段對齊的處理器芯片軟硬件設計數據,以應對數據稀缺的挑戰。構建跨階段協同設計數據庫後,我們便可以訓練LPCM,使其具備生成跨階段協同設計推理的能力。這可以通過基於數據庫應用思維鏈(CoT)模仿學習來實現。在此過程中,跨階段協同設計數據集中來自處理器芯片設計多箇階段的設計數據被視爲推理序列,生成多箇(輸入、CoT、輸出)三元組,用於訓練LPCM的CoT推理。爲了增強LPCM對中間階段設計細節的理解,在訓練目標中引入了分佈對齊損失。爲了確保訓練的穩定性,可以採用課程學習策略,從CoT較短、設計複雜度較低的樣本開始,逐步增加樣本的複雜度。基於這個全面的跨階段協同設計數據庫進行訓練,將使處理器模型獲得生成協同設計流程和最終設計結果的能力。此外,將採用自動化單元測試框架來創建獎勵函數,並應用 RL 方法進一步完善 LPCM 的 CoT 生成並提高其處理器芯片設計能力。LPCM 的輸出也包含兩種模態:文本和圖形。文本模態包括處理器芯片設計的軟件和硬件代碼,而圖形模態包括生成的圖表,例如軟件架構圖、芯片電路圖和芯片佈局圖。圖形的生成過程與其表示密切相關。如果圖形數據直接用特殊的文本格式表示,LPCM 也可以直接以這種格式輸出圖形。然而,這種表示方法可能會丟失拓撲信息,從而影響生成圖形的準確性。爲了更好地保留圖形的拓撲信息,LPCM 可以首先輸出圖形的嵌入,然後使用專門的圖形生成模型(例如 GRAPHARM 等擴散模型)將其映射到圖形結構14或像 GPT-GNN 這樣的生成式 GNN 15爲了更準確地反映電路的特性,可以採用電路設計中常用的二元決策圖(BDD)。此外,二元推測圖(BSD )是用於電路生成的 BDD 的增強版本,也可用於爲自動化處理器芯片設計提供更好的適用性。C.反饋驅動推理雖然LPCM具備處理圖信息的領域專業知識和跨階段協同設計的能力,但上下文長度限制和幻覺等挑戰阻礙了LPCM實現無縫的端到端處理器芯片設計以及基礎軟件的適配和優化。爲了確保生成的處理器芯片軟硬件的正確性和高性能,必須開發一種反饋驅動的LPCM推理機制,以促進有效的設計規劃、利用外部功能驗證工具並通過反饋優化性能。具體而言,反饋驅動的推理可以分爲兩類:功能正確性反饋和性能反饋,如圖2右所示。LPCM通過雙循環機制執行這兩個反饋,包括外部性能反饋循環和內部功能正確性反饋循環。· 功能正確性反饋功能驗證是確保手工設計的處理器芯片正確性的關鍵步驟。通過模擬各種用例和極端情況,該過程驗證處理器指令集、數據路徑、控制邏輯和多核協調等關鍵組件的功能。功能驗證確保處理器芯片在流片前符合規範,避免因邏輯錯誤或功能缺陷而導致代價高昂的返工。功能驗證貫穿處理器芯片設計的所有階段,包括邏輯設計、電路設計和物理設計。在驗證過程中,會採用形式驗證、動態仿真和硬件仿真等技術。如果發現功能錯誤,專家會手動改進設計並進行迭代驗證,直到設計完全達到功能正確性。受此啓發,爲了在自動化處理器芯片設計過程中提高功能正確性,必須在LPCM推理中集成面向功能正確性的反饋機制。該功能正確性反饋機制利用驗證反饋自動驗證設計並進一步修復設計錯誤,確保設計結果的正確性,並解決正確性保證的挑戰。爲了在推理中實現功能正確性反饋,在推理的中間步驟中集成了額外的自動驗證和修復循環。具體而言,LPCM 在推理過程中會主動評估當前推理步驟是否需要自動驗證。當需要自動驗證時,LPCM 會利用適當的專用工具或模型來驗證中間設計的功能。如果檢測到功能錯誤,則會觸發自動修復,這包括恢復到推理鏈中最後一箇已驗證的功能步驟,合併當前驗證中的錯誤反饋,並重新生成當前步驟的設計。此驗證和修復過程不斷重複,直到獲得功能正確的設計。通過這種迭代的功能正確性反饋循環,設計的正確性不斷得到改進,最終使自動設計的處理器芯片的功能正確性接近 100%。· 性能反饋性能優化旨在提升已設計工藝芯片的PPA,在處理器芯片設計和基礎軟件適配中發揮着至關重要的作用。現有的自動化優化工具,例如深度學習編譯器和DSE方法,通常依賴於專家設計的基於規則的優化方法或機器學習技術。雖然這些工具與手動調優相比顯著減少了人力,但它們仍然存在覆蓋範圍窄、效率不理想以及跨領域可遷移性差等問題。爲了增強自動化性能優化的能力,跨階段協同設計至關重要。LPCM應該能夠根據功能規範直接生成芯片版圖。然而,直接使用處理器芯片的原始比特流輸入來表達設計問題會導致維數災難。例如,32位CPU的解空間可能會增長到10^10540。爲了應對巨大的解空間挑戰,處理器芯片設計被劃分爲多箇抽象階段。在邏輯設計階段,功能規範被轉化爲高級HDL(硬件描述語言)。在電路設計階段,這些高級HDL被轉換爲門級網表。而在物理設計階段,門級網表被轉化爲芯片版圖。該工作流程遵循由粗到精的漸進式設計流程。每個階段都會包含額外的實現細節,逐步引入更多約束,逐漸修剪包含最優解概率較低的解子空間,從而減小整體解空間的大小。受此啓發,爲了實現自動化性能優化,LPCM需要採用一種基於性能反饋引導的分層搜索推理機制。這涉及構建分層分解,基於領域知識和性能反饋對解空間進行修剪,從而有效降低解空間的維度。同時,通過利用 LLM 在推理過程中表現出的迭代推理和測試時間縮放 (TTS) 優勢,可以有效地探索解決方案空間,解決巨大的解決方案空間挑戰並提高自動化設計的性能。處理器芯片設計代理在LPCM的基礎上,QiMeng開發了兩個專門的代理:硬件設計代理和軟件設計代理,實現了處理器芯片的全自動硬件/軟件設計。A.硬件設計代理隨着製造技術不斷接近物理極限,傳統的通過7納米以下工藝製程提升芯片性能的方法已遭遇根本性侷限。因此,設計重點需要從以製造爲中心的改進轉向設計方法的創新。爲了突破處理器芯片製造技術的制約,有必要探索全自動硬件設計。這需要建立一箇從功能規範到物理佈局的無縫設計框架,突破傳統的邏輯設計、電路設計和物理設計等多階段設計層級,探索更廣闊的跨階段協作設計空間,從而獲得更卓越的解決方案。自動化設計框架必須滿足兩個關鍵目標:1)功能正確性,確保自動設計的處理器芯片能夠提供準確的計算結果;2)高性能,優化計算吞吐量、功耗和麪積利用率等性能。爲了在推理中實現性能反饋,必須將高效的搜索技術融入推理過程,以便從廣闊的解空間中獲得高性能結果。具體而言,LPCM 可以根據目標硬件架構和軟件特性生成不同的優化策略,從而構建一箇搜索樹,其中初始結果爲根節點,中間節點和葉節點代表當前的優化結果。此外,通過預測中間節點的性能並利用來自實際部署測試的性能反饋,LPCM 可以修剪次優搜索分支,並基於當前最優搜索分支生成進一步的優化策略,直至達到固定的優化預算或達到性能提升飽和。通過性能反饋引導的基於樹搜索的推理,可以逐步提升硬件和軟件的性能,並根據特定場景進行定製。圖3:硬件設計代理的結構具有雙循環反饋機制:基於性能優化的外部模塊分解反饋循環和由自動驗證和修復支持的內部模塊生成反饋循環。爲了實現上述兩個關鍵目標,硬件設計代理需要實現自動化的模塊分解和模塊生成。這使我們能夠通過模塊分解獲得性能優化的細粒度設計方案,進而生成功能正確的模塊,最終獲得完全自動化的硬件設計結果。自動模塊分解通過將處理器架構劃分爲功能獨立且可驗證的模塊,旨在減少解空間並優化全局性能,從而解決硬件設計中巨大的解空間挑戰。值得注意的是,存在多種有效的分解方案,這些方案滿足功能規範,但性能差異很大。因此,建立性能驅動的分解機制以提升處理器芯片的PPA至關重要。分解完成後,模塊生成將根據功能規範和所選的分解方案進行。隨後,這些模塊的集成將產生最終的硬件設計結果。在模塊生成過程中,必須保證功能的正確性。爲此,硬件設計代理將LPCM與符號方法協同結合,建立了自動化的驗證和修復機制,以確保生成模塊的功能正確性。具體來說,LPCM 能夠將非正式的自然語言規範轉換爲正式的 HDL,從而滿足各種應用需求。之後,使用基於 BSD 16自動驗證並修復生成的模塊,確保功能正確性。基於LPCM,我們開發了一箇硬件設計代理,以實現從高級規範開始的自動化處理器芯片設計。硬件設計代理具有雙循環反饋機制:基於性能優化的外部模塊分解反饋循環,以及由自動驗證和修復賦能的內部模塊生成反饋循環,如圖3所示。外部循環通過模塊分解解決巨大的解空間挑戰,而內部循環通過自動驗證和修復解決正確性保證挑戰。在實現過程中,外部循環以未分解的設計作爲搜索樹的根節點啓動。在每次迭代中,LPCM根據功能規範、當前分解狀態和積累的領域知識,提出並識別出有潛力帶來性能提升的更細粒度分解候選方案作爲子節點。也就是說,在可用的分解方案中,性能欠佳的節點將被丟棄,從而同時降低解空間維度和計算複雜度。此迭代過程構建了一箇模塊分解搜索樹,其中的葉節點對應於完整的分解方案。每個葉節點的最終性能評估將外部模塊分解方案與內部已驗證的模塊整合在一起,從而實現基於回溯的模塊分解方案優化和搜索。當前模塊分解方案的評估結果將被添加到領域知識庫中,以支持後續的模塊分解。同時,在內循環中,LPCM 根據模塊分解方案提取目標模塊對應的功能規範,並生成相應的 HDL。然而,初始生成的 HDL 可能存在功能錯誤。爲了解決這個問題,需要基於 LPCM 推理中功能正確性反饋的能力來驗證和修復生成的模塊。具體而言,首先將目標模塊的 HDL 轉換爲 BSD 表示,並從真值表中採樣一組輸入輸出對進行基於仿真的驗證。當出現差異時,錯誤的 BSD 節點會進行香農展開,從而實現自動糾錯。每個修復週期都會單調增加 BSD 的功能準確度。通過反覆的驗證修復迭代,BSD 漸近接近 100% 的正確性,最終產生經過驗證的模塊設計。B.軟件設計代理圖4:軟件設計代理的結構採用雙循環反饋機制:外循環通過 LLM 引導的搜索關注性能優化反饋,內循環通過自動驗證和修復管理功能適應反饋基礎軟件在構建處理器芯片的全面技術生態系統中發揮着關鍵作用,是芯片成功商業化和廣泛應用的決定性因素。然而,調整和優化此類軟件面臨着巨大的挑戰,尤其是在當前指令集架構碎片化和軟件生態系統多樣化的背景下。RISC-V ISA 就體現了這一挑戰,其開放和模塊化的設計雖然提供了前所未有的靈活性,但同時也帶來了比 x86/ARM 架構高出幾個數量級的複雜性。它擁有近 100 種可選的指令擴展,包括向量擴展、矩陣擴展和密碼擴展,組合數量呈指數級增長,而每種變體都需要在整個軟件堆棧中進行細緻的兼容性驗證。例如,openEuler OS包含超過 10,000 個存儲庫,其中包含 400 萬個文件,所有文件都需要針對不同的 RISC-V 指令組合進行詳盡驗證。這種組合激增使得傳統的手動開發方法變得不切實際,並凸顯了兩大根本挑戰:1) 實現全面的功能適配,以確保跨不同指令集的軟件穩定性;2) 進行深度性能優化,以充分利用硬件功能。爲了應對在特定處理器上開發基礎軟件生態系統的這些挑戰,必須實現由人工智能驅動的自動化方法,以實現基礎軟件的功能適配和性能優化。功能適配問題可以抽象爲“程序生成”任務,其中代理將源代碼/平臺轉換爲目標代碼/平臺。典型的應用包括自動編譯器工具鏈設計和自動張量程序轉譯器。該方法的關鍵在於協同結合神經方法和符號方法:LLM 通過元提示處理高級程序骨架生成以實現靈活性,而基於 SMT 的程序綜合則通過糾正低級實現錯誤來確保正確性。基礎軟件的性能優化問題可以抽象爲一箇“搜索”問題,其目標是高效探索巨大的優化原語和參數組合空間,以找到最優配置。典型的應用包括高性能運算符庫的自動生成和操作系統配置優化。LLM 可以通過精心設計的元提示(對硬件特性和優化原語進行編碼)利用其上下文學習能力來有效地指導這種搜索,然後有效地修剪搜索空間以發現針對特定硬件-軟件組合定製的最佳實現。按照這種方法,我們開發了基於LPCM的軟件設計代理,如圖 4所示。軟件設計代理採用雙循環反饋機制,外循環通過LLM引導的搜索進行性能優化反饋,內循環通過自動驗證和修復管理功能自適應反饋。這個過程最終可以將原始代碼庫轉變爲一箇既可調整又可優化的代碼庫,以增強基礎軟件生態系統。需要注意的是,外循環通過分層分解和優化反饋解決了巨大的解空間挑戰,而內循環通過自動驗證和修復解決了正確性保證挑戰。具體而言,在外部性能優化反饋循環中,原始代碼被用作蒙特卡洛樹搜索的起點。然後,來自 LLM 的領域專家知識幫助評估搜索樹,修剪低效分支,並選擇具有潛在性能提升的分支。最後根據性能測量對樹進行細化,形成迭代的“觀察-修剪-優化-評估”循環,直到達到所需的優化結果。在內部功能自適應反饋循環中,我們利用 LLM 的 TTS 進行程序採樣以生成多樣化的程序草圖,然後對高質量草圖進行單元測試和執行跟蹤分析,以識別最少的錯誤片段。然後使用基於求解器的程序綜合(例如 Z3 ,針對原始實現,迭代“生成-驗證-修復”循環,直到實現功能等價。應用QiMeng基於LPCM和軟硬件設計代理,開發了一系列創新的自動化設計應用,以滿足各種軟硬件設計需求。這些應用通過策略性地應用軟硬件設計代理的特定組件,實現了處理器芯片的軟硬件自動化設計,有效地解決了實際應用需求。圖5:在 ARM 官方 CPU 基準測試 Dhrystone 上,QiMeng-CPU 系列(藍色)與人工設計的商用 CPU(灰色)的性能對比。結果顯示,QiMeng-CPU-v1 的性能與 Intel 486(20 世紀 90 年代的 CPU)相當,而 QiMeng-CPU-v2 的性能與 Arm Cortex A53(2010 年代的 CPU)相當。A.自動化前端設計自 20 世紀 50 年代以來,通用計算機 CPU 的自動化設計一直是一項關鍵的研究挑戰,引起了圖靈和丘奇等人工智能先驅的關注。隨着人工智能技術的進步,決策樹等各種方法, 大模型,以及 RL 已被嘗試用於自動化電路設計。然而,由於缺乏明確定義的電路形式化表示,現有方法的精度受到限制,導致當前方法只能處理大約數千門的電路,而無法保證更大規模電路的準確性。爲了實現大規模處理器和芯片的自動化設計,我們在硬件設計代理中採用了基於自動驗證和修復的模塊生成反饋迴路來確保功能正確性,同時採用二進制推測圖(BSD:Binary Speculation Diagrams)作爲電路的圖形表示。BSD 展現出組合邏輯電路的兩個關鍵特性:1)設計精度隨設計節點數量的增加單調提升;2)精度隨數據採樣次數的增加漸近收斂到 100%。該實現基於自動驗證和修復反饋,使用隨機生成的 BSD 進行初始化,並在模擬器中迭代驗證當前 BSD。當檢測到錯誤時,通過香農展開式修復相應的 BSD 節點,從而單調提升 BSD 的功能精度。通過迭代循環自動驗證和修復步驟,功能精度逐步收斂到 100%。應用該方法,32 位 RISC-V CPU 的整個前端設計在 5 小時內自動完成,生成了 QiMeng-CPU-v1(也稱爲 Enlightenment-1),這是世界上第一個完全自動化設計的處理器內核16。如表一所示,QiMeng-CPU-V1約有400萬門,比現有工作規模更大,超過1700×,並達到了工業規模。QiMeng-CPU-v1 於 2021 年完成流片,其計算性能可與英特爾 20 世紀 90 年代的 486 處理器相媲美,如圖5所示。此外,我們利用硬件設計代理中基於性能優化的模塊分解反饋迴路來提升自動化前端設計的性能。在自動化流水線設計中,我們利用門級依賴性分析來探索流水線模塊的分解策略,從而找到更高效的細粒度門級流水線劃分方案。隨後,我們實現了門級流水線控制器,以促進門級短路徑轉發。最後,我們利用BSD將分解後的流水線模塊綜合成電路。最終的門級流水線平均性能提升了1.57倍,吞吐量比手動設計的同類產品高出 37% 。同時,在超標量處理器的自動化設計中,我們採用模擬退火算法來搜索可預測的處理器狀態,從而實現指令級模塊分解。之後,我們設計了一種狀態二進制推測圖 (S-BSD) 架構,通過預測指令間數據依賴關係來生成指令模塊,從而實現指令級並行並提升處理器性能。基於此方法,我們開發了全球首個自動化設計的超標量 CPU——QiMeng-CPU-v2,比單週期前代QiMeng-CPU-v1(Enlightenment-1)有顯著加速(約有 380×),且與ARM Cortex A53的性能相當,如表一和圖五所示。值得注意的是,QiMeng-CPU-v1 的設計採用隨機電路初始化,並利用了硬件設計代理中基於自動驗證和修復的模塊生成反饋迴路;而 QiMeng-CPU-v2 則進行了擴展,進一步集成了硬件設計代理中基於性能優化的模塊分解反饋迴路。然而,目前兩者均未使用 LPCM 進行運行。在後續研究中,我們計劃將基於 LPCM 的 HDL 自動生成方法(見第VB節介紹)與 QiMeng-CPU-v1 中的驗證-修復引導模塊生成迴路以及 QiMeng-CPU-v2 中的性能引導模塊分解迴路相結合,最終構建完整的硬件設計代理。B.自動 HDL 生成HDL 在處理器芯片設計中發揮着關鍵作用,它能夠創建寄存器傳輸級 (RTL) 代碼,將自然語言規範與可製造的芯片佈局連接起來。作爲功能、性能、能效和生產成本的關鍵決定因素,HDL 的實現目前佔據了芯片開發週期的 70% 以上,這凸顯了對自動化解決方案的迫切需求。LLM 在軟件工程領域展現出了革命性的潛力,例如 GitHub Copilot 的效率提升了 55% ,但它們在 HDL 生成中的應用仍然不是最優的,因爲存在兩個挑戰:1)數據稀缺:公共代碼數據集包含 42×Verilog 樣本(1.91M)比 Python 代碼(80.6M)少。此外,軟件領域幾乎沒有像 LeetCode 或 Codeforces 這樣的專注於 HDL 的競賽數據集;2)語義差異:HDL 需要精確的低級控制,例如信號位寬管理,這在規範和實現之間造成了顯著的抽象差距。爲了應對上述挑戰,我們提出了一種基於多級彙總的數據合成方法,並使用合成數據對通用 LLM 進行微調,以開發一系列 HDL 代碼生成模型,稱爲 CodeV 。CodeV 實現了硬件設計代理的模塊生成組件,該組件利用 LPCM 進行硬件設計。具體而言,基於“將代碼概括爲自然語言比從自然語言生成代碼更容易、更直接”的理念,我們開發了一種漸進式抽象技術,將現有的 HDL 代碼轉換爲高質量的自然語言代碼對,從而有效地彌合了 HDL 語義鴻溝。如表 II所示,此過程產生了 18 萬個優化訓練樣本,使 CodeV-Verilog 在 VerilogEval-Machine 上實現了 80.1% 的 pass@1 ,超越此前 SOTA 開源模型 RTLCoder。。基於CodeV,我們做了兩個關鍵的擴展:1) 爲了更好地契合實際開發流程,我們通過 Chat-FIM-Tag 監督微調方法,將 CodeV-Verilog 擴展爲 CodeV-All。CodeV-All 不僅支持更廣泛的語言(包括 Verilog 和 Chisel),以及更廣泛的任務集(例如 Chat 和填入中間詞 (FIM)),而且在 VerilogEval 上的性能也匹敵甚至超越了僅基於 Verilog 進行微調的 CodeV-Verilog(如表 二所示)。這使得 CodeV 系列成爲首批專爲多場景 HDL 生成而設計的開源 LLM 系列。2) 受到數學和軟件編碼任務中展示的推理能力的啓發,我們提出了幾項創新:基於規則的測試平臺生成器,可根據黃金參考驗證預測代碼;往返數據合成方法,僅使用源代碼片段作爲輸入即可生成高質量的自然語言代碼對;自適應 DAPO,DAPO 的快速版本,根據過去的樣本丟棄率動態調整每步的樣本數量。這些組件被集成到一箇“先提取後強化學習”的兩階段訓練流水線中,以開發 CodeV-R1,一箇具有推理增強功能的 Verilog 生成 LLM,具有思考能力和測試時間擴展能力。如表 三所示,CodeV-R1 在 VerilogEval v2 和 RTLLM v2 上分別實現了 68.6% 和 72.9% 的 pass@1 率,比之前最先進的模型高出 12% 到 21%,並且匹敵甚至超過了 671B 的 DeepSeek-R1 的性能。C.自動操作系統配置優化操作系統(OS)是連接處理器和上層軟件的重要橋樑,在最大限度地發揮處理器芯片性能方面發揮着至關重要的作用。Linux 是一箇廣泛使用的開源操作系統,旨在滿足不同應用場景和處理器的多樣化需求,它由來自世界各地的開發人員貢獻了超過 2000 萬行代碼,是迄今爲止最複雜的軟件項目之一。如此龐大的代碼庫提供了巨大的優化空間,迫切需要針對特定的處理器和應用場景定製或優化操作系統,以充分釋放整個計算機系統的潛力。然而,定製或優化操作系統面臨三大挑戰。首先,這項任務的複雜性極高。即使只是優化操作系統內核,也涉及超過 15,000 個相互依賴的配置選項,這超出了傳統優化方法的能力。其次,評估每個配置的成本很高,因爲編譯、安裝和測試操作系統可能需要 1 到 2 個小時 ,這限制了神經網絡等數據驅動方法的可行性。第三,優化過程高度敏感,即使是一箇很小的錯誤也可能導致操作系統無法正常啓動,並使調試變得極其困難。爲了應對這些挑戰,我們利用軟件設計代理的 LLM 引導性能反饋循環來開發自動化操作系統配置優化方法 AutoOS,它可以在無需人工干預的情況下生成優化的內核配置,並超越硬件供應商手動優化所達到的性能。爲了實現這一點,我們引入了一箇“觀察-修剪-提出-行動-糾正”的反饋循環,它利用嵌入在 LLM 中的先驗知識來消除對性能優化沒有貢獻並且可能導致啓動問題的不相關配置選項,從而顯着減少定製的搜索空間。只需幾次搜索迭代(大約一天),該方法就可以自動生成定製優化的操作系統內核配置。與手動專家優化相比,此方法可以將性能提高多達 25.6%,如表 IV所示。D.自動編譯器工具鏈設計現代處理器的編譯器負責兩項基本任務:1)準確高效地翻譯與處理器指令集對應的精確且無歧義的編程語言,即翻譯;2)在廣闊的高維優化空間中構建編譯優化序列,即優化。目前,編譯器中的人工智能技術主要集中於改進現有編譯器框架高維空間中的優化序列,也稱爲“相位排序問題”。然而,他們難以生成一箇能夠同時處理處理器這兩項基本任務的端到端編譯器。爲了實現創建能夠同時執行翻譯和優化任務的端到端編譯器的長期目標,我們探索了基於軟件設計代理的自動化編譯器工具鏈設計方法,並研究了兩種不同的方法:(1) 自動生成編譯器後端代碼。基於 LLVM 等現有架構,我們構建了編譯器後端數據集 ComBack 並對 LLM 進行微調,以改進和充分利用 LLM 對編譯器後端代碼的理解能力 VEGA 。最終,我們成功生成了針對特定處理器定製的編譯器後端代碼,準確率超過 70%,並通過明確的置信度得分突出顯示了關鍵區域,幾乎無需進行手動優化。這種方法有望徹底改變傳統的後端開發工作流程。(2) 使用 LLM 作爲端到端編譯器。我們發現編譯器的翻譯任務與自然語言翻譯有着顯著的相似之處,而自然語言翻譯正是 LLM 的優勢所在。這表明 LLM 有潛力徹底改變編譯器的構造,使其能夠真正充當編譯器的角色。然而,由於自然語言本質上具有歧義性,而編程語言則具有由語法定義的精確語義,因此直接將 LLM 應用於翻譯任務會導致結果不理想。例如,使用 GPT-4 將 C 語言翻譯成 RISC-V 彙編語言的準確率低於 50%,複雜函數的性能接近於零。因此,我們提出了一種端到端神經編譯器方法基於軟件設計代理。該方法結合了編程語言的語法信息和編譯器領域知識,以指導專用 LLM 的生成。一方面,我們使用由編譯器專業知識指導的數據增強技術來創建高質量數據集,從而對 LLM 進行微調。另一方面,我們在推理階段利用程序的語法信息,爲特定翻譯任務定製 LLM。這種組合使我們在 ExeBench 上實現了 C 語言翻譯超過 99% 的準確率。數據集併成功從 AnsiBench 等真實數據集編譯代碼和 CoreMark ,證實了該方法的可行性。展望未來,我們將繼續改進如何提升基於LPCM直接用作端到端編譯器的軟件設計代理的性能。E.自動張量程序轉譯器當代的 LLM,包括 GPT 和 DeepSeek 等著名示例,都表現出對 NVIDIA CUDA 生態系統的深度依賴。這種依賴既包括供應商提供的庫,例如 cuBLAS ,cuDNN ,TensorRT,以及社區開發的內核,如 FlashAttention-v1、FlashAttention-v2、FlashAttention-v3. 就連國內開源的LLM DeepSeek 還開發了像 FlashMLA 這樣的定製加速庫和DeepGEMM 適用於 NVIDIA GPU。然而,國產 AI 芯片的軟件生態系統面臨嚴重的碎片化問題,因爲不同的芯片製造商各自開發獨立的算子庫。這使得國產 AI 芯片的軟件生態系統難以統一,阻礙了其大規模普及。爲了應對這一挑戰,我們開發了一箇自動張量程序轉編譯器,QiMeng-Xpiler ,基於軟件設計代理,實現跨不同 AI 芯片(包括 NVIDIA GPU 和國產 AI 芯片)的“一次編寫,隨處運行”。其關鍵在於,程序翻譯過程基於函數自適應反饋迴路自動進行一系列神經符號轉換,其中 LLM 生成高級程序草圖,並通過小規模符號綜合修復錯誤的代碼細節。同時,通過基於性能優化反饋迴路的分層自動調整來識別最佳轉換過程。具體而言,我們結合了跨通道蒙特卡洛樹搜索,以實現最佳轉換排序和基於約束的通道內自動調整關鍵調整參數,例如內存平鋪配置。最終,我們的解決方案能夠跨 Nvidia GPU、寒武紀 MLU、AMD MI加速器、英特爾 DLBoost ,以及像 SIMT、SIMD 這樣的編程模型等各種處理器實現自動化張量程序轉譯器。在 LLM 等實際應用中,對這些模型跨不同的處理器進行實驗證明,QiMeng-Xpiler 可以正確翻譯不同的張量程序,平均準確率爲 95%,如表 V所示。F.自動化高性能庫生成領先的硬件供應商,例如 NVIDIA、ARM、Intel、AMD 和 Cambricon,都在手動優化庫方面投入巨資,以最大限度地提升其處理器的性能。這些專家精心打造的解決方案需要對微架構細節有深入的瞭解,需要對計算和內存操作進行細緻的並行化,而這些通常需要使用特定於供應商的語言或彙編代碼來實現。雖然這種手動優化模式能夠提供卓越的性能,但它從根本上缺乏跨不同硬件架構的可擴展性和可移植性。爲了應對這些挑戰,除了通過上述自動張量程序轉編譯器利用現有的軟件生態系統外,我們還基於軟件設計代理開創了一種名爲 QiMeng-GEMM 的自動化方法,用於生成具有矩陣乘法(即 GEMM)的高性能庫,由於其在 LLM 中的核心作用,因此深度學習和科學計算成爲我們的主要目標。我們提出的 QiMeng-GEMM 是第一個利用 LLM 自動生成高性能 GEMM 代碼的方案。具體來說,我們抽象出了常見的 GEMM 優化方法和硬件架構特性,併爲 LLM 創建了一組通用的元提示,用於生成高性能矩陣乘法運算符。這些元提示使 LLM 能夠通過捕捉不同平臺的架構特性來理解和實現優化目標。然後,我們將軟件設計代理中的性能反饋迴路與思維樹(ToT:Tree of Thoughts)技術系統地探索優化原語組合。這使我們能夠探索由元提示生成的所有可能的優化序列,從而能夠生成針對不同硬件架構特性定製的高性能矩陣乘法算子。進一步擴展我們基於 LLM 的自動化框架,我們提出了 QiMeng-TensorOp,這是首個利用 LLM 自動生成具有硬件原語的高性能張量算子的方法。我們開發了結構化的硬件固有優化提示和知識引導的工作流程,使 LLM 能夠理解特定平臺的架構和優化策略。爲了優化生成的算子,我們設計了一種 LLM 引導的蒙特卡洛樹搜索 (MCTS) 算法,該算法有效提升了在特定硬件上調優原語級張量算子的效率和性能。我們進一步提出了 QiMeng-Attention,這是第一個用於跨平臺注意力算子生成的硬件感知自動化框架。我們提出了一種 LLM 友好的思維語言 (LLM-TL),幫助 LLM 解耦高級優化邏輯的生成和 GPU 上的低級實現,並增強 LLM 對注意力算子的理解。結合兩階段推理工作流程、TL 代碼生成和翻譯,LLM 可以在不同的 GPU 上自動生成 FlashAttention 實現,從而爲在以注意力爲中心的算法中生成高性能注意力算子建立了一箇自優化範式。我們已經在玄鐵C910開發板、MuseBook (K1) ,ARM A76 和 NVIDIA GPU(RTX 4070 87、RTX 8000 ,T4 和A100等不同平臺上驗證了這些方法,見表六、表七和表八。在RISC-V平臺上,QiMeng-GEMM和QiMeng-TensorOp生成的高性能矩陣乘法算子分別可以達到OpenBLAS性能的211%和251%。在NVIDIA平臺上,它們分別可以達到cuBLAS性能的115%和124%。與傳統的LLM快速方法相比,我們的方法顯著提高了生成代碼的性能,提高了開發效率。爲了驗證Qimeng-Attention的性能,我們在各種NVIDIA硬件架構上進行了實驗。在NVIDIA T4平臺和NVIDIA RTX8000平臺上,Qimeng-Attention生成的高性能注意算子與所有四種實現相比始終具有優異的性能指標。以上爲大部分翻譯,僅供參考。感謝本文作者,另外,可以點擊後文的“閱讀原文”,以查看英文原文。*免責聲明:本文由作者原創。文章內容系作者個人觀點,半導體行業觀察轉載僅爲了傳達一種不同的觀點,不代表半導體行業觀察對該觀點贊同或支持,如果有任何異議,歡迎聯繫半導體行業觀察。今天是《半導體行業觀察》爲您分享的第4063期內容,歡迎關注。加星標??第一時間看推送,小號防走丟求推薦
(請各位謹慎甄別內容,自擔風險。)