]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commit
hexagon: general DMA and Binary Op fixes for large strides (#20918)
authorMax Krasnyansky <redacted>
Mon, 23 Mar 2026 22:33:49 +0000 (15:33 -0700)
committerGitHub <redacted>
Mon, 23 Mar 2026 22:33:49 +0000 (15:33 -0700)
commit7cadbfce10fc16032cfb576ca4607cd2dd183bf1
tree00a15de1e061fb26d328712dd5716b558d97a1fa
parent1fb2290a51f04cc79e7b162713e13ccf351f9de3
hexagon: general DMA and Binary Op fixes for large strides (#20918)

* hex-dma: make chained dma the default to handle newer models

This also includes some new instrumentation that we can remove later.

* hexagon: add uint32 dump helper

* hexagon: use single-page VTCM allocation to avoid issues with large gather ops in ssm-conv

ssm-conv uses HVX gather instruction and that instruction cannot handle cases where the base+offset
spans page boundaries.

* hexagon: update ssm-conv to make base-addr compute a bit easier to read

* hex-dma: use 1d mode for reshaping, it supports sizes up to 24-bits (>16MB)

* hex-bin: fix incorrect stride logic

* hexagon: make sure repack buffs are dumped for verbose > 2

* hex-bin: consistently use dma_queue_push even for dummy dst transactions

* hex-dma: start using 2d-wide mode on v75 and up

The removes the need to deal with the 16-bit limitaion for the strides.

* hex-bin: cleanup kernel selection logic

* hex-bin: cleanup binary op core and fix transposed tensor handling

* snapdragon: update run-bench to use larger ubatch and fa-on
ggml/src/ggml-hexagon/ggml-hexagon.cpp
ggml/src/ggml-hexagon/htp/binary-ops.c
ggml/src/ggml-hexagon/htp/hex-dma.c
ggml/src/ggml-hexagon/htp/hex-dma.h
ggml/src/ggml-hexagon/htp/hex-dump.h
ggml/src/ggml-hexagon/htp/hmx-matmul-ops.c
ggml/src/ggml-hexagon/htp/hvx-utils.h
ggml/src/ggml-hexagon/htp/main.c
ggml/src/ggml-hexagon/htp/ssm-conv.c
scripts/snapdragon/adb/run-bench.sh