AISpot

llama.cpp b11560 為 Hexagon NPU 新增 IM2COL_3D 支援

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

llama.cpp 建置 b11560 為 Hexagon NPU 後端新增 IM2COL_3D 支援,並把 hex-im2col 核心重寫為規範的 DMA 雙緩衝流水線,去掉除法運算與低效的 fp16 轉換,同時將 kernel_params 與 VTCM 佈局預計算移到 host 側、支援非連續檢視。該系列提交由 OpenCode 輔助完成,共同作者為高通的 Max Krasnyansky。

原標題:b11560
閱讀原文

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

原文

hexagon: add IM2COL_3D ( #30305 ) hexagon: add IM2COL_3D support Assisted-by: OpenCode hexagon: add DMA paths for IM2COL_3D Assisted-by: OpenCode hexagon: avoid scalar fp16 conversions in IM2COL Assisted-by: OpenCode remove in-loop spills in pre-v81 devices Assisted-by: OpenCode hex-im2col: re-write to use canonical dma dbl-buff pipeline, remove divs and very inefficient fp conversions hex-im2col: move kernel_params and vtcm layout precompute into the host hex-im2col: remove explicit tracking of number of dma-pushes hex-im2col: remove incorrect uint64_t casts hex-im2col: no need for macros for dma loops and pass compute func ptr via local context hex-im2col: use cursor pattern, tracing and proper n_threads handling hex-im2col: support non-contigue views hex-im2col: minor reformatting Co-authored-by: Max Krasnyansky [email protected] Website: https://llama.app Attestations: https://github.com/ggml-org/llama.cpp/attestations/54919473 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 修復 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 的做法一致。

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 評分41

llama.cpp 為 Hexagon NPU 支援 Q4_K/Q6_K tiled GET_ROWS

llama.cpp 的 Hexagon 後端新增 tiled Q4_K 與 Q6_K 的 GET_ROWS 支援,使驍龍 Hexagon NPU 能對這兩種量化格式執行嵌入查表,同一提交還修正了 Q4_K 檢視的校驗邏輯。改動由 OpenCode 協助完成,已隨本次建置發布,覆蓋 Android arm64 與 Linux arm64 的 Snapdragon CPU、Adreno GPU、Hexagon NPU 組合包。

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 建置;