pub struct Candidate {
pub id: String,
pub config: String,
pub ptx: String,
pub unsafe_candidate: bool,
pub grid: [u32; 3],
pub block: [u32; 3],
pub args: Vec<ArgSpec>,
pub warmup: u32,
pub repeats: u32,
}Expand description
One configuration, ready to launch: everything the runner needs and nothing it has to recompute.
A plan is deliberately self-contained. The runner takes a plan and a directory of PTX and needs neither the kernel source, nor cuda-oxide, nor reconverge — which is what lets the measurement leg run on a GPU box that has none of them installed.
Fields§
§id: StringIts canonical config.v1 ID, matching verdicts.v1.
config: StringIts dimension assignments, e.g. block_x=128 tile=256.
ptx: StringPTX file path, relative to the plan file.
unsafe_candidate: boolTrue for a gate-refused candidate measured under –allow-unsafe: the runner guards it with a watchdog, because the refusal means it may genuinely hang.
grid: [u32; 3]Grid dimensions [x, y, z], resolved from the [bench]
expressions for this configuration.
block: [u32; 3]Block dimensions [x, y, z] — the launch shape the gate judged.
args: Vec<ArgSpec>Kernel arguments in PTX parameter order.
warmup: u32Untimed launches before measurement, to settle clocks and caches.
repeats: u32Timed launches. Each contributes one sample to the summary.