AISpot

llama.cpp 修復 Vulkan 小矩陣乘法分組錯誤

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

llama.cpp 合併 PR #30106,修復 Vulkan 後端小矩陣乘法的分組錯誤。原實現把 warp tile 寬度 WM 固定為 32(8 寬子組時為 8),不隨 tile 的 BLOCK_SIZE 和 WARP 變化:使用 16 寬子組(Mali)時,同一工作組的第二個子組會寫入下一個 tile 的列;使用 8 寬子組時,部分 _id tile 有行未計算。現在改為按子組推導 WM,保證每個子組一個 warp tile;

原標題:b11876
閱讀原文

評分42 / 45(平均 43,門檻 60)
狀態未入選

原文

vulkan : one warp tile per subgroup in the small matmul tiles ( #30106 ) WM of the small tiles was 32, or 8 for 8-wide subgroups, whatever the tile's BLOCK_SIZE and WARP. With 16-wide subgroups (Mali) the second subgroup of a workgroup wrote into the next tile's columns. With 8-wide subgroups some _id tiles left rows uncomputed. Derive WM so there is one warp tile per subgroup. Tested on my Pixel 9 Android phone. Before the change there were 20 MUL_MAT and 6 MUL_MAT_ID failures. After the change they all pass. Fixes #28637 Assisted-by: Claude Opus 5.5 Website: https://llama.app Attestations: https://github.com/ggml-org/llama.cpp/attestations/59631087 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 releasesAI 評分42

llama.cpp b11640:Vulkan 矩陣乘法改用 L2 友好排程

llama.cpp 發布 b11640,Vulkan 後端針對 cm2 mulmat 的矩陣乘法改用對 L2 快取更友好的 workgroup 排程(#30215)。同一版本把 macOS Apple Silicon 的 KleidiAI 建置標記為 DISABLED,並重新整理各平台預編譯包:Ubuntu 與 Windows x64 新增 ROCm 10.0,CUDA 13 建置對應 CUDA 13.4 庫。

llama.cpp releasesAI 評分46

llama.cpp 新版最佳化 Vulkan 上 MoE 重複專家的矩陣乘

llama.cpp 發布 b11554,Vulkan 後端改進了 MoE 推理中 mul_mat_id 對重複專家 id 的處理:不再逐個迴圈,而是在預計算階段統一處理。原本受限的 hoist row ids 最佳化現在預設開啟,會生成緊湊的 tile 描述列表、按需發射多個 tile,從而收緊 workgroup 數量上界,尾部執行緒可直接提前退出。

llama.cpp releasesAI 評分36

llama.cpp 修復 Vulkan 後端 RDNA4 矩陣向量調優

llama.cpp 發布 b11389 版本,修復了 Vulkan 後端在 RDNA4 架構上的矩陣向量運算調優問題(PR #29934)。該版本繼續提供覆蓋 macOS、Linux、Windows、Android 等平台的預編譯二進位制,包括 Vulkan、CUDA、ROCm、SYCL 等後端,其中 macOS Apple Silicon 的 KleidiAI 啟用版和 openEuler 建置被停用。

llama.cpp releasesAI 評分43

llama.cpp b11564:Vulkan 後端專門化 CM2 量化塊大小

llama.cpp 發布 b11564 建置,Vulkan 後端為 CM2 matmul 專門化量化塊大小,並改用三元表示式避免 switch 降低帶來的開銷,同時澄清了相關注釋。該版本照例附帶全平台建置,涵蓋 macOS/iOS、Linux、Windows、Android 與 openEuler,包括 CUDA 12/13、ROCm 10.0、Vulkan、SYCL、OpenVINO 等後端。

llama.cpp releasesAI 評分42

llama.cpp Vulkan 後端為 conv3d 增大 tile,僅限 coopmat2 與新驅動

llama.cpp 建置 b11877 給 Vulkan 後端的 conv3d 增加了更大的 tile 尺寸,只在 coopmat2 路徑啟用。原因是這條路徑不需要用共享記憶體存放輸出,否則會超過 64KB 上限。該大 tile 只對較新版本的驅動生效,同時補充了若干代表性後端測試;發布說明稱這套改動來自 codex 檢視 sd.cpp 的 Wan VAE 後給出的方案。