]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commit
hexagon: add support for basic and extended Op profiling (#22269)
authorMax Krasnyansky <redacted>
Thu, 23 Apr 2026 21:17:21 +0000 (14:17 -0700)
committerGitHub <redacted>
Thu, 23 Apr 2026 21:17:21 +0000 (14:17 -0700)
commit5d2b52d80d9f375a6e81d07e212d047d8ee4f76e
tree020d80f205d4c4b50b09dfe3fb41c83a6197c9ad
parent187a45637054881ecacf17f8e2f6f8f2ba7df1c7
hexagon: add support for basic and extended Op profiling  (#22269)

* hexagon: restore HTP_OPMASK_QUEUE

* hexagon: honor OPMASK_SKIP_COMPUTE in hmx-matmul

* hex-prof: restore op profiling

* hex-prof: enable PMU

* hexagon: simplify and improve op-queuing with full profiling support

Add separate profile descriptors.

* hexagon: remove opsync and rename opmask into opstage

opsync is no longer needed since the profiler is fully async now.
opmask name was confusing and opstage is more accurate.

* hexagon: refactor opbatch queue handling

* hexagon: add iface hooks for enabling profiler from the host

Also move all the PMU setup stuff out of the hex-utils since it's not inteded for normal use.

* hexagon: make profiler mode configurable

On older devices getting PMU counters is expensive so it's now optional.

* hexagon: add support for setting profiler pmu events from env

* hexagon: simplify profiler output (no need to print buffs, etc)

* hexagon: simplify pmu counter formating

* hexagon: add a simple profile post-proc tool

* hex-prof: add support for reading logs from stdin

* hexagon: document GGML_HEXAGON_PROFILE

* hex-prof: update default width for dims field

* hex-prof: fix linter warnings and errors

* Update ggml/src/ggml-hexagon/htp/htp-ops.h

Co-authored-by: Sigbjørn Skjæret <redacted>
* Update scripts/snapdragon/ggml-hexagon-profile.py

Co-authored-by: Sigbjørn Skjæret <redacted>
---------

Co-authored-by: Trivikram Reddy <redacted>
Co-authored-by: Sigbjørn Skjæret <redacted>
19 files changed:
docs/backend/snapdragon/README.md
ggml/src/ggml-hexagon/ggml-hexagon.cpp
ggml/src/ggml-hexagon/htp/hex-utils.h
ggml/src/ggml-hexagon/htp/htp-ctx.h
ggml/src/ggml-hexagon/htp/htp-ops.h
ggml/src/ggml-hexagon/htp/htp_iface.idl
ggml/src/ggml-hexagon/htp/main.c
ggml/src/ggml-hexagon/htp/matmul-ops.c
scripts/snapdragon/adb/run-bench.sh
scripts/snapdragon/adb/run-cli.sh
scripts/snapdragon/adb/run-completion.sh
scripts/snapdragon/adb/run-mtmd.sh
scripts/snapdragon/adb/run-tool.sh
scripts/snapdragon/ggml-hexagon-profile.py [new file with mode: 0755]
scripts/snapdragon/windows/run-bench.ps1
scripts/snapdragon/windows/run-cli.ps1
scripts/snapdragon/windows/run-completion.ps1
scripts/snapdragon/windows/run-mtmd.ps1
scripts/snapdragon/windows/run-tool.ps1