Skip to content

Reuse committed geometry in relaxed blocker searches - #178

Open
seveibar wants to merge 1 commit into
codex/pathing-negotiationfrom
codex/blocker-hop-allocation
Open

Reuse committed geometry in relaxed blocker searches#178
seveibar wants to merge 1 commit into
codex/pathing-negotiationfrom
codex/blocker-hop-allocation

Conversation

@seveibar

@seveibar seveibar commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Relaxed blocker searches repeatedly rebuilt the same committed crossing geometry and temporary owner collections for every candidate hop. Cache committed segment geometry for the duration of one synchronous search, reuse the candidate hop geometry across its owner comparisons, and build ordered owner lists directly. Each subsequent search starts with a fresh cache, so rerips and newly committed routes are immediately reflected.

Routing costs, neighbor order, owner order, search limits, and invariant errors are unchanged. This is stacked on #176; the production follow-up is tracked in tscircuit/tscircuit-autorouter#2447.

Validation:

  • bun run typecheck passes.
  • bun test ./tests --timeout 9999999: 136 tests, 7,993 assertions, one snapshot pass.
  • A generic shared-crossing regression checks first-seen owner ordering, deduplication, clearing, and recommitting between searches.
  • Captured SRJ18 sample 6 and 15 solves produce byte-identical output and all solver statistics. They retain 1,728,537 and 458,667 iterations, respectively.
  • Alternating the same captured sample 6 blocker search, after two warmups per implementation, reduces mean process CPU from 2,143.8 ms to 1,418.4 ms over ten measured runs per implementation (33.8%). Every complete search result is identical. Full captured solve process CPU also decreased for both boards; those wall timings were noisy under concurrent local jobs, so the isolated result is the primary timing evidence. Hosted end-to-end benchmark verification remains with the autorouter integration.

@vercel

vercel Bot commented Sep 8, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
tiny-hypergraph Ready Ready Preview Sep 8, 2026 5:00pm UTC

Request Review

@tscircuitbot

Copy link
Copy Markdown

Benchmark This PR

Run benchmarks by commenting on this PR:

/benchmark [benchmark.sh args...]
/benchmark --dataset <hg07|srj18> --limit <n> --solver <core|poly> --families <default|default+deep|all> --concurrency <n|auto>

Everything after /benchmark is forwarded directly to ./benchmark.sh.
Every command runs current main and the PR head sequentially on the same Blacksmith machine, then reports their results side by side.

Examples:

  • /benchmark -> all committed completed SRJ18 Pipeline7 cases, core solver
  • /benchmark --limit 4 -> first four committed Pipeline7 cases
  • /benchmark --dataset srj18 --concurrency auto -> srj18 samples with runner CPU-count concurrency
  • /benchmark --sample sample003 -> one committed SRJ18 Pipeline7 case
  • /benchmark --dataset hg07 --limit 20 --solver poly -> first 20 hg07 samples with the poly solver
  • /benchmark --dataset hg07 --limit 40 --families default+deep -> first 40 hg07 samples with deeper candidate families

Any PR whose title contains [BENCHMARK TEST] will automatically run the benchmark workflow on PR updates.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants