KEMBAR78
State synthesis for quantum devices by annagrin · Pull Request #2291 · NVIDIA/cuda-quantum · GitHub
Skip to content

Conversation

@annagrin
Copy link
Collaborator

@annagrin annagrin commented Oct 17, 2024

Synthesize state pointer for quantum devices:

SimulationState:

  • Add hasData API that returns true iff the vector data exists on the state or can be computed.
  • Add getKernelInfo API that returns optional kernel name and a list of arguments for the kernel that generated the state.

QuantumState:

  • Add QuantumState class that inherits from simulation state and keeps kernel information only.

ArgumentConversion:

  • Substitute state pointer argument with quake.get_state "callee.num_qubits_N" "callee.init_N" instruction.
  • Add callee.num_qubits_N and callee.init_N functions that are created from the callee code and compute allocation size and initialize the allocation, respectively.
  • Add a list of converters for the callees in ArgumentConverter.
  • Generate substitutions for modified callee functions, recursively.

Passes:

  • Add a post-synthesis ReplaceStateWithKernel pass that
    • replaces quake.get_num_qubits instructions by a call to callee.num_qubits_N()
    • replaces quake.init_state instructions by a call to callee.init_N()

Synthesis:

  • Collect all substitutions for the call tree at the synthesis time for quantum devices.

Tests:

  • Add fake quantum state and a test for quantum state argument conversion to test_argument_conversion
  • Add quake tests for ReplaceStateWithKernel pass
  • Add quake tests for ArgumentSynthesis pass with state pointer substitutions
  • Add targettests/execution/qvector_init_from_state.cpp test that runs for various quantum backends emulation

Notes

Currently state pointer synthesis is only supported for kernels implemented as operator() inside a struct.

TODO (in subsequent PRs)

  • c++ tests for quantum backend integration
  • Use cudaq::qkernel to support c-like kernels in state pointer synthesis
  • Tests for synthesis of vectors of pauli words (needs rework of pauli word support)
  • python tests for quantum platforms (needs support for new synthesis in python)

Requires: #2354
Requires: #2644

See also #2763, #2706, #2644.

bmhowe23 and others added 4 commits October 17, 2024 14:33
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>
@annagrin annagrin force-pushed the quantum-device-state branch from 4517712 to 7969a75 Compare October 17, 2024 21:38
Signed-off-by: Anna Gringauze <agringauze@nvidia.com>
Signed-off-by: Anna Gringauze <agringauze@nvidia.com>
Copy link
Collaborator

@1tnguyen 1tnguyen left a 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>
Copy link
Collaborator

@schweitzpgi schweitzpgi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Still reviewing...

Copy link
Collaborator

@schweitzpgi schweitzpgi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Still reviewing...

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>
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>
@github-actions
Copy link

CUDA Quantum Docs Bot: A preview of the documentation can be found here.

github-actions bot pushed a commit that referenced this pull request Mar 18, 2025
@annagrin annagrin enabled auto-merge (squash) March 18, 2025 22:11
@schweitzpgi
Copy link
Collaborator

Wahoo!

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>
Signed-off-by: Anna Gringauze <agringauze@nvidia.com>
@annagrin annagrin disabled auto-merge March 20, 2025 04:30
@github-actions
Copy link

CUDA Quantum Docs Bot: A preview of the documentation can be found here.

github-actions bot pushed a commit that referenced this pull request Mar 20, 2025
Signed-off-by: Anna Gringauze <agringauze@nvidia.com>
@annagrin annagrin enabled auto-merge (squash) March 20, 2025 16:56
@github-actions
Copy link

CUDA Quantum Docs Bot: A preview of the documentation can be found here.

github-actions bot pushed a commit that referenced this pull request Mar 20, 2025
Signed-off-by: Anna Gringauze <agringauze@nvidia.com>
@annagrin annagrin merged commit a27a0ec into NVIDIA:main Mar 21, 2025
197 checks passed
github-actions bot pushed a commit that referenced this pull request Mar 21, 2025
1tnguyen added a commit that referenced this pull request Apr 2, 2025
* 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>
@bettinaheim bettinaheim added the enhancement New feature or request label May 5, 2025
@bettinaheim bettinaheim added this to the release 0.11.0 milestone May 5, 2025
annagrin added a commit to annagrin/cuda-quantum that referenced this pull request Jun 17, 2025
* 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>
annagrin added a commit to annagrin/cuda-quantum that referenced this pull request Jun 17, 2025
* 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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants