KEMBAR78
Some fixes for complex numbers and vectors by annagrin · Pull Request #2739 · NVIDIA/cuda-quantum · GitHub
Skip to content

Conversation

@annagrin
Copy link
Collaborator

@annagrin annagrin commented Mar 17, 2025

Description

Some fixes for complex numbers and vectors of complex numbers

  • make sure we create and read from constant arrays the same way in different scenarios
    (QuakeSynthesis, LiftArrayAlloc, ArgumentSynthesis, ConvertToQIR/eraseConstantArrayOps, etc)
  • allow const prop of a complex value from a constant array
  • allow using complex<T>::real() and complex<T>::imag() in kernels in c++ (already supported in python)
  • add tests

The fixes are inspired by a trotter example, where we would like to pass a vector of complex numbers to a kernel, be able to get a real part of it, and make sure it works for quantum devices.

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>
…mplex-constprop-fix

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>
Signed-off-by: Anna Gringauze <agringauze@nvidia.com>
github-actions bot pushed a commit that referenced this pull request Mar 17, 2025
@github-actions
Copy link

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

1 similar comment
@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 17, 2025
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 17, 2025
annagrin and others added 2 commits March 18, 2025 11:01
Co-authored-by: Eric Schweitz <eschweitz@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
@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
…mplex-constprop-fix

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>
…uda-quantum into complex-constprop-fix

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>
@annagrin annagrin enabled auto-merge (squash) March 20, 2025 04:00
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 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:57
@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>
@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 21, 2025
@annagrin annagrin merged commit c075eed into NVIDIA:main Mar 21, 2025
197 checks passed
github-actions bot pushed a commit that referenced this pull request Mar 21, 2025
@github-actions
Copy link

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

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 bug fix To be listed under Bug Fixes in the release notes 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
* 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>
Signed-off-by: Anna Gringauze <agringauze@nvidia.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug fix To be listed under Bug Fixes in the release notes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants