llama.cpp 為 Hexagon 後端加入可配置 HTP 功耗模式
llama.cpp 的 Hexagon 後端新增可配置的 HTP DCVS/HMX 功耗模式。該功能通過 run.py 的 --hex-power-mode 標誌暴露,對應環境變數 GGML_HEXAGON_POWER_MODE,沿用已有的 --hex-nhvx 模式。由於變數必須在程序接觸 Hexagon 後端登錄檔之前設定,官方沒有把它做成通用的 CLI 選項。同一 PR 還讓 HTP 在 DCVS 功耗配置下保持喚醒,並清理了註釋與日誌。
原標題:b11601
閱讀原文
| 評分 | 42 / 42(平均 42,門檻 60) |
|---|---|
| 狀態 | 未入選 |
原文
相關報導
llama.cpp 更新 Hexagon 後端,預設動態緩衝升至 512MB
llama.cpp b11490 把 Hexagon 後端的預設動態緩衝從 128MB 提升到 512MB,原因是 128MB 在大 MoE 模型上會導致效能退化。hex-bufs 新增 alloc_buffer_n 支援,並可將大張量拆分到獨立緩衝區;環境變數 GGML_HEXAGON_MBUF 改為接受 dyn、static、total 三個值。hex-run 還新增 --no-embd-offload 選項,用於簡化需要該設定的裝置上的命令列。
llama.cpp b11486 改進 Hexagon 後端 GELU 精度
llama.cpp 發布 b11486 建置,Hexagon 後端的 GELU 啟用函式精度得到改進(#30104)。該版本繼續為驍龍平台提供 Hexagon NPU、Adreno GPU 與 CPU 三類後端,覆蓋 Linux arm64、Android arm64 與 Windows arm64。
llama.cpp b11433 為 Hexagon NPU 加入池化運算元支援
llama.cpp 新建置 b11433 在高通 Hexagon NPU 後端加入 pool 運算元支援,包含 pool_1d 與 pool_2d。同一批提交重寫了 DMA 流水線、加入池化分塊(pool chunking)、移除並向量化全部標量路徑,並最佳化 HTP 池化邊界、簡化分塊求解器與清理冗餘檢查。
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)。
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 建置;