llama.cpp OpenCL 新增 Adreno q4_K 分塊 GEMM
llama.cpp 在 b11971 建置中為 OpenCL 後端新增面向 Adreno GPU 的分塊 q4_K GEMM,並讓 batch 大於 1 時的分塊 q4_K lm_head 通過分塊 GEMM 執行。改動還把分塊 dp4a q4_K GEMM 拆到獨立檔案,並補充 dp4a 測試;提交由 Qualcomm 工程師共同署名,標註 Codex 輔助。
原標題:b11971
閱讀原文
| 評分 | 45 / 45(平均 45,門檻 60) |
|---|---|
| 狀態 | 未入選 |
原文
相關報導
llama.cpp 為 OpenCL 後端加入 Q2_K 量化支援
llama.cpp 建置 b11873 為 OpenCL 後端加入了 Q2_K 量化的初步支援,重點面向驍龍 Adreno GPU。新增 mul_mv_q2_k_f32、q2_k 的 SOA mv 與 tiled mm kernel,並針對 Adreno 補充 noshuffle gemm/gemv 與 dp4a gemm 後完成調優,高通工程師參與共同提交。
llama.cpp 為 OpenCL 新增 cooperative-k dp4a GEMM
llama.cpp 建置 b11741 在 OpenCL 後端為 q4_0、q4_k、q6_k 三種量化格式加入 cooperative-k dp4a GEMM,並修復對齊問題。這意味著在 OpenCL 上執行這些 4bit、6bit 量化模型的裝置可以用上新的矩陣乘實現。該版本同時更新了 macOS、Linux、Windows、Android 多平台建置,覆蓋 CUDA 12/13、ROCm 10.0、Vulkan、SYCL 等後端。
llama.cpp 為 OpenCL 新增 dp4a GEMM 變體並重新命名核心
llama.cpp 建置 b11789 為 OpenCL 後端新增支援向量化啟用載入的 dp4a GEMM 變體,用於提升量化矩陣乘的推理效率,同時重新命名了相關核心與環境變數。
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 OpenCL 後端新增多個小批次 GEMM 變體並修復越界讀
llama.cpp 建置 b11763 為 OpenCL 後端補上多個面向小批次的 GEMM/GEMV 核心變體,並修復 mul_mv_mxfp4_f32_flat 的越界讀取。新增項包括 q4_k dp4a GEMM 的小批次變體、mul_mm_f16_f32_l4_lm 的窄化變體,以及大 M 時 gemv_noshuffle_q1_0_f32 的單 subgroup 變體,並按 workgroup 大小限制 q4_0 mc3 的 subgroup 數量。