Details
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 sigbjorn.skjaeret@scala.com
- Update scripts/snapdragon/ggml-hexagon-profile.py
Co-authored-by: Sigbjørn Skjæret sigbjorn.skjaeret@scala.com
Co-authored-by: Trivikram Reddy tamarnat@qti.qualcomm.com
Co-authored-by: Sigbjørn Skjæret sigbjorn.skjaeret@scala.com
macOS/iOS:
- macOS Apple Silicon (arm64)
- macOS Apple Silicon (arm64, KleidiAI enabled)
- macOS Intel (x64)
- iOS XCFramework
Linux:
- Ubuntu x64 (CPU)
- Ubuntu arm64 (CPU)
- Ubuntu s390x (CPU)
- Ubuntu x64 (Vulkan)
- Ubuntu arm64 (Vulkan)
- Ubuntu x64 (ROCm 7.2)
- Ubuntu x64 (OpenVINO)
- Ubuntu x64 (SYCL FP32)
- Ubuntu x64 (SYCL FP16)
Android:
Windows:
- Windows x64 (CPU)
- Windows arm64 (CPU)
- Windows x64 (CUDA 12) - CUDA 12.4 DLLs
- Windows x64 (CUDA 13) - CUDA 13.1 DLLs
- Windows x64 (Vulkan)
- Windows x64 (SYCL)
- Windows x64 (HIP)
openEuler: