-
Notifications
You must be signed in to change notification settings - Fork 294
State synthesis for quantum devices #2291
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
623ab4b to
4517712
Compare
I, Ben Howe <bhowe@nvidia.com>, hereby add my Signed-off-by to this commit: 86681ef Signed-off-by: Ben Howe <bhowe@nvidia.com> Signed-off-by: Anna Gringauze <agringauze@nvidia.com>
Signed-off-by: Anna Gringauze <agringauze@nvidia.com>
Signed-off-by: Anna Gringauze <agringauze@nvidia.com>
Signed-off-by: Anna Gringauze <agringauze@nvidia.com>
4517712 to
7969a75
Compare
Signed-off-by: Anna Gringauze <agringauze@nvidia.com>
…antum-device-state
Signed-off-by: Anna Gringauze <agringauze@nvidia.com>
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.
LGTM 👍
Signed-off-by: Anna Gringauze <agringauze@nvidia.com>
Signed-off-by: Anna Gringauze <agringauze@nvidia.com>
Signed-off-by: Anna Gringauze <agringauze@nvidia.com>
…antum-device-state
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.
Still reviewing...
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.
Still reviewing...
…antum-device-state
Signed-off-by: Anna Gringauze <agringauze@nvidia.com>
Signed-off-by: Anna Gringauze <agringauze@nvidia.com>
Signed-off-by: Anna Gringauze <agringauze@nvidia.com>
Signed-off-by: Anna Gringauze <agringauze@nvidia.com>
…antum-device-state Signed-off-by: Anna Gringauze <agringauze@nvidia.com>
Signed-off-by: Anna Gringauze <agringauze@nvidia.com>
Signed-off-by: Anna Gringauze <agringauze@nvidia.com>
|
CUDA Quantum Docs Bot: A preview of the documentation can be found here. |
|
Wahoo! |
Signed-off-by: Anna Gringauze <agringauze@nvidia.com>
|
CUDA Quantum Docs Bot: A preview of the documentation can be found here. |
|
CUDA Quantum Docs Bot: A preview of the documentation can be found here. |
Signed-off-by: Anna Gringauze <agringauze@nvidia.com>
* State synthesis for quantum devices (#2291) * DCO Remediation Commit for Ben Howe <bhowe@nvidia.com> I, Ben Howe <bhowe@nvidia.com>, hereby add my Signed-off-by to this commit: 86681ef Signed-off-by: Ben Howe <bhowe@nvidia.com> Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * State pointer synthesis for quantum hardware Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Merge with main Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Merge with main Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix test failure on anyon platform Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Make StateInitialization a funcOp pass Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix issues and tests for the rest of quantum architectures Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix failing quantinuum state prep tests Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Address CR comments Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Format Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix failing test Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Format Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Format Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Replaced getState intrinsic by cc.get_state op Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Remove print Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Remove getCudaqState references Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Minor updates Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix failing quake test Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Add a few state-related cc ops Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix test_argument_conversion Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Add printing in failing tests Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Add printing in failing tests Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix failing tests Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Add description for new algorithm for state syntesis Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix tests Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Make intermediate IR legal by separating allocs * DCO Remediation Commit for Anna Gringauze <agringauze@nvidia.com> I, Anna Gringauze <agringauze@nvidia.com>, hereby add my Signed-off-by to this commit: 9563371 Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Address some PR comments Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Address more CR comments Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Cleanup Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Address CR comments Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Address more CR comments Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Address more CR comments Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Store new functions in subst module and update synthesis Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Make argument synthesis transitive Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Update callers of synthesis Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Use PointerOf in quake defs Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Addressed more CR comments Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Recursive with caching Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * StateAggregatorWithArgumentConverter Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Make ArgumentConverter handle the state call tree Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Make argument converter handle kernels created from states Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix null alloc size and add tests Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Keep storing ops when generating numSubits func Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Cleanup Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Cleanup Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Cleanup Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix failing test Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix failing doc build Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Address CR comments Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Address more CR comments and add a test Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Address more CR comments Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix links Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix links Signed-off-by: Anna Gringauze <agringauze@nvidia.com> --------- Signed-off-by: Ben Howe <bhowe@nvidia.com> Signed-off-by: Anna Gringauze <agringauze@nvidia.com> Co-authored-by: Ben Howe <bhowe@nvidia.com> * Some fixes for complex numbers and vectors (#2739) * Some fixes for complex numbers and vectors Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Cleanup Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Cleanup Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Update lib/Optimizer/Dialect/CC/CCOps.cpp Co-authored-by: Eric Schweitz <eschweitz@nvidia.com> Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix links Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix links Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix links Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix links Signed-off-by: Anna Gringauze <agringauze@nvidia.com> --------- Signed-off-by: Anna Gringauze <agringauze@nvidia.com> Co-authored-by: Eric Schweitz <eschweitz@nvidia.com> * Add docs for `apply_noise` (#2745) * Enabling afqmc notebook by freezing numba to 0.60.0 (#2759) * Enabling afqmc by freezing numba to 0.60.0 Signed-off-by: Sachin Pisal <spisal@nvidia.com> * removing afqmc form skipped_notebooks Signed-off-by: Sachin Pisal <spisal@nvidia.com> --------- Signed-off-by: Sachin Pisal <spisal@nvidia.com> * Replacing existing spin_ops with the general operators (#2710) This PR contains the full replacement of the existing spin_ops with the new general operators. See the PR description on GitHub for a full list of all changes. --------- Signed-off-by: Bettina Heim <heimb@outlook.com> Signed-off-by: Ben Howe <bhowe@nvidia.com> Signed-off-by: Anna Gringauze <agringauze@nvidia.com> Co-authored-by: Ben Howe <bhowe@nvidia.com> Co-authored-by: cuda-quantum-bot <cuda-quantum-bot@users.noreply.github.com> Co-authored-by: Anna Gringauze <agringauze@nvidia.com> * Allow Return Value Optimization instead of forcing moves (#2765) Signed-off-by: Ben Howe <bhowe@nvidia.com> * Dev Container psi-header extension: retain original copyright year (#2766) For those of us using VSCode dev containers, this makes the psi-header extension work with other projects that don't all have 2022 as a starting point. More specifically - with this change, the extension will attempt to retain the existing starting copyright year and update only the ending copyright year if it exists (rather than updating both the start copyright year and current copyright year). Additionally, if the file is a new file, it will use "now" as the starting copyright year, which is more correct anyway. Signed-off-by: Ben Howe <bhowe@nvidia.com> --------- Signed-off-by: Ben Howe <bhowe@nvidia.com> Signed-off-by: Anna Gringauze <agringauze@nvidia.com> Signed-off-by: Sachin Pisal <spisal@nvidia.com> Signed-off-by: Bettina Heim <heimb@outlook.com> Co-authored-by: Anna Gringauze <agringauze@nvidia.com> Co-authored-by: Ben Howe <bhowe@nvidia.com> Co-authored-by: Eric Schweitz <eschweitz@nvidia.com> Co-authored-by: Ben Howe <141149032+bmhowe23@users.noreply.github.com> Co-authored-by: Sachin Pisal <spisal@nvidia.com> Co-authored-by: Bettina Heim <heimb@outlook.com> Co-authored-by: cuda-quantum-bot <cuda-quantum-bot@users.noreply.github.com>
* State synthesis for quantum devices (NVIDIA#2291) * DCO Remediation Commit for Ben Howe <bhowe@nvidia.com> I, Ben Howe <bhowe@nvidia.com>, hereby add my Signed-off-by to this commit: 86681ef Signed-off-by: Ben Howe <bhowe@nvidia.com> Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * State pointer synthesis for quantum hardware Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Merge with main Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Merge with main Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix test failure on anyon platform Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Make StateInitialization a funcOp pass Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix issues and tests for the rest of quantum architectures Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix failing quantinuum state prep tests Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Address CR comments Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Format Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix failing test Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Format Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Format Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Replaced getState intrinsic by cc.get_state op Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Remove print Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Remove getCudaqState references Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Minor updates Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix failing quake test Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Add a few state-related cc ops Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix test_argument_conversion Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Add printing in failing tests Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Add printing in failing tests Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix failing tests Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Add description for new algorithm for state syntesis Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix tests Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Make intermediate IR legal by separating allocs * DCO Remediation Commit for Anna Gringauze <agringauze@nvidia.com> I, Anna Gringauze <agringauze@nvidia.com>, hereby add my Signed-off-by to this commit: 9563371 Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Address some PR comments Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Address more CR comments Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Cleanup Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Address CR comments Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Address more CR comments Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Address more CR comments Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Store new functions in subst module and update synthesis Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Make argument synthesis transitive Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Update callers of synthesis Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Use PointerOf in quake defs Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Addressed more CR comments Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Recursive with caching Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * StateAggregatorWithArgumentConverter Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Make ArgumentConverter handle the state call tree Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Make argument converter handle kernels created from states Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix null alloc size and add tests Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Keep storing ops when generating numSubits func Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Cleanup Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Cleanup Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Cleanup Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix failing test Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix failing doc build Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Address CR comments Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Address more CR comments and add a test Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Address more CR comments Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix links Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix links Signed-off-by: Anna Gringauze <agringauze@nvidia.com> --------- Signed-off-by: Ben Howe <bhowe@nvidia.com> Signed-off-by: Anna Gringauze <agringauze@nvidia.com> Co-authored-by: Ben Howe <bhowe@nvidia.com> * Some fixes for complex numbers and vectors (NVIDIA#2739) * Some fixes for complex numbers and vectors Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Cleanup Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Cleanup Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Update lib/Optimizer/Dialect/CC/CCOps.cpp Co-authored-by: Eric Schweitz <eschweitz@nvidia.com> Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix links Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix links Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix links Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix links Signed-off-by: Anna Gringauze <agringauze@nvidia.com> --------- Signed-off-by: Anna Gringauze <agringauze@nvidia.com> Co-authored-by: Eric Schweitz <eschweitz@nvidia.com> * Add docs for `apply_noise` (NVIDIA#2745) * Enabling afqmc notebook by freezing numba to 0.60.0 (NVIDIA#2759) * Enabling afqmc by freezing numba to 0.60.0 Signed-off-by: Sachin Pisal <spisal@nvidia.com> * removing afqmc form skipped_notebooks Signed-off-by: Sachin Pisal <spisal@nvidia.com> --------- Signed-off-by: Sachin Pisal <spisal@nvidia.com> * Replacing existing spin_ops with the general operators (NVIDIA#2710) This PR contains the full replacement of the existing spin_ops with the new general operators. See the PR description on GitHub for a full list of all changes. --------- Signed-off-by: Bettina Heim <heimb@outlook.com> Signed-off-by: Ben Howe <bhowe@nvidia.com> Signed-off-by: Anna Gringauze <agringauze@nvidia.com> Co-authored-by: Ben Howe <bhowe@nvidia.com> Co-authored-by: cuda-quantum-bot <cuda-quantum-bot@users.noreply.github.com> Co-authored-by: Anna Gringauze <agringauze@nvidia.com> * Allow Return Value Optimization instead of forcing moves (NVIDIA#2765) Signed-off-by: Ben Howe <bhowe@nvidia.com> * Dev Container psi-header extension: retain original copyright year (NVIDIA#2766) For those of us using VSCode dev containers, this makes the psi-header extension work with other projects that don't all have 2022 as a starting point. More specifically - with this change, the extension will attempt to retain the existing starting copyright year and update only the ending copyright year if it exists (rather than updating both the start copyright year and current copyright year). Additionally, if the file is a new file, it will use "now" as the starting copyright year, which is more correct anyway. Signed-off-by: Ben Howe <bhowe@nvidia.com> --------- Signed-off-by: Ben Howe <bhowe@nvidia.com> Signed-off-by: Anna Gringauze <agringauze@nvidia.com> Signed-off-by: Sachin Pisal <spisal@nvidia.com> Signed-off-by: Bettina Heim <heimb@outlook.com> Co-authored-by: Anna Gringauze <agringauze@nvidia.com> Co-authored-by: Ben Howe <bhowe@nvidia.com> Co-authored-by: Eric Schweitz <eschweitz@nvidia.com> Co-authored-by: Ben Howe <141149032+bmhowe23@users.noreply.github.com> Co-authored-by: Sachin Pisal <spisal@nvidia.com> Co-authored-by: Bettina Heim <heimb@outlook.com> Co-authored-by: cuda-quantum-bot <cuda-quantum-bot@users.noreply.github.com> Signed-off-by: Anna Gringauze <agringauze@nvidia.com>
* DCO Remediation Commit for Ben Howe <bhowe@nvidia.com> I, Ben Howe <bhowe@nvidia.com>, hereby add my Signed-off-by to this commit: 86681ef Signed-off-by: Ben Howe <bhowe@nvidia.com> Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * State pointer synthesis for quantum hardware Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Merge with main Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Merge with main Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix test failure on anyon platform Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Make StateInitialization a funcOp pass Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix issues and tests for the rest of quantum architectures Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix failing quantinuum state prep tests Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Address CR comments Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Format Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix failing test Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Format Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Format Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Replaced getState intrinsic by cc.get_state op Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Remove print Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Remove getCudaqState references Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Minor updates Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix failing quake test Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Add a few state-related cc ops Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix test_argument_conversion Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Add printing in failing tests Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Add printing in failing tests Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix failing tests Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Add description for new algorithm for state syntesis Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix tests Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Make intermediate IR legal by separating allocs * DCO Remediation Commit for Anna Gringauze <agringauze@nvidia.com> I, Anna Gringauze <agringauze@nvidia.com>, hereby add my Signed-off-by to this commit: 9563371 Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Address some PR comments Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Address more CR comments Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Cleanup Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Address CR comments Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Address more CR comments Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Address more CR comments Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Store new functions in subst module and update synthesis Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Make argument synthesis transitive Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Update callers of synthesis Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Use PointerOf in quake defs Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Addressed more CR comments Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Recursive with caching Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * StateAggregatorWithArgumentConverter Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Make ArgumentConverter handle the state call tree Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Make argument converter handle kernels created from states Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix null alloc size and add tests Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Keep storing ops when generating numSubits func Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Cleanup Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Cleanup Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Cleanup Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix failing test Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix failing doc build Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Address CR comments Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Address more CR comments and add a test Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Address more CR comments Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix links Signed-off-by: Anna Gringauze <agringauze@nvidia.com> * Fix links Signed-off-by: Anna Gringauze <agringauze@nvidia.com> --------- Signed-off-by: Ben Howe <bhowe@nvidia.com> Signed-off-by: Anna Gringauze <agringauze@nvidia.com> Co-authored-by: Ben Howe <bhowe@nvidia.com>
Synthesize state pointer for quantum devices:
SimulationState:
hasDataAPI that returns true iff the vector data exists on the state or can be computed.getKernelInfoAPI that returns optional kernel name and a list of arguments for the kernel that generated the state.QuantumState:
ArgumentConversion:
quake.get_state "callee.num_qubits_N" "callee.init_N"instruction.callee.num_qubits_Nandcallee.init_Nfunctions that are created from the callee code and compute allocation size and initialize the allocation, respectively.ArgumentConverter.Passes:
ReplaceStateWithKernelpass thatquake.get_num_qubitsinstructions by a call tocallee.num_qubits_N()quake.init_stateinstructions by a call tocallee.init_N()Synthesis:
Tests:
test_argument_conversionReplaceStateWithKernelpassArgumentSynthesispass with state pointer substitutionstargettests/execution/qvector_init_from_state.cpptest that runs for various quantum backends emulationNotes
Currently state pointer synthesis is only supported for kernels implemented as
operator()inside a struct.TODO (in subsequent PRs)
cudaq::qkernelto support c-like kernels in state pointer synthesisRequires: #2354Requires: #2644See also #2763, #2706, #2644.