AISpot

llama.cpp SYCL 後端為 IQ3 加持久權重重排,解碼提速最高 82%

llama.cpp releases版本更新地端推論開源

llama.cpp 的 SYCL 後端為 IQ3_S/IQ3_XXS 加入持久化權重重排,在 Intel Arc Pro B70 上解碼速度最高提升 82%。權重在載入時只重排一次,MMVQ 點積改用 dp4a 與 SWAR 符號擴充套件遍歷稠密超級塊,重排感知的反量化也接入批次 prefill 的 GEMM。

給出 Intel Arc 上 IQ3 量化解碼的實測提速數字(最高 +82%),並說明改動只惠及 IQ3_S/IQ3_XXS、標準量化不受影響,便於在 SYCL/Intel GPU 上跑低位元量化模型的 llama.cpp 使用者評估升級收益。

原標題:b11636
閱讀原文

評分73 / 62(平均 67,門檻 60)
狀態精選

全文翻譯

sycl:IQ3 程式碼重排(#29107) sycl:針對 SYCL 解碼和預填充的持久化 IQ3_S/IQ3_XXS 權重重排 為 IQ3_S 和 IQ3_XXS 新增持久化重排後的權重佈局。權重在載入時重排一次;隨後重排後的 MMVQ 點積使用 dp4a 和 SWAR 符號擴充套件遍歷稠密超級塊,而不是從交錯的標準佈局中收集位元。支援重排的反量化會饋入批次預填充 GEMM,因此提示處理也能獲得同樣的收益。 同時強化 oneDNN 建置檢查:缺少 DNNL 包或僅 CPU 的 DNNL 建置現在會在配置時失敗,而不是靜默產生降級的後端。 在 Intel Arc Pro B70 上使用 Qwen3.8-27B-GSQ-RCO-IQ3_S (MTP)、-ngl 999 -b 4096 -ub 1024 -fa on 測量: tg256 @ 0 ctx 12.92 -> 23.54 tok/s (+82%) tg256 @ 9,216 12.33 -> 21.69 tok/s (+76%) tg256 @ 64,000 9.76 -> 14.91 tok/s (+53%) pp8192 833.9 -> 833.6 tok/s(持平) Qwen3.5-9B Q4_K_M / Q3_K_M 在噪聲範圍內保持不變(最大差異 -0.5% pp,tg 持平),因此標準量化不受影響。 MMVQ GLU 融合拓寬和 rms_norm+scale 融合有意不包含在此變更中;master 已通過 #28931 包含它們。 按評審請求移除 wait sycl:修復 fusion.cpp 行尾 網站: https://llama.app 證明: https://github.com/ggml-org/llama.cpp/attestations/56116978 macOS/iOS: - macOS Apple Silicon (arm64) - macOS Apple Silicon (arm64, KleidiAI enabled) 已停用 - macOS Intel (x64) - iOS XCFramework Linux: - Ubuntu x64 (CPU) - Ubuntu arm64 (CPU) - Ubuntu s390x (CPU) - Ubuntu x64 (Vulkan) - Ubuntu arm64 (Vulkan) - Ubuntu x64 (CUDA 12) - CUDA 12.8 庫 - Ubuntu x64 (CUDA 13) - CUDA 13.4 庫 - Ubuntu arm64 (CUDA 13) - CUDA 13.4 庫 - Ubuntu x64 (ROCm 10.0) - Ubuntu x64 (OpenVINO) - Ubuntu x64 (SYCL FP32) - Ubuntu x64 (SYCL FP16) - Linux arm64 (Snapdragon: CPU, Adreno GPU, Hexagon NPU) - 設定指南 Android: - Android arm64 (CPU) - Android arm64 (Snapdragon: CPU, Adreno GPU, Hexagon NPU) - 設定指南 Windows: - Windows x64 (CPU) - Windows arm64 (CPU) - Windows arm64 (OpenCL Adreno) - Windows x64 (CUDA 12) - CUDA 12.4 DLLs - Windows x64 (CUDA 13) - CUDA 13.4 DLLs - Windows arm64 (CUDA 13) - CUDA 13.4 DLLs - Windows x64 (Vulkan) - Windows arm64 (Vulkan) - Windows x64 (OpenVINO) - Windows x64 (SYCL) - Windows x64 (ROCm 10.0) openEuler: - 已停用 - openEuler x86 (310p) - openEuler x86 (910b, ACL Graph) - openEuler aarch64 (310p) - openEuler aarch64 (910b, ACL Graph) UI: - UI

由 AI 翻譯,以原文為準。

原文
sycl: IQ3 code reorder ( #29107 ) sycl: persistent IQ3_S/IQ3_XXS weight reorder for SYCL decode and prefill Add persistent reordered weight layouts for IQ3_S and IQ3_XXS. Weights are reordered once at load time; the reordered MMVQ dot products then walk dense super-blocks with dp4a and SWAR sign expansion instead of gathering bits from the interleaved standard layout. Reorder-aware dequantization feeds the batched prefill GEMMs so prompt processing sees the same benefit. Also harden the oneDNN build check: a missing DNNL package or a CPU-only DNNL build now fails at configure time instead of silently producing a degraded backend. Measured on Intel Arc Pro B70 with Qwen3.8-27B-GSQ-RCO-IQ3_S (MTP), -ngl 999 -b 4096 -ub 1024 -fa on: tg256 @ 0 ctx 12.92 -> 23.54 tok/s (+82%) tg256 @ 9,216 12.33 -> 21.69 tok/s (+76%) tg256 @ 64,000 9.76 -> 14.91 tok/s (+53%) pp8192 833.9 -> 833.6 tok/s (flat) Qwen3.5-9B Q4_K_M / Q3_K_M are unchanged within noise (largest delta -0.5% pp, tg flat), so standard quants are not affected. The MMVQ GLU fusion widening and rms_norm+scale fusion are intentionally not part of this change; master already carries them via #28931 . removing wait as per review request sycl : fix fusion.cpp line ending Website: https://llama.app Attestations: https://github.com/ggml-org/llama.cpp/attestations/56116978 macOS/iOS: macOS Apple Silicon (arm64) macOS Apple Silicon (arm64, KleidiAI enabled) DISABLED macOS Intel (x64) iOS XCFramework Linux: Ubuntu x64 (CPU) Ubuntu arm64 (CPU) Ubuntu s390x (CPU) Ubuntu x64 (Vulkan) Ubuntu arm64 (Vulkan) Ubuntu x64 (CUDA 12) - CUDA 12.8 libraries Ubuntu x64 (CUDA 13) - CUDA 13.4 libraries Ubuntu arm64 (CUDA 13) - CUDA 13.4 libraries Ubuntu x64 (ROCm 10.0) Ubuntu x64 (OpenVINO) Ubuntu x64 (SYCL FP32) Ubuntu x64 (SYCL FP16) Linux arm64 (Snapdragon: CPU, Adreno GPU, Hexagon NPU) - setup guide Android: Android arm64 (CPU) Android arm64 (Snapdragon: CPU, Adreno GPU, Hexagon NPU) - setup guide Windows: Windows x64 (CPU) Windows arm64 (CPU) Windows arm64 (OpenCL Adreno) Windows x64 (CUDA 12) - CUDA 12.4 DLLs Windows x64 (CUDA 13) - CUDA 13.4 DLLs Windows arm64 (CUDA 13) - CUDA 13.4 DLLs Windows x64 (Vulkan) Windows arm64 (Vulkan) Windows x64 (OpenVINO) Windows x64 (SYCL) Windows x64 (ROCm 10.0) openEuler: DISABLED openEuler x86 (310p) openEuler x86 (910b, ACL Graph) openEuler aarch64 (310p) openEuler aarch64 (910b, ACL Graph) UI: UI

相關報導

llama.cpp releases● 精選AI 評分68

llama.cpp SYCL 為 GLM MLA 預填充接入 MKL,pp8192 提速 2.99 倍

llama.cpp 的 SYCL 後端放行了 GLM-4.7 Flash 的 MLA 形狀走 MKL flash attention,此前該形狀因 K/V 寬度不一致、head dim 上限 512 被排程器拒絕,預填充只能回退到更慢的 TILE kernel。在 Intel Arc Pro B70 上,pp8192 從 432.80 提升到 1292.29 tok/s(2.99 倍,+198.6%),tg256 在噪聲範圍內基本不變(45.67 對 45.65)。

llama.cpp releasesAI 評分43

llama.cpp b11515:SYCL 加入 Q5_K 重排 MMVQ 與融合 GLU

llama.cpp 發布 b11515,主要變更是 SYCL 後端為 Q5_K 量化補上重排佈局的 MMVQ 核心,並加入融合 GLU(#29375),面向 Intel GPU 的量化推理。建置矩陣照舊覆蓋 macOS/iOS、Linux、Windows、Android 與 openEuler,包含 CUDA 12/13、ROCm 10.0、Vulkan、OpenVINO、SYCL FP32/FP16 等後端;

llama.cpp releasesAI 評分42

llama.cpp 為 SYCL 後端加入分組 MoE XMX GEMM

llama.cpp 建置 b11493 為 SYCL 後端新增分組 MoE XMX GEMM 運算元(#29245),面向混合專家模型的矩陣乘加速。該版本同時放出全平台建置產物,覆蓋 macOS/iOS、Linux、Windows、Android 與 openEuler,包含 CUDA 12/13、ROCm 10.0、Vulkan、OpenVINO、SYCL FP32/FP16,以及 Snapdragon 的 CPU、Adreno GPU 與 Hexagon NPU 組合。