sophgo/tpu-mlir
Machine learning compiler based on MLIR for Sophgo TPU.
解決的問題
TPU-MLIR 是一個機器學習編譯器,允許開發者從 PyTorch、ONNX、TFLite 和 Caffe 等流行框架中取得預訓練的神經網路,並轉換為一種稱為 bmodel 的專用格式。這些檔案針對 TPU 硬體進行了最佳化,彌補了高階 AI 模型設計與硬體特定執行之間的差距。
工作原理
基於 MLIR(多層次中間表示)框架建構,該編譯器使用「方言」與模式重寫組成的流水線,將高階模型描述降低為硬體特定指令。它包含完整的工具鏈,支援量化(將模型從 F32 轉換為 BF16、F16 或 INT8)與校準,以維持精度。針對大型語言模型(LLM),提供專用的 llm_convert.py 工具,支援 HuggingFace 模型的一次性轉換,並具備 KV 快取管理與分塊推論等進階功能。
適用對象
此工具專為需要將優化後的 AI 模型(從 YOLOv5 等視覺模型到 Qwen 等 LLM)部署至基於 TPU 的加速器上的 AI 工程師與硬體開發者設計。
主要亮點
- 多框架支援:可直接轉換來自 PyTorch、ONNX、TFLite 和 Caffe 的模型。
- LLM 優化:針對 HuggingFace LLM 提供一次性轉換與 KV 快取處理的專用支援。
- 全面的量化支援:支援 F32、BF16、F16 和 INT8(對稱/非對稱),以及 AWQ、GPTQ 和 AutoRound。
- 生產級工具鏈:包含模擬器、視覺化工具,以及用於精度驗證與 bmodel 檢查的工具。
- 基於 MLIR 的流水線:採用清晰的下降低階流水線,結合層群組記憶體規劃,實現高效硬體利用。
相關
- 專案
- 專案
- 專案
- 專案
- 專案