llama.cpp b11909 為 Hexagon 後端最佳化 MUL_MAT_ID 行跳過
llama.cpp 發布 b11909 建置,Hexagon 後端針對 MUL_MAT_ID 加入行跳過最佳化。具體改動包括:把跳過行的清零改為向量化,把清零加入融合的 MM_ID_NX,並移除標量除法。這些改動主要影響驍龍 Hexagon NPU 上的 MoE 類推理;
原標題:b11909
閱讀原文
| 評分 | 40 / 42(平均 41,門檻 60) |
|---|---|
| 狀態 | 未入選 |
原文
相關報導
llama.cpp Hexagon NPU 支援 Q1_0/Q2_0 的 Hadamard 矩陣乘與取行
llama.cpp 建置 b11717 為高通 Hexagon NPU 後端加入 Hadamard 變換的 MUL_MAT 與 GET_ROWS,覆蓋 flat 與 tiled 兩種佈局的 Q1_0、Q2_0 量化,並新增 hex-hadamard 運算元。同一提交還減少了 q8_1 量化器與 vec_dot_q1 的資料包數量。
llama.cpp 新版最佳化 Vulkan 上 MoE 重複專家的矩陣乘
llama.cpp 發布 b11554,Vulkan 後端改進了 MoE 推理中 mul_mat_id 對重複專家 id 的處理:不再逐個迴圈,而是在預計算階段統一處理。原本受限的 hoist row ids 最佳化現在預設開啟,會生成緊湊的 tile 描述列表、按需發射多個 tile,從而收緊 workgroup 數量上界,尾部執行緒可直接提前退出。
llama.cpp b11627:停用 mul_mat_id_dup 測試並補充 mul_mat_id 說明
llama.cpp 發布建置 b11627,ggml 為 mul_mat_id 補充了說明,並停用 mul_mat_id_dup 相關測試(#30501)。該版本照例提供 macOS、Linux、Windows、Android、openEuler 等平台預編譯包,覆蓋 CPU 以及 CUDA 12/13、Vulkan、ROCm 10.0、SYCL、OpenVINO 等後端。
llama.cpp 修復 Metal 後端 mul_mat_id 重複 id 錯誤
llama.cpp 建置版本 b11569 修復了 Metal 後端 mul_mat_id 在 id 重複時輸出錯誤、丟行乃至溢位到下一個 expert 切片的問題。新實現先做一遍預掃描,為每個 expert 建立緊湊的 (token, slot) 條目列表,並借鑑 Vulkan 方案讓 map0 額外輸出 tile 描述符,kernel_mul_mm_id 按描述符處理單個 tile,重複 id 由此被隱式處理。
llama.cpp b11486 改進 Hexagon 後端 GELU 精度
llama.cpp 發布 b11486 建置,Hexagon 後端的 GELU 啟用函式精度得到改進(#30104)。該版本繼續為驍龍平台提供 Hexagon NPU、Adreno GPU 與 CPU 三類後端,覆蓋 Linux arm64、Android arm64 與 Windows arm64。