百行代碼跑贏AI大廠?新研究揭秘高性能計算的「捷徑」
在激烈的全球 AI 技術競賽中,科技巨頭正不斷加碼對基礎技術研發的投資力度,以期開發出能夠支撐現代 AI 系統運行的核心算法庫,從而在競爭中佔據有利地位。
為了達到這一目標,工程師們往往需要編寫數萬乃至數十萬行代碼來最大限度地挖掘硬件的性能潛力。這種長期的技術積累不僅能夠提升產品的競爭力,還能形成難以被競爭對手踰越的技術「護城河」。
例如,英偉達推出的 cuBLAS、cuDNN、CUTLASS 等高性能計算庫,就是通過深度優化 GPU 運算來實現的。這些高效能的「技術黑箱」不僅支持了像 ChatGPT 等大量 AI 應用的運行,還構築起了其他企業難以複製的技術壁壘。
然而,一項由麻省理工學院計算機科學與人工智能實驗室(CSAIL)最新發佈的研究成果似乎正在挑戰這一傳統觀念。
研究人員展示了一種名為「Exo 2」的新型編程語言,幾名在校學生耗時三個月的時間,僅僅用了數百行代碼就能夠在特定的計算任務上實現與國際前沿高性能計算(HPC)庫相媲美的運算效率。
要知道,同類商業級算法庫往往需要數萬或數十萬行經過精密優化的代碼,以及大量硬件工程師的深度參與。這項研究預示著或許未來會有更加簡潔高效的途徑來實現複雜的計算任務。

麻省理工學院教授 Jonathan Ragan-Kelley 將 Exo 2 這類新的編程語言稱為「用戶可調度語言(USLs)」,並認為這一概念或將重新定義代碼優化的方式。
傳統上,編譯器根據預設規則自動生成所謂的「儘可能快」的代碼,但這種方法往往受限於特定架構的瓶頸,難以實現進一步的性能突破。
而「用戶可調度語言」則賦予開發者更多的控制權,通過編寫具體的「調度」指令,開發者能夠直接指導編譯器如何生成代碼,從而突破這些限制。
打個比方,傳統編譯器像是一輛自動駕駛汽車,提供有限的優化選項,開發者只能被動接受其自動優化結果;「用戶可調度語言」則更像是一輛專業賽車,將性能優化調校的「方向盤」交回到開發者的手中,讓他們可以根據需要進行更多的精細調整。
借助這種新的編程範式,開發者可以將相對簡單的程序轉化為執行速度更快、更加複雜的版本,同時確保其核心功能不受影響。例如,在處理高性能計算任務時,開發者能夠通過精確控制代碼生成過程來提升效率。
然而,早期版本的用戶可調度語言(比如最初的 Exo)也存在一定局限性,它們提供的調度操作集是相對固定的,這意味著在不同的高性能庫組件(即「內核」)之間複用調度代碼較為困難。
相比之下,Exo 2 則提供了更大的靈活性,可以讓用戶在編譯器外部定義新的調度操作。這種方式不僅簡化了跨不同內核間調度代碼的複用問題,還促進了構建一個包含多種調度策略的共享庫的可能性。
「總體來說,Exo 2 能夠將總的調度代碼量減少到原來的百分之一,同時在各種不同的平台上實現與目前最先進的技術相當的性能,包括驅動眾多機器學習應用的基礎線性代數子程序(BLAS),這意味著開發者可以用更少的代碼達到同樣的高效運行效果。」這項研究的主導者、麻省理工學院電氣工程和計算機科學博士生及 CSAIL 成員 Yuka Ikarashi 表示。
「對於那些致力於在不同操作、數據類型和目標架構上優化內核的高性能計算工程師而言,這是一個極具吸引力的選擇。」她補充說。
畢竟,這些工程師們通常需要處理複雜的硬件和軟件挑戰,以確保計算任務能夠在不同的環境中高效運行,而 Exo 2 提供了一種更加靈活且高效的解決方案,讓他們能夠更專注於核心問題,而不是陷入繁瑣的代碼編寫工作中。
而 Exo 2 的一個優勢是能夠在應用程序和硬件目標之間複用調度代碼,從而大幅減少了所需的編碼工作量。通過這種方法,開發者可以在不同的項目中重覆利用已有的優化代碼,顯著提高了開發效率。
此外,Yuka Ikarashi 還強調了 Exo 2 的獨特方法:「我們採用了一種自底向上的自動化策略,而非依賴於機器學習或人工智能來搜索高性能代碼。這意味著工程師和硬件部署人員可以根據自己的需求編寫定製化的調度庫,即一套專門針對其硬件平台的優化技術,從而達到最佳性能。」
在研究過程中,團隊在 Exo 2 中實現了一個包含約 2,000 行代碼的調度庫,該庫封裝了針對線性代數運算以及特定硬件加速器(如 AVX512、AVX2、Neon 和 Gemmini 等)的可重覆使用優化。
這個庫整合超 80 個高性能內核的調度策略,每個內核僅需十幾行代碼即可實現,並且能夠提供與 MKL、OpenBLAS、BLIS 和 Halide 等高性能計算庫相當甚至更優的性能表現。
從技術角度來看,Exo 2 引入了一種名為「Cursors」的新機制,這一機制在整個調度過程中為對象代碼提供了所謂的「穩定引用」。
這種「穩定引用」對於將調度邏輯封裝進庫函數至關重要,因為它確保了調度代碼可以獨立於對象代碼的轉換過程,從而增強了代碼的可維護性和靈活性。
Yuka Ikarashi 解釋道:「‘穩定引用’是用戶將調度邏輯封裝到庫函數中的關鍵,因為它使調度代碼不依賴於對象代碼的具體轉換方式。」
她進一步補充說:「我們認為,用戶可調度語言的設計應當是用戶可擴展的,而不是局限於一套固定的操作。通過這種方式,一種語言可以通過實現適應不同優化需求和應用領域的庫來支持大型項目的持續發展。」
Exo 2 的創新設計讓工程師能夠專注於高層次的優化策略,同時通過使用安全的基本單元確保底層的對象代碼保持功能等效。
未來,團隊計劃擴展 Exo 2 對不同類型硬件加速器的支持,尤其是 GPU,並進一步於改進編譯器在正確性、編譯時間和表達能力等方面的分析能力。
除了 Jonathan Ragan-Kelley 和 Yuka Ikarashi,這項研究的合作者還包括 Kevin Qian、Samir Droubi、Alex Reinking 等多位成員。另外,這項研究還得到了美國國防高級研究計劃局(DARPA)和美國國家科學基金會等的資助。
原文鏈接:
https://news.mit.edu/2025/high-performance-computing-with-much-less-code-0313
