Skip to main content

Module execution

Module execution 

Source
Expand description

Canonical reference execution tree. Generic reference interpreter entry points.

The stable statement-IR reference_eval entry point remains delegated to the existing invocation simulator until Program stores graph nodes directly.

Modules§

expr
Expression evaluator that gives the parity engine a pure-Rust ground truth for every Expr variant.
node
Statement executor that gives the parity engine a pure-Rust ground truth for every Node variant.
op_count
Thread-local arithmetic-IR-op counting for roofline / complexity analysis. Thread-local counting of arithmetic IR operations executed by the reference interpreter, a backend-agnostic dynamic operation count for roofline / complexity analysis.
sequential
Sequential CPU execution model for workgroup parity.

Functions§

is_reference_output
The interpreter’s output ABI, single-homed: is_reference_output is the exact predicate reference_eval uses to collect the buffers it returns, and output_index locates a named output by that predicate. Re-exported so test harnesses never hand-roll (and drift from) the selection. True when reference_eval RETURNS this buffer among its outputs. This is the SINGLE source of truth for the interpreter’s output ABI: reference_eval collects exactly these decls, in Program::buffers order, into its result Vec. Test harnesses that need the position of a named output MUST use output_index (which filters by this predicate) rather than re-deriving the selection, a hand-rolled copy silently drifts (e.g. keying on is_pipeline_live_out alone admits ReadOnly live-outs the interpreter never returns, shifting every later index).
output_index
The interpreter’s output ABI, single-homed: is_reference_output is the exact predicate reference_eval uses to collect the buffers it returns, and output_index locates a named output by that predicate. Re-exported so test harnesses never hand-roll (and drift from) the selection. Position of the buffer name within reference_eval’s returned outputs, the buffers matching is_reference_output, in Program::buffers order, or None when the program declares no such returned output under that name.
reference_eval
Execute a vyre IR program on the pure Rust reference interpreter.
reference_eval_lane_reversed
Execute a program with the workgroup/invocation STEP ORDER reversed.
reference_eval_oob_report
reference_eval plus an OobReport of every out-of-bounds access the interpreter silently absorbed during the run.
reference_eval_with_dispatch
reference_eval with an explicit grid floor.
reference_eval_with_dispatch_oob_report
reference_eval_with_dispatch plus an OobReport.
run_arena_reference
Execute using the statement-IR reference evaluator.
run_arena_reference_with_dispatch
run_arena_reference with an explicit grid floor (see reference_eval_with_dispatch).
run_storage_graph
Interpret a compact NodeStorage graph and return output node values.