5f8dd688f5
Documents src/kernbench/benches/: how @bench registration + audit work, how the CLI dispatches via run_bench/RuntimeContext, and the contract a new bench module must satisfy. Nine decisions (D1-D9) cover: - @bench name/description rules and duplicate detection - Module-file convention (_-prefixed helpers vs bench modules) - def run(torch) signature; torch = RuntimeContext - Minimum-one-submit rule (else NO_REQUESTS) - Single-device convention + multi-SIP CCL exception (ADR-0024/0027) - resolve() name/index decision tree; indices are not a stable API - Exact RuntimeContext surface exposed to benches - Env-var parameterization (matmul_composite / gemm_sweep.py pattern) Four alternatives rejected with documented reasons (manifest YAML, decorator entry= arg, @multi_device_bench split, stable indices). Verifier (tools/verify_adr_lang_pairs.py) passes for EN/KO pair. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>