schema
The optimization plan and report files, as typed models with JSON schemas.
<prefix>_plan.json is normative: the resolved choice of every knob for
every operator, what was requested and by which rule, the choices that are not
knobs yet, and the identity of the model and target the plan belongs to. It is
what an optimizer rewrites and what heliaAOT will reproduce.
<prefix>_report.json is non-normative: MACs, alternatives and whether they
apply, measurements, constant placement facts and the hints the results print.
Its content may change between releases, and a plan reader ignores it.
Versioning: both files carry schema_version. Adding an optional field, a
knob, a knob value or an enum member keeps the version; renaming or removing a
field, or changing what a field means, bumps it.
The models read a file the way that rule needs: they ignore a field they do
not know, keep a knob, knob value or member they do not know as the string
written, and reject only a schema_version other than their own. So a
release reads the files of every release that writes the same
schema_version, older or newer. Validating with context=THIS_RELEASE
checks a file as this release writes it instead: no unknown field, only the
knobs and values of the registry (KNOBS), only the listed members, one
measurement entry per setting, and the reserved slots empty. The converter
checks every file it writes that way. The exported JSON schemas state the same
rules, so they belong to the release that produced a file
(generator.helia_aot), and a consumer validates against that release’s
schema rather than pinning one across releases.
Some members and fields are reserved and never written today: plan as a
knob source, resolved_by and set_by (a choice taken from an input
plan), auto_heuristic as resolved_by (auto consulting the operator
or target rather than the goal table), model-level optimization.knobs and
per-tensor tensors.
Copyright 2025 Ambiq. All Rights Reserved.
Each symbol here has its own page: ConstantPlacement, Hint, KnobChoice, KnobSource, MeasurementRecord, ModuleKernelCall, ModuleKernelCalls, OptimizationPlan, OptimizationReport, PlanOperator, RuleRef.