Skip to main content

reference_eval_lane_reversed

Function reference_eval_lane_reversed 

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

Execute a program with the workgroup/invocation STEP ORDER reversed.

The result is identical to reference_eval for any RACE-FREE program (every output slot is written by exactly one lane, or shared slots are touched only by commutative atomics). It DIFFERS only when a non-atomic cross-lane write-write race exists, two lanes plain-store the same slot, because the GPU leaves the winner driver-defined while the single-threaded reference otherwise resolves it deterministically (last stepped lane wins). Comparing this against reference_eval therefore surfaces a hidden race the same way a real GPU would nondeterministically diverge.

ยงErrors

Same as reference_eval.