Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Oxidize SabreLayout pass #9116

Merged
merged 35 commits into from
Dec 8, 2022
Merged
Changes from 1 commit
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
42ebe34
Oxidize SabreLayout pass
mtreinish Nov 8, 2022
6e4d721
Use deepcopy for coupling map copy
mtreinish Nov 10, 2022
6865c15
Merge remote-tracking branch 'origin/main' into sabre-layout-rust
mtreinish Nov 10, 2022
64cc68e
Fix failing unitary synthesis tests
mtreinish Nov 11, 2022
1e2e318
Add release note
mtreinish Nov 11, 2022
c6ac421
Run BarrierBeforeMeasurement before new SabreLayout
mtreinish Nov 11, 2022
3171a6f
Improve docstrings
mtreinish Nov 11, 2022
d5ce6c4
Set a fixed number of layout trials in preset pass managers
mtreinish Nov 11, 2022
5c2cef4
Update tests for layout changes
mtreinish Nov 11, 2022
784a9b5
Set a fixed number of layout trials in SabreLayout tests
mtreinish Nov 11, 2022
bda04ea
Run SabreSwap in parallel if only a single layout trial
mtreinish Nov 11, 2022
a021c7a
Merge remote-tracking branch 'origin/main' into sabre-layout-rust
mtreinish Nov 11, 2022
5dbd76b
Remove duplicated SabreDAG creation
mtreinish Nov 11, 2022
d98ef6c
Correctly apply selected layout on dag nodes
mtreinish Nov 14, 2022
1a6a43d
Remove unnecessary clone from serial layout trials
mtreinish Nov 14, 2022
19c3182
Fix seed setup when no user seed specified
mtreinish Nov 14, 2022
d878fc4
Merge remote-tracking branch 'origin/main' into sabre-layout-rust
mtreinish Nov 14, 2022
7a6cb41
Start from trivial layout for routing stage
mtreinish Nov 14, 2022
6061716
Revert "Correctly apply selected layout on dag nodes"
mtreinish Nov 14, 2022
7c69de5
Deduplicate NLayout trivial layout creation
mtreinish Nov 14, 2022
f16d0a3
Fix fixed layout tests after updates
mtreinish Nov 14, 2022
b206473
Try nesting parallelism in the sabres
mtreinish Nov 14, 2022
1467e87
Add skip_routing argument to preserve custom user provided routing
mtreinish Nov 15, 2022
c09a03a
Fix typo in docstring
mtreinish Nov 15, 2022
ddaf4ef
Merge remote-tracking branch 'origin/main' into sabre-layout-rust
mtreinish Nov 15, 2022
87f7a57
Update random seed usage in rust code
mtreinish Nov 15, 2022
488c447
Merge remote-tracking branch 'origin/main' into sabre-layout-rust
mtreinish Nov 21, 2022
fa61681
s/retworkx/rustworkx/g
mtreinish Nov 21, 2022
bb9b865
Merge remote-tracking branch 'origin/main' into sabre-layout-rust
mtreinish Nov 22, 2022
bf9bef8
Add alternate constructor for NLayout from a logic_to_phys vec
mtreinish Nov 22, 2022
6c6fccd
Move layout embedding into a method
mtreinish Nov 22, 2022
309d71a
Merge branch 'main' into sabre-layout-rust
mtreinish Nov 22, 2022
11c676d
Merge remote-tracking branch 'origin/main' into sabre-layout-rust
mtreinish Dec 7, 2022
e89ee10
Simplify pass logic and update comments
mtreinish Dec 7, 2022
cde2b48
Merge branch 'main' into sabre-layout-rust
mergify[bot] Dec 8, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Try nesting parallelism in the sabres
Looking at profiles for running the new SabreLayout pass, as expected
the runtime of the rust SabreSwap routines is dominating. This is
because we've basically serialized the sabre swap routines and are
running multiple seed trials. As an experiment this commit sets the
inner SabreSwap routines to run in parallel too. Since the rayon
algorithm uses a work stealing algorithm this hopefully shouldn't cause
too much extra overhead, especially because the layout trials are quite
fast. This ideally means we're just scheduling each sabre swap trial in
a big parallel work queue and rayon does the rest of the magic to figure
out how to execute things. Initial testing is showing an improvement for
large circuits and a more modest improvement for more modest circuits.
mtreinish committed Nov 14, 2022
commit b206473d9f086e2ff0c7a288a3696e7600cb5394
2 changes: 1 addition & 1 deletion src/sabre_layout.rs
Original file line number Diff line number Diff line change
@@ -68,7 +68,7 @@ pub fn sabre_layout_and_routing(
seed_trial,
max_iterations,
num_swap_trials,
false,
run_in_parallel,
),
)
})