-
Notifications
You must be signed in to change notification settings - Fork 42
✨ Neutral Atom QDMI Device #996
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
base: main
Are you sure you want to change the base?
Conversation
@burgholzer This PR is far from being ready, that's why it is labeled as For context: The protobuf file in |
Codecov ReportAttention: Patch coverage is
📢 Thoughts on this report? Let us know! |
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.
Huge props @ystade. This was extremely pleasant to browse through. The current setup feels really solid and I believe all of my comments (which are still quite some), are on fine details and tiny little recommendations that you might have planned anyway. I hope they still provide you with additional food for thought to push this further.
One interesting aspect that I have not yet thought about is how this will play out on Windows once a Driver is involved. But that's something to tackle in a separate PR.
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.
Just something to keep in mind: This should probably already consider QDMI 1.2 (or at least the changes that have already landed). AFAIR, this affects how sites are represented and, at least, parts of the job interface.
The new dependency of When doing that, Now, the ugly part comes: The cmake configuration of However, when we want to ship the QDMI NA device at some point with the Python wheel, we need to be very careful what we include in the Python wheel. Because of #1021 together with the fact that the install targets of |
In general, concerning |
## Description This PR does not immediately solve an issue but contributes to avoiding an issue that arose in #996. In particular, it allows to select the install components explicitly and, hence, avoid installing components that were added by dependencies where install instructions cannot be deactivated, e.g., RE2. Also in general, I think, it is a good idea to set the install components for the wheel explicitly. ## Checklist: <!--- This checklist serves as a reminder of a couple of things that ensure your pull request will be merged swiftly. --> - [x] The pull request only contains commits that are focused and relevant to this change. - [ ] I have added appropriate tests that cover the new/changed functionality. - [ ] I have updated the documentation to reflect these changes. - [ ] I have added entries to the changelog for any noteworthy additions, changes, fixes or removals. - [ ] I have added migration instructions to the upgrade guide (if needed). - [x] The changes follow the project's style guidelines and introduce no new warnings. - [x] The changes are fully tested and pass the CI checks. - [x] I have reviewed my own code changes. --------- Signed-off-by: Yannick Stade <[email protected]> Co-authored-by: Lukas Burgholzer <[email protected]>
This reverts commit 9142a5b.
Description
This PR adds a universal QDMI device implementation for neutral atom-based quantum computers. The device itself is specified in a JSON file whose structure is given by a protobuf definition. During compilation time, the JSON file is read and translated to C++ code similar to how TableGen works in the LLVM project.
Subsequent PRs will add a QDMI driver utilizing the new device and a FoMaC tailored to those neutral atom devices.
Checklist: