總覽
MLIR,或多層次中介表示法,是一種表示格式和編譯器公用程式庫,位於模型表示法和產生硬體特定程式碼的低階編譯器/執行器之間。
MLIR 的核心是現代最佳化編譯器的彈性基礎架構。這表示它包含中介表示法 (IR) 的規格,以及用於對該表示法執行轉換的程式碼工具組。(在編譯器術語中,當您從較高層級的表示法移至較低層級的表示法時,這些轉換可以稱為「降級」)
MLIR 受到 LLVM 的高度影響,並且毫不掩飾地重複使用其中的許多絕妙想法。它具有彈性的類型系統,並允許在同一個編譯單元中表示、分析和轉換結合多個抽象層級的圖形。這些抽象概念包括 TensorFlow 運算、巢狀多面體迴圈區域,甚至 LLVM 指令和固定的硬體運算和類型。
我們預期 MLIR 會引起許多群體的興趣,包括
- 尋求最佳化機器學習模型效能和記憶體消耗的編譯器研究人員和實作者
- 尋找將其硬體連接到 TensorFlow 的方法的硬體製造商,例如 TPU、手機中的可攜式神經硬體和其他自訂 ASIC
- 編寫語言繫結且想要利用最佳化編譯器和硬體加速的人員。
TensorFlow 生態系統包含許多在軟體和硬體堆疊的多個層級運作的編譯器和最佳化工具。我們預期逐步採用 MLIR 將簡化此堆疊的各個方面。