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 等後端。
找到 10 筆
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 發布 b11909 建置,Hexagon 後端針對 MUL_MAT_ID 加入行跳過最佳化。具體改動包括:把跳過行的清零改為向量化,把清零加入融合的 MM_ID_NX,並移除標量除法。這些改動主要影響驍龍 Hexagon NPU 上的 MoE 類推理;
llama.cpp 發布 b11609,修復 WebGPU 後端在 expert id 重複時 mul_mat_id 的計算錯誤,屬 CI 修復。該問題涉及 MoE 模型的專家路由,同版本照常給出各平台預編譯建置,覆蓋 macOS Apple Silicon(arm64)、Linux 的 CUDA 12/13 與 ROCm 10.0、Windows x64 CUDA/Vulkan、Android arm64,以及 Snapdragon 的 CPU、Adreno GPU 與 H…
llama.cpp 建置版本 b11569 修復了 Metal 後端 mul_mat_id 在 id 重複時輸出錯誤、丟行乃至溢位到下一個 expert 切片的問題。新實現先做一遍預掃描,為每個 expert 建立緊湊的 (token, slot) 條目列表,並借鑑 Vulkan 方案讓 map0 額外輸出 tile 描述符,kernel_mul_mm_id 按描述符處理單個 tile,重複 id 由此被隱式處理。
llama.cpp 建置 b11620 修復了 OpenCL 後端 q8_0 dp4a 路徑下 MoE 矩陣乘法(MUL_MAT_ID)與 GEMM 的最小值處理錯誤,避免量化 MoE 模型在 GPU 上算出錯誤結果。同一批改動還讓 Adreno GPU 直接拒絕 PREC_F32 的 MUL_MAT_ID,不再走不支援的精度路徑。
llama.cpp 建置版本 b11895 修復了 Metal 後端在大型矩陣輸出偏移時出現的整數溢位,同時加寬了 batch 偏移與 MUL_MAT_ID 的 token 索引。改動由 Codex 輔助完成,屬於影響大模型在 Apple Silicon 上推理正確性的底層修復,本次建置仍按慣例提供 macOS、Linux、Windows、Android 等多平台二進位制包。
llama.cpp 發布 b11554,Vulkan 後端改進了 MoE 推理中 mul_mat_id 對重複專家 id 的處理:不再逐個迴圈,而是在預計算階段統一處理。原本受限的 hoist row ids 最佳化現在預設開啟,會生成緊湊的 tile 描述列表、按需發射多個 tile,從而收緊 workgroup 數量上界,尾部執行緒可直接提前退出。
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 的 HIP 後端把 64 行/128 執行緒的 MMQ tile 擴充套件到更多量化型別與 J 值組合,覆蓋 RDNA3.5(gfx115x);此前該配置只在 J≤32 時使用,更大的 tile 會佔滿 LDS,無法讓每個 CU 再容納一個工作組。在 gfx1151 上對 100 個 MUL_MAT 形狀做三輪測試,中位提升 2.1%、最佳 26.0%,5 個 MUL_MAT_ID 形狀中位提升 8.0%。J=96 因未獲益被明確排除,其餘條目保持不變。
llama.cpp 建置 b11730 調整 CUDA 後端 MMQ 的 Stream-K 排程:網格上限從按 SM 數量啟動改為實際 k-block 數量,並進一步按所有輸出 tile 的 K_vram 迭代總數(部分迭代向上取整)收緊。這能去掉小矩陣下無活可乾的多餘 CUDA 塊及其啟動與 fixup 開銷,有效取整 K 範圍與數值結果不變。代價是部分迭代可能改變 FP32 求和的分組方式,MUL_MAT 與 MUL_MAT_ID 後端測試已在 RTX 5090 上通過。