KEMBAR78
Implementation of the cudaq::apply_noise feature by schweitzpgi · Pull Request #2635 · NVIDIA/cuda-quantum · GitHub
Skip to content

Conversation

@schweitzpgi
Copy link
Collaborator

@schweitzpgi schweitzpgi commented Feb 18, 2025

This is the initial implementation of the apply_noise feature. Apply noise is a simulation-only feature and has no semantics for running on hardware.

This includes:

  • C++ headers and frontend support
  • Python support
  • Core support
  • Ability to erase "noise" from the IR (for hardware targets)
  • Code generation as callbacks to the target simulator

TODOs:

  • Add more regression tests.
  • Hook this implementation up to the simulators.

@schweitzpgi schweitzpgi force-pushed the amc-apply.noise branch 3 times, most recently from 9d8e059 to 51cf482 Compare February 19, 2025 23:08
amccaskey and others added 19 commits February 20, 2025 12:31
Signed-off-by: Alex McCaskey <amccaskey@nvidia.com>
Signed-off-by: Alex McCaskey <amccaskey@nvidia.com>
Signed-off-by: Alex McCaskey <amccaskey@nvidia.com>
Signed-off-by: Alex McCaskey <amccaskey@nvidia.com>
Signed-off-by: Alex McCaskey <amccaskey@nvidia.com>
Signed-off-by: Alex McCaskey <amccaskey@nvidia.com>
Signed-off-by: Alex McCaskey <amccaskey@nvidia.com>
Signed-off-by: Alex McCaskey <amccaskey@nvidia.com>
Signed-off-by: Alex McCaskey <amccaskey@nvidia.com>
Add an apply_noise operator.
Teach the bridge to recognize cudaq::apply_noise and lower it.
Add a pass to erase apply_noise operations.
Modify QIR codegen to generate the C++ callback.
Make test for elimination more robust.

Arguments have to be passed by rvalue reference since some of them are
qubits, which cannot be copied. Thread the pointer through all the
places where there were floating-point types. Update tests.

Add a bit more smart to the cudaq::apply_noise stub. Automatically counts
the leading number of floating-point arguments, so the user doesn't have
to supply this information. Uses the applyNoiseImpl<> template as is.

Add some constraints to fine-tune the apply_noise overload selection.
Add std::vector<double> overload processing to the bridge.

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>
Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>
Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>
Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>
Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>
Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>
Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>
Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>
Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>
Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>
Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>
@copy-pr-bot
Copy link

copy-pr-bot bot commented Feb 21, 2025

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@schweitzpgi schweitzpgi enabled auto-merge (squash) February 24, 2025 16:37
@schweitzpgi
Copy link
Collaborator Author

Tracking TODOs here.

@bmhowe23
Copy link
Collaborator

bmhowe23 commented Feb 24, 2025

/ok to test

Command Bot: Processing...

Copy link
Collaborator

@bmhowe23 bmhowe23 left a comment

Choose a reason for hiding this comment

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

LGTM. Thanks, Eric.

@schweitzpgi
Copy link
Collaborator Author

schweitzpgi commented Feb 24, 2025

/ok to test

Command Bot: Processing...

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>
Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>
@schweitzpgi
Copy link
Collaborator Author

schweitzpgi commented Feb 24, 2025

/ok to test

Command Bot: Processing...

@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 Feb 24, 2025
@bmhowe23
Copy link
Collaborator

bmhowe23 commented Feb 24, 2025

/ok to test

Command Bot: Processing...

@schweitzpgi schweitzpgi merged commit c47d92c into NVIDIA:main Feb 25, 2025
211 checks passed
github-actions bot pushed a commit that referenced this pull request Feb 25, 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 Feb 25, 2025
@schweitzpgi schweitzpgi deleted the amc-apply.noise branch February 25, 2025 00:58
@bettinaheim bettinaheim added the enhancement New feature or request label Mar 12, 2025
@bettinaheim bettinaheim added this to the release 0.10.0 milestone Mar 12, 2025
schweitzpgi added a commit that referenced this pull request Mar 12, 2025
* [braket] Add the symbol-dce pass to the lowering pipeline (#2583)

* Also, fixes the following (non-fatal) error seen during 'observe'
`error: 'func.func' op Invalid number of binary-symplectic elements
provided. Must provide 2 * NQubits = 0`

* Manually ran the Braket test suite.

Signed-off-by: Pradnya Khalate <pkhalate@nvidia.com>

* Update mgpu sha (#2578)

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>

* Add WriteAfterWriteElimination pass (#2572)

* Add RemoveUselessStores pass

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Address some CR comments

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Address CR comments

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

---------

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Reorganized Backends Docs Page (#2481)

* Updated Backends Section
* Removed logos
* Larger image text size
* Added table and cloud section
* Added Python / C++ tabs and Efrat's comments
* Updated table, Backend figure, and condensed fp64
* fixed typo

* Update docs/sphinx/using/backends/backends.rst

Co-authored-by: efratshabtai <efratshabtai@users.noreply.github.com>
Signed-off-by: mawolf2023 <153318030+mawolf2023@users.noreply.github.com>

* Review Changes 1/17
* Figure fix

* DCO Remediation Commit for Mark Wolf <mawolf@nvidia.com>

I, Mark Wolf <mawolf@nvidia.com>, hereby add my Signed-off-by to this commit: fa6ff04f68dc44472d61f46e6a98cd1bcb2864c5
I, Mark Wolf <mawolf@nvidia.com>, hereby add my Signed-off-by to this commit: 0bc2771edfd7e51513994720ee3635ae734bd892
I, Mark Wolf <mawolf@nvidia.com>, hereby add my Signed-off-by to this commit: 6c4305e0a3fe6c75fb9e6ce64812438d06e58b39
I, Mark Wolf <mawolf@nvidia.com>, hereby add my Signed-off-by to this commit: a6efc5d64cc53502f07f7687504c9d45ce8050cc
I, Mark Wolf <mawolf@nvidia.com>, hereby add my Signed-off-by to this commit: 818e8ea7fed426b33ad2d5fa4910b7d9b5e96d42
I, Mark Wolf <mawolf@nvidia.com>, hereby add my Signed-off-by to this commit: de37d2f813ca1aed374e89d107ec72e1757626ee
I, Mark Wolf <mawolf@nvidia.com>, hereby add my Signed-off-by to this commit: eead204beb2416c476d193b3f4a0333337e4d51e
I, Mark Wolf <mawolf@nvidia.com>, hereby add my Signed-off-by to this commit: d9bf00fb0906e52c0e476b94db65bb0bd6683ed7
I, Mark Wolf <mawolf@nvidia.com>, hereby add my Signed-off-by to this commit: e57067a29cb36fd571ea89870d1a42239e8fae59

Signed-off-by: Mark Wolf <mawolf@nvidia.com>

* Merging with mainline
* Resolved conflict in `simulators.rst` by adding `photonics.rst`

* DCO Remediation Commit for Pradnya Khalate <pkhalate@nvidia.com>

I, Pradnya Khalate <pkhalate@nvidia.com>, hereby add my Signed-off-by to this commit: fa098542884424a6a2d8d06c2680a2cf2001e572

Signed-off-by: Pradnya Khalate <pkhalate@nvidia.com>

* Fix spellings

Signed-off-by: Pradnya Khalate <pkhalate@nvidia.com>

* Photonics plus multi-gpu examples and some ref updates

Signed-off-by: mawolf2023 <mawolf2023@nvidia.com>

* Fix links for docs generation
* Code formatting
* Spelling fixes
* Updates to the simulator table
* Removed shortened names from titles

Signed-off-by: Pradnya Khalate <pkhalate@nvidia.com>

* white figure backgrounds

Signed-off-by: mawolf2023 <mawolf2023@nvidia.com>

* new orca logo

Signed-off-by: mawolf2023 <mawolf2023@nvidia.com>

* Update docs/sphinx/using/backends/sims/photonics.rst

Co-authored-by: efratshabtai <efratshabtai@users.noreply.github.com>
Signed-off-by: mawolf2023 <153318030+mawolf2023@users.noreply.github.com>

* Update docs/sphinx/using/backends/sims/photonics.rst

Co-authored-by: efratshabtai <efratshabtai@users.noreply.github.com>
Signed-off-by: mawolf2023 <153318030+mawolf2023@users.noreply.github.com>

* Update docs/sphinx/using/examples/multi_gpu_workflows.rst

Co-authored-by: efratshabtai <efratshabtai@users.noreply.github.com>
Signed-off-by: mawolf2023 <153318030+mawolf2023@users.noreply.github.com>

* Update docs/sphinx/using/examples/multi_gpu_workflows.rst

Co-authored-by: efratshabtai <efratshabtai@users.noreply.github.com>
Signed-off-by: mawolf2023 <153318030+mawolf2023@users.noreply.github.com>

* Update docs/sphinx/using/examples/multi_gpu_workflows.rst

Co-authored-by: efratshabtai <efratshabtai@users.noreply.github.com>
Signed-off-by: mawolf2023 <153318030+mawolf2023@users.noreply.github.com>

* edits 2/4

Signed-off-by: mawolf2023 <mawolf2023@nvidia.com>

---------

Signed-off-by: mawolf2023 <153318030+mawolf2023@users.noreply.github.com>
Signed-off-by: Mark Wolf <mawolf@nvidia.com>
Signed-off-by: Pradnya Khalate <pkhalate@nvidia.com>
Signed-off-by: mawolf2023 <mawolf2023@nvidia.com>
Co-authored-by: Eric Schweitz <eschweitz@nvidia.com>
Co-authored-by: efratshabtai <efratshabtai@users.noreply.github.com>
Co-authored-by: Ben Howe <141149032+bmhowe23@users.noreply.github.com>
Co-authored-by: Pradnya Khalate <pkhalate@nvidia.com>
Co-authored-by: mawolf2023 <mawolf2023@nvidia.com>
Co-authored-by: Pradnya Khalate <148914294+khalatepradnya@users.noreply.github.com>

* New application noteboks: Hamiltonian simulation & Deutsch Jozsa (#2488)

* new notebooks

* Removing commented code

Signed-off-by: Sachin Pisal <spisal@nvidia.com>

* Adding ` to wrap the variable with _

Signed-off-by: Sachin Pisal <spisal@nvidia.com>

---------

Signed-off-by: Sachin Pisal <spisal@nvidia.com>
Co-authored-by: root <root@fi-kermit.nvidia.com>
Co-authored-by: Sachin Pisal <spisal@nvidia.com>

* Fix issues in lift-array-alloc (#2570)

* Fix issues in lif-array-alloc

* DCO Remediation Commit for Anna Gringauze <agringauze@nvidia.com>

I, Anna Gringauze <agringauze@nvidia.com>, hereby add my Signed-off-by to this commit: c1592b832bb4c0f43d4816e10fd6c7e87087ac17

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Addressed CR comments

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Address CR comments

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Add new pass

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Fix null deref

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

---------

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* [py] Fixes #2586 and #2531 (#2592)

Not all objects that pass the `isinstance(var, type)` check have the
`__annotations__` attribute.

This is a quick fix, i.e., the change does not address the much deeper
underlying issue: this code should not be globing all globals withing a
frame, and perhaps using `__annotations__` is undesirable. (Also,
the best practices regarding the use of annotations have changed in
python 3.10, so there are still unaddressed landmines here.)

Signed-off-by: boschmitt <7152025+boschmitt@users.noreply.github.com>

* [core] Some enhancements to the cc.insert_value op. (#2589)

Fixes a typo in the syntax so that the argument order matches the type
of the arguments.

Adds a verifier. Fix up the tests to reflect the changes.

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>

* [Tensornet] Support trajectory simulation for unitary mixture noise channels  (#2520)

* Initial work on adding support for cutensornetStateApplyUnitaryChannel

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>

* Enable some noise test cases on tensornet

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>

* Fix a copy-and-paste error

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>

* support unitary mixture channel detection and enable more tests

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>

* MPS trajectory: we need to compute the MPS factorization for each trajectory

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>

* Split cutensornetStateFinalizeMPS and (cutensornetStatePrepare + cutensornetStateCompute)

The first one is only needed once for trajectory simulation.

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>

* Add trajectories to observe

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>

* Handle unitary channels in all code paths

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>

* Code format

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>

* Reduce test time

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>

* Update cutensornet version requirement

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>

* Add sampler cache for MPS trajectory

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>

* Add cache workspace mem

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>

* Add trajectory support to non-path-reuse path merging from main

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>

* Update some of the cutensornet DEPRECATED enums

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>

* Make number of hyper sample configurable

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>

* Docs update

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>

* CR: Correct Pauli Y matrix

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>

* CR: refactor SimulatorTensorNetBase::applyNoiseChannel

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>

* CR: code refactor in MPS implementation

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>

* Add an exact output state vec check for tensornet to check matrix data

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>

* CR: Add a code comment for a  helper function

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>

---------

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>

* Fix failures in write-after-write-elimination (#2591)

* Fix failures in write-after-write-elimination

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Fix issues in lif-array-alloc

---------

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* A couple of bug fixes. (#2598)

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>

* Removing the Italics header (#2599)

Signed-off-by: Sachin Pisal <spisal@nvidia.com>

* [core] enable the new QIR codegen for python (#2588)

* Remove the python hooks to the old codegen. This exposes all the
python problems in the tests.

Eliminate the expansion of python enumerate().

Remove use of empty labels for all measurements.

This eliminates a loop, a data structure, and the invalid mixing of
quantum and classical data values in classical memory.

Fix bugs in AST bridge.

Fix #2538 - measurement register name cannot be empty.

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>

* Workaround use of empty labels in kernel builder.

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>

* Remove empty names. We've made them illegal.

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>

* Fix tests.

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>

---------

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>

* [braket] support reservation ARN (#2553)

* support reservation arn

* DCO Remediation Commit for Tim <yitchen@amazon.com>

I, Tim <yitchen@amazon.com>, hereby add my Signed-off-by to this commit: 955d8375ef5de5460811037c14ffaffabc8d47a5

Signed-off-by: Tim <yitchen@amazon.com>

* fix: run clang formatter
Signed-off-by: Tim <yitchen@amazon.com>

---------

Signed-off-by: Tim <yitchen@amazon.com>

* [testing] Clean-up unit tests (#2606)

The `CUDAQ_BRAKET_RUNTIME_TEST_SOURCES` were set up to use `qpp` and simply re-running with a simulator. Appropriate
set of tests already covered in `unittests/backends/braket/CMakeLists.txt`. Hence removing these.

Signed-off-by: Pradnya Khalate <pkhalate@nvidia.com>

* [testing] Fix for IQM mock server when generating sample results (#2604)

Signed-off-by: Pradnya Khalate <pkhalate@nvidia.com>
Co-authored-by: Ben Howe <bhowe@nvidia.com>

* [core] Add call with vararg to CC dialect. (#2612)

* [core] Add call with vararg to CC dialect.

This op allows CC code to call a variadic function without having to prematurely
convert all the arguments to LLVM dialect and clutter the code with casts. The
LLVMIR dialect's LLVMFuncOp does allow us to declare a variadic function, however.

Use the new Op in the QIR codegen to prevent the LLVMIR verifier from whining
about the use of LLVM types.

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>

* Add roundtrip test.

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>

---------

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>

* Add a new classical optimization pipeline to group a bunch of existing patterns (#2605)

* temp

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* temp

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* temp

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Add more patterns to loop-unroll

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 some failing tests

* Fix failing tests

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* DCO Remediation Commit for Anna Gringauze <agringauze@nvidia.com>

I, Anna Gringauze <agringauze@nvidia.com>, hereby add my Signed-off-by to this commit: f08502e18d29aeefed56b5a7c3ba1fbf717eab73

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Fix test failures

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Update write_after_write_elimination.qke

* `DCO Remediation Commit for Anna Gringauze <agringauze@nvidia.com>

I, Anna Gringauze <agringauze@nvidia.com>, hereby add my Signed-off-by to this commit: 3d3597d2a6c33aad590becce36e47c9cfeaa6979

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Fix failed tests

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Add classical-optimization pass and pipeline

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Add more tests

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Remove unneded comments

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Remove unneded comments

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Address some CR comments

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Address CR comments

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Address CR comments

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Address CR comments

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

---------

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* [braket] Follow-up to PR#2539: Add missing logic for processing sample results when using `observe` API (#2619)

Signed-off-by: Pradnya Khalate <pkhalate@nvidia.com>

* Make sure uccsd compiles for quantum devices (#2458)

* Temp

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Add tests

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Revert temp changes

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* TEMP

* Fix bugs

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Add classic opts to LoopUnroll and add tests

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Remove local mounts

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* DCO Remediation Commit for Anna Gringauze <agringauze@nvidia.com>

I, Anna Gringauze <agringauze@nvidia.com>, hereby add my Signed-off-by to this commit: ae35d16f9e20f850b607e29e705accfc5555eeca

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Use .inc files instead of splitting patterns out

* temp

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* temp

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* temp

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Add more patterns to loop-unroll

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 some failing tests

* Fix failing tests

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* DCO Remediation Commit for Anna Gringauze <agringauze@nvidia.com>

I, Anna Gringauze <agringauze@nvidia.com>, hereby add my Signed-off-by to this commit: f08502e18d29aeefed56b5a7c3ba1fbf717eab73

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Remove parts handled in other CRs

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Cleanup

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Fix test failures

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Update write_after_write_elimination.qke

* Fix test failures

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Update write_after_write_elimination.qke

* Update test_kernel_features.py

* `DCO Remediation Commit for Anna Gringauze <agringauze@nvidia.com>

I, Anna Gringauze <agringauze@nvidia.com>, hereby add my Signed-off-by to this commit: 3d3597d2a6c33aad590becce36e47c9cfeaa6979

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* DCO Remediation Commit for Anna Gringauze <agringauze@nvidia.com>

I, Anna Gringauze <agringauze@nvidia.com>, hereby add my Signed-off-by to this commit: f33a3b946e851e5ed350354d831a6e96fc8ac84c
I, Anna Gringauze <agringauze@nvidia.com>, hereby add my Signed-off-by to this commit: ee2884c2e4e75298fbff7d6bcceb5ed3c9c65df5
I, Anna Gringauze <agringauze@nvidia.com>, hereby add my Signed-off-by to this commit: 7600781b66289c9007827e3673e85d4e8fb9cb58

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Remove unnecessary changes

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Fix failed tests

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Fix failed tests

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Fix failed tests

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Run canonical patterns alongside lift-array-alloc

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Fix failed tests

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Add classical-optimization pass and pipeline

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Add more tests

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Remove unneded comments

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Remove unneded comments

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Use classical optimization pipeline in quantum config files

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Revert lift-array-alloc changes

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Add classical-optimization-pipeline to more backends

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Fixed failing target config tests

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Address CR comments

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 tests

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Fix failing tests

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* fix failing tests

---------

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Accept extensions other than .cpp in `nvq++` (#2514)

* Accept extensions other than .cpp in nvq++

Signed-off-by: Simone Rizzo <simone.rizzo@e4company.com>

* Handle filenames with multiple periods

Signed-off-by: Simone Rizzo <simone.rizzo@e4company.com>

---------

Signed-off-by: Simone Rizzo <simone.rizzo@e4company.com>
Co-authored-by: Eric Schweitz <eschweitz@nvidia.com>

* [python] Implement ast.[In, NotIn] comparator, fix 2611 (#2615)

* Implement In, NotIn comparator, fix 2611
---------

Signed-off-by: Alex McCaskey <amccaskey@nvidia.com>

* [core] fix a couple of bugs with loop normalization and unrolling (#2618)

* Remove the change to the invariant loop test.

Add const to LoopComponents methods.

When loops are already in what appears to be normalized form,
loop normalization takes no action. It is therefore necessary
for loop unrolling to always compute the number of iterations
that may be executed for the loop. This adds the algorithm
used to compute the number of iterations to loop unrolling
so that loops that do not have iterations at all are properly
detected.

Add tests for always true and always false extreme conditions.

Patch LoopNormalize, now in a new file.

Finish merging in the changes.

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>

* Use switches throughout.

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>

---------

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>

* Fix #2620 - fixes a bug with the new QIR codegen. (#2621)

This fixes an issue where after lowering to a CFG the code may still
have several basic blocks and feed quantum references via block arguments.

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>

* Re-enable the uccsd test. (#2622)

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>

* Remove CUTENSORNET_COMM_LIB default activation and add snippet validation to Publishing container validation (#2565)

* Remove CUTENSORNET_COMM_LIB default activation and add snippet validation to Publishing container validation

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>

* Put a conditional check as the snippets validation is intended for Publishing only

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>

---------

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>

* Add Stim support for sdg gate (required for `my` measurements) (#2624)

* Add Stim support for sdg gate (required for my measurements)
* Also produce better error messages if gates are unsupported.

---------

Signed-off-by: Ben Howe <bhowe@nvidia.com>

* [braket] update Braket example and doc links (#2633)

* Update Braket example and doc links
* Update link description

---------

Signed-off-by: Tim (Yi-Ting) <yitchen@amazon.com>

* Fix #2625: reduce invalid subvec operations to poison values. (#2636)

* Fix #2625: reduce invalid subvec operations to poison values.

Add checks for invalid ranges on the input veq. If the ranges are
constant and invalid, then turn the subveq operation into a poison
value. If this value is not optimized away, then the user's code
contains errors per the CUDA-Q Spec.

Add regression test.

---------

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>

* [core] More improvements to the new QIR codegen. (#2634)

* [core] More improvements to the new QIR codegen.

Add more cudaq-kernel tags, update tests, fix some bugs in the QIR codegen.

---------

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>

* New `cudaq::sample` option: explicit measurements (#2567)

This PR introduces a new sample_options parameter called explicit_measurements.
When this new option is selected, the behavior of the global register in the
sample_result is changed. Rather than retaining a single measurement of the
final "state" of each qubit in the system, this new option instructs the
runtime to record all qubit measurements into the global register ...
effectively "stacking" all measurements together.

While this change is supported by all simulators, the motivating factor for the
change is that this will enable more efficient simulation when using Stim
simulator for circuits containing mid-circuit measurements (as long as those
mid-circuit measurements do not influence later gate sequences). Prior to this
change, if one wanted to generically extract mid-circuit measurements out of
the kernel, they would have to avoid using the cudaq::sample API.

---------

Signed-off-by: Ben Howe <bhowe@nvidia.com>
Signed-off-by: Pradnya Khalate <pkhalate@nvidia.com>
Co-authored-by: Pradnya Khalate <pkhalate@nvidia.com>

* Add pointer element type constraints. (#2640)

This is a fragment from another PR.

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>

* cuda_torchdiffeq_integrator.py: check if pytorch is built with cuda capabilities (#2613)

Signed-off-by: Mitchell Dzurick <mdzurick@mdzurick-mlt.client.nvidia.com>
Co-authored-by: Mitchell Dzurick <mdzurick@mdzurick-mlt.client.nvidia.com>

* Fixes for Python dynamics handling distributed state  (#2629)

* Bug fixes for Python dynamics

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>

* Fix a typo in test file and add Euler method test

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>

* Code format

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>

---------

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>

* [docs] Correct table entries for CPU simulator precisions (#2646)

* [docs] Correct table entry for qpp-cpu precision

* And density-matrix-cpu

---------

Signed-off-by: Ben Howe <bhowe@nvidia.com>

* Add cudaq-stim-target to CUDAQConfig.cmake (#2649)

Signed-off-by: Ben Howe <bhowe@nvidia.com>

* [docs] Restore the docs for trajectory noisy simulators (#2648)

Ported from PR #2466
Follow-up to PR #2481

Signed-off-by: Pradnya Khalate <pkhalate@nvidia.com>

* Fix for nightly tests. (#2650)

Add output_name map when generating adaptive profile.

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>

* Pin buildx/buildkit to v0.19.0 (#2651)

Signed-off-by: Ben Howe <bhowe@nvidia.com>

* Refactor noise model for unitary mixtures (#2652)

Signed-off-by: Ben Howe <bhowe@nvidia.com>

* Fix regression in nightly tests for IONQ (#2656)

* Fixes bug in nightly tests and base-profile targets.
* Add regression test.
* Add another round of casting to see if that helps.
* Use __adj instead.
* Fix issues.
* Simplify.

---------

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>

* Implementation of the cudaq::apply_noise feature (#2635)

* Fine-grain kraus channel application in a kernel
* updates
* compile time checks for number of args
* better type safety on input args
* cleanup
* small fixes
* update to use integer key for registry
* remove old headers
* remove the name member
* [core] Support for apply_noise.

Add an apply_noise operator.
Teach the bridge to recognize cudaq::apply_noise and lower it.
Add a pass to erase apply_noise operations.
Modify QIR codegen to generate the C++ callback.
Make test for elimination more robust.

Arguments have to be passed by rvalue reference since some of them are
qubits, which cannot be copied. Thread the pointer through all the
places where there were floating-point types. Update tests.

Add a bit more smart to the cudaq::apply_noise stub. Automatically counts
the leading number of floating-point arguments, so the user doesn't have
to supply this information. Uses the applyNoiseImpl<> template as is.

Add some constraints to fine-tune the apply_noise overload selection.
Add std::vector<double> overload processing to the bridge.

* Make the key an i64 and verify it.
* Rope off the C++20 sections.
* Make the noise_func symbol optional.
* Add to the roundtrip test.
* Fix test.
* Fix signature.
* Add cc.call_vararg op.
* Add codegen test.
* Fix test.
* Enable C++17 in the headers.
* Add python support for apply_noise (#4)
* Start on Python apply_noise support
* add some docs
* Extend __quantum__qis__apply_kraus_channel_generalized() to support spans
as part of the variadic arguments.
* Fix typo.
* Content checks. * Do it again.* And again.
* Catch curious exception being thrown.
* More whining about formatting.
* Try to exclude register_channel to avoid the error.
* Take care of review comments.
* Address PR comments, checks on corner cases, warnings emitted
* Better noise model checking, handle cases with no context
* Rework the noise model header files to support float and double.
* clang-format
* Add enum to the apply_noise entry point to select the floating point type.
* Move template to lambda.
* Fix a bug and more unit tests.
* Add another test.

---------

Signed-off-by: Alex McCaskey <amccaskey@nvidia.com>
Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>
Co-authored-by: Alex McCaskey <amccaskey@nvidia.com>

* Make use of apply_noise with client/server targets emit an error. (#2658)

* Make use of apply_noise with client/server targets emit an error.

---------

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>

* [Python] Allow `None` as a type annotation for CUDA-Q kernels (#2630)

* Allow none type annotation for kernels
* Catch additional type failure for MLIR from annotation

Signed-off-by: W. Michael Brown <michbrown@nvidia.com>

* Added a test with a kernel using `None` as return type annotation.
* Combined the nested `if`s with `and`
* Code formatting

Signed-off-by: Pradnya Khalate <pkhalate@nvidia.com>

---------

Signed-off-by: W. Michael Brown <michbrown@nvidia.com>
Signed-off-by: Pradnya Khalate <pkhalate@nvidia.com>
Co-authored-by: Pradnya Khalate <pkhalate@nvidia.com>

* Fix #2525: Make exp_pauli a fully functional operator. (#2642)

These changes extend the quake.exp_pauli operation to be more fully
functional like the other builtin quake operators.  This operator
will now use a similar syntax, support adjoint, controls, etc.

Update the roundtrip test for syntax changes. Update tests. Add
a new python regression test from the issue #2525.

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>

* Add support for IonQ qpu.forte-enterprise-1 and qpu.forte-enterprise-2 quantum backends. (#2559)

Signed-off-by: Radu Marginean <radu.marg@gmail.com>

* .github/workflows/python_wheels.yml: bump openmpi version for MPI test (#2663)

An older version (4.0.5) of openmpi was being installed in the conda
environment for redhat. This change bumps the minimum version to 5.0.7
whcih is the current latest version.

Signed-off-by: Mitchell Dzurick <mdzurick@nvidia.com>
Signed-off-by: Mitchell Dzurick <mdzurick@mdzurick-mlt.client.nvidia.com>
Co-authored-by: Mitchell Dzurick <mdzurick@mdzurick-mlt.client.nvidia.com>

* Handle missing cases in ObserveAnsatz (#2661)

* Fix missing case in ObserveAnsatz

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Add tests

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

---------

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* [testing] Run the Quantinuum integration tests unconditionally (#2665)

* Implement new noise models (#2653)

This implements the following changes:

* Implement new Pauli noise models + phase damping
* Finish simulator hookup for apply_noise (Stim, Tensornet, and NVIDIA trajectory based simulations)
* Finish up some of the Python hookup for apply_noise (thanks, @amccaskey)
* Add tests

---------

Signed-off-by: Ben Howe <bhowe@nvidia.com>
Signed-off-by: Alex McCaskey <amccaskey@nvidia.com>
Co-authored-by: Alex McCaskey <amccaskey@nvidia.com>

* [CI] Skip validation on an erroneous application notebook (#2668)

The `docs/sphinx/applications/python/afqmc.ipynb` notebook has failures originating potentially from third-party libraries. This issue is captured in #2577. While we work on a fix separately, this commit skips that specific notebook in validation stage to get rest of the CI pipeline to succeed.

Signed-off-by: Pradnya Khalate <pkhalate@nvidia.com>

* Update polling interval for Braket backend (#2667)

* Squashed commit of the following:

commit b23aba8f85e881f099da73ce7b59187d1d553cfe
Merge: edd22af1 f7d740a5
Author: Ryan Shaffer <3620100+rmshaffer@users.noreply.github.com>
Date:   Thu Feb 27 18:20:15 2025 +0000

    Merge branch 'rmshaffer/polling-interval' of https://github.com/rmshaffer/cuda-quantum into rmshaffer/polling-interval

commit f7d740a5d30bac0141719da4201ec61514b3600f
Author: Ryan Shaffer <3620100+rmshaffer@users.noreply.github.com>
Date:   Thu Feb 27 18:17:29 2025 +0000

    Add test for polling interval

commit 8f18ea0b2f0c9c5e840ac7e7c71394ad5987444c
Author: Ryan Shaffer <3620100+rmshaffer@users.noreply.github.com>
Date:   Thu Feb 27 18:10:54 2025 +0000

    Update polling interval

commit edd22af14013b5f14b52c7a7e248fb934c08919c
Author: Ryan Shaffer <3620100+rmshaffer@users.noreply.github.com>
Date:   Thu Feb 27 18:17:29 2025 +0000

    Add test for polling interval

commit 00c61a7dbe08307c3600bc2086ec00156c314592
Author: Ryan Shaffer <3620100+rmshaffer@users.noreply.github.com>
Date:   Thu Feb 27 18:10:54 2025 +0000

    Update polling interval

Signed-off-by: Ryan Shaffer <3620100+rmshaffer@users.noreply.github.com>

* Add argument to braket.yml

Signed-off-by: Ryan Shaffer <3620100+rmshaffer@users.noreply.github.com>

---------

Signed-off-by: Ryan Shaffer <3620100+rmshaffer@users.noreply.github.com>

* [CI] Follow-up to PR#2665 (#2670)

* Run 2nd step unconditionally as well.
---------

Signed-off-by: Pradnya Khalate <pkhalate@nvidia.com>

* Add Pasqal target (#2632)

* initial work

* Orginazing Pasqal files (#3)

* fix PasqalServerHelper 

* fix CMakeLists

* Minor cosmetic changes

* Fix constant values

Also:

* Python imports in alphabetical order

* Fix `analog_targets` list declaration on `evolution.py`

* Helper methods implementation (#4)

Implement the following methods:

* `extractJobId`

* ` constructGetJobPath` (both variants)

* `jobIsDone`

* `processResults` (without index order verification)

* fix field name on payload

* fix `createJob` path

* begin docs

* Add PasqalTester

* [hotfix] Pasqal `constructGetJobPath`

* Review on Pasqal files (#10)

* Add `project_id` to payload.

* Fix `extractJobId` path.

* fix machine and user-agent information

* push machine from config

* DCO Remediation Commit for Aleksander Wennersteen <aleksander.wennersteen@pasqal.com>

I, Aleksander Wennersteen <aleksander.wennersteen@pasqal.com>, hereby add my Signed-off-by to this commit: 8d323f2b1e478a369664e11e20c8359ef0dfde67
I, Aleksander Wennersteen <aleksander.wennersteen@pasqal.com>, hereby add my Signed-off-by to this commit: 9665a975f13df64333db09dfa798158820e34271

Signed-off-by: Aleksander Wennersteen <aleksander.wennersteen@pasqal.com>

* DCO Remediation Commit for Kaonan Micadei <k.micadei@gmail.com>

I, Kaonan Micadei <k.micadei@gmail.com>, hereby add my Signed-off-by to this commit: fb77b365afa1bcc2d0faa9f68924f5ede3cfd26f

Signed-off-by: Kaonan Micadei <k.micadei@gmail.com>

* DCO Remediation Commit for Kaonan Micadei <k.micadei@gmail.com>

I, Kaonan Micadei <k.micadei@gmail.com>, hereby add my Signed-off-by to this commit: cb787884dd76fcd71ece128fd089d10a81630ba9
I, Kaonan Micadei <k.micadei@gmail.com>, hereby add my Signed-off-by to this commit: 734dad9dec4bbd2e6ea63ee324aa203cbecfcb15

Signed-off-by: Kaonan Micadei <k.micadei@gmail.com>

* DCO Remediation Commit for Kaonan Micadei <kaosmicadei@users.noreply.github.com>

I, Kaonan Micadei <kaosmicadei@users.noreply.github.com>, hereby add my Signed-off-by to this commit: f35782c5e4481dc54b900906cf40a731d1ccffa3
I, Kaonan Micadei <kaosmicadei@users.noreply.github.com>, hereby add my Signed-off-by to this commit: 451c4140d21dddfbd6c0d1d0e2989d2a30372e20
I, Kaonan Micadei <kaosmicadei@users.noreply.github.com>, hereby add my Signed-off-by to this commit: 48eb189d334aaf31decf26384fb7a12fc447dd1c
I, Kaonan Micadei <kaosmicadei@users.noreply.github.com>, hereby add my Signed-off-by to this commit: e320af08bf29123f55c84ad1e0ab312216a6b555
I, Kaonan Micadei <kaosmicadei@users.noreply.github.com>, hereby add my Signed-off-by to this commit: 0e369777cceaa3e331a0345ffc0e6228e85039ad

Signed-off-by: Kaonan Micadei <kaosmicadei@users.noreply.github.com>

* DCO Remediation Commit for Kaonan Micadei <k.micadei@gmail.com>

I, Kaonan Micadei <k.micadei@gmail.com>, hereby add my Signed-off-by to this commit: 04efb12947d42d6fc7dd12f98bfc61b9f8bd1bf2

Signed-off-by: Kaonan Micadei <k.micadei@gmail.com>

* Update PasqalServerHelper.cpp

DCO Remediation Commit for Kaonan Micadei <kaosmicadei@users.noreply.github.com>

I, Kaonan Micadei <kaosmicadei@users.noreply.github.com>, hereby add my Signed-off-by to this commit: f35782c5e4481dc54b900906cf40a731d1ccffa3
I, Kaonan Micadei <kaosmicadei@users.noreply.github.com>, hereby add my Signed-off-by to this commit: 451c4140d21dddfbd6c0d1d0e2989d2a30372e20
I, Kaonan Micadei <kaosmicadei@users.noreply.github.com>, hereby add my Signed-off-by to this commit: 48eb189d334aaf31decf26384fb7a12fc447dd1c
I, Kaonan Micadei <kaosmicadei@users.noreply.github.com>, hereby add my Signed-off-by to this commit: e320af08bf29123f55c84ad1e0ab312216a6b555
I, Kaonan Micadei <kaosmicadei@users.noreply.github.com>, hereby add my Signed-off-by to this commit: 0e369777cceaa3e331a0345ffc0e6228e85039ad

Signed-off-by: Kaonan Micadei <kaosmicadei@users.noreply.github.com>

Signed-off-by: Kaonan Micadei <kaosmicadei@users.noreply.github.com>

* Minor edits on docs

Signed-off-by: Aleksander Wennersteen <aleksander.wennersteen@pasqal.com>

* [fix] Pasqal payload format

Signed-off-by: Kaonan Micadei <k.micadei@gmail.com>

* Fix issues preventing correct execution and update example

Signed-off-by: Aleksander Wennersteen <aleksander.wennersteen@pasqal.com>

* Apply basic CR

Signed-off-by: Aleksander Wennersteen <aleksander.wennersteen@pasqal.com>

* target opt-out

Signed-off-by: Kaonan Micadei <kaonan.micadei@pasqal.com>

* Test behavior from C++ frontend when using `pasqal` target
* Moved test to common `analog` directory

Signed-off-by: Pradnya Khalate <pkhalate@nvidia.com>

* Fix code to use new results json structure

Signed-off-by: Aleksander Wennersteen <aleksander.wennersteen@pasqal.com>

* Apply yapf formatting to Python

Signed-off-by: Aleksander Wennersteen <aleksander.wennersteen@pasqal.com>

* Fix docs rendering

Signed-off-by: Aleksander Wennersteen <aleksander.wennersteen@pasqal.com>

* Integration test

Signed-off-by: Aleksander Wennersteen <aleksander.wennersteen@pasqal.com>

* Fix integration test - missing dependency

Signed-off-by: Aleksander Wennersteen <aleksander.wennersteen@pasqal.com>

* Fix behaviour when job fails; fix constant in doc example

Signed-off-by: Kaonan Micadei <kaonan.micadei@pasqal.com>

* fix spell check

Signed-off-by: Aleksander Wennersteen <aleksander.wennersteen@pasqal.com>

* Update example to show how to target QPU
* Modified tests - removed the one which is repeat of the example
* Updated logos to add new hardware target
* Check for the password in environment variables

Signed-off-by: Pradnya Khalate <pkhalate@nvidia.com>

* Update docs and remove todo

Signed-off-by: Aleksander Wennersteen <aleksander.wennersteen@pasqal.com>

* results now in big-endian

Signed-off-by: Kaonan Micadei <kaonan.micadei@pasqal.com>

* Updated logo

Signed-off-by: Pradnya Khalate <pkhalate@nvidia.com>

---------

Signed-off-by: Aleksander Wennersteen <aleksander.wennersteen@pasqal.com>
Signed-off-by: Kaonan Micadei <k.micadei@gmail.com>
Signed-off-by: Kaonan Micadei <kaosmicadei@users.noreply.github.com>
Signed-off-by: Kaonan Micadei <kaonan.micadei@pasqal.com>
Signed-off-by: Pradnya Khalate <pkhalate@nvidia.com>
Co-authored-by: Kaonan Micadei <kaosmicadei@users.noreply.github.com>
Co-authored-by: Kaonan Micadei <k.micadei@gmail.com>
Co-authored-by: Kaonan Micadei <kaonan.micadei@pasqal.com>
Co-authored-by: Pradnya Khalate <pkhalate@nvidia.com>
Co-authored-by: Pradnya Khalate <148914294+khalatepradnya@users.noreply.github.com>

* Fix decomposition patterns to handle spans of pauli words. (#2664)

* Fix decomposition patterns to handle spans of pauli words.

Adds a new test. Changes to decompostion pattern to forward stores to loads
for Pauli words so that the string literal may be recovered. The forwarding
is very basic and could be improved.

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>

* Improve search efficiency by scanning in reverse from the load.

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>

* Add some default output to avoid FileCheck "error" regarding an empty input.

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>

---------

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>

* [core] QIR codegen changes to match old calls for sdg, tdg. (#2659)

These patches modify the sdg and tdg patterns to be consist with the
old QIR codegen rather than trying to be consistent with the handling
of other quantum operator QIS calls.

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>

* [CI] Fixes for failures seen on the publishing pipeline (#2673)

* Fix typo in validate_container.sh script - missing `"`
* Install latest openmpi (similar to PR#2663)

Signed-off-by: Pradnya Khalate <pkhalate@nvidia.com>

* [orca] Skip unnecessary call and avoid error condition (#2674)

The `resetExecutionContext` was previosuly a no-op, except forresetting the context, since no 'qubits` are involved in this job.
Recent changes check for presence of qubits and flag errors accordingly. This change removes the invocation of that function. We reset the context in next line anyway.

Signed-off-by: Pradnya Khalate <pkhalate@nvidia.com>

* Fixes NoiseModel for fp32 targets (#2672)

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>

* Update docs for `nvidia` target fuse settings (#2660)

* Bump mgpu sha and update docs

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>

* Edit the doc for default fuse values

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>
Co-authored-by: W. Michael Brown <michbrown@nvidia.com>

* Fix spell check

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>

* Fix new line

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>

---------

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>
Signed-off-by: Thien Nguyen <58006629+1tnguyen@users.noreply.github.com>
Co-authored-by: W. Michael Brown <michbrown@nvidia.com>

* New tutorial: adapt-qaoa algorithm  (#2638)

* add adapt-qaoa

* add adapt-qaoa

Signed-off-by: marwafar <mfarag@nvidia.com>

* DCO Remediation Commit for marwafar <mfarag@nvidia.com>

I, marwafar <mfarag@nvidia.com>, hereby add my Signed-off-by to this commit: ed7fdcebaa78303d692be7ad9782ac910f590509

Signed-off-by: marwafar <mfarag@nvidia.com>

* use braket in the markdown

* use ket in markdown

* DCO Remediation Commit for marwafar <mfarag@nvidia.com>

I, marwafar <mfarag@nvidia.com>, hereby add my Signed-off-by to this commit: f2bc762ecd9455498bb04bb5b353c21c18aebbfe
I, marwafar <mfarag@nvidia.com>, hereby add my Signed-off-by to this commit: da2fb0d66f18dfbe7825610821e5768dc55096c6

Signed-off-by: marwafar <mfarag@nvidia.com>

* clean up

* clean up

Signed-off-by: marwafar <mfarag@nvidia.com>

---------

Signed-off-by: marwafar <mfarag@nvidia.com>
Co-authored-by: Sachin Pisal <spisal@nvidia.com>

* [CI] Fixing a typo in validation script (#2680)

Signed-off-by: Pradnya Khalate <pkhalate@nvidia.com>

* Fix a bug in ObserveAnsatz when handling spin.y term (#2676)

* Fix missing case in ObserveAnsatz

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Add tests

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Fix incorrect measurement on Y spinop on quantum devices

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Update cudaq_observe_term.cpp

* DCO Remediation Commit for Anna Gringauze <agringauze@nvidia.com>

I, Anna Gringauze <agringauze@nvidia.com>, hereby add my Signed-off-by to this commit: 8884c68ac4f8d1a4f97d6bc1972be8507e290e7f

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

---------

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* CUDA-Q quantum transformer tutorial (#2614)

* Added quantum transformer tutorial

* Fix installation procedure

* Formatted code, fixed spell check issues, and applied requested changes

* Added quantum_transformer.ipynb to documentation application.rst

* Update notebook headers and images

* Adding cell_id

Signed-off-by: Sachin Pisal <spisal@nvidia.com>

---------

Signed-off-by: Sachin Pisal <spisal@nvidia.com>
Co-authored-by: Sachin Pisal <spisal@nvidia.com>

* Fix cudaq.draw for circuits with exp_pauli (#2678)

* Fix cudaq.draw for circuits with exp_pauli

* Bump nvidia-mgpu commit

---------

Signed-off-by: Ben Howe <bhowe@nvidia.com>

* Operator classes (#2631)

This PR introduces general operator classes in C++. Existing spin ops are not yet replaced, and integration with dynamics will follow in a separate PR.

* Update pypi README to pin openmpi>=5.0.3 (#2681)

It was observed that a seg fault occurs when using openmpi older than 5.0.3.
Conda was installing 4.0.5 in the CI and in local testing, so this suggestion
pins it to >=5.0.3.

This also backs out https://github.com/NVIDIA/cuda-quantum/pull/2663 as that
fix should no longer be needed.

Signed-off-by: Mitchell Dzurick <mdzurick@nvidia.com>

* Fix integration tests broken by #2676 (#2685)

* Fix missing case in ObserveAnsatz

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Add tests

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Fix incorrect measurement on Y spinop on quantum devices

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Update cudaq_observe_term.cpp

* DCO Remediation Commit for Anna Gringauze <agringauze@nvidia.com>

I, Anna Gringauze <agringauze@nvidia.com>, hereby add my Signed-off-by to this commit: 8884c68ac4f8d1a4f97d6bc1972be8507e290e7f

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Fix failing test

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

* Fix intergration tests

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>

---------

Signed-off-by: Anna Gringauze <agringauze@nvidia.com>
Co-authored-by: Ben Howe <141149032+bmhowe23@users.noreply.github.com>

* Fix cudaq.exp_pauli usage of pauli_word for quantum devices (#2675)

Signed-off-by: Ben Howe <bhowe@nvidia.com>
Signed-off-by: Anna Gringauze <agringauze@nvidia.com>
Co-authored-by: Anna Gringauze <agringauze@nvidia.com>

* Fix publishing error (#2688)

* Calling copy function so that a new CuPy array is created for each conversion

Signed-off-by: Sachin Pisal <spisal@nvidia.com>

* Making from_dlpack usage compatible with both CuPy v13.4+ and v13.3 (and older)

Signed-off-by: Sachin Pisal <spisal@nvidia.com>

* Fixing spell check

Signed-off-by: Sachin Pisal <spisal@nvidia.com>

* Fix cupy - torch conversion

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>

---------

Signed-off-by: Sachin Pisal <spisal@nvidia.com>
Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>
Co-authored-by: Thien Nguyen <thiennguyen@nvidia.com>

* docs/notebook_validation.py: skip quantum_transformer.ipynb (#2690)

This is to enable the publishing pipeline to pass. The test
fails due to timeout.

See: https://github.com/NVIDIA/cuda-quantum/issues/2689

Signed-off-by: Mitchell Dzurick <mdzurick@nvidia.com>

* Mitch/fix if statement (#2696)

* docs/notebook_validation.py: fix if/elif error

I mistakenly added another if statement, which made it so
afqmc.ipynb was executed even though it was added to the list
of skipped notebooks.

Signed-off-by: Mitchell Dzurick <mdzurick@nvidia.com>

* docs/notebook_validation.py: refactor skipped tests

Signed-off-by: Mitchell Dzurick <mdzurick@nvidia.com>

* docs/notebook_validation: add nbconvert timing

This could be useful debugging information for the
future, and will be nice to see how long notebooks
should be taking in CI.

Signed-off-by: Mitchell Dzurick <mdzurick@nvidia.com>

* docs/notebook_validation.py: initialize skipped array

Signed-off-by: Mitchell Dzurick <mdzurick@nvidia.com>

* docs/notebook_validation.py: don't re-add skipped test to list

Signed-off-by: Mitchell Dzurick <mdzurick@nvidia.com>

* docs/notebook_validation: make spellcheck happy

Signed-off-by: Mitchell Dzurick <mdzurick@nvidia.com>

* docs/notebook_validation.py: remove nested if

Signed-off-by: Mitchell Dzurick <mdzurick@nvidia.com>

---------

Signed-off-by: Mitchell Dzurick <mdzurick@nvidia.com>

* [docs] Add documentation missing from #2632 initial pasqal integration (#2695)

* Add documentation missing from PR#2632 intial pasqal integration

Signed-off-by: Aleksander Wennersteen <aleksander.wennersteen@pasqal.com>

* Update docs/sphinx/targets/python/pasqal.py

Apply CR

Co-authored-by: efratshabtai <efratshabtai@users.noreply.github.com>
Signed-off-by: Aleksander Wennersteen <awennersteen@gmail.com>

* Update docs/sphinx/using/backends/hardware/neutralatom.rst

Co-authored-by: efratshabtai <efratshabtai@users.noreply.github.com>
Signed-off-by: Aleksander Wennersteen <awennersteen@gmail.com>

* DCO Remediation Commit for Aleksander Wennersteen <aleksander.wennersteen@pasqal.com>

I, Aleksander Wennersteen <aleksander.wennersteen@pasqal.com>, hereby add my Signed-off-by to this commit: 57980d2b3b0cc0eb9f13dec3d9e69a14479ff918
I, Aleksander Wennersteen <aleksander.wennersteen@pasqal.com>, hereby add my Signed-off-by to this commit: 1fdb13fdd782993d6151435ea875d0e8db4e8fa8

Signed-off-by: Aleksander Wennersteen <aleksander.wennersteen@pasqal.com>

---------

Signed-off-by: Aleksander Wennersteen <aleksander.wennersteen@pasqal.com>
Signed-off-by: Aleksander Wennersteen <awennersteen@gmail.com>
Co-authored-by: efratshabtai <efratshabtai@users.noreply.github.com>

* Improve error handling in script to activate custom MPI (#2700)

Signed-off-by: Pradnya Khalate <pkhalate@nvidia.com>

* [core] Deprecate unneeded fatal error checker. (#2697)

* [core] Deprecate unneeded fatal error checker.

Having a fatal error generated in the middle of a multithreaded pipeline
run was causing mischief with some Python code.

Fix #2693.

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>

* Add the regression test.

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>

---------

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>

* Dynamics cpp integration (#2683)

Dynamics cpp integration

co-authored by: @1tnguyen
---------

Signed-off-by: Sachin Pisal <spisal@nvidia.com>
Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>
Co-authored-by: Bettina Heim <heimb@outlook.com>
Co-authored-by: Thien Nguyen <thiennguyen@nvidia.com>

* [core] Fix bug with exp_pauli lowering. (#2698)

Add a regression test.

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>

* [Python] Handle more conditions in `MidCircuitMeasurementAnalyzer` (#2701)

Signed-off-by: Pradnya Khalate <pkhalate@nvidia.com>

* [Python] Explicitly add the path for `cuTensor` library in the `CUDAQ_DYNLIBS` environment variable (#2691)

Signed-off-by: Pradnya Khalate <pkhalate@nvidia.com>

* [core] Add checks to the CC dialect types. (#2679)

We do not allow CC dialect types to "contain" quantum types.

Fix some issues in the C++ bridge that were resulting in these
invalid hybrid types being created.

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>
Co-authored-by: Pradnya Khalate <148914294+khalatepradnya@users.noreply.github.com>

* [CI] [Publishing] Skip NVQC tests (#2699)

Signed-off-by: Pradnya Khalate <pkhalate@nvidia.com>

* [docs] Follow-up to PR#2539 (#2702)

Signed-off-by: Pradnya Khalate <pkhalate@nvidia.com>

* Support Rydberg Hamiltonian in C++ Evolve API (#2704)

* QuEra / Pasqal support in C++

Signed-off-by: Dobri Y <dyordanov@nvidia.com>

* code review

Signed-off-by: Dobri Y <dyordanov@nvidia.com>

* use EXPECT_ANY_THROW

Signed-off-by: Dobri Y <dyordanov@nvidia.com>

* Update .github/workflows/integration_tests.yml

Co-authored-by: Pradnya Khalate <148914294+khalatepradnya@users.noreply.github.com>
Signed-off-by: nvidia-dobri <dyordanov@nvidia.com>

* Fix pasqal c++ test

Signed-off-by: Dobri Y <dyordanov@nvidia.com>

* yeet pasqal C++ integration test

Signed-off-by: Dobri Y <dyordanov@nvidia.com>

---------

Signed-off-by: Dobri Y <dyordanov@nvidia.com>
Signed-off-by: nvidia-dobri <dyordanov@nvidia.com>
Co-authored-by: Pradnya Khalate <148914294+khalatepradnya@users.noreply.github.com>

* Improve error handling for analog targets when local emulation is requested (#2713)

Signed-off-by: Pradnya Khalate <pkhalate@nvidia.com>

* C++ operator API renaming (#2714)

* minimal API changes

Signed-off-by: Bettina Heim <heimb@outlook.com>

* template instantiation

Signed-off-by: Bettina Heim <heimb@outlook.com>

* instantiate handler specific templates also for clang

Signed-off-by: Bettina Heim <heimb@outlook.com>

* this should take care of most build errors, except the elusive clang failure

Signed-off-by: Bettina Heim <heimb@outlook.com>

* fixing one wrong test, and updating the docs and a test to reflect that eigenvectors are returned as rows

Signed-off-by: Bettina Heim <heimb@outlook.com>

* forgot to commit the docs comment change

Signed-off-by: Bettina Heim <heimb@outlook.com>

* skip test if openfermion is not found

Signed-off-by: Bettina Heim <heimb@outlook.com>

* formatting

Signed-off-by: Bettina Heim <heimb@outlook.com>

* review comments

Signed-off-by: Bettina Heim <heimb@outlook.com>

* formatting

Signed-off-by: Bettina Heim <heimb@outlook.com>

* dummy commit to get a new hash for the build

Signed-off-by: Bettina Heim <heimb@outlook.com>

---------

Signed-off-by: Bettina Heim <heimb@outlook.com>

* PR #2683 Follow up (#2705)

Signed-off-by: Sachin Pisal <spisal@nvidia.com>
Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>
Signed-off-by: Bettina Heim <heimb@outlook.com>
Co-authored-by: Bettina Heim <heimb@outlook.com>
Co-authored-by: Thien Nguyen <thiennguyen@nvidia.com>

* Mitigating against network issues (#2717)

Undoing some of the build changes in #2705, and putting in a mitigation for the package hash mismatch the issue we were seeing.
Keeps opensuse removed from validation.
---------

Signed-off-by: Bettina Heim <heimb@outlook.com>

* [core] Make the get-concrete-matrix pass a Module pass. (#2715)

* [core] Make the get-concrete-matrix pass a Module pass.

This pass is scanning multiple functions at the same time, which may be leading
to spurious crashes. This change is to speculatively avoid these crashes.

See issue #1712, bullet item "execution/custom_operation_basic".

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>

* clang-format

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>

---------

Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>

* Fixing class names (#2721)

* Fixing class names

Signed-off-by: Sachin Pisal <spisal@nvidia.com>

* Using empty()

Signed-off-by: Sachin Pisal <spisal@nvidia.com>

---------

Signed-off-by: Sachin Pisal <spisal@nvidia.com>

* Adding state to a vector of size 1 (#2723)

Signed-off-by: Sachin Pisal <spisal@nvidia.com>

* Skipping non-dynamics examples for dynamics target (#2722)

Signed-off-by: Sachin Pisal <spisal@nvidia.com>
Co-authored-by: Thien Nguyen <58006629+1tnguyen@users.noreply.github.com>

* Adding test_helpers to CI (#2724)

* adding test_helpers to CUDA_OPERATOR_TEST_SOURCES

Signed-off-by: Sachin Pisal <spisal@nvidia.com>

* Fixing the ordering

Signed-off-by: Sachin Pisal <spisal@nvidia.com>

---------

Signed-off-by: Sachin Pisal <spisal@nvidia.com>

---------

Signed-off-by: Pradnya Khalate <pkhalate@nvidia.com>
Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>
Signed-off-by: Anna Gringauze <agringauze@nvidia.com>
Signed-off-by: mawolf2023 <153318030+mawolf2023@users.noreply.github.com>
Signed-off-by: Mark Wolf <mawolf@nvidia.com>
Signed-off-by: mawolf2023 <mawolf2023@nvidia.com>
Signed-off-by: Sachin Pisal <spisal@nvidia.com>
Signed-off-by: boschmitt <7152025+boschmitt@users.noreply.github.com>
Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>
Signed-off-by: Tim <yitchen@amazon.com>
Signed-off-by: Simone Rizzo <simone.rizzo@e4company.com>
Signed-off-by: Alex McCaskey <amccaskey@nvidia.com>
Signed-off-by: Ben Howe <bhowe@nvidia.com>
Signed-off-by: Tim (Yi-Ting) <yitchen@amazon.com>
Signed-off-by: Mitchell Dzurick <mdzurick@mdzurick-mlt.client.nvidia.com>
Signed-off-by: W. Michael Brown <michbrown@nvidia.com>
Signed-off-by: Radu Marginean <radu.marg@gmail.com>
Signed-off-by: Mitchell Dzurick <mdzurick@nvidia.com>
Signed-off-by: Ryan Shaffer <3620100+rmshaffer@users.noreply.github.com>
Signed-off-by: Aleksander Wennersteen <aleksander.wennersteen@pasqal.com>
Signed-off-by: Kaonan Micadei <k.micadei@gmail.com>
Signed-off-by: Kaonan Micadei <kaosmicadei@users.noreply.github.com>
Signed-off-by: Kaonan Micadei <kaonan.micadei@pasqal.com>
Signed-off-by: Thien Nguyen <58006629+1tnguyen@users.noreply.github.com>
Signed-off-by: marwafar <mfarag@nvidia.com>
Signed-off-by: Aleksander Wennersteen <awennersteen@gmail.com>
Signed-off-by: Dobri Y <dyordanov@nvidia.com>
Signed-off-by: nvidia-dobri <dyordanov@nvidia.com>
Signed-off-by: Bettina Heim <heimb@outlook.com>
Co-authored-by: Pradnya Khalate <148914294+khalatepradnya@users.noreply.github.com>
Co-authored-by: Thien Nguyen <58006629+1tnguyen@users.noreply.github.com>
Co-authored-by: Anna Gringauze <agringauze@nvidia.com>
Co-authored-by: mawolf2023 <153318030+mawolf2023@users.noreply.github.com>
Co-authored-by: efratshabtai <efratshabtai@users.noreply.github.com>
Co-authored-by: Ben Howe <141149032+bmhowe23@users.noreply.github.com>
Co-authored-by: Pradnya Khalate <pkhalate@nvidia.com>
Co-authored-by: mawolf2023 <mawolf2023@nvidia.com>
Co-authored-by: Zohim Chandani <60148725+zohimchandani@users.noreply.github.com>
Co-authored-by: root <root@fi-kermit.nvidia.com>
Co-authored-by: Sachin Pisal <spisal@nvidia.com>
Co-authored-by: Bruno Schmitt <7152025+boschmitt@users.noreply.github.com>
Co-authored-by: Tim (Yi-Ting) <yitchen@amazon.com>
Co-authored-by: Ben Howe <bhowe@nvidia.com>
Co-authored-by: Simone Rizzo <32399075+bebora@users.noreply.github.com>
Co-authored-by: Alex McCaskey <amccaskey@nvidia.com>
Co-authored-by: Mitchell <mitch_dz@hotmail.com>
Co-authored-by: Mitchell Dzurick <mdzurick@mdzurick-mlt.client.nvidia.com>
Co-authored-by: W. Michael Brown <michbrown@nvidia.com>
Co-authored-by: Radu Marginean <radu.marg@gmail.com>
Co-authored-by: Ryan Shaffer <3620100+rmshaffer@users.noreply.github.com>
Co-authored-by: Aleksander Wennersteen <awennersteen@gmail.com>
Co-authored-by: Kaonan Micadei <kaosmicadei@users.noreply.github.com>
Co-authored-by: Kaonan Micadei <k.micadei@gmail.com>
Co-authored-by: Kaonan Micadei <kaonan.micadei@pasqal.com>
Co-authored-by: Marwa Farag <46078262+marwafar@users.noreply.github.com>
Co-authored-by: Anthony M. Smaldone <anthony.smaldone@yale.edu>
Co-authored-by: Bettina Heim <heimb@outlook.com>
Co-authored-by: Mitchell <mdzurick@nvidia.com>
Co-authored-by: Thien Nguyen <thiennguyen@nvidia.com>
Co-authored-by: Aleksander Wennersteen <aleksander.wennersteen@pasqal.com>
Co-authored-by: nvidia-dobri <dyordanov@nvidia.com>
annagrin pushed a commit to annagrin/cuda-quantum that referenced this pull request Jun 17, 2025
* Fine-grain kraus channel application in a kernel
* updates
* compile time checks for number of args
* better type safety on input args
* cleanup
* small fixes
* update to use integer key for registry
* remove old headers
* remove the name member
* [core] Support for apply_noise.

Add an apply_noise operator.
Teach the bridge to recognize cudaq::apply_noise and lower it.
Add a pass to erase apply_noise operations.
Modify QIR codegen to generate the C++ callback.
Make test for elimination more robust.

Arguments have to be passed by rvalue reference since some of them are
qubits, which cannot be copied. Thread the pointer through all the
places where there were floating-point types. Update tests.

Add a bit more smart to the cudaq::apply_noise stub. Automatically counts
the leading number of floating-point arguments, so the user doesn't have
to supply this information. Uses the applyNoiseImpl<> template as is.

Add some constraints to fine-tune the apply_noise overload selection.
Add std::vector<double> overload processing to the bridge.

* Make the key an i64 and verify it.
* Rope off the C++20 sections.
* Make the noise_func symbol optional.
* Add to the roundtrip test.
* Fix test.
* Fix signature.
* Add cc.call_vararg op.
* Add codegen test.
* Fix test.
* Enable C++17 in the headers.
* Add python support for apply_noise (NVIDIA#4)
* Start on Python apply_noise support
* add some docs
* Extend __quantum__qis__apply_kraus_channel_generalized() to support spans
as part of the variadic arguments.
* Fix typo.
* Content checks. * Do it again.* And again.
* Catch curious exception being thrown.
* More whining about formatting.
* Try to exclude register_channel to avoid the error.
* Take care of review comments.
* Address PR comments, checks on corner cases, warnings emitted
* Better noise model checking, handle cases with no context
* Rework the noise model header files to support float and double.
* clang-format
* Add enum to the apply_noise entry point to select the floating point type.
* Move template to lambda.
* Fix a bug and more unit tests.
* Add another test.

---------

Signed-off-by: Alex McCaskey <amccaskey@nvidia.com>
Signed-off-by: Eric Schweitz <eschweitz@nvidia.com>
Co-authored-by: Alex McCaskey <amccaskey@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.

5 participants