llama.cpp b12000 新增 OCP FP8 E4M3 支援與 CPU 快速核心
llama.cpp 合併 b12000,為 OCP FP8 E4M3 打通模型轉換、gguf-py 讀寫與 CPU 推理路徑。轉換側修復了逐行 FP8 被誤判為 NVFP4、FP8 QKV 縮放需隨權重一同 reshape、Qwen3-Next 融合 qkvz 等問題,並支援僅含 FP8 的 compressed-tensor checkpoint。CPU 新增 F8_E4M3 快速核心(暫不含 RISC-V),Metal 後端暫時把 FP8 列入黑名單;
FP8 E4M3 首次在 llama.cpp 貫通轉換、gguf-py 與 CPU 推理三層並配專用快速核心,對處理 FP8/NVFP4 量化權重的本地推理使用者最直接。
原標題:b12000: Quant: OCP FP8 E4M3 support (#27512)
閱讀原文
| 評分 | 70 / 71(平均 70,門檻 60) |
|---|---|
| 狀態 | 精選 |
全文翻譯
由 AI 翻譯,以原文為準。
原文
相關報導
llama.cpp b11540 發布:SYCL 加速 MXFP4 MoE 推理
llama.cpp 建置版本 b11540 發布,核心變更是 SYCL 後端通過算術解碼與權重重排加速 MXFP4 MoE 模型推理(PR #29809)。該版本同時提供 macOS、Linux、Windows、Android 與 openEuler 的預編譯包,覆蓋 CUDA 12/13、ROCm 10.0、Vulkan、OpenVINO、SYCL FP32/FP16 等後端;
llama.cpp 回退 x86 上 FP16→FP32 的 F16C 最佳化,修復量化核心效能回退
llama.cpp 在 ggml-cpu 中撤銷 x86 上 FP16→FP32 的 F16C 內建轉換,恢復使用查詢表,只保留 FP32→FP16 走 F16C。此前 #30270 把兩種標量轉換都改為 F16C,但 Clang 20.1.8 會把該 intrinsic 編譯成 vpinsrw 合併進量化點積的活躍累加暫存器,導致迴圈序列化:估計每輪 19 週期對 4 週期,實測 Q8_0/Q4_0 的 MUL_MAT_ID 核心慢 45–65%。
llama.cpp 修復 Adreno OpenCL 的 q8_0 dp4a MoE 計算錯誤
llama.cpp 建置 b11620 修復了 OpenCL 後端 q8_0 dp4a 路徑下 MoE 矩陣乘法(MUL_MAT_ID)與 GEMM 的最小值處理錯誤,避免量化 MoE 模型在 GPU 上算出錯誤結果。同一批改動還讓 Adreno GPU 直接拒絕 PREC_F32 的 MUL_MAT_ID,不再走不支援的精度路徑。
llama.cpp 最佳化 Metal 後端:MXFP4 矩陣向量與 GLU 提速
llama.cpp 發布 b11985,Metal 後端三項改動提速:MXFP4 矩陣向量核心改用 fp16 位技巧解碼 fp4 值、以對齊的 32 位字載入打包 nibble,不再佔用 threadgroup 記憶體;連續 unary/binary 與行廣播 binary 路徑改為每 threadgroup 最多 256 執行緒並對尾部做邊界檢查;GLU 的每行拆分到多個 threadgroup,單行 decode 不再只用一個 threadgroup。
llama.cpp b11799 為 SYCL 後端加入 q8 快速反量化
llama.cpp 發布 b11799 建置,新增 SYCL 後端的 q8 快速反量化(#30775),可提升 Intel GPU 上量化模型的推理效率。該版本同時提供 macOS、Linux、Windows、Android 的多平台預編譯包,涵蓋 CUDA 12、CUDA 13、ROCm 10.0、Vulkan、OpenVINO 與 Snapdragon 的 CPU、Adreno GPU、Hexagon NPU 版本;SYCL 建置則分為 FP32 與 FP16 兩版。