Skip to main content

run_required

Function run_required 

Source
pub fn run_required(
    op: &dyn OpUnderTest,
    backend: RequiredBackend,
    seed: u64,
    tolerance: f64,
) -> RequiredReport
Expand description

Run the CPU reference and exactly one requested backend. Uncompiled or unavailable backends return NotRun; failed probes, driver/dispatch panics, invalid outputs and excessive error return Failed. No fallback is a pass.

Examples found in repository?
examples/backend_numerics/config.rs (lines 134-143)
128    pub(super) fn execute(&self) -> RequiredReport {
129        match self.op {
130            Operation::MetalContext {
131                tokens,
132                intermediate,
133                k,
134            } => run_required(
135                &MetalContextOp {
136                    tokens,
137                    intermediate,
138                    k,
139                },
140                self.require_backend,
141                self.seed,
142                self.max_nmse,
143            ),
144            Operation::RmsNorm { tokens, dim, eps } => run_required(
145                &RmsNormOp { tokens, dim, eps },
146                self.require_backend,
147                self.seed,
148                self.max_nmse,
149            ),
150            Operation::Gemm { m, n, k } => run_required(
151                &GemmOp { m, n, k },
152                self.require_backend,
153                self.seed,
154                self.max_nmse,
155            ),
156            Operation::SiluMul {
157                tokens,
158                intermediate,
159            } => run_required(
160                &SiluMulOp {
161                    tokens,
162                    intermediate,
163                },
164                self.require_backend,
165                self.seed,
166                self.max_nmse,
167            ),
168        }
169    }