-
Notifications
You must be signed in to change notification settings - Fork 2.9k
Add new multithreaded TwoQubitPeepholeOptimization pass #13419
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
Open
mtreinish
wants to merge
86
commits into
Qiskit:main
Choose a base branch
from
mtreinish:two-qubit-peephole-parallel-pass
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 74 commits
Commits
Show all changes
86 commits
Select commit
Hold shift + click to select a range
4d160bc
Add new multithreaded TwoQubitPeepholeOptimization pass
mtreinish decee9a
Merge remote-tracking branch 'origin/main' into two-qubit-peephole-pa…
mtreinish 746758f
Add support for running the TwoQubitControlledUDecomposer
mtreinish ee70e65
Suprress clippy warning about mismatch enum variant sizes
mtreinish 4d4df68
Merge remote-tracking branch 'origin/main' into two-qubit-peephole-pa…
mtreinish cb6b70f
Embed 2q gate count into score as tie breaker
mtreinish f06a070
Release GIL during parallel portion
mtreinish 90b16e8
Merge branch 'main' into two-qubit-peephole-parallel-pass
mtreinish a175ee8
Fix lint
mtreinish af0c144
Merge remote-tracking branch 'origin/main' into two-qubit-peephole-pa…
mtreinish 79a46c5
Update ControlledUDecomposer to ensure we only run if the gate is con…
mtreinish 839b4c9
Add reversed synthesis for two qubit basis decomposer
mtreinish d9399a6
Fix handling of single direction gates
mtreinish b4c4360
Fix import cycle
mtreinish aefdc90
Merge branch 'main' into two-qubit-peephole-parallel-pass
mtreinish 746b953
Merge remote-tracking branch 'origin/main' into two-qubit-peephole-pa…
mtreinish f2bb1fb
Flip scoring value to (2q gate count, predicted error)
mtreinish 55b05c0
Add docstring to new pass
mtreinish 7756d1e
Add release note
mtreinish 6a01332
Run serially in multiprocessing context
mtreinish d83562b
Fix cache build
mtreinish 5f73b93
Add tests
mtreinish 5e6c4cb
Merge remote-tracking branch 'origin/main' into two-qubit-peephole-pa…
mtreinish 8c7e67c
Rebase updates
mtreinish f41e855
Adjust tests
mtreinish 3cdee4f
Clean-up test lint
mtreinish fd96145
Remove plugin method support from the new pass
mtreinish 89931a4
Fix oversight in test code
mtreinish 19368bb
Merge remote-tracking branch 'origin/main' into two-qubit-peephole-pa…
mtreinish 14e421c
Fix test failures
mtreinish 02785e1
Merge remote-tracking branch 'origin/main' into two-qubit-peephole-pa…
mtreinish c7ba671
Update target usage for recent changes
mtreinish 089d3b6
Merge remote-tracking branch 'origin/main' into two-qubit-peephole-pa…
mtreinish 9f820c1
Simplify argument typing on new dag builder
mtreinish bfdfe46
Use dag builder api
mtreinish f72df7d
Fix error handling for target lookup
mtreinish bb31eb5
Fix some bugs and expand tests
mtreinish 1985ff4
Merge remote-tracking branch 'origin/main' into two-qubit-peephole-pa…
mtreinish ed262ac
Deduplicate synthesis path between unitary synthesis and peephole
mtreinish 817c2b1
Fix target handling in peephole pass
mtreinish 24b3e44
Merge remote-tracking branch 'origin/main' into two-qubit-peephole-pa…
mtreinish dbbcb37
Fix merge conflict
mtreinish 439e1eb
Expand test coverage to check individual gate synthesis
mtreinish b24088a
Fix release note example
mtreinish 117b793
Merge remote-tracking branch 'origin/main' into two-qubit-peephole-pa…
mtreinish 3b92602
Include single qubit gate count in the heuristic
mtreinish 0374185
Fix approximate-by-default behaviour of `UnitarySynthesis`
jakelishman 3fce976
Merge remote-tracking branch 'origin/main' into two-qubit-peephole-pa…
mtreinish 8acceee
Merge remote-tracking branch 'jakelishman/correct-approximation-degre…
mtreinish a64f6c0
Update the pass to leverage unitary synthesis logic for decomposition
mtreinish 785a02b
Fix directionality test
mtreinish 437e900
Merge remote-tracking branch 'origin/main' into two-qubit-peephole-pa…
mtreinish 2f682d5
Fix dag reconstruction bug on insertion too early
mtreinish 79f2466
Remove smallvec usage for original sequence scoring
mtreinish 1cdaa61
Fix original score creation
mtreinish 4503c14
Merge remote-tracking branch 'origin/main' into two-qubit-peephole-pa…
mtreinish a7794ff
Fix comparison between original score and new score
mtreinish 8bcc573
Use Dashmap<NodeIndex, usize> instead of Mutex<HashMap<NodeIndex, usi…
mtreinish 4ecb01e
Use thread local storage for decomposer cache
mtreinish 76b40ab
Fix doc indent
mtreinish 76f5935
Appease the lint check changing http->https in the license header
mtreinish 2d40a18
Fix release note
mtreinish b88de4a
Merge remote-tracking branch 'origin/main' into two-qubit-peephole-pa…
mtreinish ce3dddf
Merge remote-tracking branch 'origin/main' into two-qubit-peephole-pa…
mtreinish 158725f
Return a user error from a decomposer build with an incorrect string …
mtreinish a8a3fe7
Merge remote-tracking branch 'origin/main' into two-qubit-peephole-pa…
mtreinish a1643a8
Fix scoring of single decomposition
mtreinish 8c58c3a
Merge remote-tracking branch 'origin/main' into two-qubit-peephole-pa…
mtreinish dfbe65d
Performance tuning
mtreinish 9356125
Merge remote-tracking branch 'origin/main' into two-qubit-peephole-pa…
mtreinish 9e3a651
Don't use a hashset for tracking processed runs
mtreinish 500a964
Merge remote-tracking branch 'origin/main' into two-qubit-peephole-pa…
mtreinish a8dce96
Remove unnecessary empty check and use Mutex::into_inner() when no mo…
mtreinish 2784217
Add atomic bool to tracking whether we've made a substitution
mtreinish 469c06b
Merge remote-tracking branch 'origin/main' into two-qubit-peephole-pa…
mtreinish b9ce054
Add release note details to the pass docstring
mtreinish 12b14ee
Update test module docstring
mtreinish f80db21
Update pass module docstring
mtreinish 8c03af3
Fix typo in code comment
mtreinish 819110d
Add docstrings for the new UnitarySynthesis helper methods
mtreinish 56ea5aa
Expand 2q basis fore new tests
mtreinish 31f616f
Use the peephole pass heuristic for best synthesis selection
mtreinish ddd8fdd
Add alt text to plot
mtreinish 7c2f549
Add missing docs ref label
mtreinish 5c6d650
Add xx +/- yy gates to test matrix
mtreinish 66a90de
Assert a single 2q gate on controlled u decomposition
mtreinish File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.