0.2.0
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 🎉
- Introduce the new
nv-qldpc-decoder
, a GPU-accelerated decoder of the Belief Propagation and Ordered Statistics Decoding algorithms described in https://arxiv.org/abs/2005.07016. - Make DecoderResult tuple-like in python by @melody-ren in #16
- Add Surface Code by @justinlietz in #7
- First shot memory by @justinlietz in #61
- Add python binding for decoder APIs by @melody-ren in #68
- Use explicit measurements for memory circuit experiments by @bmhowe23 in #89
- Support vector types for kwargs by @bmhowe23 in #99
Bug Fixes 🐛
Breaking Changes 🛠
- Change default decoder float type to double by @bmhowe23 in #31
- Update API name:
decode_multi
todecode_batch
by @melody-ren in #102
Documentation Updates ✏️
- Update docs to clarify Python wheels installation requirements by @bmhowe23 in #34
- [docs] Update old reference to steane_lut decoder by @bmhowe23 in #39
- Add an example of loading a decoder .so by @melody-ren in #42
- Update API documentation by @melody-ren in #71
- Add expressive noise model example by @melody-ren in #123
- Use new CUDA-Q noise models in examples by @bmhowe23 in #120
- [docs] Decoder API clarification by @bmhowe23 in #126
Other Changes
- Update core header files to support C++17 as well by @bmhowe23 in #27
- Add CUDA build support to libraries by @bmhowe23 in #32
- Remove CUDA-Q patch that is no longer needed by @bmhowe23 in #48
- Update CI for arm64 build by @bmhowe23 in #54
- Update test CMakeLists.txt for upstream CUDA-Q change by @bmhowe23 in #93
- Update CUDA-Q build patch by @bmhowe23 in #95
- Test examples in workflow by @melody-ren in #112
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
- Update core header files to support C++17 as well by @bmhowe23 in #27
- Add CUDA build support to libraries by @bmhowe23 in #32
- Remove CUDA-Q patch that is no longer needed by @bmhowe23 in #48
- Update CI for arm64 build by @bmhowe23 in #54
- Update test CMakeLists.txt for upstream CUDA-Q change by @bmhowe23 in #93
- Update CUDA-Q build patch by @bmhowe23 in #95
- Test examples in workflow by @melody-ren in #112
New Contributors
- @boschmitt made their first contribution in #8
- @amccaskey made their first contribution in #13
- @melody-ren made their first contribution in #16
- @bmhowe23 made their first contribution in #18
- @wsttiger made their first contribution in #35
- @justinlietz made their first contribution in #7
- @annagrin made their first contribution in #64
- @kvmto made their first contribution in #82
- @caldwellshane made their first contribution in #117
Full Changelog: 0.1.0...0.2.0