Skip to content

[na] Let stage weight change the chosen schedule - #526

Merged
cursor[bot] merged 2 commits into
mainfrom
cursor/stage-weight-choice-aa1b
Oct 1, 2026
Merged

cursor[bot] merged 2 commits into
mainfrom
cursor/stage-weight-choice-aa1b

Conversation

@arniber21

@arniber21 arniber21 commented Oct 1, 2026 •

Copy link
Copy Markdown
Owner

Summary

Next slice of issue 484. A weighted zoned layer can defer one placed gate into a later Rydberg stage when that is a strictly cheaper §9 cost. rydberg_stage_weight then changes which verified schedule is chosen. Movement, transfer, and idle weights already change a one-gate orientation; this slice is the stage-count choice.

Issue 484 stays open.

What changed

  • After a layer is assigned, PlacementCostModel::Weighted compares keeping every placed gate against moving one gate into the follow-up layer. The split is taken only when the follow-up can place every deferred gate and the total is strictly lower.
  • Time and ErrorBudget schedules are unchanged. Placeholder weights still select Time.
  • A verified-schedule test places two CZ gates on adjacent pairs that cannot fire together. Movement, transfer, and idle weights stay fixed and positive. A stage weight below that long-move cost defers the gate (two verified stages). A stage weight above it keeps one verified stage. Each verified total is lower under the weights that chose it.

Still open on issue 484

  • Document cost_model fields, units, the canonical formula, and schema versioning.
  • Error-budget mode and the placeholder time objective still do not read arbitrary target weights.
  • Diagnostics for unsupported or inconsistent weights beyond non-finite and negative values.
  • Stats echoing the effective objective.
  • A documented migration for time-only and error-budget CLI modes.
  • Tests that omitted optional weights keep the documented default.

The resource report already records each component, weight, and total from the verified schedule.

Test

cargo test -p quon_na --features mlir --lib -- rydberg_stage_weight_selects changing_target_weights_selects

Open in Web Open in Cursor 

A weighted layer keeps today's assignment unless moving one placed gate
into a follow-up layer is a strictly cheaper section-9 cost. That lets
rydberg_stage_weight change the verified stage count.

Co-authored-by: Arnab Ghosh <ag2583@cornell.edu>
@vercel

vercel Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

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

Project Deployment Actions Updated
quon Ready Ready Preview Oct 1, 2026 5:47am UTC

The stage-count fixture turned movement weight on and off, so the long
move was free under stage-only weights. Keep movement, transfer, and
idle fixed and put the stage weight on either side of that cost.

Co-authored-by: Arnab Ghosh <ag2583@cornell.edu>
@cursor
cursor Bot marked this pull request as ready for review October 1, 2026 05:50
@cursor
cursor Bot merged commit c31f54c into main Oct 1, 2026
22 of 23 checks passed

This branch was successfully deployed

1 active deployment
Preview — 189fe5f0 Deployed Oct 1, 2026 by vercel[bot]
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