AI 編譯器
3 秒看懂
AI 編譯器是深度學習的“翻譯兼調律師”——它把開發者寫好的神經網路計算圖自動轉換成目標硬體(GPU/TPU/NPU/FPGA)上最高效的執行指令,過程中完成運算元融合、記憶體最佳化、張量版面配置變換等一系列精細打磨,使模型在推論和訓練時跑得更快、佔更少資源。它不是傳統意義上只做語法轉換的編譯器,而是融合了數值、體系結構與自動調優的端到端效能工程工具。
3 分鐘產業解釋
當資料科學家在 PyTorch 或 TensorFlow 中定義一個模型時,程式碼僅描述數學邏輯,離真正在晶片上執行還有很長的路。AI 編譯器填補了這條鴻溝:它接收高階架構輸出的計算圖中間表示(IR),先進行圖級最佳化(消除冗餘運算、合併相鄰運算元),再根據後端硬體特性生成定製化的核函式(kernel),並做運算元排程(tiling、向量化、流水線)以最大化記憶體頻寬和計算單元利用率。
產業中,AI 編譯器已成為算力交付的關鍵效率槓桿。雲端廠商用它來降低大型模型服務的每次推論成本;晶片廠商把它作為軟體護城河,讓自研 NPU 能相容主流架構;創業公司則希望靠編譯器技術讓現有 GPU 叢集輸出更高吞吐,延緩硬體採購。大型模型時代的“千卡訓練”“邊緣端側部署”等場景,嚴重依賴編譯器去解決記憶體牆、通訊牆和精度-速度平衡問題,這使得 AI 編譯器從學術工具演變為基礎設施中的價值高地。
15 分鐘專家深入
深入這一領域的專家會關注以下幾個維度的認知:
-
計算圖的層級抽象
前端架構通常將模型表達為有向無環圖(DAG),AI 編譯器會在不同層級生成 IR:如 XLA 的 HLO、TVM 的 Relay/TIR、MLIR 中可組合的 Dialect。多層 IR 使得最佳化可以被分解為運算元級、迴圈級、指令級,每一層都有針對性的 pass,既能做跨運算元的大開大合(如消除批歸一化與卷積合併),也能做微架構敏感的暫存器分配。 -
自動調優(Auto-tuning)
同一個矩陣乘法,在不同的矩陣形狀、硬體快取大小和向量長度下,最優的 tiling 引數完全不同。AI 編譯器引入機器學習(如 AutoTVM、Ansor)來自動搜尋排程空間,這成為和傳統手寫彙編/手調庫(如 cuBLAS)的核心分岔點。專家理解到,編譯器+調優的成本可能是一次性的,但能複用於後續所有輸入形狀,是邊際成本遞減的工程。 -
硬軟體協同設計
新興 AI 晶片(如 Groq 的 LPU、Graphcore 的 IPU)的編譯器在設計晶片之初就參與定義指令集架構(ISA),以實現極致的運算元對映。專家研究編譯器如何反向要求硬體提供可配置的片上網路、分散式共享記憶體等功能,以降低編譯器的最佳化難度。 -
大型模型的兩大現實挑戰
- 動態形狀:Transformer 推論時 batch size、序列長度可能不確定,編譯器需要在無需重新編譯的前提下生成能處理可變張量的程式碼,這涉及 symbolic shape 推導和 JIT 編譯策略。
- 分散式編譯:模型並行、流水線並行需要將計算圖切分到成百上千個加速器上,編譯器必須自動插入通訊原語(AllReduce、All-to-All),並決定張量如何跨裝置分塊——這是分散式編譯器的前沿難題。
技術原理(最深)
AI 編譯器的核心機制是將計算圖逐步降階為硬體可執行形式,並通過多輪最佳化追求接近硬體理論峰值的效能。整體編譯流水線可以抽象為四個關鍵階段:
-
前端攝取與圖構造
從 PyTorch/TF/JAX 等架構捕獲模型的計算圖(通常通過 trace 或原始碼解析),轉換到一個統一的 High-level IR(HIR,如 MLIR 的 TOSA Dialect、TVM 的 Relay)。HIR 保留運算元語義和高階資訊(形狀、資料型別),尚未涉及硬體細節。 -
High-level 圖最佳化
在圖級別做與硬體無關的數學等價變換,常見 pass:- 運算元融合(conv + BN + ReLU => 單一融合核,減少記憶體往返)
- 常量摺疊(提前計算靜態輸入的下游節點)
- 代數簡化(消除連續的轉置/重排)
- 死程式碼消除(去除不參與最終輸出的分支)
這些最佳化的本質是減少計算冗餘和核啟動開銷,屬於“全域性視野”的改進。
-
下降至 Low-level IR 與張量化
將最佳化後的 HIR 轉換為面向目標硬體計算原語的 Low-level IR(LIR),如 TVM 的 TensorIR、XLA 的 LHLO。此時,每個運算元被拆成多維迴圈巢狀和內部的計算語句。
排程最佳化在此階段大展拳腳:- 分塊(Tiling):將大迴圈分割為適合快取層級(暫存器/L1/L2)的小塊,提升資料複用。
- 向量化(Vectorization):利用 SIMD 指令處理連續資料。
- 迴圈重排(Reorder):改變迴圈維度訪問順序,避免 bank conflict,提升記憶體合併訪問。
- 儲存變換(Memory scope):顯式管理片上共享記憶體與全域性記憶體的資料移動。
這一步驟常與自動調優結合,通過搜尋演算法在巨量排程空間中篩選最優配置。
-
程式碼生成與執行時
將最佳化後的 LIR 翻譯為目標指令(PTX/SPIR-V/LLVM IR 或裸機 C/彙編),並連結到裝置驅動。部分編譯器(如 TensorRT)會直接建置執行引擎(Runtime),在推論時最小化主機-裝置互動延遲。
用 ASCII 圖表示典型流水線:
[ PyTorch / TF 計算圖 ]
│
┌───────▼────────┐
│ High-level IR │ (Relay, HLO, ONNX)
└───────┬────────┘
│ 圖級最佳化、代數簡化、融合
┌───────▼────────┐
│ Low-level IR │ (TensorIR, LHLO, Linalg dialect)
└───────┬────────┘
│ 分塊、向量化、自動調優
┌───────▼────────┐
│ 目的碼生成 │
└───────┬────────┘
│
[ 硬體可執行二進位制 ]
關鍵效能引數(定性,因硬體而異):
- 核啟動次數:最佳化後通常降至原來的 1/3~1/10,顯著降低排程開銷。
- 編譯器自身開銷:編譯時間從數秒到數小時(JIT 模式下追求快速編譯,自動調優可能很長),需在效能收益與工程耗時間權衡。
- 運算元覆蓋率:編譯器能自動生成的高效能運算元佔比,理想目標是覆蓋 80% 以上常見深度學習運算元,邊緣運算元仍需手工實現。
技術演進史
- 早期手工時代(~2015)
Caffe 等架構單純呼叫 cuDNN,無圖級最佳化,開發者手動寫融合核,每換硬體便需大量移植。 - 圖最佳化架構興起(2016‑2018)
TensorFlow 引入 XLA(加速線性代數)編譯器,首次展示圖級融合與 Just‑In‑Time 編譯可帶來顯著加速。Intel 推出 nGraph,Facebook 開發 Glow 用於推論。ONNX 標準誕生,實現跨架構模型交換,但仍然依賴後端執行時最佳化。 - 全棧編譯器浪潮(2018‑2020)
陳天奇團隊釋出 TVM,提出端到端棧並從調度搜索中分離計算定義與最佳化排程,開源社群迅速壯大。MLIR(Multi‑Level IR)由Google發起,顛覆性地用可擴充套件的多層方言(Dialect)系統重構編譯器基礎設施,使硬體廠商能快速定義自家 IR 並複用上層最佳化。 - 大型模型與硬體定製時代(2021 至今)
AI 編譯器不再僅僅加速單個運算元,開始處理分散式並行切分、動態形狀編譯、記憶體重計算(recompute)等系統級問題。NVIDIA 的 TensorRT、華為的 CANN 等廠商編譯器深度繫結自家硬體,藉助編譯器實現“軟體定義硬體”的算力護城河。AI 編譯器與晶片架構設計協同加深,編譯技術逐漸成為晶片 IP 的一部分。
技術路線對比
以下比較主流 AI 編譯器棧的核心側重點(非精確量化,基於架構公開資訊):
| 維度 | XLA(Google) | TVM(Apache) | TensorRT(NVIDIA) | MLIR 基礎設施 |
|---|---|---|---|---|
| 主要場景 | TPU/GPU 上的訓練與推論 | 多硬體後端(CPU/GPU/FPGA/NPU)的可移植推論 | NVIDIA GPU 上的高效能推論 | 編譯器架構,不直接面向用戶,用於建置編譯器 |
| IR 層次 | HLO(High‑level)→ LHLO | Relay → TensorIR | 直接定義網路層最佳化圖,內部封閉 IR | 多層方言:TOSA、Linalg、Affine、GPU 等 |
| 最佳化方式 | 圖融合、記憶體靜態分析、自動流水線 | 自動調度搜索(AutoTVM, Ansor)、機器學習輔助調優 | 預手寫最佳化的運算元庫 + 圖融合 + 核心自動生成(Mha/fmha) | 提供可組合 pass,最佳化由上層編譯器決定 |
| 可擴充套件性 | 主要服務 Google 生態,第三方硬體接入需較多適配 | 極強,通過定義新的程式碼生成 target 新增後端 | 只支援 NVIDIA GPU 的 CUDA 核與 Tensor Core | 極強,Dialect 機制允許任意定製,正成為工業 IR 事實標準 |
| 自動調優 | 部分自動調優,但大量手寫核心 | 核心賣點,搜尋排程空間生成高效能核 | 預手工最佳化庫為主,IL2GPU 自動生成部分 | 不直接提供自動調優,需上層專案實現 |
| 動態形狀支援 | 有限,依賴靜態編譯,對可變 batch 不友好 | 逐步完善,引入 Virtual Machine 和 dynamic shape 支援 | 支援動態形狀(通過顯式建置最佳化配置檔案) | 通過 symbolic shape 處理提供底層支援 |
注:TensorRT 包含手寫最佳化的運算元庫,但通過“Layer fusion”和“Constant folding”大幅減少核呼叫,且後續版本引入“Auto‑Tuning 核心生成器”補充未覆蓋的運算元。上述路線並非互斥,現代方案常結合:如使用 MLIR 作為基礎設施,上層建置 TVM 或自研的機器學習編譯器。
上下游
上游(供給端)
- 深度學習架構(PyTorch, TensorFlow, JAX, ONNX):提供模型定義和圖表示,是 AI 編譯器的輸入來源。
- 硬體抽象層與驅動:GPU 的 CUDA/CuDNN、TPU 的 XLA Runtime、NPU 的板級支援包。編譯器需呼叫這些介面生成/執行程式碼。
- 編譯器基礎設施:LLVM、GCC 用於後端的指令生成和底層最佳化;部分編譯器直接生成為 LLVM IR 以複用其最佳化流水線。
下游(需求端)
- 雲端端推論服務:AWS Inferentia 的 Neuron 編譯器、阿里含光 NPU 編譯器,直接服務線上推論業務。
- 邊緣端推論:手機(高通 SNPE、Apple ANE)、IoT 裝置(Arm Ethos‑U 的 Vela 編譯器),追求極致低功耗和即時性。
- AI 訓練叢集:用編譯器做圖切分、通訊最佳化、記憶體 swap 管理,使千卡並行訓練可行(如 Meta 的 Glow 和 TorchDynamo+inductor)。
- 開源生態:企業自研編譯器後輸出到開源社群,降低行業整體部署成本,典型如 TVM 被 Amazon、阿里巴巴採用。
關鍵指標
評估 AI 編譯器的質量通常看:
- 執行時加速比(vs. 未最佳化的架構直接執行):一般推論場景可實現 1.2×–5× 提升(具體倍數取決於硬體和模型結構,[未充分揭露普遍基準])。
- 運算元覆蓋率:支援的後端運算元佔模型所需的比例,目標 >95% 才可免手工編寫後備程式碼。
- 編譯延遲:圖最佳化 + 程式碼生成所需時間,對 JIT 場景需 < 1 秒;離線調優可接受數小時,但用一次便永久受益。
- 記憶體佔用壓縮率:通過融合減少中間張量分配,常可降低峰值視訊記憶體 20%–50%([工程經驗估算])。
- 可移植性:同一模型不經程式碼修改即可運行於不同加速器上的能力。
- 除錯可觀測性:是否保留原始計算圖對映,方便開發者定位效能瓶頸。
供需與市場資料
(因搜尋缺位,本節以定性趨勢為主)
AI 編譯器市場規模跟隨 AI 晶片和 AI 部署需求複合增長。據行業一般預期,到 2028 年,全球 AI 編譯器相關軟體和服務市場可達數十億美元級別,[具體數字未引用但可參考類似基礎設施市場的增速]。供給端,Meta、Google、NVIDIA、華為等頭部企業紛紛開源或開放編譯器棧,導致技術加速擴散,但頂尖調優能力仍集中在少數團隊。需求端,大型模型推論成本壓力逼迫雲端廠商將編譯器最佳化視為剛需;邊緣側伴隨智慧汽車、XR 裝置增長,對跨架構編譯器的需求急速攀升。人才市場呈現極度緊缺狀態,兼具體系結構與深度學習背景的編譯器工程師薪酬溢價顯著。
代表公司與資本對映
科技巨頭自研
- Google:XLA 與 MLIR 雙引擎,支撐 TPU 生態和 TensorFlow 效能,屬於內部基礎設施,不直接商業化但鞏固雲端壟斷。
- NVIDIA:TensorRT 是 GPU 推論的事實標準之一,與 CUDA 生態鎖定,驅動資料中心 GPU 銷售額。2024 年推出 TensorRT‑LLM 專為大語言模型加速。
- Meta:Glow 編譯器用於內部推薦模型推論,2023 年轉向 TorchDynamo/Inductor 作為 PyTorch 2.0 預設編譯器,戰略上使外部社群依賴 PyTorch 生態。
- Intel:oneAPI 中的 DPC++ 編譯器與 OpenVINO 推論最佳化器,為自家 CPU/GPU/FPGA 鋪路。
- 華為:CANN(異構計算架構)中的運算元編譯工具 TVM‑like,支援昇騰 NPU,關鍵國產化環節。
創業公司與融資
- OctoML:基於 TVM 提供雲端端模型最佳化和部署服務,2021 年獲 8500 萬美元 C 輪融資,後推出面向企業的自動調優平台。
- Modular:由前 Google 工程師創立,推出 MAX 引擎和 Mojo 語言,號稱比原生 PyTorch 快數十倍推論,2023 年融資 1 億美元。
- Deci:以色列 AI 效能公司,通過自動化模型編譯和 NAS 技術提升推論速度,2022 年獲 2500 萬美元 B 輪。
- NeuReality 等 AI 推論晶片公司也會自研編譯器,屬於“硬體+編譯”整合方案。
資本走向顯示,編譯器創業通常與模型最佳化平台捆綁,以 SaaS 或 PaaS 形式交付,核心壁壘在於持續適配新的硬體和模型結構。
產業鏈觀察架構
- 基礎設施價值:無論 AI 晶片如何迭代,將模型高效對映到新架構的編譯器是剛性需求,且不易被繫結單一晶片廠商的生態侵蝕。獨立的編譯平台(如 TVM)可作為跨硬體的中立層,支撐多晶片適配。
- 大型模型降本的本體工程:雲端端千億引數模型一次推論成本約數美分,若編譯器能將推論吞吐提升 30%,對於日活百萬級應用每年可節省數千萬至數億美元,客戶付費意願強。
- 與晶片公司博弈:晶片巨頭(NVIDIA、Intel)將編譯器作為封死生態的手段,獨立編譯器需提供超越晶片預設庫的效能才可生存,因此創業公司必須密集投入自動調優技術以保持優勢。
- 國產替代視窗:中國加速推進算力自主,國產 NPU/GPU 嚴重缺乏成熟軟體棧,能夠提供與 CUDA 生態相容的編譯器方案的公司具備產業鏈追蹤價值(參考華為昇騰軟體生態、摩爾線程等)。
不宜將 AI 編譯器視為純工具型賽道,而應看作 AI 基礎軟體的“作業系統級”入口——誰掌握編譯器,誰就有能力排程異構算力池,進而向 MLOps 平台、模型市場延伸。
常見誤讀糾偏
1. “AI 編譯器就是深度學習架構自帶的最佳化器”
錯誤。架構自帶的圖執行最佳化(如 PyTorch 的 JIT fuser)只能做很有限的點最佳化,無法進行架構級自動調優和跨運算元融合。真正的 AI 編譯器像 TVM 或 TensorRT 會重寫整個計算,從零生成針對硬體的高效核函式,它們是獨立於架構的獨立專案,不是簡單的“最佳化開關”。
2. “MLIR 是一種編譯器,能直接最佳化模型”
不完全準確。MLIR 是一個編譯器基礎設施和中間表示體系,不是終端使用者編譯器。它像一套樂高積木,可以搭建出像 XLA、IREE 這樣的產品。普通開發者不會直接“使用 MLIR 編譯模型”,而是使用基於 MLIR 建置的上層編譯器工具。將 MLIR 等同於效能銀彈是觀念謬誤。
3. “只要用了編譯器,推論速度就會自動變快幾倍”
誇大。效能收益取決於硬體特性、模型運算元的結構以及編譯器自身的調優投入。對於運算元單一、記憶體頻寬瓶頸明顯的模型,融合的效果顯著;對於自定義複雜運算元或動態控制流豐富的模型,編譯器可能因為無法自動生成高效程式碼反而執行變慢。編譯器需要架構專家參與調優,並非免工具的魔法。
學習路徑
入門(1 周)
- 理解深度學習基礎運算元(conv, matmul, softmax)及其計算量/訪存比。
- 閱讀一篇 TVM 或 XLA 設計論文,掌握計算圖、IR、排程等核心概念。
- 實踐 PyTorch 2.0 的
torch.compile,觀察 backend 差異。
進階(1‑2 個月)
- 學習 TVM 官方教程,用 AutoTVM 為 CPU/GPU 調優一個 ResNet-50。
- 閱讀 MLIR 文件,理解 Dialect 和 Pass 管理體系。
- 嘗試自己編寫一個簡單的運算元融合 pass。
高階(持續)
- 進入特定硬體後端最佳化(如 CUDA 核編程、NPU DMA 管理),為 TVM 新增新的排程原語。
- 研讀 TorchDynamo 或 XLA 的原始碼,理解圖獲取和動態 shape 處理。
- 實踐分散式編譯:將一個大型模型切分到多卡並用編譯器生成通訊程式碼。
推薦基礎文獻:
- “TVM: An Automated End-to-End Optimizing Compiler for Deep Learning” (OSDI 2018)
- “MLIR: A Compiler Infrastructure for the End of Moore’s Law” (arXiv:2002.11054)
- “XLA: Optimizing Compiler for Machine Learning” (Google 官方文件)
一句話總結
AI 編譯器是連線演算法表達與物理算力的“效能鍊金術”,在軟硬體裂谷中架起橋樑,決定了人工智慧最終能被多快、多便宜、多廣泛地執行。
延伸閱讀與來源
- 陳天奇等,《TVM: An Automated End-to-End Optimizing Compiler for Deep Learning》, OSDI 2018.
- Lattner, C., & Pienaar, J. (2020). MLIR: A Compiler Infrastructure for the End of Moore’s Law. arXiv preprint.
- Google XLA 文件: https://www.tensorflow.org/xla
- Apache TVM 官方文件: https://tvm.apache.org/docs/
- NVIDIA TensorRT 開發者指南.
- “The Deep Learning Compiler: A Comprehensive Survey”, IEEE Transactions on Parallel and Distributed Systems, 2020. (概述各編譯器)
- Modual 公司 MAX 引擎技術部落格.
- 《AI 編譯器技術綜述》, 中國計算機學會通訊 (CCCF), 2023 年某期.
(注:以上均為公開可檢索引文,未依賴特殊搜尋)