# Geometry-cache measurement baseline

Commit: 9756530f. Captured before the shared-geometry rewrite. The larger compiler refactor is unfinished.

The benchmark now runs a cold expansion followed by a warm expansion using the same search cache and fresh per-candidate costing state. Both expose cache counters and capacity-based payload estimates. Process RSS is recorded separately; payload estimates exclude allocator bookkeeping and can count shared traversal bodies more than once.

The uncached flag disables ExpansionCache copies/destination geometry only, matching its previous behavior. The existing per-candidate GeometryAnalysis remains enabled in those control runs. All measurements used RAYON_NUM_THREADS=8 and taskset cores 8–15. Commands, binary and raw reports are retained here. Planning is measured separately and is not included below.

| Workload | Expansion disabled / cold / warm (ms) | Warm recost / footprint (ms) | Retained copy recipes / destination geometry / costing geometry (MB) |
| --- | --- | --- | --- |
| MLP B2 Repeat3 | 1903 / 1421 / 953 | 305 / 353 | 0.067 / 34.510 / 36.382 |
| Materialized attention B1 | 704 / 478 / 418 | 117 / 206 | 0.085 / 22.709 / 2.311 |
| Saved full SigLIP 27 layers | 8272 / 9982 / 6696 | 931 / 1172 | 1.149 / 149.719 / 31.316 |

The full SigLIP cold cache is slower than the disabled run in these observations, while its warm expansion improves. These are individual CPU timing observations; they establish a concrete baseline, not a statistical speedup claim. No hardware kernels or normal compilation decisions changed, so no device rerun was needed for the measurement code.

Structural counts, low-cycle estimates and exchange-footprint metrics match across disabled/cold/warm runs for all three workloads. Existing codegen tests, including complete cached/uncached low-graph comparisons, passed: 336 passed, 6 ignored. Release CLI build, formatting and diff checks passed.

Next is actual consolidation. Normalized view/pair facts should be shared, and launch selection should leave the old copy cache rather than being moved into neutral geometry under another name. Current costing already has 60,051 views / 117,900 pairs for MLP B2 and 150,329 pairs for SigLIP; reusing the old 32,768-entry limit without measurement would undersize that shared work.
