pub fn run_required(
op: &dyn OpUnderTest,
backend: RequiredBackend,
seed: u64,
tolerance: f64,
) -> RequiredReportExpand 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 }