Skip to content

Speed up candidate cost evaluation#132

Merged
AnasSarkiz merged 1 commit into
tscircuit:mainfrom
AnasSarkiz:agent/inline-routing-hot-path
Jul 18, 2026
Merged

Speed up candidate cost evaluation#132
AnasSarkiz merged 1 commit into
tscircuit:mainfrom
AnasSarkiz:agent/inline-routing-hot-path

Conversation

@AnasSarkiz

Copy link
Copy Markdown
Member

Inline static segment-geometry evaluation in the candidate hot loop and precompute endpoint reservation codes, avoiding repeated helper and Set traversal overhead without changing solver decisions.

Validation:

  • 97/97 tests, typecheck, build, and format check pass
  • bundled SRJ18 remains 4/6 with identical cost metrics
  • representative Pipeline 7 SRJ18 tiny-stage aggregate: 151.38s -> 124.49s (17.8% faster)
  • samples 1, 6, 12, 14, and 15 retain identical output hashes, iterations, rip/blocker decisions, and region costs

@vercel

vercel Bot commented Jul 17, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
tiny-hypergraph Ready Ready Preview, Comment Jul 17, 2026 6:22am

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.
The result comment shows the matching dataset from the latest stored main-branch benchmark artifact beside the PR run; main is not rerun for each PR benchmark request.

Examples:

  • /benchmark -> hg07, all samples, core solver
  • /benchmark --dataset srj18 --limit 20 -> first 20 srj18 samples
  • /benchmark --dataset srj18 --concurrency auto -> srj18 samples with runner CPU-count concurrency
  • /benchmark --sample sample002 -> one hg07 sample
  • /benchmark --limit 20 --solver poly -> first 20 hg07 samples with the poly solver
  • /benchmark --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.

@AnasSarkiz

Copy link
Copy Markdown
Member Author

/benchmark

@tscircuitbot

tscircuitbot commented Jul 17, 2026

Copy link
Copy Markdown

Tiny Hypergraph Benchmark Results

Run Dataset Solver Families Success P50 P95
Main hg07 core default 99.0% 0.122s 0.589s
PR hg07 core default 99.0% 0.112s 0.565s
Main Branch Details
Metric Value
Dataset hg07
Solver core
Families default
Samples 105
Success rate 99.0%
Improved rate 58.7%
Zero final max region cost rate 1.0%
Avg baseline max region cost 0.657
Avg final max region cost 0.264
Avg max region delta 0.393
Avg candidate count 7.990
Avg duration 0.190s
P50 duration 0.122s
P95 duration 0.589s
Sample Status Baseline Final Delta Attempts Duration Error
sample001 success 0.017 0.017 0.000 5 0.072s
sample002 success 0.391 0.365 0.025 8 0.350s
sample003 success 0.242 0.220 0.022 8 0.142s
sample004 success 0.175 0.149 0.026 8 0.131s
sample005 success 0.042 0.042 0.000 5 0.018s
sample006 success 0.301 0.301 0.000 9 0.043s
sample007 success 0.143 0.143 0.000 10 0.028s
sample008 success 0.121 0.121 0.000 9 0.052s
sample009 success 0.301 0.301 0.000 10 0.122s
sample010 success 0.183 0.043 0.140 10 0.103s
sample011 success 0.301 0.301 0.000 10 0.059s
sample012 success 0.156 0.054 0.102 9 0.162s
sample013 success 0.233 0.233 0.000 7 0.085s
sample014 failed n/a n/a n/a 0 0.002s Error: Connection "source_trace_69" could not be mapped to route endpoints
sample015 success 0.039 0.039 0.000 5 0.008s
sample016 success 0.059 0.059 0.000 5 0.009s
sample017 success 0.105 0.105 0.000 8 0.054s
sample018 success 0.369 0.289 0.080 7 0.387s
sample019 success 0.156 0.156 0.000 10 0.058s
sample020 success 0.387 0.223 0.164 9 0.413s
sample021 success 0.878 0.426 0.452 8 0.482s
sample022 success 0.236 0.209 0.027 10 0.261s
sample023 success 0.525 0.337 0.188 9 0.444s
sample024 success 0.375 0.296 0.079 8 0.286s
sample025 success 0.280 0.217 0.063 10 0.151s
sample026 success 0.240 0.240 0.000 5 0.164s
sample027 success 0.250 0.250 0.000 6 0.336s
sample028 success 0.253 0.237 0.016 10 0.080s
sample029 success 0.545 0.491 0.055 7 0.313s
sample030 success 0.302 0.302 0.000 9 0.073s
sample031 success 0.636 0.405 0.231 9 0.126s
sample032 success 0.508 0.421 0.087 6 0.567s
sample033 success 0.047 0.047 0.000 5 0.013s
sample034 success 0.217 0.217 0.000 10 0.060s
sample035 success 0.304 0.301 0.003 7 0.211s
sample036 success 0.053 0.053 0.000 10 0.011s
sample037 success 0.722 0.368 0.354 9 0.911s
sample038 success 0.156 0.156 0.000 10 0.183s
sample039 success 0.411 0.240 0.171 9 0.324s
sample040 success 0.156 0.156 0.000 9 0.080s
sample041 success 0.378 0.234 0.144 7 0.289s
sample042 success 0.122 0.087 0.035 8 0.140s
sample043 success 0.175 0.175 0.000 10 0.061s
sample044 success 0.272 0.240 0.032 10 0.155s
sample045 success 0.100 0.100 0.000 10 0.043s
sample046 success 0.000 0.000 0.000 0 0.004s
sample047 success 0.217 0.188 0.029 9 0.108s
sample048 success 0.223 0.223 0.000 10 0.137s
sample049 success 0.450 0.450 0.000 9 0.060s
sample050 success 0.433 0.300 0.133 9 0.622s
sample051 success 0.280 0.265 0.016 6 0.097s
sample052 success 0.133 0.090 0.043 7 0.060s
sample053 success 0.244 0.244 0.000 9 0.298s
sample054 success 0.268 0.217 0.051 8 0.306s
sample055 success 0.628 0.391 0.237 9 0.492s
sample056 success 0.401 0.247 0.154 10 0.589s
sample057 success 0.298 0.192 0.106 9 0.344s
sample058 success 0.242 0.178 0.064 9 0.294s
sample059 success 0.998 0.713 0.285 6 0.348s
sample060 success 0.398 0.351 0.047 5 0.206s
sample061 success 0.368 0.365 0.003 8 0.260s
sample062 success 0.390 0.335 0.055 6 0.387s
sample063 success 0.270 0.153 0.117 9 0.030s
sample064 success 0.217 0.217 0.000 10 0.101s
sample065 success 0.334 0.301 0.033 9 0.188s
sample066 success 0.062 0.062 0.000 9 0.038s
sample067 success 0.714 0.581 0.133 5 0.612s
sample068 success 0.489 0.361 0.128 5 0.602s
sample069 success 0.041 0.041 0.000 9 0.014s
sample070 success 0.253 0.253 0.000 9 0.210s
sample071 success 0.793 0.672 0.121 6 0.359s
sample072 success 0.110 0.108 0.002 9 0.093s
sample073 success 0.741 0.654 0.087 9 0.188s
sample074 success 0.117 0.103 0.015 10 0.021s
sample075 success 0.217 0.217 0.000 9 0.013s
sample076 success 0.386 0.386 0.000 7 0.088s
sample077 success 25.120 0.623 24.497 7 0.280s
sample078 success 0.101 0.049 0.052 8 0.027s
sample079 success 0.107 0.107 0.000 10 0.032s
sample080 success 0.182 0.077 0.105 9 0.094s
sample081 success 0.148 0.148 0.000 10 0.070s
sample082 success 0.217 0.217 0.000 7 0.051s
sample083 success 0.493 0.449 0.043 6 0.557s
sample084 success 0.250 0.110 0.141 10 0.026s
sample085 success 0.172 0.147 0.025 9 0.093s
sample086 success 0.182 0.095 0.087 8 0.166s
sample087 success 0.156 0.156 0.000 10 0.030s
sample088 success 0.758 0.758 0.000 2 0.229s
sample089 success 0.324 0.217 0.107 8 0.211s
sample090 success 0.096 0.065 0.031 8 0.073s
sample091 success 0.386 0.325 0.061 5 0.448s
sample092 success 0.181 0.181 0.000 8 0.028s
sample093 success 11.141 1.090 10.051 6 0.290s
sample094 success 1.556 1.063 0.493 5 0.244s
sample095 success 0.197 0.118 0.079 10 0.036s
sample096 success 0.032 0.032 0.000 10 0.020s
sample097 success 0.791 0.740 0.051 6 0.753s
sample098 success 1.053 0.534 0.519 7 0.487s
sample099 success 0.247 0.141 0.106 7 0.109s
sample100 success 0.211 0.150 0.061 8 0.130s
sample101 success 0.989 0.989 0.000 9 0.092s
sample102 success 0.301 0.301 0.000 6 0.029s
sample103 success 0.058 0.043 0.014 9 0.037s
sample104 success 0.074 0.074 0.000 10 0.020s
sample105 success 0.187 0.187 0.000 6 0.076s
PR Details
Metric Value
Dataset hg07
Solver core
Families default
Samples 105
Success rate 99.0%
Improved rate 58.7%
Zero final max region cost rate 1.0%
Avg baseline max region cost 0.657
Avg final max region cost 0.264
Avg max region delta 0.393
Avg candidate count 7.990
Avg duration 0.183s
P50 duration 0.112s
P95 duration 0.565s
Sample Status Baseline Final Delta Attempts Duration Error
sample001 success 0.017 0.017 0.000 5 0.060s
sample002 success 0.391 0.365 0.025 8 0.311s
sample003 success 0.242 0.220 0.022 8 0.144s
sample004 success 0.175 0.149 0.026 8 0.147s
sample005 success 0.042 0.042 0.000 5 0.017s
sample006 success 0.301 0.301 0.000 9 0.046s
sample007 success 0.143 0.143 0.000 10 0.047s
sample008 success 0.121 0.121 0.000 9 0.091s
sample009 success 0.301 0.301 0.000 10 0.167s
sample010 success 0.183 0.043 0.140 10 0.125s
sample011 success 0.301 0.301 0.000 10 0.025s
sample012 success 0.156 0.054 0.102 9 0.069s
sample013 success 0.233 0.233 0.000 7 0.073s
sample014 failed n/a n/a n/a 0 0.002s Error: Connection "source_trace_69" could not be mapped to route endpoints
sample015 success 0.039 0.039 0.000 5 0.010s
sample016 success 0.059 0.059 0.000 5 0.011s
sample017 success 0.105 0.105 0.000 8 0.052s
sample018 success 0.369 0.289 0.080 7 0.339s
sample019 success 0.156 0.156 0.000 10 0.047s
sample020 success 0.387 0.223 0.164 9 0.350s
sample021 success 0.878 0.426 0.452 8 0.373s
sample022 success 0.236 0.209 0.027 10 0.218s
sample023 success 0.525 0.337 0.188 9 0.338s
sample024 success 0.375 0.296 0.079 8 0.272s
sample025 success 0.280 0.217 0.063 10 0.106s
sample026 success 0.240 0.240 0.000 5 0.142s
sample027 success 0.250 0.250 0.000 6 0.309s
sample028 success 0.253 0.237 0.016 10 0.094s
sample029 success 0.545 0.491 0.055 7 0.319s
sample030 success 0.302 0.302 0.000 9 0.065s
sample031 success 0.636 0.405 0.231 9 0.116s
sample032 success 0.508 0.421 0.087 6 0.558s
sample033 success 0.047 0.047 0.000 5 0.013s
sample034 success 0.217 0.217 0.000 10 0.058s
sample035 success 0.304 0.301 0.003 7 0.212s
sample036 success 0.053 0.053 0.000 10 0.013s
sample037 success 0.722 0.368 0.354 9 0.812s
sample038 success 0.156 0.156 0.000 10 0.091s
sample039 success 0.411 0.240 0.171 9 0.266s
sample040 success 0.156 0.156 0.000 9 0.108s
sample041 success 0.378 0.234 0.144 7 0.334s
sample042 success 0.122 0.087 0.035 8 0.054s
sample043 success 0.175 0.175 0.000 10 0.041s
sample044 success 0.272 0.240 0.032 10 0.215s
sample045 success 0.100 0.100 0.000 10 0.022s
sample046 success 0.000 0.000 0.000 0 0.003s
sample047 success 0.217 0.188 0.029 9 0.043s
sample048 success 0.223 0.223 0.000 10 0.086s
sample049 success 0.450 0.450 0.000 9 0.066s
sample050 success 0.433 0.300 0.133 9 0.565s
sample051 success 0.280 0.265 0.016 6 0.102s
sample052 success 0.133 0.090 0.043 7 0.067s
sample053 success 0.244 0.244 0.000 9 0.298s
sample054 success 0.268 0.217 0.051 8 0.309s
sample055 success 0.628 0.391 0.237 9 0.500s
sample056 success 0.401 0.247 0.154 10 0.592s
sample057 success 0.298 0.192 0.106 9 0.327s
sample058 success 0.242 0.178 0.064 9 0.285s
sample059 success 0.998 0.713 0.285 6 0.367s
sample060 success 0.398 0.351 0.047 5 0.211s
sample061 success 0.368 0.365 0.003 8 0.246s
sample062 success 0.390 0.335 0.055 6 0.401s
sample063 success 0.270 0.153 0.117 9 0.028s
sample064 success 0.217 0.217 0.000 10 0.106s
sample065 success 0.334 0.301 0.033 9 0.196s
sample066 success 0.062 0.062 0.000 9 0.034s
sample067 success 0.714 0.581 0.133 5 0.654s
sample068 success 0.489 0.361 0.128 5 0.613s
sample069 success 0.041 0.041 0.000 9 0.015s
sample070 success 0.253 0.253 0.000 9 0.204s
sample071 success 0.793 0.672 0.121 6 0.383s
sample072 success 0.110 0.108 0.002 9 0.132s
sample073 success 0.741 0.654 0.087 9 0.222s
sample074 success 0.117 0.103 0.015 10 0.029s
sample075 success 0.217 0.217 0.000 9 0.015s
sample076 success 0.386 0.386 0.000 7 0.105s
sample077 success 25.120 0.623 24.497 7 0.315s
sample078 success 0.101 0.049 0.052 8 0.032s
sample079 success 0.107 0.107 0.000 10 0.018s
sample080 success 0.182 0.077 0.105 9 0.052s
sample081 success 0.148 0.148 0.000 10 0.037s
sample082 success 0.217 0.217 0.000 7 0.042s
sample083 success 0.493 0.449 0.043 6 0.466s
sample084 success 0.250 0.110 0.141 10 0.030s
sample085 success 0.172 0.147 0.025 9 0.116s
sample086 success 0.182 0.095 0.087 8 0.171s
sample087 success 0.156 0.156 0.000 10 0.038s
sample088 success 0.758 0.758 0.000 2 0.242s
sample089 success 0.324 0.217 0.107 8 0.227s
sample090 success 0.096 0.065 0.031 8 0.072s
sample091 success 0.386 0.325 0.061 5 0.472s
sample092 success 0.181 0.181 0.000 8 0.031s
sample093 success 11.141 1.090 10.051 6 0.281s
sample094 success 1.556 1.063 0.493 5 0.221s
sample095 success 0.197 0.118 0.079 10 0.028s
sample096 success 0.032 0.032 0.000 10 0.018s
sample097 success 0.791 0.740 0.051 6 0.782s
sample098 success 1.053 0.534 0.519 7 0.483s
sample099 success 0.247 0.141 0.106 7 0.117s
sample100 success 0.211 0.150 0.061 8 0.128s
sample101 success 0.989 0.989 0.000 9 0.112s
sample102 success 0.301 0.301 0.000 6 0.033s
sample103 success 0.058 0.043 0.014 9 0.041s
sample104 success 0.074 0.074 0.000 10 0.020s
sample105 success 0.187 0.187 0.000 6 0.077s

Workflow: View run
Artifact: https://github.com/tscircuit/tiny-hypergraph/actions/runs/29568573025

@seveibar seveibar left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs more significant dataset- obfuscates without actual gain on large datasets most likely- the JIT behaves dofferently. Avoid obfuscating optimizations

@AnasSarkiz
AnasSarkiz merged commit bdd0f01 into tscircuit:main Jul 18, 2026
7 checks passed
@AnasSarkiz
AnasSarkiz deleted the agent/inline-routing-hot-path branch July 19, 2026 05:46
@tscircuitbot

Copy link
Copy Markdown

Thank you for your contribution! 🎉

PR Rating: ⭐⭐⭐
Impact: Major

Track your contributions and see the leaderboard at: tscircuit Contribution Tracker


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.

4 participants