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 的流水線:採用清晰的下降低階流水線,結合層群組記憶體規劃,實現高效硬體利用。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案