A conversion is described by the configuration model below. Write settings in a YAML file passed to --path; every setting except result_views and the reserved settings also has a CLI flag, such as --model.path. A structured setting, such as --operators, --transforms, --memory.tensors, --memory.constraints or --test.state-feedback, takes JSON on the command line, one value per list entry; YAML is easier to read and review for those. Explicit CLI values override matching YAML settings; see the configuration guide for precedence and validation.
The tables are generated from the configuration model. Use the configuration guide for complete examples, precedence and rule matching.
Output path for the generated module. Use a directory for an unpacked module, a ‘.zip’ suffix for a generic zip archive, or a ‘.pack’ suffix for an Open-CMSIS-Pack archive (requires module.type=cmsis_pack).
module.type
ModuleType
cmake
one of zephyr, cmake, nsx, cmsis_pack
--module.type
Module type: cmake, zephyr, nsx or cmsis_pack. cmsis_pack is experimental.
module.name
str
helia_aot_nn
pattern ^[A-Za-z_][A-Za-z0-9_-]*$
--module.name
Module name
module.prefix
str
aot
pattern ^[A-Za-z_][A-Za-z0-9_]*$
--module.prefix
Prefix added to sources for unique namespace
module.schedule
ScheduleMode
table
one of table, static
--module.schedule
Operator dispatch shape in the generated model: ‘table’ (default) keeps the runtime function-pointer table and per-node callback seam; ‘static’ emits straight-line direct calls (no table, no loop, no indirect dispatch).
If true, the module will use internal, statically allocated arenas. If false, the caller must bind every region via <prefix>_bind_arena() / <prefix>_bind_arenas() before model_init.
If true, write a machine-readable residency report (<prefix>_residency.json) alongside the emitted module. Mirrors the verbose log summary as JSON for tooling that needs to introspect arena layout, staged-vs-cold residency, and per-tensor placement post-planning.
one of mram, sram, dtcm, itcm, dram, psram; required
configuration file only
Memory type (e.g., DTCM, ITCM)
memory.constraints[].max_size
int
—
—
configuration file only
Maximum size in bytes, or None for no limit
memory.constraints[].arena_alignment
int
—
—
configuration file only
Optional per-arena alignment floor in bytes. When set, applied to both the arena base symbol and every slot. When None, only the 16-byte implementation floor applies to the base; per-slot alignment is driven by platform / dtype / tensor hints.
Allow auto knob values that change numerics relative to the knob’s default (e.g. fast accumulation)
optimization.accumulation
Accumulation
auto
one of auto, precise, fast
--optimization.accumulation
FP16 fully connected and depthwise accumulation: precise (four-tap FP32 folding on eligible packed fully connected layers, otherwise standard; the default depthwise entry), fast (legacy fully connected routing; the FP16-lane depthwise entry; approximate where alternatives apply) or auto; FP16 convolution packs at every setting
optimization.kernel
KernelChoice
auto
one of auto, specialized, generic
--optimization.kernel
Int8 convolution, depthwise, fully connected and bilinear resize entry: specialized (shape-specialized ns-cmsis-nn direct entries where they apply), generic (the general entries, fewer kernels linked) or auto; both are exact
optimization.budget
dict[str, float]
—
—
configuration file only
Reserved: not implemented yet. Constraints for the optimizer, e.g. accuracy_drop or tcm_bytes
optimization.plan
Path
—
—
configuration file only
Reserved: not implemented yet. Path to a resolved optimization plan to reproduce