機器學習系統與基礎設施

XLA 編譯(Accelerated Linear Algebra)

XLA(Accelerated Linear Algebra,加速線性代數)把一整個以陣列運算之圖描述的機器學習計算接過來,提前(ahead-of-time)編譯成針對某個特定加速器的單一最佳化程式——就像 C 編譯器把原始碼變成一個調好的二進位檔,而不是一個運算一個運算地解譯。回報是整程式最佳化:它能全域地看整張圖,並重新安排它。

XLA 把高階圖降階到它的 HLO 中介表示,接著跑與目標無關的階段——代數化簡、共同子運算式消去、佈局指派(layout assignment)、緩衝區配置、以及積極的算子融合——再為 GPU、TPU 或 CPU 做後端碼生成。因為它事先就知道靜態形狀,所以能精準挑佈局與分塊大小、把緩衝區塞得很緊;代價是形狀一變就觸發重新編譯,所以動態形狀與高度資料相依的控制流會很彆扭。它是 JAX 與 TensorFlow 背後的編譯器,也是 TPU 的原生程式設計模型。

對 TPU 規模的訓練與 JAX 工作負載而言,XLA 的融合與佈局選擇正是補上「逼近硬體峰值利用率」那道差距的關鍵,而它的分片標註(GSPMD)能讓單一編譯出的程式跨越數千顆晶片。那個取捨——重新編譯與一個更靜態的世界——不過就是提前全域最佳化所要付的代價。

又稱
XLAAccelerated Linear AlgebraHLO