機器學習系統與基礎設施

算子融合編譯器(operator-fusion compiler)

靠手寫去寫每一個融合核心,根本撐不起一個模型可能產生的數千種算子組合。算子融合編譯器把整張計算圖接過來,自動決定要把哪些相鄰算子合併成單一核心,再生成那段融合過的程式碼。它把「融合」這門人類技藝,變成一道作用在圖上的編譯器階段(pass)。

這種編譯器把圖切成若干融合群組——通常是繞著大張量的生產者與消費者,把逐元素與歸約算子聚在一起,而像 GEMM、卷積這類函式庫呼叫則留作固定節點,但其尾段仍可被融進來。它會推理哪些中間值能留在晶片上、排程迴圈、挑分塊大小、並發出裝置碼,常透過 Triton 或 LLVM 這類後端。最難的部分是融合邊界的決策(融太多會溢出或失去平行度;融太少又一直在付記憶體流量的帳),以及處理歸約與廣播——它們的迭代空間並不會輕易對齊。

這正是 XLA、TorchInductor、TVM 等堆疊內部的引擎;它讓一份高階的模型定義不必有人寫核心,就能跑出逼近手調的速度。它所做的那些融合選擇,恰恰就是能跨整個網路提高算術強度、削減啟動開銷的選擇。

又称
graph compiler算子融合編譯器圖編譯器