Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

First pass of support for C++ operators #2511

Open
wants to merge 111 commits into
base: experimental/operators
Choose a base branch
from

Conversation

anthony-santana
Copy link
Collaborator

Description

This is an initial commit to the experimental branch containing a first pass of work towards operator support in C++

bmhowe23 and others added 5 commits January 13, 2025 08:05
This PR fixes an LLVM discrepancy in our Docker images vs our Python wheels. This should fix NVIDIA#1421 and NVIDIA#1799 for our Python wheels. (The Docker images were already correct.)
* Docs for trajectory simulation

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

* Fix spelling and code format

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

* Update mgpu hash: include fixes for 2434

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

* Update docs/sphinx/snippets/cpp/using/backends/trajectory.cpp

Co-authored-by: Eric Schweitz <eschweitz@nvidia.com>
Signed-off-by: Thien Nguyen <58006629+1tnguyen@users.noreply.github.com>

* Update docs/sphinx/snippets/cpp/using/backends/trajectory.cpp

Co-authored-by: Eric Schweitz <eschweitz@nvidia.com>
Signed-off-by: Thien Nguyen <58006629+1tnguyen@users.noreply.github.com>

* Update docs/sphinx/snippets/cpp/using/backends/trajectory_observe.cpp

Co-authored-by: Eric Schweitz <eschweitz@nvidia.com>
Signed-off-by: Thien Nguyen <58006629+1tnguyen@users.noreply.github.com>

* Update docs/sphinx/snippets/cpp/using/backends/trajectory_observe.cpp

Co-authored-by: Eric Schweitz <eschweitz@nvidia.com>
Signed-off-by: Thien Nguyen <58006629+1tnguyen@users.noreply.github.com>

* Update python/cudaq/runtime/observe.py

Co-authored-by: Eric Schweitz <eschweitz@nvidia.com>
Signed-off-by: Thien Nguyen <58006629+1tnguyen@users.noreply.github.com>

---------

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>
Signed-off-by: Thien Nguyen <58006629+1tnguyen@users.noreply.github.com>
Co-authored-by: Eric Schweitz <eschweitz@nvidia.com>
For small controlled ops, i.e., singly controlled, expand the gate
matrix and use cutensornetStateApplyTensorOperator.

Add CUDAQ_TENSORNET_CONTROLLED_RANK threshold to determine when cutensornetStateApplyControlledTensorOperator is used.
For MPS, this is fixed at 1 as it cannot handle gate ops with more than
2 qubits.

Add doc for the setting and also remove some stale notes about random
seeds in the docs.

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

copy-pr-bot bot commented Jan 15, 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.

Copy link
Collaborator

@sacpis sacpis left a comment

Choose a reason for hiding this comment

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

LGTM if all tests are running successfully.

1tnguyen and others added 3 commits January 18, 2025 07:14
…de (NVIDIA#2516)

* Fix a bug in default init of scratchpad: it must allocate memory after we've set the device

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

* Add test

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

* Add a check to prevent multiple allocate calls

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

---------

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>
Signed-off-by: Pradnya Khalate <pkhalate@nvidia.com>
@sacpis sacpis force-pushed the dynamics_cpp_operators branch from 752fed1 to d55814d Compare January 21, 2025 17:11
khalatepradnya and others added 2 commits January 22, 2025 07:54
* Fix the behavior of `quera` backend with C++ frontend by showing appropriate error message.
  (Behavior prior to this change - default simulator was invoked)
* Tell nvq++ to generate glue for `quera`
* Simplify libraries - combine 'libcudaq-quera-qpu.so' and 'libcudaq-serverhelper-quera.so' into one.

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

- cuda-quantum/cuquantum-mgpu!36: fix a bug in trajectory simulation

- cuda-quantum/cuquantum-mgpu!37: fix a bug in applyExpPauli: invalid
  value errors when the pauli word is acting on a subset of qubits.

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>
@sacpis sacpis force-pushed the dynamics_cpp_operators branch from 0ebeed5 to b592f8a Compare January 23, 2025 17:42
sacpis and others added 5 commits January 23, 2025 17:53
* Upgrading notebook version to 7.3.2 from 7.1.3

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

* updating jupyterlab version to 4.3.4

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

---------

Signed-off-by: Sachin Pisal <spisal@nvidia.com>
…n conditionally (NVIDIA#2532)

Signed-off-by: Pradnya Khalate <pkhalate@nvidia.com>
* [WIP] dynamics mgmn

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

* Fix a copy and paste error

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

* Handle initial state enum

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

* Update initial state enum example

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

* Add uniform state init

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

* Add uniform state init

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

* Update examples

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

* Code format

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

* Spelling

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

* Add more MPI API to CUDAQ comm plugin interface

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

* Refactor for dependency isolation

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

* Code format

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

* More isolation

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

* connect cuda-q mpi plugin to cudensitymat

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

* Fix for CI

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

* Code format: python

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

* Support initial state enum for non-dynamics case and add test

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

* Code tidy up and add docs

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

* Add MPI tests

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

* Add a link to the example directory

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

* Fix a typo

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

* Address CR: docs and comments edits; refactor to reduce code duplicate

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

---------

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>
* Add non path reuse option

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

* Add docs and test

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

* Code review: add a note about observe with tensornet and update code comments

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

---------

Signed-off-by: Thien Nguyen <thiennguyen@nvidia.com>
Signed-off-by: Ben Howe <bhowe@nvidia.com>
@sacpis sacpis force-pushed the dynamics_cpp_operators branch from 97bd0d6 to 3f00f9f Compare January 25, 2025 19:57
khalatepradnya and others added 3 commits January 27, 2025 17:26
Signed-off-by: Pradnya Khalate <pkhalate@nvidia.com>
…)" (NVIDIA#2548)

This reverts commit 5ee448d.

Since nv-gha-runners/vm-images#113 has been
merged, we can revert our temporary change.

Signed-off-by: Ben Howe <bhowe@nvidia.com>
Signed-off-by: Ben Howe <bhowe@nvidia.com>
@sacpis sacpis force-pushed the dynamics_cpp_operators branch from bbec3ed to 5b14fad Compare January 28, 2025 00:12
bettinaheim and others added 28 commits February 3, 2025 20:07
Signed-off-by: Bettina Heim <heimb@outlook.com>
Signed-off-by: Bettina Heim <heimb@outlook.com>
Signed-off-by: Bettina Heim <heimb@outlook.com>
Signed-off-by: Bettina Heim <heimb@outlook.com>
Signed-off-by: Bettina Heim <heimb@outlook.com>
Signed-off-by: Bettina Heim <heimb@outlook.com>
Signed-off-by: Bettina Heim <heimb@outlook.com>
Signed-off-by: Bettina Heim <heimb@outlook.com>
Signed-off-by: Bettina Heim <heimb@outlook.com>
Signed-off-by: Bettina Heim <heimb@outlook.com>
Signed-off-by: Bettina Heim <heimb@outlook.com>
Signed-off-by: Bettina Heim <heimb@outlook.com>
Signed-off-by: Bettina Heim <heimb@outlook.com>
Signed-off-by: Bettina Heim <heimb@outlook.com>
Signed-off-by: Bettina Heim <heimb@outlook.com>
Signed-off-by: Bettina Heim <heimb@outlook.com>
Signed-off-by: Bettina Heim <heimb@outlook.com>
Signed-off-by: Bettina Heim <heimb@outlook.com>
Signed-off-by: Bettina Heim <heimb@outlook.com>
Signed-off-by: Bettina Heim <heimb@outlook.com>
Signed-off-by: Bettina Heim <heimb@outlook.com>
Signed-off-by: Bettina Heim <heimb@outlook.com>
Signed-off-by: Bettina Heim <heimb@outlook.com>
Signed-off-by: Sachin Pisal <spisal@nvidia.com>
Signed-off-by: Sachin Pisal <spisal@nvidia.com>
Signed-off-by: Sachin Pisal <spisal@nvidia.com>
Signed-off-by: Sachin Pisal <spisal@nvidia.com>
Signed-off-by: Sachin Pisal <spisal@nvidia.com>
@sacpis sacpis force-pushed the dynamics_cpp_operators branch from 3e3909f to 8c91e88 Compare February 4, 2025 21:49
…sum in test_cudm_helpers

Signed-off-by: Sachin Pisal <spisal@nvidia.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants