Details
hexagon: tensor repacking rework and support for tiled and flat quantized and fp weights (#30635)
- hex-repack: Remove need_repack hack and streamline the rules -- breaks GET_ROWS tests for K-Quants, will fix in the next round
Add support for GET_ROWS with tiled Q5_K
Add support for raw k-quant tensors
-
hex-get-rows: vectorize raw k-quant ukernels
-
hex-binary: refactor dma-loop thread functions (no need for macros, etc)
-
hex-quant: move/cleanup flat and tiled dequant ukernels
-
hex-repack: add support for repacking/tiling F16/F32/BF16 2D weights
-
hex-get-rows: remove redundant cast
-
hex-repack: proper filtering for BF16 that were leaking through during the tests
-
hex-repack: streamling tiling rules (broken MM for now)
-
hex-repack: fix mmid after tiling updates
-
hex-repack: rename repacked to tiled in all flags/funcs/kernels/vars
-
hex-mm: fix valid_rows calc in various kernels
-
hex-mm: remove unused hvx_mm_nx_2d_flat
-
hex-mm: cleanup and optimize hvx-tiled vec_dot_f16
-
hex-mm: another pass at hvx-tiled f16 matmul
-
hex-get-rows: optimize small src1
-
hex-get-rows: one more pass at recovering get-rows perf regression
-
hex-repack: export GGML_HEXAGON_RT_REPACK via run.py
-
hex-mm-tiled: fix accuracy regression with hmx-tiled-f16 matmul
-
hex-mm: fold tiled_f16 checks into the general flow
-
hex-get-rows: remove dead checks for buffer_is_hexagon and tiling during supports_op
-
hex-quant: proper tail handling in new dequant ukernels
-
hex-get-rows: remove unused code and cleanup support checks
-
hex-mm: cleanup ne1 padding/tiling checks
-
hex-mm: cleanup fusion checks for tiled tensors
-
hex-repack: add a little can_repack helper to reduce duplication
-
hex-repack: never repack host buffers
-
hex-repack: factor out repack functions into separate .h and .cpp
-
hex-tensor: cleanup tensor ifaces for tiled/padded sizes
-
hex-repack: update k-quant tiling comments and cleanup #defines
-
hex-dcache: factor out l2/dcache dirty tracking and flushing
-
hex-tensor: update docs and remove #defs duplication
-
hex-tensor: remove unused/incorrect get_data interface
-
hex-get-rows: cleanup vtcm layout build
-
tests: disable huge MM tests
-
hex-dcache: add missing header
Website:
Attestations:
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:
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: