llama.cpp 為 Hexagon NPU 新增 TOP_K_MASK 運算元
llama.cpp 發布 b12096 建置,為 Hexagon NPU 後端新增 TOP_K_MASK 運算元,並簡化該 kernel、不再重複主機配置。
原標題:b12096
閱讀原文
| 評分 | 35 / 40(平均 37,門檻 60) |
|---|---|
| 狀態 | 未入選 |
原文
相關報導
llama.cpp 的 Metal 後端新增融合 top-k mask 運算元
llama.cpp 建置 b11927 為 Metal 後端補上融合 top-k mask 運算元(GGML_OP_TOP_K_MASK),移植自 CUDA 後端已有實現。新核心先以 grid-stride 方式把輸出填為 -inf,再由每行一個 threadgroup 將保留單元的 mask 值覆蓋上去;並用函式常量裁掉特定計算圖用不到的 score、blocks 與額外分支,同時清理了核心格式。
llama.cpp b11800 新增 QSA mask 融合運算元,並將 k-pool mask 推廣為通用實現
llama.cpp b11800 為 QSA 新增融合運算元,並將原本只服務 qwen4exp 與 glm5-next 池化選擇的 k-pool mask 推廣為通用 ggml_top_k_mask,DSA 模型與 DeepSeek V4 CSA 也改用該運算元。它保留 top-k 選中與額外保留的 mask 單元、其餘置為 -inf,可按 head 逐行選擇,後端不支援時回退原路徑。
llama.cpp 為 OpenCL 後端新增 topk_mask 運算元
llama.cpp 建置 b12052 在 OpenCL 後端加入 topk_mask 運算元支援(#31441)。同批發布各平台預編譯包:macOS/iOS(Apple Silicon、Intel)、Linux 與 Windows 的 CPU、Vulkan、CUDA 12/13、ROCm 10.0、OpenVINO、SYCL 版本,以及 Android arm64、Windows arm64 的 OpenCL Adreno 和驍龍 CPU、Adreno GPU、Hexagon…
llama.cpp 為 Hexagon NPU 重寫 TOP_K 取樣
llama.cpp 建置 b12094 重寫了 Hexagon 後端的 TOP_K 取樣:先跳過最大值夠不到當前第 k 名的 tile,再用 top_k_scan() 以一次 HVX max-reduce 剔除 256 個 float 的塊,只把存活元素插入 k 項有序表,取代原先的整塊雙調排序。該路徑覆蓋 k 在 2 到 64、行寬超過 1024 的情形,單行與多行均生效;並列時保留首次出現的索引,NaN 按 -INF 處理。同一提交還去掉了 vtcm 上的標量讀取。
llama.cpp CUDA 重做 top-k 選擇:大行數改用 radix
llama.cpp 的 CUDA 後端重做 top-k 演算法選擇,大行數場景改用按行網格的 radix select 替代 CUB 逐行 DeviceTopKKernel,在 qwen4exp 34,816 tokens 上啟動次數從 1,671,253 次降到 2,329 次,耗時從 5,761.8 ms 降到 941.8 ms。