github ggml-org/llama.cpp b11680

pre-release54 minutes ago
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:

Linux:

Android:

Windows:

openEuler:

  • DISABLED
  • openEuler x86 (310p)
  • openEuler x86 (910b, ACL Graph)
  • openEuler aarch64 (310p)
  • openEuler aarch64 (910b, ACL Graph)

UI:

Don't miss a new llama.cpp release

NewReleases is sending notifications on new releases.