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) 🎉
- Generative Quantum Eigensolver by @melody-ren in #201
Features and Enhancements (QEC) 🎉
- Tensor Network Decoder by @npancotti in #179
- Add check for tn decoder import by @melody-ren in #206
- Add Parity Check Matrix generation and utility functions by @bmhowe23 in #147
- Add
opt_resultsfield todecoder_resultby @melody-ren in #171 - Optimize
convert_vec_soft_to_tensor_hardby 50x by @bmhowe23 in #160
Breaking Changes (QEC) 🛠
Bug Fixes (QEC) 🐛
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 forbp_llr_history.- Add API doc update for BP by @melody-ren #243
Documentation ✏️
- Replace PCM generation example with one using new DEM API by @kvmto in #216
- introduction.rst: clean up docs typos by @mitchdz in #163
- Update doc and example to use decoder_result new API by @melody-ren in #175
- Update examples to show how to use decoder_result API by @melody-ren in #184
- [docs] Update circuit-level noise example to use new DEM feature by @bmhowe23 in #199
- Fix typo in Building.md by @melody-ren in #209
- Doc update by @melody-ren in #213
- Tensor network decoder docs & examples by @npancotti in #214
- Update Python READMEs to describe optional features by @bmhowe23 in #236
- small fix in
gqedocstring by @caldwellshane in #239 - Update docs and guard for tensor network decoder by @melody-ren in #241
Common / Misc
- Add python 3.13 support by @melody-ren in #222
- [nfc] Be more explicit about extension_point usage by @bmhowe23 in #177
- Add move constructor to
heterogeneous_mapby @melody-ren in #186 - Remove unnecessary
MeasureCounts.hinclude by @1tnguyen in #188 - Update restrict pointer syntax to allow compilation with clang++ by @bmhowe23 in #205
- Update cudaq ver for project.toml by @melody-ren in #219
- Fix decoder plugin not throwing the missing dependecy err msg issue by @melody-ren in #224
- Update pyproject.toml dependencies for CUDA-Q 0.12 by @bmhowe23 in #228
- Add missing licence header by @melody-ren in #235
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
- @mitchdz made their first contribution in #163
- @1tnguyen made their first contribution in #188
- @npancotti made their first contribution in #179
Full Changelog: 0.3.0...0.4.0