0.12.0
This release contains a range of new features and performance improvements for the dynamics simulation and adds more tools for error correction applications. It introduces new CUDA-Q API for kernels that return values (run), and adds support for connecting to Quantum Machines backends. This release also contains a contributions from UnitaryHack. With this release, we now include support for Python 3.13.
Note: Support for Python 3.10 will be removed in future releases.
What's Changed
Features and Enhancements π
- Dynamics operator batching by @1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/3129
- Support input state batching in dynamics
evolveby @1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/2921 - General
evolvesuper-operator construction by @1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/2960 - Support fine-grained store intermediate result option in
evolveby @1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/3055 - Support multi-diagonal operator conversion for dynamics by @1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/2993
- Enable
runAPI by @khalatepradnya in https://github.com/NVIDIA/cuda-quantum/pull/2927 - Add ability to create a measurement matrix from a Clifford-only kernel by @bmhowe23 in https://github.com/NVIDIA/cuda-quantum/pull/2919
- Support for Quantum Machines backends by @HanaGiatQM in https://github.com/NVIDIA/cuda-quantum/pull/2838
Bug Fixes π
- Proper handling of
evolve_asyncinput state by @1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/2951 - Fix constant folding of booleans casted to integers by @annagrin in https://github.com/NVIDIA/cuda-quantum/pull/2805
- Fix an issue with tensornet observe when the canonicalized
spin_opdoesn't span the entire qubit space by @1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/3038 - Fixing an issue with
apply_noiseon the mgpu backend by @1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/3070 - Remove external linkage of Stim symbols in libnvqir-stim.so by @bmhowe23 in https://github.com/NVIDIA/cuda-quantum/pull/3076
- Fix bugs when lowering ternary operator by @schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/3108
- Fixes a number of bugs, todos, etc. by @schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/3083
- Improve compilation for docs examples by @schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/3130
- Fix handling of empty vector in kernel arguments by @schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/3142
- Fix default config file generator cmake helper function and add test by @1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/3164
- Fix a couple of bugs for python loops by @schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/3200
- Avoid calls to MPI_Comm_rank() after finalize by @cuMikeBrown in https://github.com/NVIDIA/cuda-quantum/pull/3198
- Propagate conditional feedback metadata from callees to callers by @annagrin in https://github.com/NVIDIA/cuda-quantum/pull/3219
Breaking Changes π
- Drop library mode support in remote simulators by @khalatepradnya in https://github.com/NVIDIA/cuda-quantum/pull/2977
- Update to cuquantum 25.06 by @1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/3156
Documentation Updates βοΈ
- Preface for dynamics examples by @mawolf2023 in https://github.com/NVIDIA/cuda-quantum/pull/2865
- Documentation for
CUDAQ_ENABLE_MEMPOOLby @1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/2849 - Add docs for adding a new backend by @nvidia-dobri in https://github.com/NVIDIA/cuda-quantum/pull/2878
- Fixing the bug in the Krylov example by @marwafar in https://github.com/NVIDIA/cuda-quantum/pull/2973
- Add Quantum PageRank example by @Squirtle007 in https://github.com/NVIDIA/cuda-quantum/pull/2806
- Edit
CUDAQ_GLOBAL_INDEX_BITSdoc by @1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/3005 - Ion Trap example by @Gopal-Dahale in https://github.com/NVIDIA/cuda-quantum/pull/3026
- Fixing an error in the operator documentation by @sacpis in https://github.com/NVIDIA/cuda-quantum/pull/3019
- Add
runto the algorithmic primitives by @khalatepradnya in https://github.com/NVIDIA/cuda-quantum/pull/3067 - Add ion trap example to the dynamics docs by @Gopal-Dahale in https://github.com/NVIDIA/cuda-quantum/pull/3063
- Update Grover's algorithm with phase oracle by @mmvandieren in https://github.com/NVIDIA/cuda-quantum/pull/3125
- Update
adapt_qaoatutorial and fix themixer_poolissue by @marwafar in https://github.com/NVIDIA/cuda-quantum/pull/3143 - Update tutorials for unitary compilation using diffusion models by @FlorianFuerrutter in https://github.com/NVIDIA/cuda-quantum/pull/3101
- Document the
runAPI and add examples by @khalatepradnya in https://github.com/NVIDIA/cuda-quantum/pull/3182 - CPP examples by @sacpis in https://github.com/NVIDIA/cuda-quantum/pull/2790
- Dynamics batching documentation by @1tnguyen in https://github.com/NVIDIA/cuda-quantum/pull/3183
Other Changes
- Add ability to propagate constants through spans. by @schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/2953
- Add support for some math functions inside kernels by @schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/2989
- Advance Stim to 1.15 by @bmhowe23 in https://github.com/NVIDIA/cuda-quantum/pull/2877
- State preparation synthesis via MPS decomposition by @ACE07-Sev in https://github.com/NVIDIA/cuda-quantum/pull/2972
- Handling negative lower and upper bound of a slice by @sacpis in https://github.com/NVIDIA/cuda-quantum/pull/3022
- Add argument coercions by @schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/3027
- Adding control on multilple qubits for C++ kernel builder by @sacpis in https://github.com/NVIDIA/cuda-quantum/pull/3052
- Update run_async to work with python API and add tests by @annagrin in https://github.com/NVIDIA/cuda-quantum/pull/3074
- Initial implementation of getting matrix for kernel by @Randl in https://github.com/NVIDIA/cuda-quantum/pull/3028
- Add a DSR compiler pass by @schweitzpgi in https://github.com/NVIDIA/cuda-quantum/pull/3145
- Introduce
cudaq::contribby @nvidia-dobri in https://github.com/NVIDIA/cuda-quantum/pull/3190 - Include python 3.13 by @mitchdz in https://github.com/NVIDIA/cuda-quantum/pull/3224
- Make ordering of matrix class configurable by @amccaskey in https://github.com/NVIDIA/cuda-quantum/pull/3126
New Contributors
- @Squirtle007 made their first contribution in https://github.com/NVIDIA/cuda-quantum/pull/2806
- @ACE07-Sev made their first contribution in https://github.com/NVIDIA/cuda-quantum/pull/2972
- @HanaGiatQM made their first contribution in https://github.com/NVIDIA/cuda-quantum/pull/2838
- @Randl made their first contribution in https://github.com/NVIDIA/cuda-quantum/pull/3028
- @denialhaag made their first contribution in https://github.com/NVIDIA/cuda-quantum/pull/3151
Full Changelog: https://github.com/NVIDIA/cuda-quantum/compare/0.11.0...0.12.0 Release created by workflow 16655085468.