逆向工程 NPU 廠商引擎格式:不需模型轉換直接執行 GGUF,效能較官方提升 1.5 倍
開發者逆向工程 NPU 引擎格式以直接執行 GGUF 的高技術深度踩坑與實作分享
• 作者透過逆向工程硬體廠商的 .axmodel 引擎格式,成功讓 llama.cpp 直接載入 GGUF 模型,省去繁瑣的模型編譯與轉換步驟。
• 透過自製的座標編碼檢查點進行二進位差異分析,破解了 int8 權重在記憶體中以兩個半位元組平面(nibble planes)儲存的底層配置與縮放表。
• 修正了長久以來被誤認為故障的批次預填(batched-prefill)路徑,讓提示詞處理速度飆升至 716 t/s。
• 在 Raspberry Pi 5 搭配 Axera AX8850 NPU 的測試中,解碼速度達到 24.5 t/s(int4 引擎、2k 上下文),而 Pi 幾乎處於閒置狀態。
• 實測發現此類晶片在單批次解碼時屬於記憶體頻寬受限問題,實際 MACs 僅使用約 1%,揭示了硬體效能的最佳化關鍵在於資料流與位元組傳輸效率。
傳統認知中無法運作的批次預填功能其實完全正常,問題僅出在輸出緩衝區的綁定方式上。
來源:r/LocalLLaMA
閱讀原文 ↗