llama.cpp 新增 GDN chunked kernel,RTX 3090/4090 開啟 MMA
llama.cpp 建置 b11632 為 CUDA 和 HIP 後端加入 GDN chunked kernel(自 tetherto#257 移植)。在 RTX 3090(SM86)與 RTX 4090(SM89)通過正確性和 prefill 基準測試後,CUDA 側啟用 GDN MMA,其他未測試架構繼續沿用原有 fallback;ggml 側另註明 GDN 只在 n_tokens > K 時保證最終狀態。
GDN 的 chunked kernel 進入 llama.cpp 的 CUDA/HIP 路徑,並在 RTX 3090、4090 實測後放行 MMA、其餘架構保留 fallback,對在 NVIDIA 與 AMD 顯示卡上跑本地推理的人有直接參考價值。
原標題:b11632
閱讀原文
| 評分 | 58 / 48(平均 53,門檻 60) |
|---|---|
| 狀態 | 未入選 |
原文
相關報導
llama.cpp 建置 b11448:ggml-cuda 分塊處理大塊 BF16/FP16 轉 F32
llama.cpp 發布建置 b11448,ggml-cuda 後端把大塊 BF16/FP16 到 F32 的轉換改為分塊執行(#29442),並修正分塊 cuBLAS 矩陣乘法未遵循目標 stride 的問題,提交由 Johannes Gäßler 參與。改動僅涉及 CUDA 後端,影響用 NVIDIA GPU 做本地推理的場景;該建置同時覆蓋 macOS Apple Silicon 與 Linux、Windows 的 CUDA 12/13 等平台。
llama.cpp 為 4 頭 lightning indexer 新增 CUDA 分塊核心
llama.cpp 合併 b11405 版本更新,為 lightning indexer 在 CUDA 與 ROCm 後端新增分塊核心,針對 4 頭場景最佳化。新核心將鍵以半精度暫存、查詢逐頭載入,每執行緒負責一個鍵對兩個 token,避免點積的跨執行緒歸約;同時把乘積改為 float 計算以防 half2 溢位,並讓每個鍵元素只擴充套件一次供所有頭使用。ROCm 上內層迴圈展開 8 次,gfx908 僅用 63 個 VGPR 無溢位,R9700 上核心提速 36 倍。
llama.cpp b11494:CUDA 的 GDN 狀態列預設改為每 warp 4 列
llama.cpp 發布 b11494,ggml-cuda 將 GDN 狀態列數(cols_per_warp)的預設值定為 4,此前該值經歷每 warp 2 列與 4 列的調整,並在 S_v=128 時使用 4 列。
llama.cpp 為 x86 tinyBLAS 加入 BF16/FP16/FP32 K 尾部向量化
llama.cpp 的 ggml-cpu 後端在 x86 上為 tinyBLAS 增加了 BF16、FP16、FP32 的 K 尾部支援並做了向量化,同時讓 CPU 測試在啟用 use_ref 時跳過 tinyBLAS,以便與 vec_dot 路徑對比。改動以 PR #29806 合入,隨 b11398 建置發布,覆蓋 macOS、Linux、Windows、Android 等多平台 CPU 與 GPU 後端。
llama.cpp 發布 b11391 版本,CUDA 程式碼小幅調整
llama.cpp 發布 b11391 建置版本,唯一程式碼改動是將 CUDA 後端的 blocks_per_col 變數移到實際使用位置(PR #29939),由 Hugging Face 的 Adrien Gallouët 提交。