AISpot

llama.cpp 的 Hexagon 後端新增 LIGHTNING_INDEXER 運算元支援

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

llama.cpp 為 Hexagon(高通 NPU)後端加入 LIGHTNING_INDEXER 運算元的初始支援:prefill 走流水線化的 HMX 路徑,decode 採用 q8_0 gather transpose 加雙塊計算。隨後的提交補齊 K 的 f32 與 q4_0 支援,移除 HMX q4_0 K 預處理中的標量 VTCM 讀取與向量溢位,並統一 kparams 對齊、支援維度摺疊。

原標題:b12099
閱讀原文

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

原文

hexagon: add LIGHTNING_INDEXER support ( #31289 ) hexagon: initial support for LIGHTNING_INDEXER op hex-lght-idxr: hmx for prefill hex-lght-idxr: q8_0 decode gather transpose, two-block decode compute hex-lght-idxr: pipelined hmx path for decode and prefill hex-lid: add support for K (f32) hex-lid: add support for K (f32) hex-lid: add support for q4_0 hex-lid: remove scalar VTCM reads in the HMX q4_0 K prep and remove vector spills hex-lid: host/kernel kparams alighnment and remove sw devices in kernel hex-lit: update dma pipeline to use canonical dbl buffering in all paths hex-lit: add GGML_HEXAGON_LI_SELECT to force hmx/hvx paths hex-lit: add support for dims collapse hex-lit: make kparams constistent with other ops Co-authored-by: Max Krasnyansky [email protected] Website: https://llama.app Attestations: https://github.com/ggml-org/llama.cpp/attestations/63443132 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 評分56

llama.cpp 為 Hexagon NPU 加入 Q1_0 與 Q2_0 量化支援

llama.cpp 建置 b11716 為高通 Hexagon NPU 新增 Q1_0、Q2_0 兩種低位元量化的支援,其中 Q1_0 權重已可在 2D HMX MUL_MAT 路徑中啟用。同一批提交還改寫了分塊(tiling)實現、去掉迴圈內除法、最佳化 Q1_0 佈局以降低解包與 vrmpy 開銷,並修正 MUL_MAT_NX 對正方形分塊的假設,因為 Q1/Q2 使用非正方形分塊。

llama.cpp releasesAI 評分45

llama.cpp Hexagon 後端為二進位制運算元擴充套件標量 DMA 廣播支援

llama.cpp 發布 b11580 建置,Hexagon 後端為二進位制運算元擴充套件了標量 DMA 廣播支援,並刪除全部非 DMA 路徑,同時新增對非連續 stride 的處理。REPEAT 與 COMPLEX 核心這次也改用 DMA,hex-add-id 為 src2 索引加法補上 DMA;hex-geglu-erf 新增僅 F32 的門控,該運算元不支援 F16。

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 為 Hexagon NPU 新增 conv2d 支援

llama.cpp 建置 b11970 為高通 Hexagon NPU 後端加入 conv2d 與深度卷積(CONV_2D_DW)運算元支援,並更新 softmax 門控以啟用 mmproj 多模態投影。改動採用隱式 GEMM、雙緩衝 DMA 暫存與流水線重構,移除了標量和 HVX 分塊路徑,並在存入 f16 前對 HMX 結果縮放以避免溢位。

llama.cpp releasesAI 評分45

llama.cpp 修復 Hexagon IM2COL DMA 環形佇列溢位

llama.cpp 建置 b11516 修復了 Hexagon NPU 上 IM2COL patch-embed 的 DMA 環形佇列溢位問題:當 IC*KH 超過 255 時,每執行緒 256 項的 DMA 環寫滿後新描述符被靜默丟棄,導致 VTCM 暫存緩衝的剩餘行未寫入,陳舊資料(常為 NaN/inf)汙染輸出。修復方式是在環滿時淘汰最舊描述符並呼叫 dma_queue_flush() 等待,與同檔案 blocked kernel 的做法一致。