From ca31a2e24b0beb67d929ba14324ac49ba3e360fe Mon Sep 17 00:00:00 2001 From: Rahul Kumar Date: Sat, 13 Jun 2026 11:33:33 -0700 Subject: [PATCH] feat(bench): Argon stress tests/benchmarks --- bench/README.md | 163 ++++++++ bench/argon_scaling.pdf | Bin 0 -> 29429 bytes bench/argon_scaling.png | Bin 0 -> 254587 bytes bench/plot_scaling.py | 156 ++++++++ bench/results/constraints.csv | 7 + bench/results/hierarchy_double_ref.csv | 10 + bench/results/hierarchy_single_ref.csv | 9 + bench/results/instances.csv | 9 + bench/results/shapes.csv | 8 + bench/results/shapes_loop.csv | 5 + core/compiler/src/lib.rs | 521 +++++++++++++++++++++++++ examples/stress_constraints/lib.ar | 32 ++ examples/stress_hierarchy/lib.ar | 57 +++ examples/stress_instances/lib.ar | 26 ++ examples/stress_shapes/lib.ar | 34 ++ 15 files changed, 1037 insertions(+) create mode 100644 bench/README.md create mode 100644 bench/argon_scaling.pdf create mode 100644 bench/argon_scaling.png create mode 100644 bench/plot_scaling.py create mode 100644 bench/results/constraints.csv create mode 100644 bench/results/hierarchy_double_ref.csv create mode 100644 bench/results/hierarchy_single_ref.csv create mode 100644 bench/results/instances.csv create mode 100644 bench/results/shapes.csv create mode 100644 bench/results/shapes_loop.csv create mode 100644 examples/stress_constraints/lib.ar create mode 100644 examples/stress_hierarchy/lib.ar create mode 100644 examples/stress_instances/lib.ar create mode 100644 examples/stress_shapes/lib.ar diff --git a/bench/README.md b/bench/README.md new file mode 100644 index 0000000..f8ef905 --- /dev/null +++ b/bench/README.md @@ -0,0 +1,163 @@ +# Argon scaling benchmarks + +These benchmarks stress the Argon compiler along the axes raised in review — +**number of shapes**, **number of (coupled) constraints**, **number of cell +instances**, and **depth of hierarchy** — and record how compile time and peak +memory scale with each. They exist to answer questions of the form: + +> *How does the framework scale to layouts with substantially more hierarchy, +> more constraints, and a larger number of editable objects?* + +The Argon sources that are swept live in [`../examples/`](../examples): + +| Example | Cell(s) | Axis stressed | +| -------------------------------- | ----------------------- | ------------- | +| `examples/stress_shapes` | `shapes(n)` | `n` independent rectangles in one cell (generated by recursion) | +| `examples/stress_shapes` | `shapes_loop(n)` | the same geometry generated with a `for` loop over `std::range` (also stresses the functional list representation) | +| `examples/stress_constraints` | `constraints(n)` | a ring of `n+1` rectangles whose edges are mutually coupled, forcing the general (dense) linear solver | +| `examples/stress_instances` | `instances(n)` | `n` instances of a single cached leaf cell | +| `examples/stress_hierarchy` | `h0 .. h8` | a chain of cells `h{k}` each instantiating `h{k-1}`; compiling `h{k}` exercises `k` levels of hierarchy | + +The benchmark *drivers* are the `bench_*` tests in +[`../core/compiler/src/lib.rs`](../core/compiler/src/lib.rs). For the +hierarchy axis the driver generates `h0..h{depth}` workspaces on the fly (a +single `.ar` file cannot express a runtime-variable depth because Argon cells +cannot be recursive or forward-referenced). + +## Running + +The `bench_*` tests are marked `#[ignore]` because the larger sizes take well +over 6 s in a debug build. Run them in **release**, **serially** (peak-memory +tracking uses a process-global allocator, so concurrent tests would corrupt the +measurements): + +```bash +cargo test -p compiler --release -- --ignored --test-threads=1 --nocapture bench_ +``` + +Each test writes a CSV to `bench/results/.csv` with columns +`size,time_s,peak_bytes,n_objects`. Then render the figure (and print a summary +table of fitted scaling models): + +```bash +python3 bench/plot_scaling.py # writes bench/argon_scaling.{png,pdf} +``` + +`plot_scaling.py` needs only the standard library to print the summary table; +`matplotlib` is required to draw the figure. + +To run a single axis, e.g. just the instance sweep: + +```bash +cargo test -p compiler --release -- --ignored --test-threads=1 --nocapture bench_instances +``` + +The fast `stress_*_smoke` tests (which just check that each example still +compiles) run in the normal `cargo test` suite and are **not** ignored. + +### Configuring the sweeps + +Every axis reads its list of sizes from an environment variable, falling back +to a default. This keeps the benchmarks general-purpose: the same test can be +re-run at a different scale — for example after a compiler optimization changes +how an axis scales — without editing any source. Pass a comma-separated list: + +| Env var | Axis | Default | +| ------- | ---- | ------- | +| `ARGON_BENCH_SHAPES` | shapes (recursion) | `500,1000,2000,4000,8000,16000,32000` | +| `ARGON_BENCH_SHAPES_LOOP` | shapes (`for` loop) | `250,500,1000,2000` | +| `ARGON_BENCH_INSTANCES` | instances | `500,…,64000` | +| `ARGON_BENCH_CONSTRAINTS` | coupled constraints | `32,64,128,256,512,1024` | +| `ARGON_BENCH_HIER_SINGLE` | hierarchy (1 ref) | `4,8,16,32,48,64,96,128` | +| `ARGON_BENCH_HIER_DOUBLE` | hierarchy (2 refs) | `2,4,6,8,10,12,14,16,18` | + +```bash +# e.g. sweep the for-loop variant out to the same sizes as bench_shapes +ARGON_BENCH_SHAPES_LOOP=500,1000,2000,4000,8000,16000,32000 \ + cargo test -p compiler --release -- --ignored --test-threads=1 --nocapture bench_shapes_loop +``` + +The defaults are sized so the suite runs in a few minutes within a few GiB on +the current build; they are not claims about how any axis "should" scale. + +## Methodology + +- **Time**: minimum wall-clock time over a few repetitions (`min` is robust to + noise on a shared machine). Parsing/static analysis is done once per size and + excluded from the hierarchy timings; everything else is end-to-end `compile()`. +- **Memory**: a `#[global_allocator]` compiled only into the test binary + (`bench_alloc::Tracking` in `lib.rs`) tracks live and peak heap bytes. We + report the peak heap *growth* during a single `compile()`. +- **Build**: release profile. Numbers below were collected on a Linux machine; + absolute values are machine-dependent but the *scaling* is not. + +## Results + +The numbers below are a **snapshot** from one release build on the development +machine; they are produced by the commands above and meant to be regenerated +(absolute values are machine- and build-dependent). `n` is the per-axis size +parameter; "peak" is peak heap allocated during compilation. + +| Axis | largest `n` | time @ largest | peak mem @ largest | empirical scaling | +| ---- | ----------- | -------------- | ------------------ | ----------------- | +| Shapes (recursion) | 32 000 rects | 1.53 s | 0.94 GiB | **~linear** (time `∝ n^1.2`, mem `∝ n^1.0`) | +| Instances | 64 000 insts | 3.14 s | 1.29 GiB | **~linear** (time `∝ n^1.2`, mem `∝ n^1.0`) | +| Hierarchy, 1 child ref | depth 128 | 0.09 s | 0.12 GiB | **polynomial** (`∝ depth^1.3–1.4`) | +| Coupled constraints | 1 024 rects | 21.7 s | 0.13 GiB | **super-cubic in time** (see below) | +| Shapes (`for`-loop) | 2 000 rects | 0.59 s | 4.1 GiB | **quadratic** (mem `∝ n^2`) | +| Hierarchy, 2 child refs | depth 18 | 11.5 s | 3.6 GiB | **exponential** (`×1.9` per level) | + +### Interpretation + +- **Geometry and instances scale linearly.** Compiling a single flat cell with + tens of thousands of fully-constrained rectangles, or with tens of thousands + of instances of a cached cell, is linear in both time and memory. Each shape + contributes 4 solver variables and each instance 2, and because their + constraints pin one variable at a time the solver resolves them by + back-substitution without ever forming a matrix. This is the common case for + real parametric cells and it scales comfortably to "thousands of rectangles". + +- **Coupled constraints are the expensive axis.** When constraints form one + large connected component that *cannot* be back-substituted (here, a ring of + mutually-coupled edges), Argon falls back to its general linear solver, which + builds a dense matrix and takes an SVD. The per-doubling cost climbs from ~4× + at `n=64→128` to ~15× at `n=512→1024`, i.e. it steepens toward the `O(n^3)` + of dense factorization (and worse, because `solve()` is re-run as the system + is assembled). This is the "general linear constraint solving (slow)" caveat + in the top-level README, quantified: ~1 000 coupled editable variables take + ~20 s. Layouts whose constraints decompose into many small independent groups + (the typical case) avoid this entirely. + +- **Hierarchy depth is limited by the type representation.** A cell's static + type (`CellTy`) stores the full structural type of every field, including + instantiated sub-cells. If a cell references its child **once** (e.g. + `let i = inst(child());`), depth scales polynomially (`~depth^1.4`) and is + fine to ~128 levels. If it references the child **twice** (e.g. the + `let c = child(); let i = inst(c);` idiom from the tutorial), the type of + `h{k}` contains two copies of the type of `h{k-1}`, so the representation — + and hence compile time and memory — **doubles with every level** (`×1.9` per + level measured). Beyond ~depth 20 this exhausts memory (depth 20 alone needs + ~14.5 GiB / 50 s; depth 18 is ~3.6 GiB / 11.5 s, which is where this sweep is + capped). Very deep hierarchies additionally hit a native-recursion stack + limit in the compiler at a few hundred levels. + +- **Recursion vs. iteration measures the list/iteration machinery.** `shapes` + and `shapes_loop` emit identical geometry; the only difference is that + `shapes_loop` builds and iterates a `std::range` list. On the build measured + here that list path is markedly heavier (≈4 GiB to emit 2 000 rectangles via + a `for` loop, vs. 32 000 by recursion in under 1 GiB), so the gap between the + two series is a direct measure of the cost of the list representation rather + than of the geometry or solver. Re-running both series (e.g. with + `ARGON_BENCH_SHAPES_LOOP` set to the same sizes as `bench_shapes`) is the way + to see that cost change as the iteration/list machinery is optimized. + +The takeaways for the paper: editable-object count and instance count scale +linearly; the practically-relevant limits are the dense general constraint +solver on large *coupled* systems and structural type expansion on deep +hierarchies — both of which line up with the future-work items already listed +in the project README (faster linear constraint solving; incremental +compilation). The bullets above describe the build at the time of measurement; +because every axis is re-runnable (and size-configurable), the same harness can +be used to confirm improvements from compiler optimizations. + +![Argon scaling](argon_scaling.png) diff --git a/bench/argon_scaling.pdf b/bench/argon_scaling.pdf new file mode 100644 index 0000000000000000000000000000000000000000..aa378994cd59f00c7215e559e8b2ffd8d0fc7c9e GIT binary patch literal 29429 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%0A=SGm(;w3;GLS`!o33 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%0Dcpp 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 0 and y > 0]) + + +def fit_base(xs, ys): + """Exponential base b for y ~ b^x: from the slope of log(y) vs x.""" + s = _slope([(x, math.log(y)) for x, y in zip(xs, ys) if y > 0]) + return math.exp(s) + + +def describe(model, xs, ys): + """Return (legend_suffix, summary_string) for the fitted scaling model.""" + if model == "exp": + b = fit_base(xs, ys) + return f"exp., $\\times{b:.1f}$/step", f"exponential (x{b:.2f} per unit)" + k = fit_exponent(xs, ys) + return f"$\\propto n^{{{k:.1f}}}$", f"~n^{k:.2f}" + + +def main(): + here = os.path.dirname(os.path.abspath(__file__)) + ap = argparse.ArgumentParser() + ap.add_argument("--results", default=os.path.join(here, "results")) + ap.add_argument("--out", default=os.path.join(here, "argon_scaling")) + args = ap.parse_args() + + data = {} + for key, label, unit, model in SERIES: + path = os.path.join(args.results, f"{key}.csv") + if os.path.exists(path): + xs, ts, ms = load(path) + if xs: + data[key] = (label, unit, model, xs, ts, ms) + + if not data: + sys.exit( + f"No benchmark CSVs found in {args.results}.\n" + "Run the benchmarks first (see bench/README.md)." + ) + + # Print a summary table of fitted scaling models. + print(f"{'series':<30}{'points':>7} {'time scaling':<22}{'mem scaling':<22}max(time, mem)") + for key, _, _, _ in SERIES: + if key not in data: + continue + label, unit, model, xs, ts, ms = data[key] + _, t_desc = describe(model, xs, ts) + _, m_desc = describe(model, xs, ms) + print( + f"{label:<30}{len(xs):>7} {t_desc:<22}{m_desc:<22}" + f"{max(ts):.3f} s / {max(ms) / 2**20:.0f} MiB" + ) + + try: + import matplotlib + + matplotlib.use("Agg") + import matplotlib.pyplot as plt + except ImportError: + sys.exit("\nmatplotlib not installed; printed summary only. `pip install matplotlib` to draw.") + + fig, (ax_t, ax_m) = plt.subplots(1, 2, figsize=(13, 5.2)) + markers = ["o", "s", "^", "D", "v", "P"] + for (key, _, _, _), marker in zip(SERIES, markers): + if key not in data: + continue + label, unit, model, xs, ts, ms = data[key] + t_suffix, _ = describe(model, xs, ts) + m_suffix, _ = describe(model, xs, ms) + ax_t.plot(xs, ts, marker=marker, label=f"{label} ({t_suffix})") + ax_m.plot(xs, [m / 2**20 for m in ms], marker=marker, + label=f"{label} ({m_suffix})") + + for ax in (ax_t, ax_m): + ax.set_xscale("log") + ax.set_yscale("log") + ax.set_xlabel("problem size $n$ (rectangles / constraints / instances / depth)") + ax.grid(True, which="both", ls=":", alpha=0.4) + + ax_t.set_ylabel("compile time (s)") + ax_t.set_title("Argon compile-time scaling") + ax_m.set_ylabel("peak heap allocated (MiB)") + ax_m.set_title("Argon memory scaling") + ax_t.legend(fontsize=8, loc="upper left") + ax_m.legend(fontsize=8, loc="upper left") + fig.tight_layout() + + for ext in ("png", "pdf"): + out = f"{args.out}.{ext}" + fig.savefig(out, dpi=150, bbox_inches="tight") + print(f"wrote {out}") + + +if __name__ == "__main__": + main() diff --git a/bench/results/constraints.csv b/bench/results/constraints.csv new file mode 100644 index 0000000..98cc1d8 --- /dev/null +++ b/bench/results/constraints.csv @@ -0,0 +1,7 @@ +size,time_s,peak_bytes,n_objects +32,0.00383075,2585876,33 +64,0.00726206,3829492,65 +128,0.029626408,6749992,129 +256,0.21347691,15396760,257 +512,1.4369801039999999,42127416,513 +1024,21.745505947,133337720,1025 diff --git a/bench/results/hierarchy_double_ref.csv b/bench/results/hierarchy_double_ref.csv new file mode 100644 index 0000000..723e66f --- /dev/null +++ b/bench/results/hierarchy_double_ref.csv @@ -0,0 +1,10 @@ +size,time_s,peak_bytes,n_objects +2,0.000971778,1325410,5 +4,0.001176136,1653373,9 +6,0.001882165,2474335,13 +8,0.004620015,5364013,17 +10,0.015455478,16602635,21 +12,0.088864192,61484713,25 +14,0.481928844,240102311,29 +16,2.506498165,954179013,33 +18,11.538940627,3810189475,37 diff --git a/bench/results/hierarchy_single_ref.csv b/bench/results/hierarchy_single_ref.csv new file mode 100644 index 0000000..e2fd0f5 --- /dev/null +++ b/bench/results/hierarchy_single_ref.csv @@ -0,0 +1,9 @@ +size,time_s,peak_bytes,n_objects +4,0.000845819,1556216,9 +8,0.001178198,2140495,17 +16,0.002346772,4034443,33 +32,0.005942098,10387267,65 +48,0.012042876,19826107,97 +64,0.022953693,33362240,129 +96,0.052964538,69348808,193 +128,0.090173076,120382868,257 diff --git a/bench/results/instances.csv b/bench/results/instances.csv new file mode 100644 index 0000000..b5d5cdd --- /dev/null +++ b/bench/results/instances.csv @@ -0,0 +1,9 @@ +size,time_s,peak_bytes,n_objects +500,0.012283447,11806766,501 +1000,0.02516376,22390998,1001 +2000,0.056507946,43559462,2001 +4000,0.147355775,85896390,4001 +8000,0.310525996,170570230,8001 +16000,0.689046789,339917926,16001 +32000,1.457187325,678613350,32001 +64000,3.140683519,1356004118,64001 diff --git a/bench/results/shapes.csv b/bench/results/shapes.csv new file mode 100644 index 0000000..b9305b0 --- /dev/null +++ b/bench/results/shapes.csv @@ -0,0 +1,8 @@ +size,time_s,peak_bytes,n_objects +500,0.012574383,16159584,500 +1000,0.028867058,31116160,1000 +2000,0.071651056,61029296,2000 +4000,0.158150608,120855616,4000 +8000,0.329667899,240508160,8000 +16000,0.70516885,479813376,16000 +32000,1.530754693,958423696,32000 diff --git a/bench/results/shapes_loop.csv b/bench/results/shapes_loop.csv new file mode 100644 index 0000000..90cde88 --- /dev/null +++ b/bench/results/shapes_loop.csv @@ -0,0 +1,5 @@ +size,time_s,peak_bytes,n_objects +250,0.026441618,73227389,250 +500,0.091560351,274248679,500 +1000,0.269871454,1063292012,1000 +2000,0.589680644,4189379419,2000 diff --git a/core/compiler/src/lib.rs b/core/compiler/src/lib.rs index 389a608..76c16f7 100644 --- a/core/compiler/src/lib.rs +++ b/core/compiler/src/lib.rs @@ -7,6 +7,85 @@ pub mod layer; pub mod parse; pub mod solver; +/// A global allocator that tracks live and peak heap usage so that the scaling +/// benchmarks in the test module can report memory consumption alongside +/// runtime. It forwards every request to the system allocator and only adds +/// atomic byte counters, so behavior is otherwise unchanged. +/// +/// This allocator is only compiled into the test binary (`cfg(test)`); release +/// and library builds use the default allocator. The counters are process-wide, +/// so the benchmarks that read them must be run serially +/// (`--test-threads=1`); see `bench/README.md`. +#[cfg(test)] +mod bench_alloc { + use std::alloc::{GlobalAlloc, Layout, System}; + use std::sync::atomic::{AtomicUsize, Ordering}; + + pub static LIVE: AtomicUsize = AtomicUsize::new(0); + pub static PEAK: AtomicUsize = AtomicUsize::new(0); + + pub struct Tracking; + + #[inline] + fn record_growth(delta: usize) { + let live = LIVE.fetch_add(delta, Ordering::Relaxed) + delta; + PEAK.fetch_max(live, Ordering::Relaxed); + } + + unsafe impl GlobalAlloc for Tracking { + unsafe fn alloc(&self, layout: Layout) -> *mut u8 { + let ptr = unsafe { System.alloc(layout) }; + if !ptr.is_null() { + record_growth(layout.size()); + } + ptr + } + + unsafe fn dealloc(&self, ptr: *mut u8, layout: Layout) { + unsafe { System.dealloc(ptr, layout) }; + LIVE.fetch_sub(layout.size(), Ordering::Relaxed); + } + + unsafe fn alloc_zeroed(&self, layout: Layout) -> *mut u8 { + let ptr = unsafe { System.alloc_zeroed(layout) }; + if !ptr.is_null() { + record_growth(layout.size()); + } + ptr + } + + unsafe fn realloc(&self, ptr: *mut u8, layout: Layout, new_size: usize) -> *mut u8 { + let new_ptr = unsafe { System.realloc(ptr, layout, new_size) }; + if !new_ptr.is_null() { + if new_size >= layout.size() { + record_growth(new_size - layout.size()); + } else { + LIVE.fetch_sub(layout.size() - new_size, Ordering::Relaxed); + } + } + new_ptr + } + } + + /// Resets the peak counter to the current live usage. Call this immediately + /// before the region of interest, then read [`peak`] afterwards. + pub fn reset_peak() { + PEAK.store(LIVE.load(Ordering::Relaxed), Ordering::Relaxed); + } + + pub fn live() -> usize { + LIVE.load(Ordering::Relaxed) + } + + pub fn peak() -> usize { + PEAK.load(Ordering::Relaxed) + } +} + +#[cfg(test)] +#[global_allocator] +static BENCH_ALLOC: bench_alloc::Tracking = bench_alloc::Tracking; + #[cfg(test)] mod tests { @@ -74,6 +153,448 @@ mod tests { const ARGON_SSE_BASIC: &str = concatcp!(EXAMPLES_DIR, "/sse_basic/lib.ar"); const ARGON_PRECEDENCE: &str = concatcp!(EXAMPLES_DIR, "/precedence/lib.ar"); + // --------------------------------------------------------------------- + // Scaling / stress benchmarks. + // + // These exercise Argon along the axes raised in review: number of shapes, + // number of (coupled) constraints, number of cell instances, and depth of + // hierarchy. Each `bench_*` test sweeps a size parameter, records compile + // time and peak heap usage, and writes a CSV to `bench/results/` that + // `bench/plot_scaling.py` turns into the scaling figure. + // + // The `bench_*` tests are `#[ignore]`d because the larger sizes take well + // over 6 s in a debug build. Run them in release, serially (peak-memory + // tracking is process-global), e.g.: + // + // RUSTFLAGS=... cargo test -p compiler --release -- \ + // --ignored --test-threads=1 bench_ + // + // The `stress_*_smoke` tests below run in the normal (debug) test suite and + // just check that each example still compiles. + // --------------------------------------------------------------------- + const ARGON_STRESS_SHAPES: &str = concatcp!(EXAMPLES_DIR, "/stress_shapes/lib.ar"); + const ARGON_STRESS_CONSTRAINTS: &str = concatcp!(EXAMPLES_DIR, "/stress_constraints/lib.ar"); + const ARGON_STRESS_INSTANCES: &str = concatcp!(EXAMPLES_DIR, "/stress_instances/lib.ar"); + const ARGON_STRESS_HIERARCHY: &str = concatcp!(EXAMPLES_DIR, "/stress_hierarchy/lib.ar"); + + use crate::compile::CompileOutput; + + /// Serializes the memory/timing-sensitive benchmarks. Even when the test + /// runner is given multiple threads, holding this lock ensures only one + /// `bench_*` body runs at a time, so the process-global allocator counters + /// and wall-clock timings are not perturbed by a concurrent benchmark. + static BENCH_LOCK: std::sync::Mutex<()> = std::sync::Mutex::new(()); + + fn bench_guard() -> std::sync::MutexGuard<'static, ()> { + // Recover from poisoning: a panic in one benchmark should not wedge the + // others, and the lock guards only measurement isolation. + BENCH_LOCK.lock().unwrap_or_else(|e| e.into_inner()) + } + + /// Runs `f` `reps` times, returning the minimum wall-clock time (robust to + /// noise on a shared machine), the maximum peak heap growth observed during + /// a run, and the result of the final run. + fn measure(reps: u32, f: impl Fn() -> R) -> (std::time::Duration, usize, R) { + assert!(reps >= 1); + let mut best = std::time::Duration::MAX; + let mut peak = 0usize; + let mut result = None; + for _ in 0..reps { + // Free the previous run's result so each measurement starts from + // the same baseline. + drop(result.take()); + crate::bench_alloc::reset_peak(); + let base = crate::bench_alloc::live(); + let start = std::time::Instant::now(); + let r = f(); + best = best.min(start.elapsed()); + peak = peak.max(crate::bench_alloc::peak().saturating_sub(base)); + result = Some(r); + } + (best, peak, result.unwrap()) + } + + fn count_objects(o: &CompileOutput) -> usize { + let data = match o { + CompileOutput::Valid(d) => Some(d), + CompileOutput::ExecErrors(e) => e.output.as_ref(), + _ => None, + }; + data.map(|d| d.cells.values().map(|c| c.objects.len()).sum()) + .unwrap_or(0) + } + + fn count_cells(o: &CompileOutput) -> usize { + match o { + CompileOutput::Valid(d) => d.cells.len(), + CompileOutput::ExecErrors(e) => e.output.as_ref().map(|d| d.cells.len()).unwrap_or(0), + _ => 0, + } + } + + /// Sweep sizes for a benchmark axis. Returns `default` unless the named + /// environment variable is set to a comma-separated list of sizes, in which + /// case that list is used. This keeps the benchmarks general-purpose: the + /// same test can be re-run at a larger (or smaller) scale without editing + /// the source, e.g. after a compiler optimization changes how an axis + /// scales: + /// + /// ARGON_BENCH_SHAPES_LOOP=500,1000,2000,4000,8000,16000,32000 \ + /// cargo test -p compiler --release -- --ignored --test-threads=1 \ + /// --nocapture bench_shapes_loop + /// + /// The defaults are chosen so the whole suite runs in a few minutes and + /// stays within a few GiB on the current build; they are not assumptions + /// about how any axis "should" scale. + fn bench_sizes(env_var: &str, default: &[i64]) -> Vec { + match std::env::var(env_var) { + Ok(s) if !s.trim().is_empty() => s + .split(',') + .filter_map(|x| x.trim().parse::().ok()) + .collect(), + _ => default.to_vec(), + } + } + + fn write_bench_csv(name: &str, rows: &[(f64, f64, usize, usize)]) { + use std::fmt::Write; + let dir = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("../../bench/results"); + std::fs::create_dir_all(&dir).unwrap(); + let mut s = String::from("size,time_s,peak_bytes,n_objects\n"); + for (size, t, mem, nobj) in rows { + writeln!(s, "{size},{t},{mem},{nobj}").unwrap(); + } + let path = dir.join(format!("{name}.csv")); + std::fs::write(&path, s).unwrap(); + eprintln!("wrote {}", path.display()); + } + + /// Generates a workspace of `depth + 1` cells `h0..h{depth}` where each + /// `h{k}` instantiates `h{k-1}`. With `double_ref = false` the child is + /// referenced by a single (instance) binding; with `double_ref = true` the + /// child cell is also bound to a `let`, which makes the structural cell type + /// of `h{k}` contain two copies of the type of `h{k-1}`. + fn gen_hier(depth: usize, double_ref: bool) -> String { + let mut s = + String::from("cell h0() {\n rect(\"met1\", x0=0., y0=0., x1=10., y1=10.);\n}\n"); + for k in 1..=depth { + let body = if double_ref { + format!(" let child = h{}();\n let i = inst(child);\n", k - 1) + } else { + format!(" let i = inst(h{}());\n", k - 1) + }; + s.push_str(&format!( + "cell h{k}() {{\n rect(\"met1\", x0=0., y0=0., x1=10., y1=10.);\n{body} eq(i.x, 0.);\n eq(i.y, 10.);\n}}\n", + )); + } + s + } + + /// Axis 1: number of independent shapes in a single cell. + #[test] + #[ignore = "scaling benchmark; run in release, serially: cargo test -p compiler --release -- --ignored --test-threads=1 bench_"] + fn bench_shapes() { + let _g = bench_guard(); + let o = parse_workspace_with_std(ARGON_STRESS_SHAPES); + assert!(o.static_errors().is_empty(), "{:?}", o.static_errors()); + let ast = o.ast(); + let mut rows = Vec::new(); + for &n in &bench_sizes( + "ARGON_BENCH_SHAPES", + &[500, 1000, 2000, 4000, 8000, 16000, 32000], + ) { + let (dt, mem, out) = measure(3, || { + compile( + &ast, + CompileInput { + cell: &["shapes"], + args: vec![CellArg::Int(n)], + lyp_file: &PathBuf::from(BASIC_LYP), + }, + ) + }); + assert!(out.is_valid(), "shapes(n={n}) invalid"); + let nobj = count_objects(&out); + eprintln!( + "shapes n={n:>6} objects={nobj:>6} time={dt:>11.3?} peak={:>8.2} MiB", + mem as f64 / (1usize << 20) as f64 + ); + rows.push((n as f64, dt.as_secs_f64(), mem, nobj)); + } + write_bench_csv("shapes", &rows); + } + + /// Axis 1b: the same geometry generated with an idiomatic `for` loop over + /// `std::range`, which additionally exercises Argon's functional list + /// representation (`cons`). Capped at a smaller size because list + /// construction is super-linear. + #[test] + #[ignore = "scaling benchmark; run in release, serially: cargo test -p compiler --release -- --ignored --test-threads=1 bench_"] + fn bench_shapes_loop() { + let _g = bench_guard(); + let o = parse_workspace_with_std(ARGON_STRESS_SHAPES); + assert!(o.static_errors().is_empty(), "{:?}", o.static_errors()); + let ast = o.ast(); + // This variant generates the same geometry as `bench_shapes` but with a + // `for` loop over `std::range`, so its cost also includes building and + // iterating the list. The default sweep is kept smaller than + // `bench_shapes` only so the default run stays bounded in memory on the + // current build; override `ARGON_BENCH_SHAPES_LOOP` to sweep to the same + // sizes as `bench_shapes` (e.g. to compare the two after changes to the + // list representation). + let mut rows = Vec::new(); + for &n in &bench_sizes("ARGON_BENCH_SHAPES_LOOP", &[250, 500, 1000, 2000]) { + let (dt, mem, out) = measure(2, || { + compile( + &ast, + CompileInput { + cell: &["shapes_loop"], + args: vec![CellArg::Int(n)], + lyp_file: &PathBuf::from(BASIC_LYP), + }, + ) + }); + assert!(out.is_valid(), "shapes_loop(n={n}) invalid"); + let nobj = count_objects(&out); + eprintln!( + "shapes_loop n={n:>6} objects={nobj:>6} time={dt:>11.3?} peak={:>8.2} MiB", + mem as f64 / (1usize << 20) as f64 + ); + rows.push((n as f64, dt.as_secs_f64(), mem, nobj)); + } + write_bench_csv("shapes_loop", &rows); + } + + /// Axis 2: number of mutually-coupled constraints solved by the general + /// (dense) linear-constraint solver. + #[test] + #[ignore = "scaling benchmark; run in release, serially: cargo test -p compiler --release -- --ignored --test-threads=1 bench_"] + fn bench_constraints() { + let _g = bench_guard(); + let o = parse_workspace_with_std(ARGON_STRESS_CONSTRAINTS); + assert!(o.static_errors().is_empty(), "{:?}", o.static_errors()); + let ast = o.ast(); + let mut rows = Vec::new(); + for &n in &bench_sizes("ARGON_BENCH_CONSTRAINTS", &[32, 64, 128, 256, 512, 1024]) { + let (dt, mem, out) = measure(1, || { + compile( + &ast, + CompileInput { + cell: &["constraints"], + args: vec![CellArg::Int(n)], + lyp_file: &PathBuf::from(BASIC_LYP), + }, + ) + }); + assert!(out.is_valid(), "constraints(n={n}) invalid"); + let nobj = count_objects(&out); + eprintln!( + "constraints n={n:>6} objects={nobj:>6} time={dt:>11.3?} peak={:>8.2} MiB", + mem as f64 / (1usize << 20) as f64 + ); + rows.push((n as f64, dt.as_secs_f64(), mem, nobj)); + } + write_bench_csv("constraints", &rows); + } + + /// Axis 3: number of instances of a single (cached) leaf cell. + #[test] + #[ignore = "scaling benchmark; run in release, serially: cargo test -p compiler --release -- --ignored --test-threads=1 bench_"] + fn bench_instances() { + let _g = bench_guard(); + let o = parse_workspace_with_std(ARGON_STRESS_INSTANCES); + assert!(o.static_errors().is_empty(), "{:?}", o.static_errors()); + let ast = o.ast(); + let mut rows = Vec::new(); + for &n in &bench_sizes( + "ARGON_BENCH_INSTANCES", + &[500, 1000, 2000, 4000, 8000, 16000, 32000, 64000], + ) { + let (dt, mem, out) = measure(3, || { + compile( + &ast, + CompileInput { + cell: &["instances"], + args: vec![CellArg::Int(n)], + lyp_file: &PathBuf::from(BASIC_LYP), + }, + ) + }); + assert!(out.is_valid(), "instances(n={n}) invalid"); + let nobj = count_objects(&out); + eprintln!( + "instances n={n:>6} objects={nobj:>6} time={dt:>11.3?} peak={:>8.2} MiB", + mem as f64 / (1usize << 20) as f64 + ); + rows.push((n as f64, dt.as_secs_f64(), mem, nobj)); + } + write_bench_csv("instances", &rows); + } + + /// Axis 4: depth of cell hierarchy. Two series are produced: `single_ref` + /// references each child once (polynomial), and `double_ref` references it + /// twice, which triggers exponential structural-type expansion. + #[test] + #[ignore = "scaling benchmark; run in release, serially: cargo test -p compiler --release -- --ignored --test-threads=1 bench_"] + fn bench_hierarchy() { + let _g = bench_guard(); + let dir = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("build/bench_hier"); + std::fs::create_dir_all(&dir).unwrap(); + let lib = dir.join("lib.ar"); + + let mut rows = Vec::new(); + for depth in bench_sizes("ARGON_BENCH_HIER_SINGLE", &[4, 8, 16, 32, 48, 64, 96, 128]) + .into_iter() + .map(|d| d as usize) + { + std::fs::write(&lib, gen_hier(depth, false)).unwrap(); + let o = parse_workspace_with_std(&lib); + assert!(o.static_errors().is_empty(), "{:?}", o.static_errors()); + let ast = o.ast(); + let cellname = format!("h{depth}"); + let (dt, mem, out) = measure(2, || { + compile( + &ast, + CompileInput { + cell: &[&cellname], + args: vec![], + lyp_file: &PathBuf::from(BASIC_LYP), + }, + ) + }); + assert!(out.is_valid(), "hierarchy single-ref depth={depth} invalid"); + let nobj = count_objects(&out); + eprintln!( + "hier(1 ref) depth={depth:>4} cells={:>4} time={dt:>11.3?} peak={:>8.2} MiB", + count_cells(&out), + mem as f64 / (1usize << 20) as f64 + ); + rows.push((depth as f64, dt.as_secs_f64(), mem, nobj)); + } + write_bench_csv("hierarchy_single_ref", &rows); + + // `double_ref` binds the child cell twice, which (on the current build) + // makes the structural cell type grow quickly with depth, so the + // default sweep is kept shallow to stay within a few GiB. Override + // `ARGON_BENCH_HIER_DOUBLE` to push deeper. + let mut rows = Vec::new(); + for depth in bench_sizes("ARGON_BENCH_HIER_DOUBLE", &[2, 4, 6, 8, 10, 12, 14, 16, 18]) + .into_iter() + .map(|d| d as usize) + { + std::fs::write(&lib, gen_hier(depth, true)).unwrap(); + let o = parse_workspace_with_std(&lib); + assert!(o.static_errors().is_empty(), "{:?}", o.static_errors()); + let ast = o.ast(); + let cellname = format!("h{depth}"); + let (dt, mem, out) = measure(1, || { + compile( + &ast, + CompileInput { + cell: &[&cellname], + args: vec![], + lyp_file: &PathBuf::from(BASIC_LYP), + }, + ) + }); + assert!(out.is_valid(), "hierarchy double-ref depth={depth} invalid"); + let nobj = count_objects(&out); + eprintln!( + "hier(2 refs) depth={depth:>4} time={dt:>11.3?} peak={:>8.2} MiB", + mem as f64 / (1usize << 20) as f64 + ); + rows.push((depth as f64, dt.as_secs_f64(), mem, nobj)); + } + write_bench_csv("hierarchy_double_ref", &rows); + } + + // --- Smoke tests (run in the normal suite; keep these fast) --- + + #[test] + fn stress_shapes_smoke() { + let o = parse_workspace_with_std(ARGON_STRESS_SHAPES); + assert!(o.static_errors().is_empty(), "{:?}", o.static_errors()); + let ast = o.ast(); + for cell in ["shapes", "shapes_loop"] { + let out = compile( + &ast, + CompileInput { + cell: &[cell], + args: vec![CellArg::Int(64)], + lyp_file: &PathBuf::from(BASIC_LYP), + }, + ); + let d = out.unwrap_valid(); + let nrects = d + .cells + .values() + .flat_map(|c| c.objects.values()) + .filter(|o| matches!(o, SolvedValue::Rect(r) if !r.construction)) + .count(); + assert_eq!(nrects, 64, "{cell} should emit 64 rectangles"); + } + } + + #[test] + fn stress_constraints_smoke() { + let o = parse_workspace_with_std(ARGON_STRESS_CONSTRAINTS); + assert!(o.static_errors().is_empty(), "{:?}", o.static_errors()); + let ast = o.ast(); + let out = compile( + &ast, + CompileInput { + cell: &["constraints"], + args: vec![CellArg::Int(32)], + lyp_file: &PathBuf::from(BASIC_LYP), + }, + ); + assert!( + out.is_valid(), + "constraints ring should be fully determined: {out:?}" + ); + } + + #[test] + fn stress_instances_smoke() { + let o = parse_workspace_with_std(ARGON_STRESS_INSTANCES); + assert!(o.static_errors().is_empty(), "{:?}", o.static_errors()); + let ast = o.ast(); + let out = compile( + &ast, + CompileInput { + cell: &["instances"], + args: vec![CellArg::Int(64)], + lyp_file: &PathBuf::from(BASIC_LYP), + }, + ); + let d = out.unwrap_valid(); + let ninsts = d + .cells + .values() + .flat_map(|c| c.objects.values()) + .filter(|o| matches!(o, SolvedValue::Instance(_))) + .count(); + assert_eq!(ninsts, 64, "instances(64) should place 64 instances"); + } + + #[test] + fn stress_hierarchy_smoke() { + let o = parse_workspace_with_std(ARGON_STRESS_HIERARCHY); + assert!(o.static_errors().is_empty(), "{:?}", o.static_errors()); + let ast = o.ast(); + let out = compile( + &ast, + CompileInput { + cell: &["h8"], + args: vec![], + lyp_file: &PathBuf::from(BASIC_LYP), + }, + ); + let d = out.unwrap_valid(); + // h0..h8 = 9 cells of hierarchy. + assert_eq!(d.cells.len(), 9, "h8 should instantiate 9 cells deep"); + } + #[test] fn argon_scopes() { let o = parse_workspace_with_std(ARGON_SCOPES); diff --git a/examples/stress_constraints/lib.ar b/examples/stress_constraints/lib.ar new file mode 100644 index 0000000..d8c677e --- /dev/null +++ b/examples/stress_constraints/lib.ar @@ -0,0 +1,32 @@ +fn coupled_ring(prev: Rect, first: Rect, n: Int) { + // Build a *ring* of rectangles whose left edges are mutually coupled. + // Each step adds a rectangle `cur` and a two-variable difference + // constraint `prev.x0 - cur.x0 = 5` relating it to the previous one. + // Because every constraint involves two unknowns, none can be resolved + // by back-substitution: the whole ring must be solved simultaneously by + // the general linear-constraint solver (a dense SVD over the coupled + // component). The base case closes the ring with a single *sum* + // constraint, which makes the otherwise-underconstrained chain fully + // determined regardless of `n`. + #scope0 if n <= 0 { + eq(prev.x0 + first.x0, 100.); + } else { + let cur = crect(); + eq(cur.y0, 0.); + eq(cur.y1, 10.); + eq(cur.x1, cur.x0 + 10.); + eq(prev.x0 - cur.x0, 5.); + #scope1 coupled_ring(cur, first, n - 1); + } +} + +// Stress axis: number of *coupled* constraints. `constraints(n)` produces a +// single connected constraint component spanning `n + 1` rectangles, forcing +// the general solver to factor an O(n) x O(n) system. +cell constraints(n: Int) { + let first = crect(); + eq(first.y0, 0.); + eq(first.y1, 10.); + eq(first.x1, first.x0 + 10.); + #scope0 coupled_ring(first, first, n); +} diff --git a/examples/stress_hierarchy/lib.ar b/examples/stress_hierarchy/lib.ar new file mode 100644 index 0000000..6784905 --- /dev/null +++ b/examples/stress_hierarchy/lib.ar @@ -0,0 +1,57 @@ +cell h0() { + rect("met1", x0=0., y0=0., x1=10., y1=10.); +} + +// Each level `h{k}` instantiates the level below it (`h{k-1}`) and adds one +// rectangle, building a layout that is `k` cells deep. Compiling `h{k}` therefore +// exercises `k` levels of hierarchy. The instance is bound to a single variable +// (`i`); binding the child cell to an additional variable would cause the +// structural cell type to expand exponentially with depth (see bench/README.md). +cell h1() { + rect("met1", x0=0., y0=0., x1=10., y1=10.); + let i = inst(h0()); + eq(i.x, 0.); + eq(i.y, 10.); +} +cell h2() { + rect("met1", x0=0., y0=0., x1=10., y1=10.); + let i = inst(h1()); + eq(i.x, 0.); + eq(i.y, 10.); +} +cell h3() { + rect("met1", x0=0., y0=0., x1=10., y1=10.); + let i = inst(h2()); + eq(i.x, 0.); + eq(i.y, 10.); +} +cell h4() { + rect("met1", x0=0., y0=0., x1=10., y1=10.); + let i = inst(h3()); + eq(i.x, 0.); + eq(i.y, 10.); +} +cell h5() { + rect("met1", x0=0., y0=0., x1=10., y1=10.); + let i = inst(h4()); + eq(i.x, 0.); + eq(i.y, 10.); +} +cell h6() { + rect("met1", x0=0., y0=0., x1=10., y1=10.); + let i = inst(h5()); + eq(i.x, 0.); + eq(i.y, 10.); +} +cell h7() { + rect("met1", x0=0., y0=0., x1=10., y1=10.); + let i = inst(h6()); + eq(i.x, 0.); + eq(i.y, 10.); +} +cell h8() { + rect("met1", x0=0., y0=0., x1=10., y1=10.); + let i = inst(h7()); + eq(i.x, 0.); + eq(i.y, 10.); +} diff --git a/examples/stress_instances/lib.ar b/examples/stress_instances/lib.ar new file mode 100644 index 0000000..0fbbcaf --- /dev/null +++ b/examples/stress_instances/lib.ar @@ -0,0 +1,26 @@ +cell leaf() { + // A small leaf cell that is instantiated many times below. It is compiled + // exactly once and cached; every instance simply references it. + rect("met1", x0=0., y0=0., x1=10., y1=10.); +} + +fn place(c: Any, n: Int) { + // Recursively create `n` instances of cell `c`, each fully constrained to + // an absolute location. Every instance adds two solver variables (its x/y + // origin) resolved by back-substitution. + #scope0 if n <= 0 { + } else { + let it = inst(c); + eq(it.x, (n as Float) * 20.); + eq(it.y, 0.); + #scope1 place(c, n - 1); + } +} + +// Stress axis: number of cell instances. `instances(n)` places `n` copies of +// the (cached) `leaf` cell, stressing instance bookkeeping and GDS hierarchy +// emission while keeping per-leaf compilation cost constant. +cell instances(n: Int) { + let c = leaf(); + #scope0 place(c, n); +} diff --git a/examples/stress_shapes/lib.ar b/examples/stress_shapes/lib.ar new file mode 100644 index 0000000..0fc644e --- /dev/null +++ b/examples/stress_shapes/lib.ar @@ -0,0 +1,34 @@ +fn emit_shapes(n: Int) { + // Recursively emit `n` independent, fully-constrained rectangles. + // Each rectangle introduces 4 solver variables that are pinned directly + // by their kwargs, so the solver resolves them by back-substitution + // (no dense linear-algebra step is required). + #scope0 if n <= 0 { + } else { + let x = (n as Float) * 10.; + rect("met1", x0=x, y0=0., x1=x + 8., y1=8.); + #scope1 emit_shapes(n - 1); + } +} + +// Stress axis: number of shapes / editable objects in a single cell. +// `shapes(n)` produces a flat cell containing `n` rectangles. +cell shapes(n: Int) { + #scope0 emit_shapes(n); +} + +fn emit_shapes_loop(lst: [Int]) { + // Same geometry as `shapes`, but generated by iterating over a list + // produced by `std::range`. This exercises Argon's functional list + // representation (`cons`) in addition to geometry emission. + for i in lst { + let x = (i as Float) * 10.; + rect("met1", x0=x, y0=0., x1=x + 8., y1=8.); + } +} + +// Loop-based variant used to contrast iteration strategies in the benchmark. +cell shapes_loop(n: Int) { + let lst = #scope0 std::range(n); + #scope1 emit_shapes_loop(lst); +}