Skip to content
heliaPROFILER
Reference
HELIA

hpx validate

Run hardware-in-the-loop validation suite (MLPerf Tiny models)

function

Run hardware-in-the-loop validation suite (MLPerf Tiny models)

src/helia_profiler/cli/validation_app.py:85

hpx validate [OPTIONS]
hpx validate options
OptionTypeDefaultDescription
--modelsstrComma-separated model IDs (default: all). See hpx validate --list.
--models-fileOptional[Path]YAML registry of custom validation models and comparison groups.
--model-pathsstrComma-separated .tflite paths for an ad hoc comparison.
--comparison-groupstrcustomShared decision group for models supplied through --model-paths.
--model-arena-sizeint524288Arena size in bytes for models supplied through --model-paths.
--enginesstrComma-separated engines: rt,aot,tflm,et,executorch,helia-rt,helia-aot (default: all).
--executorch-backendsstrbothExecuTorch CMSIS-NN providers: arm, ns, or both (default: both). TFLM always uses ARM CMSIS-NN; heliaRT and heliaAOT always use ns-cmsis-nn.
--ns-cmsis-nn-refstrExact ns-cmsis-nn commit/ref used by heliaRT, heliaAOT, and ExecuTorch/ns.
--powerboth | on | offoffPower matrix: off (default) | on (only Joulescope runs) | both.
--power-boardsstrComma-separated boards allowed to use power capture (default: all selected boards).
--boardsstrComma-separated board IDs (default: apollo510_evb).
--toolchainsstrComma-separated toolchains: gcc,armclang/acfe,atfe (default: board defaults).
--interfacesstrComma-separated interfaces/transports: rtt,uart,swo,usb_cdc (default: board defaults).
--memoriesstrComma-separated model placement presets: auto,tcm,sram,mram,psram (default: board defaults).
--suitesmoke | models-rt | models-aot | completePreset suite. 'smoke' defaults unset axes to models=kws, engines=helia-rt, toolchains=arm-none-eabi-gcc, interfaces=rtt, memories=auto. 'models-rt' and 'models-aot' default unset axes to all MLPerf Tiny models, Apollo510 + Apollo330mP, gcc + atfe, rtt, auto memory, and the selected engine. 'complete' runs the same axes for helia-rt, helia-aot, TFLM/CMSIS-NN, and both ExecuTorch CMSIS-NN providers. Explicit axis flags always win.
--jlink-serialsstrComma-separated board=serial entries for multi-board validation.
--power-serialsstrComma-separated board=Joulescope-serial entries for powered multi-board validation.
--power-gpiosstrComma-separated board=gate:state:go entries for powered boards without default sync wiring.
--repeatint1Repeat each selected case N times for stress testing (default: 1).
--output-dirPathresults/validationWhere to write per-case artifacts + summary report (default: ./results/validation).
--timeoutfloat900Per-case timeout in seconds (default: 900).
-k, -kstrPytest keyword expression — filter cases by substring match (e.g. 'kws-aot').
--junit-xmlOptional[Path]Emit JUnit-XML report at this path (for CI consumption).
--listboolfalseList matching cases and exit without running.
--verbose, -vint0
hpx validate examples
Hardware validation — runs canonical MLPerf Tiny models end-to-end
against a real EVB + J-Link (and optional Joulescope).
Examples:
hpx validate # Apollo510 reliability matrix, power off
hpx validate --list # preview what would run
hpx validate --models kws,ic # subset by model
hpx validate --engines aot # subset by engine
hpx validate --power off # skip Joulescope (default)
hpx validate --boards apollo3p_evb --repeat 2 --power off
# require two passing iterations per case
hpx validate -k kws-aot # pytest keyword filter
hpx validate --suite smoke # quick preset: kws / helia-rt / gcc / rtt / auto
hpx validate --suite models-rt # 16-case RT sweep: 2 boards x 4 models x 2 toolchains
hpx validate --suite models-aot # 16-case AOT sweep: 2 boards x 4 models x 2 toolchains
hpx validate --suite complete # RT + AOT + TFLM + ExecuTorch sweep

Machine-readable: cli.json · validate.md, complete and lossless.