AISpot
所屬事件:llama.cpp Hexagon 後端新增分塊量化 GET_ROWS 並重構重打包(1 個來源 · 2 則報導)

llama.cpp 在 10 月連續發布兩個建置,推進驍龍 Hexagon NPU 後端對量化權重的支援。10 月 8 日的 b11487 為 Hexagon 後端加入分塊(tiled)Q4_K 與 Q6_K 的 GET_ROWS,使 Hexagon NPU 能對這兩種量化格式執行嵌入查表,同一提交還修正了 Q4_K… 看完整事件

llama.cpp b11680:Hexagon 後端重構張量重打包,支援分塊量化與 FP 權重

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

llama.cpp 發布建置 b11680,Hexagon NPU 後端完成張量重打包(repacking/tiling)重構:新增對分塊與扁平量化權重、以及 F16/F32/BF16 二維權重的重打包支援,分塊 Q5_K 與原始 k-quant 張量可用 GET_ROWS。該版本移除了 need_repack hack,並清理 matmul、反量化 ukernel、張量介面與 L2/dcache 重新整理邏輯,最佳化小 src1 的 get-rows 效能。

原標題:b11680
閱讀原文

同一事件共有 2 則報導(1 個來源),看事件全貌

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

原文

hexagon: tensor repacking rework and support for tiled and flat quantized and fp weights ( #30635 ) hex-repack: Remove need_repack hack and streamline the rules -- breaks GET_ROWS tests for K-Quants, will fix in the next round Add support for GET_ROWS with tiled Q5_K Add support for raw k-quant tensors hex-get-rows: vectorize raw k-quant ukernels hex-binary: refactor dma-loop thread functions (no need for macros, etc) hex-quant: move/cleanup flat and tiled dequant ukernels hex-repack: add support for repacking/tiling F16/F32/BF16 2D weights hex-get-rows: remove redundant cast hex-repack: proper filtering for BF16 that were leaking through during the tests hex-repack: streamling tiling rules (broken MM for now) hex-repack: fix mmid after tiling updates hex-repack: rename repacked to tiled in all flags/funcs/kernels/vars hex-mm: fix valid_rows calc in various kernels hex-mm: remove unused hvx_mm_nx_2d_flat hex-mm: cleanup and optimize hvx-tiled vec_dot_f16 hex-mm: another pass at hvx-tiled f16 matmul hex-get-rows: optimize small src1 hex-get-rows: one more pass at recovering get-rows perf regression hex-repack: export GGML_HEXAGON_RT_REPACK via run.py hex-mm-tiled: fix accuracy regression with hmx-tiled-f16 matmul hex-mm: fold tiled_f16 checks into the general flow hex-get-rows: remove dead checks for buffer_is_hexagon and tiling during supports_op hex-quant: proper tail handling in new dequant ukernels hex-get-rows: remove unused code and cleanup support checks hex-mm: cleanup ne1 padding/tiling checks hex-mm: cleanup fusion checks for tiled tensors hex-repack: add a little can_repack helper to reduce duplication hex-repack: never repack host buffers hex-repack: factor out repack functions into separate .h and .cpp hex-tensor: cleanup tensor ifaces for tiled/padded sizes hex-repack: update k-quant tiling comments and cleanup #defines hex-dcache: factor out l2/dcache dirty tracking and flushing hex-tensor: update docs and remove #defs duplication hex-tensor: remove unused/incorrect get_data interface hex-get-rows: cleanup vtcm layout build tests: disable huge MM tests hex-dcache: add missing header Website: https://llama.app Attestations: https://github.com/ggml-org/llama.cpp/attestations/56541220 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 評分45

llama.cpp b11489 加速 Hexagon NPU 的 Q6_K 權重反量化

llama.cpp 發布 b11489,為 Hexagon NPU 的 Q6_K 權重反量化帶來加速,做法是再增加 2 倍迴圈展開,改動由 OpenCode 協助完成。該版本繼續提供 macOS/iOS、Linux、Android、Windows 多平台預編譯包,Snapdragon 版本可分別使用 CPU、Adreno GPU 與 Hexagon NPU,Windows arm64 另有 OpenCL Adreno 建置;

llama.cpp releasesAI 評分43

llama.cpp 為 Hexagon NPU 增加 q2_k 與 q3_k 量化支援

llama.cpp 合併 PR #29717,為 Hexagon 後端新增 q2_k 和 q3_k 兩種量化型別支援,並統一了 src1_row_size 的分配方式。該改動由高通工程師 Max Krasnyansky 參與提交,面向在驍龍 Hexagon NPU 上執行本地推理的使用者,相關建置覆蓋 Linux arm64 與 Android arm64 的 Snapdragon CPU、Adreno GPU、Hexagon NPU 組合。

llama.cpp releasesAI 評分48

llama.cpp b11433 為 Hexagon NPU 加入池化運算元支援

llama.cpp 新建置 b11433 在高通 Hexagon NPU 後端加入 pool 運算元支援,包含 pool_1d 與 pool_2d。同一批提交重寫了 DMA 流水線、加入池化分塊(pool chunking)、移除並向量化全部標量路徑,並最佳化 HTP 池化邊界、簡化分塊求解器與清理冗餘檢查。

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 releases● 精選AI 評分68

llama.cpp Hexagon 的 flash_attn 改為按 KV 頭切分

llama.cpp 的 Hexagon 後端在 row-split 多核模式下把 flash_attn 從按 Q token 切分改為按 KV head 切分,讓每個核心只讀自己負責的那部分 KV cache,不再重複讀取全部 KV cache。該行為由 GGML_HEXAGON_FA_HEAD_SPLIT 控制,預設開啟;當 n_kv_heads 不能被核心數整除時回退到原 token-block 切分(如 4 核上只有 2 個 KV head 的 Gemma-4)。