onnx/onnx-mlir
Representation and Reference Lowering of ONNX Models in MLIR Compiler Infrastructure
解決的問題
ONNX-MLIR 提供了一種將 Open Neural Network Exchange (ONNX) 圖形轉換為具備最小執行階段支援的可執行程式碼的方法。這使得 AI 模型可以作為高度優化、獨立的函式庫或二進位檔進行部署,而不需依賴沉重的執行階段環境。
工作原理
基於 LLVM/MLIR 編譯器技術建構,本專案實作了 ONNX Dialect。它使用驅動程式(onnx-mlir)將 ONNX 圖形透過多個表示階段逐步降低,允許使用者產生不同輸出,例如 MLIR 檔案、LLVM 位元碼,或 C、C++ 和 Java 的共用函式庫。
適用對象
專為需要將 ONNX 模型編譯為特定硬體(如通用 CPU 或 IBM 的 Telum 集成 AI 加速器)優化機器碼的開發人員與工程師所設計。
主要特色
- 多語言支援:可產生 Python、C、C++ 和 Java 的函式庫與執行階段。
- 彈性輸出格式:可輸出 ONNX IR、MLIR、LLVM IR、目標檔或共用函式庫。
- 最佳化等級:內建最佳化等級(O0 至 O3),可用於調整效能。
- 硬體目標:特別支援通用 CPU 和 IBM Telum NNPA。
相關
- 專案
- 專案
- 專案
- 專案
- 專案