模型層 開放閱讀

Operator Fusion

Operator Fusion

概念 ID
operator-fusion-2
更新時間
2026-05-29
來源數量
待補

Operator Fusion(運算元融合)

3 秒看懂

一句話:把多個相鄰的計算步驟”合併”成一個核心執行,少跑幾趟記憶體搬運,速度就快了。

類比:原本你洗完衣服→晾乾→摺疊分三趟搬運,現在在洗衣機旁直接摺疊打包,省了兩趟上下樓。

3 分鐘產業解釋

為什麼它重要

深度學習模型的計算圖由成百上千個運算元(Conv、BN、ReLU、Add……)串聯/並聯組成。每個運算元執行完畢,都要把結果寫回視訊記憶體/記憶體,下一個運算元再讀出來——這叫核心啟動開銷(kernel launch overhead)記憶體頻寬瓶頸(memory bandwidth bottleneck)

運算元融合(Operator Fusion / Kernel Fusion)的核心思想:如果幾個相鄰運算元之間沒有複雜的依賴衝突,就把它們編譯成一個 GPU kernel / CPU 函式來執行,中間結果留在暫存器或片上快取裡,不落回全域性記憶體。

產業價值定位

層次角色
推論最佳化TensorRT、ONNX Runtime、OpenVINO 等推論引擎的核心最佳化手段
編譯器前端TVM、XLA(TF/JAX)、TorchInductor(PyTorch 2.0+)、MLIR 生態的關鍵 pass
訓練加速減少視訊記憶體佔用和通訊輪次,間接提升有效吞吐

核心約束:融合不是無腦合併——需要保證語義等價記憶體訪問模式相容不超出暫存器/共享記憶體容量限制

15 分鐘專家深入

運算元融合的本質收益拆解

一次運算元執行的成本可建模為:

T_total = T_compute + T_memory + T_launch
成本項融合後變化原因
T_compute基本不變或略增計算量未減少,可能有少量冗餘計算
T_memory顯著降低消除了中間 tensor 的全域性記憶體讀寫
T_launch降低多個 kernel 啟動合併為一次(GPU kernel launch 有微秒級開銷)

關鍵洞察:對於計算密度低的運算元(如逐元素操作 Elementwise、啟用函式),T_memory 和 T_launch 往往佔主導——這正是融合收益最大的場景。

融合的主要型別

1. 生產者-消費者融合(垂直融合 / Vertical Fusion)

將序列鏈路上的運算元合併:

原始:  Conv → BatchNorm → ReLU → (寫回視訊記憶體) → 下一層
融合:  Conv_BN_ReLU → (寫回視訊記憶體)

這是最經典、收益最明確的融合模式。Conv 的輸出直接在暫存器中做 BN 歸一化和 ReLU 截斷,無需落盤。

2. 兄弟節點融合(水平融合 / Horizontal Fusion)

將並行的、互不依賴的運算元合併為一個 kernel:

原始:  [Branch_A: Conv1] || [Branch_B: Conv2]  → 各自寫回
融合:  Fused_Conv1_Conv2  → 一次寫回

適用於多頭注意力的多個 head 平行計算等場景。

3. 縮減-廣播融合(Reduction-Broadcast Fusion)

將歸約操作(如 Softmax 中的 Sum、LayerNorm 的均值/方差計算)與後續廣播/逐元素操作融合:

原始:  x → Reduce_Sum → (寫回) → Broadcast_Div → (寫回)
融合:  x → Fused_Softmax(reduce + broadcast 在一個 kernel 內)

Softmax 的 fused 實現是運算元融合的經典教學案例。

融合的約束與代價

可融合性判斷偽邏輯:

IF (無資料依賴衝突)
  AND (中間 tensor 不被圖中其他節點複用,或複用點可接受延遲寫回)
  AND (融合後暫存器/共享記憶體需求 ≤ 硬體上限)
  AND (融合後不會嚴重降低並行度)
THEN → 可融合
ELSE → 不可融合 / 需權衡
約束說明
暫存器壓力融合越多,中間結果越要留駐暫存器,可能觸發暫存器溢位(register spilling),反而變慢
共享記憶體競爭On-chip SRAM 容量有限(如 NVIDIA GPU 每 SM 約數十 KB 級別),融合後超出則需分塊或放棄
並行度折損過度融合可能將原本可並行的路徑序列化
編譯時間膨脹搜尋空間隨融合組合數指數增長(自動調優器如 AutoTVM 需搜尋融合方案)

技術原理

記憶體層次視角

┌─────────────────────────────────────────────────────────┐
│                     Global Memory (HBM / DRAM)          │
│                     頻寬高延遲高,~TB/s 級別               │
├─────────────────────────────────────────────────────────┤
│                     L2 Cache (GPU 片上)                  │
│               容量較大,~數 MB 至數十 MB (GPU)              │
├─────────────────────────────────────────────────────────┤
│              Shared Memory (SMEM) (每 SM 內)              │
│           容量有限,~數十 KB 至上百 KB/SM                    │
├─────────────────────────────────────────────────────────┤
│                   Register File (每執行緒)                  │
│                   極快但極小,~256 KB/SM 總量               │
└─────────────────────────────────────────────────────────┘

未融合時的資料流:
Kernel_A: Reg → SMEM → Global → [讀出] → SMEM → Reg → 計算 → 輸出Global
Kernel_B: Global → SMEM → Reg → 計算 → 輸出Global
                    ↑                        ↑
                 中間tensor落盤           再次讀入

融合後的資料流:
Fused_Kernel: Reg → 計算A → 結果仍在Reg → 計算B → 一次輸出Global

              中間結果從未離開暫存器

典型融合模式的技術實現

Conv + BN + ReLU 融合(推論時)

推論階段,BN 可摺疊為線性變換:y = γ * (x - μ) / σ + β

與 Conv 的權重合並後,融合為:

# 數學等價變換
W_fused = W_conv */ σ)
b_fused = (b_conv - μ) */ σ) + β

# 融合後的 kernel 內部
output = ReLU(conv(input, W_fused) + b_fused)  # 全在一個 kernel 中

注意:這在推論時成立(BN 統計量固定),訓練時 BN 需要維護 running_mean/running_var,融合方式不同。

FlashAttention 中的融合

FlashAttention 的核心創新之一是將 QKV 的點乘、Softmax、與 V 的加權求和融合在一個 kernel 內,利用 tiling(分塊)技術在 SRAM 中完成全部計算,避免將巨大的注意力矩陣 (N×N) 寫入 HBM。

傳統 Attention:
Q×K^T → 寫HBM(N×N) → Softmax → 寫HBM(N×N) → ×V → 輸出

FlashAttention:
分塊(tile)在SRAM內完成:Q_tile×K_tile → online softmax → ×V_tile → 逐塊寫回

                                     中間N×N矩陣從未存在於HBM

這是一種演算法-編譯協同設計的融合,超越了編譯器層面的簡單運算元合併。

編譯器中的融合 Pass 實現架構

計算圖 → [運算元融合Pass] → 最佳化後計算圖 → 程式碼生成

融合Pass的典型流程:
1. 拓撲排序,識別可融合的運算元簇(patterns)
2. 評估融合收益(cost model:記憶體節省 vs 暫存器壓力)
3. 決策融合(貪心 / 基於規則 / 搜尋 / ML預測)
4. 圖重寫(Graph Rewrite):用融合後的新節點替換原簇

技術演進史

時期里程碑特徵
2015–2017cuDNN 手寫融合 kernelNVIDIA 為 Conv+BN+ReLU 等常見模式手寫最佳化核心,覆蓋有限
2017–2018TVM 引入運算元融合學術界首次系統化提出自動融合策略;XLA 在 TensorFlow 中整合
2018–2019TensorRT 商業化融合深度學習推論引擎將融合作為核心賣點;融合模式庫持續擴充
2019–2021MLIR 生態興起Google 主導的 MLIR 架構提供多層次 IR,支援更靈活的融合策略描述
2022–2023FlashAttention 發表證明演算法級融合(非純編譯器層面)可帶來數量級效能提升
2023–2024PyTorch 2.0 torch.compile / Inductor將編譯器級融合帶入主流架構;Triton 作為融合 kernel 生成後端
2024+LLM 專用融合 / MoE 融合針對大型模型的 Attention+FFN、MoE routing 等場景的專用融合

技術路線對比

維度規則驅動融合(Rule-based)搜尋驅動融合(Search-based)ML 預測融合(ML-based)
代表實現TensorRT、ONNX Runtime、手寫規則TVM(AutoTVM)、AnsorGoogle MLGO、部分研究工作
決策方式預定義模式匹配(如 Conv+Bn+Relu)在融合空間中搜索最優方案訓練 ML 模型預測融合收益
編譯速度快(毫秒級規則匹配)慢(需多次編譯+執行評估,分鐘~小時級)較快(推論即預測)
覆蓋率有限(依賴模式庫完整性)高(可探索未知模式)取決於訓練資料分佈
最優性區域性最優,難跨模式最佳化近似全域性最優取決於模型精度
工程複雜度高(需資料收集+模型訓練)
適用場景生產部署、低延遲編譯離線最佳化、效能敏感場景編譯器自動調優前沿研究

上下游

上游(輸入側)

環節要素
模型定義架構計算圖(PyTorch Graph、ONNX、TF GraphDef)
運算元語義標準運算元集定義(ONNX Opset、TVM Relay/Relax)
硬體目標GPU(NVIDIA/AMD)、CPU(x86/ARM)、NPU/TPU 等——融合策略高度硬體相關
記憶體模型目標硬體的暫存器/快取/共享記憶體層次和容量限制

下游(輸出側)

環節要素
程式碼生成CUDA kernel、LLVM IR、Triton kernel、手寫彙編等
推論引擎TensorRT、ONNX Runtime、OpenVINO、MNN、NCNN
訓練架構PyTorch Inductor、JAX XLA、DeepSpeed 編譯最佳化
部署終端雲端端 GPU、邊緣裝置(手機 NPU、車載 SoC)、資料中心自研晶片

關鍵指標

指標含義典型量級(定性)
融合率(Fusion Ratio)被融合運算元數 / 總運算元數優秀編譯器可達 50–70%+([依模型結構而定])
記憶體頻寬節省消除的中間 tensor 讀寫量逐元素運算元鏈融合後,記憶體訪問可降低數量級
端到端推論延遲改善融合前後端到端延遲差簡單模型 10–30%,運算元密集模型可能 50%+([行業估算])
暫存器壓力融合後每執行緒暫存器使用量超過硬體上限(如 NVIDIA GPU 每執行緒 255 個 32-bit 暫存器)則 spill
編譯時間增加因搜尋/分析導致的編譯耗時增量規則驅動可忽略;搜尋驅動可能數分鐘

供需與市場資料

需求側

  • 大型模型推論成本壓力:萬億引數模型推論的算力/頻寬成本構成部署核心瓶頸,編譯最佳化(含融合)是低成本提升吞吐的關鍵手段
  • 邊緣部署:手機/車載 NPU 算力和記憶體受限,融合幾乎是強制要求
  • GPU 算力供給緊張:H100/A100 供不應求期間,推論最佳化的 ROI 極高

供給側

型別代表定位
開源編譯器TVM、MLIR、TorchInductor/Triton社群驅動,覆蓋面廣
商業推論引擎TensorRT(NVIDIA)、CoreML(Apple)、QNN(Qualcomm)晶片廠商自家深度最佳化
雲端端推論服務AWS Inferentia 最佳化器、Google TPU 編譯棧與雲端服務繫結

市場規模估算

運算元融合本身不單獨構成市場,而是編譯器/推論最佳化棧的一部分。推論最佳化工具和服務市場規模通常嵌入在 AI 編譯器和 MLOps 市場中討論——整體 AI 編譯器/最佳化市場處於快速增長期,但精確拆分融合貢獻的數字暫無公開資料,標註為 [未充分揭露]


代表公司與資本對映

公司/組織相關產品/技術上市/融資狀態
NVIDIATensorRT、cuDNN(手寫融合 kernel)、Triton 貢獻NASDAQ: NVDA
GoogleXLA、MLIR/TVM 社群貢獻、TPU 編譯棧Alphabet 子公司,NASDAQ: GOOGL
MetaPyTorch Inductor、Glow 編譯器NASDAQ: META
AMDROCm、MIOpen(手寫融合 kernel)、對 Triton/TVM 的貢獻NASDAQ: AMD
Apache TVM 社群TVM(含 AutoTVM、Ansor)開源社群,OctoML 曾商業化(現已被收購)
QualcommQNN SDK、AI Engine DirectNASDAQ: QCOM
MediaTekNeuroPilot 編譯最佳化TPE: 2454
多家 AI 晶片初創各家 NPU 編譯器中的融合 Pass多為一級市場

投資邏輯對映:運算元融合能力是 AI 晶片/推論引擎的”隱性護城河”——晶片賣得好不好,三分靠硬體、七分靠編譯器。


投資邏輯

核心觀點

  1. AI 編譯器是基礎設施級價值:運算元融合是編譯器最佳化的核心子問題,掌握編譯器棧的公司在推論效率上具備可持續的競爭力優勢
  2. 硬體差異化越來越依賴軟體:GPU 算力趨同背景下,編譯器最佳化(含融合策略的硬體適配)成為差異化關鍵
  3. 推論市場增速 > 訓練市場:推論階段對延遲和成本更敏感,融合最佳化 ROI 更高

風險與不確定性

風險說明
硬體代際變遷新硬體(如 Cerebras WSE、存內計算)可能改變融合的必要性和策略
演算法演進新模型架構可能使現有融合模式失效,需持續投入
開源侵蝕商業價值Triton/TVM 開源生態可能降低商業推論引擎的溢價

常見誤讀糾偏

❌ 誤讀 1:「運算元融合就是把所有運算元都合併成一個大 kernel」

糾偏:融合是有約束的最佳化決策,不是越多越好。過度融合會導致:

  • 暫存器溢位(register spilling),效能反而下降
  • 編譯時間和二進位制體積爆炸
  • 並行度降低

好的編譯器會做 cost model 驅動的融合決策,有時”不融合”才是最優選擇。

❌ 誤讀 2:「編譯器的運算元融合可以替代演算法層面的最佳化(如 FlashAttention)」

糾偏:編譯器級融合和演算法級融合是不同層次的最佳化:

  • 編譯器融合:在不改變數學等價性的前提下,合併已有運算元的實現
  • 演算法融合(如 FlashAttention):重新設計計算順序和分塊策略,改變中間結果的生命週期,本質上是新演算法,不是編譯器能自動發現的

FlashAttention 需要手寫 CUDA/Triton kernel,而非單純依賴編譯器的融合 pass。

❌ 誤讀 3:「運算元融合只對 GPU 有意義」

糾偏:CPU(減少 cache miss)、NPU/TPU(減少片外頻寬)、甚至 FPGA 統統受益。只是 GPU 因其記憶體層次分明、kernel launch 開銷顯著,融合效果最直觀。


學習路徑

入門(2–4 小時)

  1. 閱讀 TVM 官方文件中關於 Operator Fusion 的章節(有清晰的圖解和程式碼示例)
  2. 理解為什麼 Conv → BN → ReLU 融合在推論時成立

進階(1–2 天)

  1. 閱讀論文 “TVM: An Automated End-to-End Optimizing Compiler”(OSDI 2018)中融合策略部分
  2. 閱讀 FlashAttention 論文,理解演算法級融合與編譯器融合的區別
  3. 在 PyTorch 中使用 torch.compile(),對比有無融合的推論速度差異

深度(持續)

  1. 學習 MLIR Dialect 體系中的 Linalg on Tensors 融合架構
  2. 研讀 Ansor(TVM 自動排程論文),理解融合搜尋空間建模
  3. 實踐:在 TVM 中定義自定義融合規則,觀察對特定模型的效能影響

推薦資源

資源型別說明
TVM 官方文件 — Operator Fusion文件入門首選
《Machine Learning Compilation》by 陳天奇線上課程系統性學習 ML 編譯
FlashAttention 論文(Tri Dao, 2022)論文演算法級融合的經典
MLIR 官方文件 — Fusion文件工業級編譯架構的融合設計
Triton 官方教程程式碼親手寫融合 kernel

一句話總結

運算元融合是深度學習編譯器的核心最佳化手段——通過將相鄰運算元合併執行、消除中間結果的冗餘記憶體搬運,以極低的實現成本換取顯著的推論效能提升;其技術難點在於在暫存器壓力、並行度和編譯時間之間取得平衡,且無法替代 FlashAttention 等演算法層面的融合創新。


延伸閱讀與來源

來源說明型別
Chen et al., “TVM: An Automated End-to-End Optimizing Compiler”, OSDI 2018運算元融合策略的學術奠基論文
Dao et al., “FlashAttention: Fast and Memory-Efficient Exact Attention”, NeurIPS 2022演算法級融合的里程碑論文
NVIDIA TensorRT Developer Guide商業推論引擎融合策略的實際落地官方文件
PyTorch 2.0 torch.compile 設計文件主流架構中的融合實踐官方文件
TVM Operator Fusion 教程最佳入門資源線上教程
MLIR Linalg Fusion 文件工業界編譯架構的融合設計官方文件

宣告:本文技術事實基於公開論文、官方文件和社群共識。具體效能數字因模型、硬體、架構版本差異較大,文中量化資料標註為 [行業估算] 或 [定性描述],不作絕對精確承諾。

source: 公開揭露與公開資料整理 本頁僅用於產業鏈學習、資訊檢索和研究輔助;不構成投資建議,不預測漲跌,不提供買賣、部位或目標價建議。
完整概念頁 複盤 13 節結構 公司投研頁 沿產業鏈找到受益公司 投資課 把概念轉成可跟蹤模型