Skip to content

Releases: NVIDIA/cudaqx

0.4.0

01 Aug 20:42
f731a8f
Compare
Choose a tag to compare

The CUDA-QX 0.4.0 release includes a variety of new features in both the Solvers and QEC library. For the Solvers library, a new Generative Quantum Eigensolver implementation is provided. To use this new algorithm, you will need to use pip install cudaq-solvers[gqe] in order to install all the proper dependencies. For the QEC library, a new Tensor Network Decoder is added, and a new API allows users to automatically generate PCMs from noisy CUDA-Q memory circuits. To use this new decoder, you will need to a) use Python >= 3.11, and b) use pip install cudaq-qec[tensor_network_decoder] in order to install all the proper dependencies. Additionally, support for Python 3.13 is added in this release. Many more features are listed below!

Please check out the docs and examples for how to get started using the CUDA-QX libraries!

Note: CUDA-QX 0.4.0 depends on CUDA-Q 0.12.0.

Features and Enhancements (Solvers) 🎉

Features and Enhancements (QEC) 🎉

Breaking Changes (QEC) 🛠

Bug Fixes (QEC) 🐛

  • Add fine grained noise injection in a custom qec code by @kvmto in #227

nv-qldpc-decoder Updates (Closed Source)

  • Added multiple algorithm configuration updates, including iter_per_check, clip_value, bp_method (now supporting both sum-product and min-sum), scale_factor, and an optional output result logging capability for bp_llr_history.

Documentation ✏️

Common / Misc

Testing

  • Workflow updates (incl creating all_libs_release.yaml) by @bmhowe23 in #159
  • [test] Skip nv-qldpc-decoder test if no GPUs found by @bmhowe23 in #238
  • Add python3.13 to validate_wheels.sh by @melody-ren in #237

New Contributors

Full Changelog: 0.3.0...0.4.0

0.3.0

14 May 14:28
99d542d
Compare
Choose a tag to compare

The CUDA-QX 0.3.0 release includes updates for CUDA-Q breaking changes (spin ops) and notable performance improvements to our nv-qldpc-decoder. Some of these improvements reduce our average OSD-0 processing by >6X, so try it out!

For details on the breaking changes, see the descriptions in in PRs below along with the associated CUDA-Q PRs:

Please check out the docs and examples for how to get started using the CUDA-QX libraries!

What's Changed (Solvers)

  • UCCSD operator pool correction and integration in adapt simulator by @kvmto in #65
  • Update libraries for cudaq::spin_op breaking changes by @bmhowe23 in #134
  • Update libraries for Python spin op breaking changes by @bmhowe23 in #152
  • Add __version__ info to packages by @bmhowe23 in #154

What's Changed (QEC)

  • Update libraries for cudaq::spin_op breaking changes by @bmhowe23 in #134
  • Update libraries for Python spin op breaking changes by @bmhowe23 in #152
  • Correcting syndromes per shot in circuit-level example by @justinlietz in #136
  • Add __version__ info to packages by @bmhowe23 in #154

nv-qldpc-decoder Updates (Closed Source)

  • OSD solver ARM performance improvements by @melody-ren
  • Add Gaussian elimination to OSD with early exit @melody-ren
  • Fix numerical stability bug with BP by @bmhowe23

Documentation

  • Update install guide to clarify usage with no GPUs available by @bmhowe23 in #143

Testing

  • Add testcases for libs/core to improve the code coverage rate by @caiyunh in #153

New Contributors

Note: CUDA-QX 0.3.0 depends on CUDA-Q 0.11.0.

Full Changelog: 0.2.1...0.3.0

0.2.1

21 Apr 16:54
d17564b
Compare
Choose a tag to compare

What's Changed

This a is a minor patch release to fix 1 important bug and add 1 important set of error checks. Both of these changes are related the QEC decoders.

  • Fix bug in nv-qldpc-decoder where exhaustive search OSD was not searching over the correct candidate bitstrings.
  • Add error checking before constructing internal structures from Python data by @bmhowe23 #141

Note: CUDA-QX 0.2.1 depends on CUDA-Q 0.10.0 (same as CUDA-QX 0.2.0).

Full Changelog: 0.2.0...0.2.1

0.2.0

17 Mar 15:36
8a599e6
Compare
Choose a tag to compare

This release of the CUDA-QX libraries adds support for arm64 / aarch64 platforms for both the QEC and Solvers libraries.

CUDA-QX is a collection of libraries that build upon the CUDA-Q programming model to enable the rapid development of hybrid quantum-classical application code leveraging state-of-the-art CPUs, GPUs, and QPUs. It provides a collection of C++ libraries and Python packages that enable research, development, and application creation for use cases in quantum error correction and hybrid quantum-classical solvers.

Please check out the docs and examples for how to get started using the CUDA-QX libraries!

Note: CUDA-QX 0.2.0 depends on CUDA-Q 0.10.0.

What's Changed for QEC

This release includes a new high-performance GPU-accelerated QLDPC decoder implementation based on the algorithms described in Decoding Across the Quantum LDPC Code Landscape. This new decoder requires an NVIDIA GPU. Additionally, this release includes performance improvements in the sample_memory_circuit by utilizing CUDA-Q's new "explicit measurements" feature to accelerate collection of noisy syndrome data when using the stim target.

Features and Enhancements 🎉

Bug Fixes 🐛

  • Fix undefined behavior in cudaq::qec::to_parity_matrix by @bmhowe23 in #87

Breaking Changes 🛠

Documentation Updates ✏️

Other Changes

What's Changed for Solvers

In addition to arm64 / aarch64 support, this release includes a support for the Bravyi-Kitaev transformation.

Features and Enhancements 🎉

  • Add a get_operator_pool function in C++ to mirror the Python by @amccaskey in #13
  • Add an option to set the tolerance for jordan_wigner by @melody-ren in #23
  • Bravyi-Kitaev implementation by @wsttiger in #35
  • Support vector types for kwargs by @bmhowe23 in #99

Bug Fixes 🐛

  • Fix signed int overflow in uccsd by @annagrin in #64
  • Refactoring and debugging of Jordan Wigner transform (Issue #67) by @kvmto in #82

Breaking Changes 🛠

Documentation Updates ✏️

  • Update docs to clarify Python wheels installation requirements by @bmhowe23 in #34
  • Update API documentation by @melody-ren in #71

Other Changes

New Contributors

Full Changelog: 0.1.0...0.2.0

0.1.0

10 Dec 02:50
044539b
Compare
Choose a tag to compare

This is the initial release of the CUDA-QX libraries! CUDA-QX is a collection of libraries that build upon the CUDA-Q programming model to enable the rapid development of hybrid quantum-classical application code leveraging state-of-the-art CPUs, GPUs, and QPUs. It provides a collection of C++ libraries and Python packages that enable research, development, and application creation for use cases in quantum error correction and hybrid quantum-classical solvers. Please check out the docs and examples for how to get started using the CUDA-QX libraries!

Note: CUDA-QX 0.1.0 depends on CUDA-Q 0.9.0.