-
Notifications
You must be signed in to change notification settings - Fork 294
Create qubit-mapping pass #610
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
Conversation
|
@boschmitt Thank you for putting together this outline. As discussed, here is the additional information to add to this PR:
|
0ab1aaa to
6ead257
Compare
6ead257 to
b8ea9da
Compare
b8ea9da to
38a2f04
Compare
38a2f04 to
1181467
Compare
|
This mapping PR depends on #761 in order to properly handle measurements. |
[test] New Quake llvm-lit mapping tests (with measurements) [test] Update new llvm-lit tests to have measurement names [test] Update mapping_with_meas-1.qke CHECK data
Command Bot: Processing... |
|
CUDA Quantum Docs Bot: A preview of the documentation can be found here. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Round 1
Command Bot: Processing... |
|
CUDA Quantum Docs Bot: A preview of the documentation can be found here. |
Update mapping to support add'l topologies and specifications Support reading device information from a file. Support a star, include the ability to specify the index of the center qubit. Add device.computeAllPairShortestPaths() to all the device constructors. Print a better error message if the device is too small for the user's circuit. Create auxillary qubits if needed. Also remove them at the end of the pass if a subset (or all) of them did not end up being needed. Create a new mapping_v2p[] attribute so that downstream passes can determine exactly how the mapping changed the qubit placement. This will be particularly important for "observe"-type circuits that add measurements at the very end. Update tests
Command Bot: Processing... |
|
CUDA Quantum Docs Bot: A preview of the documentation can be found here. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have two forthcoming PR's that use these changes. One for IQM and one for OQC.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we need to separate pass initialization and pass execution more and make use of pass options.
Sorry for the delay in the review.
Command Bot: Processing... |
|
CUDA Quantum Docs Bot: A preview of the documentation can be found here. |
This PR adds a pass to do mapping. For more information see #669.
(From @bmhowe23): This PR does not add the mapping pass to any existing pipelines or backends. Those will come in separate PRs.