From 821bbf26a237676129f6c79b6abf5684cf71ce6a Mon Sep 17 00:00:00 2001 From: Yangwook Kang Date: Wed, 17 Jun 2026 15:06:36 -0700 Subject: [PATCH] gemm(bench): composite-vs-async dispatch comparison harness + single-op-model sweep MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds the user-orchestrated async GEMM variants used in paper §3.4 to contrast with the composite (load_ref) path: - matmul-async : naive (tl.load full A+B, one tl.dot) - matmul-async-chunked : depth-inf prefetch (all B-tiles queued) - matmul-async-chunked-db : depth-2 double-buffer (TCM-bounded) plus scripts/paper/paper_plot_gemm_async_vs_composite.py (4-way per-PE TFLOPS sweep + figure) and the regenerated outputs under 1H_milestone_output/gemm/. Sweep regenerated under the ADR-0064 D8 single-op cost model (commit 2d8271c). At K=3072 the composite-vs-async-tiled gap narrows from the pre-D8 ~6.3x to ~2.8x (composite 7.18 / async-tiled 2.54 TFLOPS): D8 makes the async-tiled kernel's ~191 single-op dispatches 5x cheaper, so its dispatch overhead drops to ~1.5us. Qualitative order persists: composite > async-full (3.91) > async-tiled (2.54). test_bench_registry.py: register matmul-async / -chunked / -chunked-db (also picks up the earlier milestone-gqa-headline -> milestone-1h-gqa rename already present in the tree). --- Remaining work (resume here if interrupted) --- - Paper §3.4 (03-gemm.tex sec:gemm-vs-async): finish naive->async-full / chunked->async-tiled rename AND reframe "FIXED_DMA=8 for DMA descriptors" to single-op(8) vs composite(40). Figure already copied to docs/report/1H-codesign-paper/figures/gemm_composite_vs_async_tflops.png. - Paper §3.4 K=3072 para + mechanism #3: update dispatch breakdown to new model (191 single-op * 8c ~= 1.5us, was 4.6us) and headline gap ~6.3x -> ~2.8x. - Rebuild build/main.pdf (tectonic) + verify via pdftotext. - Then commit Group 3 (paper + diagrams + PDF). - Table 2 / §2 prose / ADR-0064 D8 already done in 2d8271c. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../paper_plot_gemm_async_vs_composite.py | 261 ++++++++++++++ .../gemm/gemm_composite_vs_async.json | 338 ++++++++++++++++++ .../gemm/gemm_composite_vs_async_tflops.png | Bin 0 -> 77198 bytes src/kernbench/benches/matmul_async.py | 57 +++ src/kernbench/benches/matmul_async_chunked.py | 90 +++++ .../benches/matmul_async_chunked_db.py | 110 ++++++ tests/test_bench_registry.py | 5 +- 7 files changed, 860 insertions(+), 1 deletion(-) create mode 100644 scripts/paper/paper_plot_gemm_async_vs_composite.py create mode 100644 src/kernbench/benches/1H_milestone_output/gemm/gemm_composite_vs_async.json create mode 100644 src/kernbench/benches/1H_milestone_output/gemm/gemm_composite_vs_async_tflops.png create mode 100644 src/kernbench/benches/matmul_async.py create mode 100644 src/kernbench/benches/matmul_async_chunked.py create mode 100644 src/kernbench/benches/matmul_async_chunked_db.py diff --git a/scripts/paper/paper_plot_gemm_async_vs_composite.py b/scripts/paper/paper_plot_gemm_async_vs_composite.py new file mode 100644 index 0000000..94d3593 --- /dev/null +++ b/scripts/paper/paper_plot_gemm_async_vs_composite.py @@ -0,0 +1,261 @@ +"""Composite vs async-loading GEMM TFLOPS comparison. + +For each shape in the milestone sweep, run both benches: + - matmul-composite (load_ref variant — A pre-staged, B streamed by + scheduler inside one composite command) + - matmul-async (A and B both async-loaded via tl.load, then a single + tl.dot — no per-tile overlap of streaming-B with GEMM) + +Compute per-PE TFLOPS = 2*M*K*N / pe_window_ns for each kernel and emit a +side-by-side bar chart PNG to + src/kernbench/benches/1H_milestone_output/gemm/gemm_composite_vs_async_tflops.png + +Run from repo root: + python scripts/paper/paper_plot_gemm_async_vs_composite.py +""" +from __future__ import annotations + +import json +import os +import sys +from pathlib import Path + +REPO = Path(__file__).resolve().parents[2] +OUT_DIR = REPO / "src" / "kernbench" / "benches" / "1H_milestone_output" / "gemm" +OUT_PNG = OUT_DIR / "gemm_composite_vs_async_tflops.png" +OUT_JSON = OUT_DIR / "gemm_composite_vs_async.json" + +TOPO_PATH = REPO / "topology.yaml" + +# Same 7 shapes as the milestone composite sweep (skip square=512: B alone +# is 512 KiB; async needs all of A+B+out in TCM scratch and the 512×512 +# square pushes total scratch use past the 1 MiB cap). +SHAPES: list[tuple[int, int, int]] = [ + (32, 32, 32), # 1 tile, K float: + pe = _pe_records(op_log) + if not pe: + return 0.0 + return max(r.t_end for r in pe) - min(r.t_start for r in pe) + + +def _composite_window_ns(op_log) -> float: + """For the composite kernel: window of records carrying a stage_type + set by the composite plan (DMA_READ, FETCH, GEMM, STORE, DMA_WRITE). + Excludes the initial up-front tl.load(A) because that record is an + atomic DmaReadCmd with no stage_type. Matches the existing + milestone_1h_gemm.py / gemm_per_pe_tflops.png methodology. + """ + stage_records = [r for r in op_log + if r.params.get("stage_type") in STAGES] + if not stage_records: + return 0.0 + return max(r.t_end for r in stage_records) \ + - min(r.t_start for r in stage_records) + + +def _async_engine_window_ns(op_log) -> float: + """For the async kernel: engine pipeline window that excludes the + initial tl.load(A), paralleling composite_window's exclusion of the + up-front A pre-stage. The first DMA_READ record on pe_dma is the + tl.load(A); the window starts at the SECOND pe_dma record's t_start + (= tl.load(B)) and ends at the last engine record's t_end. + """ + pe = _pe_records(op_log) + if not pe: + return 0.0 + dma = sorted( + (r for r in op_log if r.component_id.endswith(".pe_dma")), + key=lambda r: r.t_start, + ) + if len(dma) < 2: + return _pe_window_ns(op_log) + window_start = dma[1].t_start + window_end = max(r.t_end for r in pe) + return window_end - window_start + + +def _run_one(bench_name: str, variant: str | None, M: int, K: int, N: int) -> dict: + os.environ["MATMUL_M"] = str(M) + os.environ["MATMUL_K"] = str(K) + os.environ["MATMUL_N"] = str(N) + if variant is not None: + os.environ["MATMUL_VARIANT"] = variant + elif "MATMUL_VARIANT" in os.environ: + del os.environ["MATMUL_VARIANT"] + + from kernbench.benches.registry import resolve as resolve_bench + from kernbench.runtime_api.bench_runner import run_bench + from kernbench.runtime_api.types import resolve_device + from kernbench.sim_engine.engine import GraphEngine + from kernbench.topology.builder import resolve_topology + + # Chunked async loads A in TILE_K-sized blocks at sequential offsets; + # those offsets do not match the row-major (M, K) layout of A, so the + # DataExecutor would fail on the resulting mismatched read. The + # simulator's *timing* path doesn't need correct data — only the + # number of bytes per DMA matters — so bypass DataExecutor for the + # chunked kernel. Composite/naive-async loads use the full (M, K) + # shape and remain data-correct. + if bench_name in ("matmul-async-chunked", "matmul-async-chunked-db"): + GraphEngine._flush_data_phase = lambda self: None + + topo = resolve_topology(str(TOPO_PATH)) + bench = resolve_bench(bench_name).run + device = resolve_device(None) + result = run_bench( + topology=topo, bench_fn=bench, device=device, + engine_factory=lambda t, d: GraphEngine( + getattr(t, "topology_obj", t), enable_data=True, + ), + ) + if not result.completion.ok: + raise RuntimeError(f"{bench_name} failed at {M}x{K}x{N}: {result.completion}") + log = result.engine.op_log + pe_window = _pe_window_ns(log) + if bench_name == "matmul-composite": + engine_window = _composite_window_ns(log) + elif bench_name in ("matmul-async-chunked", "matmul-async-chunked-db"): + # First N_chunks pe_dma records are A pre-stage; engine window + # starts at the (N_chunks+1)-th pe_dma record (= first B-chunk + # load). Fall back to the naive analog for K <= TILE_K (kernel + # collapses to single load+dot+store). + TILE_K = 64 + n_chunks = max(K // TILE_K, 1) + if n_chunks <= 1: + engine_window = _async_engine_window_ns(log) + else: + dma = sorted( + (r for r in log if r.component_id.endswith(".pe_dma")), + key=lambda r: r.t_start, + ) + pe = _pe_records(log) + if len(dma) > n_chunks and pe: + engine_window = max(r.t_end for r in pe) - dma[n_chunks].t_start + else: + engine_window = _async_engine_window_ns(log) + else: + engine_window = _async_engine_window_ns(log) + flops = 2 * M * K * N + # flops / ns * 1e-3 = TFLOP/s (since 1 flop/ns = 1 GFLOP/s) + return { + "M": M, "K": K, "N": N, + "bench": bench_name, "variant": variant, + "pe_window_ns": pe_window, + "engine_window_ns": engine_window, + "flops": flops, + "tflops": (flops / engine_window / 1000.0) if engine_window > 0 else 0.0, + "n_records": len(log), + } + + +def collect() -> list[dict]: + rows: list[dict] = [] + for M, K, N in SHAPES: + print(f" shape M={M:4d} K={K:5d} N={N:4d} ...", flush=True) + comp = _run_one("matmul-composite", "load_ref", M, K, N) + asyn = _run_one("matmul-async", None, M, K, N) + chnk = _run_one("matmul-async-chunked", None, M, K, N) + chnkdb = _run_one("matmul-async-chunked-db", None, M, K, N) + print(f" composite: {comp['engine_window_ns']:8.1f} ns " + f"{comp['tflops']:6.3f} TFLOPS") + print(f" async naive: {asyn['engine_window_ns']:8.1f} ns " + f"{asyn['tflops']:6.3f} TFLOPS") + print(f" chunked all: {chnk['engine_window_ns']:8.1f} ns " + f"{chnk['tflops']:6.3f} TFLOPS") + print(f" chunked db=2: {chnkdb['engine_window_ns']:8.1f} ns " + f"{chnkdb['tflops']:6.3f} TFLOPS") + rows.append(comp) + rows.append(asyn) + rows.append(chnk) + rows.append(chnkdb) + return rows + + +def plot(rows: list[dict]) -> None: + import matplotlib.pyplot as plt + import numpy as np + + shape_keys = [] + for M, K, N in SHAPES: + shape_keys.append((M, K, N)) + + by_key: dict[tuple[int, int, int], dict[str, dict]] = {} + for r in rows: + key = (r["M"], r["K"], r["N"]) + by_key.setdefault(key, {})[r["bench"]] = r + + labels = [f"M={M}\nK={K}\nN={N}" for (M, K, N) in shape_keys] + comp_tflops = [by_key[k]["matmul-composite"]["tflops"] for k in shape_keys] + asyn_tflops = [by_key[k]["matmul-async"]["tflops"] for k in shape_keys] + chnk_tflops = [by_key[k]["matmul-async-chunked"]["tflops"] for k in shape_keys] + chnkdb_tflops = [by_key[k]["matmul-async-chunked-db"]["tflops"] + for k in shape_keys] + + x = np.arange(len(shape_keys)) + width = 0.20 + + fig, ax = plt.subplots(figsize=(14, 5.5)) + b_c = ax.bar(x - 1.5*width, comp_tflops, width, + label="Composite (load_ref)", color="#10b981") + b_a = ax.bar(x - 0.5*width, asyn_tflops, width, + label="Async naive (tl.load full + tl.dot)", + color="#f59e0b") + b_db = ax.bar(x + 0.5*width, chnkdb_tflops, width, + label="Async chunked-prefetch, depth=2 " + "(TCM-bounded)", color="#a855f7") + b_k = ax.bar(x + 1.5*width, chnk_tflops, width, + label="Async chunked-prefetch, depth=$\\infty$ " + "(all B-tiles queued up front)", color="#3b82f6") + + ax.axhline(8.0, linestyle="--", color="#94a3b8", linewidth=0.8, + label="Per-PE GEMM peak (8 TFLOP/s)") + ax.set_ylabel("Per-PE achieved TFLOP/s") + ax.set_title("Composite vs async-loading GEMM — per-PE throughput " + "(engine pipeline window, A pre-stage excluded)") + ax.set_xticks(x) + ax.set_xticklabels(labels, fontsize=8) + ax.grid(axis="y", alpha=0.25) + ax.legend(loc="upper left", fontsize=9) + + for bar in (*b_c, *b_a, *b_db, *b_k): + h = bar.get_height() + ax.annotate(f"{h:.2f}", xy=(bar.get_x() + bar.get_width()/2, h), + xytext=(0, 2), textcoords="offset points", + ha="center", va="bottom", fontsize=7, color="#475569") + + fig.tight_layout() + OUT_DIR.mkdir(parents=True, exist_ok=True) + fig.savefig(OUT_PNG, dpi=150) + print(f"wrote {OUT_PNG.relative_to(REPO)}") + plt.close(fig) + + +def main() -> int: + rows = collect() + OUT_DIR.mkdir(parents=True, exist_ok=True) + OUT_JSON.write_text(json.dumps(rows, indent=2)) + print(f"wrote {OUT_JSON.relative_to(REPO)}") + plot(rows) + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/src/kernbench/benches/1H_milestone_output/gemm/gemm_composite_vs_async.json b/src/kernbench/benches/1H_milestone_output/gemm/gemm_composite_vs_async.json new file mode 100644 index 0000000..e29adc4 --- /dev/null +++ b/src/kernbench/benches/1H_milestone_output/gemm/gemm_composite_vs_async.json @@ -0,0 +1,338 @@ +[ + { + "M": 32, + "K": 32, + "N": 32, + "bench": "matmul-composite", + "variant": "load_ref", + "pe_window_ns": 171.394, + "engine_window_ns": 106.38400000000001, + "flops": 65536, + "tflops": 0.6160324860881335, + "n_records": 7 + }, + { + "M": 32, + "K": 32, + "N": 32, + "bench": "matmul-async", + "variant": null, + "pe_window_ns": 103.22199999999998, + "engine_window_ns": 71.71199999999999, + "flops": 65536, + "tflops": 0.9138777331548418, + "n_records": 4 + }, + { + "M": 32, + "K": 32, + "N": 32, + "bench": "matmul-async-chunked", + "variant": null, + "pe_window_ns": 103.22199999999998, + "engine_window_ns": 71.71199999999999, + "flops": 65536, + "tflops": 0.9138777331548418, + "n_records": 4 + }, + { + "M": 32, + "K": 32, + "N": 32, + "bench": "matmul-async-chunked-db", + "variant": null, + "pe_window_ns": 103.22199999999998, + "engine_window_ns": 71.71199999999999, + "flops": 65536, + "tflops": 0.9138777331548418, + "n_records": 4 + }, + { + "M": 32, + "K": 64, + "N": 32, + "bench": "matmul-composite", + "variant": "load_ref", + "pe_window_ns": 179.394, + "engine_window_ns": 106.38400000000001, + "flops": 131072, + "tflops": 1.232064972176267, + "n_records": 7 + }, + { + "M": 32, + "K": 64, + "N": 32, + "bench": "matmul-async", + "variant": null, + "pe_window_ns": 127.41399999999999, + "engine_window_ns": 87.904, + "flops": 131072, + "tflops": 1.4910811794685113, + "n_records": 4 + }, + { + "M": 32, + "K": 64, + "N": 32, + "bench": "matmul-async-chunked", + "variant": null, + "pe_window_ns": 127.41399999999999, + "engine_window_ns": 87.904, + "flops": 131072, + "tflops": 1.4910811794685113, + "n_records": 4 + }, + { + "M": 32, + "K": 64, + "N": 32, + "bench": "matmul-async-chunked-db", + "variant": null, + "pe_window_ns": 127.41399999999999, + "engine_window_ns": 87.904, + "flops": 131072, + "tflops": 1.4910811794685113, + "n_records": 4 + }, + { + "M": 32, + "K": 128, + "N": 32, + "bench": "matmul-composite", + "variant": "load_ref", + "pe_window_ns": 211.77800000000002, + "engine_window_ns": 122.76800000000003, + "flops": 262144, + "tflops": 2.135279551674703, + "n_records": 10 + }, + { + "M": 32, + "K": 128, + "N": 32, + "bench": "matmul-async", + "variant": null, + "pe_window_ns": 175.798, + "engine_window_ns": 120.28800000000001, + "flops": 262144, + "tflops": 2.1793030061186482, + "n_records": 4 + }, + { + "M": 32, + "K": 128, + "N": 32, + "bench": "matmul-async-chunked", + "variant": null, + "pe_window_ns": 185.81799999999998, + "engine_window_ns": 130.308, + "flops": 262144, + "tflops": 2.011726064401265, + "n_records": 8 + }, + { + "M": 32, + "K": 128, + "N": 32, + "bench": "matmul-async-chunked-db", + "variant": null, + "pe_window_ns": 185.81799999999998, + "engine_window_ns": 130.308, + "flops": 262144, + "tflops": 2.011726064401265, + "n_records": 8 + }, + { + "M": 32, + "K": 128, + "N": 128, + "bench": "matmul-composite", + "variant": "load_ref", + "pe_window_ns": 315.394, + "engine_window_ns": 226.38400000000001, + "flops": 1048576, + "tflops": 4.631846773623577, + "n_records": 34 + }, + { + "M": 32, + "K": 128, + "N": 128, + "bench": "matmul-async", + "variant": null, + "pe_window_ns": 394.102, + "engine_window_ns": 338.592, + "flops": 1048576, + "tflops": 3.096871751252245, + "n_records": 4 + }, + { + "M": 32, + "K": 128, + "N": 128, + "bench": "matmul-async-chunked", + "variant": null, + "pe_window_ns": 368.12200000000007, + "engine_window_ns": 312.6120000000001, + "flops": 1048576, + "tflops": 3.354241040011259, + "n_records": 8 + }, + { + "M": 32, + "K": 128, + "N": 128, + "bench": "matmul-async-chunked-db", + "variant": null, + "pe_window_ns": 368.12200000000007, + "engine_window_ns": 312.6120000000001, + "flops": 1048576, + "tflops": 3.354241040011259, + "n_records": 8 + }, + { + "M": 32, + "K": 3072, + "N": 32, + "bench": "matmul-composite", + "variant": "load_ref", + "pe_window_ns": 1701.4420000000007, + "engine_window_ns": 876.4320000000005, + "flops": 6291456, + "tflops": 7.178487321320988, + "n_records": 148 + }, + { + "M": 32, + "K": 3072, + "N": 32, + "bench": "matmul-async", + "variant": null, + "pe_window_ns": 2401.4620000000004, + "engine_window_ns": 1609.952, + "flops": 6291456, + "tflops": 3.9078531533859397, + "n_records": 4 + }, + { + "M": 32, + "K": 3072, + "N": 32, + "bench": "matmul-async-chunked", + "variant": null, + "pe_window_ns": 3264.8920000000217, + "engine_window_ns": 2473.3820000000214, + "flops": 6291456, + "tflops": 2.5436653133240017, + "n_records": 192 + }, + { + "M": 32, + "K": 3072, + "N": 32, + "bench": "matmul-async-chunked-db", + "variant": null, + "pe_window_ns": 3286.402000000022, + "engine_window_ns": 2494.8920000000217, + "flops": 6291456, + "tflops": 2.5217348085608298, + "n_records": 192 + }, + { + "M": 8, + "K": 128, + "N": 128, + "bench": "matmul-composite", + "variant": "load_ref", + "pe_window_ns": 291.394, + "engine_window_ns": 226.38400000000001, + "flops": 262144, + "tflops": 1.1579616934058943, + "n_records": 34 + }, + { + "M": 8, + "K": 128, + "N": 128, + "bench": "matmul-async", + "variant": null, + "pe_window_ns": 247.798, + "engine_window_ns": 216.288, + "flops": 262144, + "tflops": 1.212013611480988, + "n_records": 4 + }, + { + "M": 8, + "K": 128, + "N": 128, + "bench": "matmul-async-chunked", + "variant": null, + "pe_window_ns": 251.42399999999998, + "engine_window_ns": 214.914, + "flops": 262144, + "tflops": 1.2197623235340647, + "n_records": 8 + }, + { + "M": 8, + "K": 128, + "N": 128, + "bench": "matmul-async-chunked-db", + "variant": null, + "pe_window_ns": 251.42399999999998, + "engine_window_ns": 214.914, + "flops": 262144, + "tflops": 1.2197623235340647, + "n_records": 8 + }, + { + "M": 128, + "K": 8, + "N": 128, + "bench": "matmul-composite", + "variant": "load_ref", + "pe_window_ns": 462.01, + "engine_window_ns": 397.0, + "flops": 262144, + "tflops": 0.6603123425692695, + "n_records": 82 + }, + { + "M": 128, + "K": 8, + "N": 128, + "bench": "matmul-async", + "variant": null, + "pe_window_ns": 247.798, + "engine_window_ns": 216.288, + "flops": 262144, + "tflops": 1.212013611480988, + "n_records": 4 + }, + { + "M": 128, + "K": 8, + "N": 128, + "bench": "matmul-async-chunked", + "variant": null, + "pe_window_ns": 247.798, + "engine_window_ns": 216.288, + "flops": 262144, + "tflops": 1.212013611480988, + "n_records": 4 + }, + { + "M": 128, + "K": 8, + "N": 128, + "bench": "matmul-async-chunked-db", + "variant": null, + "pe_window_ns": 247.798, + "engine_window_ns": 216.288, + "flops": 262144, + "tflops": 1.212013611480988, + "n_records": 4 + } +] \ No newline at end of file diff --git a/src/kernbench/benches/1H_milestone_output/gemm/gemm_composite_vs_async_tflops.png b/src/kernbench/benches/1H_milestone_output/gemm/gemm_composite_vs_async_tflops.png new file mode 100644 index 0000000000000000000000000000000000000000..e52c62c460cb82a1cf1b74e99e50fe318d9d249c GIT binary patch literal 77198 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