AISpot

llama.cpp 為 Hexagon NPU 重寫 TOP_K 取樣

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

llama.cpp 建置 b12094 重寫了 Hexagon 後端的 TOP_K 取樣:先跳過最大值夠不到當前第 k 名的 tile,再用 top_k_scan() 以一次 HVX max-reduce 剔除 256 個 float 的塊,只把存活元素插入 k 項有序表,取代原先的整塊雙調排序。該路徑覆蓋 k 在 2 到 64、行寬超過 1024 的情形,單行與多行均生效;並列時保留首次出現的索引,NaN 按 -INF 處理。同一提交還去掉了 vtcm 上的標量讀取。

原標題:b12094
閱讀原文

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

原文

hexagon: faster TOP_K for the backend sampler ( #31279 ) hexagon: faster TOP_K for the backend sampler (skip tiles, then block scan) Skip the bitonic sort for tiles whose max cannot reach the running k-th best value, then replace the tile sort with top_k_scan(): reject 256-float blocks with one HVX max-reduce and insert only surviving elements into a sorted k-entry list. Used for k in 2..64 and rows wider than 1024, in both the single-row and multi-row paths. Ties keep the first-seen index. NaN is treated as -INF. hex-top-k: eliminate scalar reads from vtcm Co-authored-by: Max Krasnyansky [email protected] Website: https://llama.app Attestations: https://github.com/ggml-org/llama.cpp/attestations/63400302 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 26.04 s390x (CPU) Ubuntu 26.04 s390x (zDNN) 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 評分41

llama.cpp 為 Hexagon NPU 增加 VTCM 大小可覆蓋引數

llama.cpp 建置 b11913 把 Hexagon 後端的 VTCM 上限改為可通過 GGML_HEXAGON_VTCM_SIZE 覆蓋,並支援 K/M/G 單位字尾,同時移除了原先的 NTHREADS 上限項。該引數面向驍龍 Hexagon NPU 的本地推理,可按裝置實際 VTCM 容量調整。同批建置仍覆蓋 macOS、Linux、Windows、Android 上的 CPU、Vulkan、CUDA、ROCm、SYCL 等後端。

llama.cpp releasesAI 評分49

llama.cpp 為 Hexagon 重排加上 NEON 向量化與多執行緒

llama.cpp 建置 b11790 為 Hexagon NPU 的權重重排(repack/tiling)加入 NEON 向量化與多執行緒支援:先實現 q4_0 的向量化 repack,再擴充套件到 q1/q2/f16 等型別,並補上簡單的分塊與執行緒化。改動由高通工程師參與提交,Hexagon 後端僅用於 Snapdragon 平台的 CPU、Adreno GPU、Hexagon NPU 建置;同批建置仍覆蓋 macOS、Linux、Windows、Android 各後端。