cc1bbd0ab7
Move the GEMM + allreduce sweep/render logic out of scripts/ and tests/
into two self-contained eval benches so a user can regenerate every
result + figure with one command:
kernbench run --bench milestone-1h-gemm (MILESTONE_FAST=1 reuses JSON)
kernbench run --bench milestone-1h-ccl
- benches/milestone_1h_{gemm,ccl}.py: single home for each domain; the
run(torch) entry drives the sweeps and writes figures into
benches/1H_milestone_output/{gemm,ccl}/ (gitignored), then submits a
sentinel tensor to satisfy the run_bench contract.
- tests/gemm + tests/sccl helpers and scripts/gemm_sweep.py become thin
re-export/wrapper shims over the benches (single source preserved); the
pytest-only param builders + _run_distributed wrapper stay in the shim.
- eval-bench pattern: a bench may drive many configs + build its own
per-config engines (extends ADR-0045 D5; reverses ADR-0044 D1/D2).
ADR-0054 (EN+KO) records the design; ADR-0043/0044/0045 + CLAUDE.md CLI
Semantics amended; ADR INDEX regenerated. Verified: milestone benches run
clean (ok=True, all artifacts), full suite 67 passed, lang-pairs OK.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
23 lines
645 B
Python
23 lines
645 B
Python
"""Sweep GEMM shapes through kernbench and dump PE_accelerator engine times.
|
|
|
|
Thin wrapper: the sweep logic now lives in
|
|
``kernbench.benches.milestone_1h_gemm`` (the single home, ADR-0054, also the
|
|
``milestone-1h-gemm`` bench). This script remains the manual entry point for
|
|
regenerating ``docs/diagrams/gemm_sweep.json`` on demand and honors the same
|
|
``SWEEP_SHAPES`` / ``SWEEP_TOPOLOGY`` env overrides.
|
|
|
|
python scripts/gemm_sweep.py
|
|
"""
|
|
from __future__ import annotations
|
|
|
|
from kernbench.benches.milestone_1h_gemm import run_sweep
|
|
|
|
|
|
def main() -> int:
|
|
run_sweep()
|
|
return 0
|
|
|
|
|
|
if __name__ == "__main__":
|
|
raise SystemExit(main())
|