Skip to main content

reference_eval_with_dispatch

Function reference_eval_with_dispatch 

Source
pub fn reference_eval_with_dispatch(
    program: &Program,
    inputs: &[Value],
    min_dispatch_elements: u32,
) -> Result<Vec<Value>, Error>
Expand description

reference_eval with an explicit grid floor.

The reference interpreter infers its dispatch grid from buffer SHAPES, which cannot express the per-invocation count of a byte-scan program (the haystack is packed 4 bytes/u32 and the scan length is a runtime value). Pass the true grid, e.g. haystack_len for a one-lane-per-byte scan, so the interpreter covers exactly what the real dispatch config would; otherwise high positions are silently skipped (the CPU-ref oracle under-fires while the GPU is correct). min_dispatch_elements is a FLOOR: the interpreter still runs at least the buffer-inferred grid, so passing 0 is identical to reference_eval.

ยงErrors

Same as reference_eval.