llama.cpp 為 Hexagon NPU 多核 flash attention 加入 KV 頭拆分
llama.cpp 新建置 b11868 給驍龍 Hexagon NPU 的多核 HMX flash attention 加入了 KV 頭分組拆分,並把原來的 FA_HEAD_SPLIT 與 FA_SPLIT 兩套開關合併為單一開關 GGML_HEXAGON_FA_SPLIT。設為 0 時只做 token 拆分;
原標題:b11868
閱讀原文
| 評分 | 47 / 45(平均 46,門檻 60) |
| 狀態 | 未入選 |
|---|
原文
hexagon: KV-head team split for multicore HMX flash attention ( #31055 )
hexagon: KV-head team split for HMX flash attention in multicore
hexagon: merge FA_HEAD_SPLIT and FA_SPLIT into single GGML_HEXAGON_FA_SPLIT flag
0 = off (token-split only); 1 = head-split, plus team-split when
n_kv_heads < N_cores so stranded cores still participate (e.g. gemma-4
with 2 KV heads on 4 cores). Where heads divide evenly across cores,
plain head-split is used.
Website:
https://llama.app
Attestations:
https://github.com/ggml-org/llama.cpp/attestations/59473086
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 releases● 精選AI 評分68
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 releasesAI 評分42
llama.cpp 發布 b11722,Hexagon 後端新增多流 flash attention(multistream FA)支援,驍龍平台的 Hexagon NPU 推理可用上這一加速路徑。
llama.cpp releases● 精選AI 評分68
llama.cpp 合併 PR #29570,在 Metal 後端為 F16 KV 快取加入基於張量 API 的 flash attention 核心。該核心覆蓋 DK=DV=512、DK=576/DV=512、DK=192/DV=128 等配置,並支援 attention sinks、ALiBi 與 logit softcap。改動隨 b11362 建置發布,覆蓋 macOS Apple Silicon、iOS 及 Linux、Windows、Android 等多平台建置。
llama.cpp releasesAI 評分40
llama.cpp 新建置 b11696 修正了 Hexagon NPU 上 HMX 核心的 flash attention sink 計算,並把 sinks 做了向量化,提交由高通工程師 Max Krasnyansky 參與。該版本照例給出 macOS/iOS、Linux、Windows、Android、openEuler 的預編譯包,涵蓋 CPU、CUDA 12/13、Vulkan、ROCm 10.0、OpenVINO、SYCL 等後端;
llama.cpp releasesAI 評分45
llama.cpp 發布 b11723 建置,Hexagon NPU 後端的 FLASH_ATTN_EXT 得到改進,可支援更長上下文與滑動視窗注意力(SWA)模型(#30731)。同一批改動還包括掩碼塊跳過以減少 DMA 取數、微調 hmx→hvx 切換閾值以提升 gemma-4 表現,以及讓 hmx 門控計入 mdev.count。