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 #3129
- Support input state batching in dynamics
evolve
by @1tnguyen in #2921 - General
evolve
super-operator construction by @1tnguyen in #2960 - Support fine-grained store intermediate result option in
evolve
by @1tnguyen in #3055 - Support multi-diagonal operator conversion for dynamics by @1tnguyen in #2993
- Enable
run
API by @khalatepradnya in #2927 - Add ability to create a measurement matrix from a Clifford-only kernel by @bmhowe23 in #2919
- Support for Quantum Machines backends by @HanaGiatQM in #2838
Bug Fixes 🐛
- Proper handling of
evolve_async
input state by @1tnguyen in #2951 - Fix constant folding of booleans casted to integers by @annagrin in #2805
- Fix an issue with tensornet observe when the canonicalized
spin_op
doesn't span the entire qubit space by @1tnguyen in #3038 - Fixing an issue with
apply_noise
on the mgpu backend by @1tnguyen in #3070 - Remove external linkage of Stim symbols in libnvqir-stim.so by @bmhowe23 in #3076
- Fix bugs when lowering ternary operator by @schweitzpgi in #3108
- Fixes a number of bugs, todos, etc. by @schweitzpgi in #3083
- Improve compilation for docs examples by @schweitzpgi in #3130
- Fix handling of empty vector in kernel arguments by @schweitzpgi in #3142
- Fix default config file generator cmake helper function and add test by @1tnguyen in #3164
- Fix a couple of bugs for python loops by @schweitzpgi in #3200
- Avoid calls to MPI_Comm_rank() after finalize by @cuMikeBrown in #3198
- Propagate conditional feedback metadata from callees to callers by @annagrin in #3219
Breaking Changes 🛠
- Drop library mode support in remote simulators by @khalatepradnya in #2977
- Update to cuquantum 25.06 by @1tnguyen in #3156
Documentation Updates ✏️
- Preface for dynamics examples by @mawolf2023 in #2865
- Documentation for
CUDAQ_ENABLE_MEMPOOL
by @1tnguyen in #2849 - Add docs for adding a new backend by @nvidia-dobri in #2878
- Fixing the bug in the Krylov example by @marwafar in #2973
- Add Quantum PageRank example by @Squirtle007 in #2806
- Edit
CUDAQ_GLOBAL_INDEX_BITS
doc by @1tnguyen in #3005 - Ion Trap example by @Gopal-Dahale in #3026
- Fixing an error in the operator documentation by @sacpis in #3019
- Add
run
to the algorithmic primitives by @khalatepradnya in #3067 - Add ion trap example to the dynamics docs by @Gopal-Dahale in #3063
- Update Grover's algorithm with phase oracle by @mmvandieren in #3125
- Update
adapt_qaoa
tutorial and fix themixer_pool
issue by @marwafar in #3143 - Update tutorials for unitary compilation using diffusion models by @FlorianFuerrutter in #3101
- Document the
run
API and add examples by @khalatepradnya in #3182 - CPP examples by @sacpis in #2790
- Dynamics batching documentation by @1tnguyen in #3183
Other Changes
- Add ability to propagate constants through spans. by @schweitzpgi in #2953
- Add support for some math functions inside kernels by @schweitzpgi in #2989
- Advance Stim to 1.15 by @bmhowe23 in #2877
- State preparation synthesis via MPS decomposition by @ACE07-Sev in #2972
- Handling negative lower and upper bound of a slice by @sacpis in #3022
- Add argument coercions by @schweitzpgi in #3027
- Adding control on multilple qubits for C++ kernel builder by @sacpis in #3052
- Update run_async to work with python API and add tests by @annagrin in #3074
- Initial implementation of getting matrix for kernel by @Randl in #3028
- Add a DSR compiler pass by @schweitzpgi in #3145
- Introduce
cudaq::contrib
by @nvidia-dobri in #3190 - Include python 3.13 by @mitchdz in #3224
- Make ordering of matrix class configurable by @amccaskey in #3126
New Contributors
- @Squirtle007 made their first contribution in #2806
- @ACE07-Sev made their first contribution in #2972
- @HanaGiatQM made their first contribution in #2838
- @Randl made their first contribution in #3028
- @denialhaag made their first contribution in #3151
Full Changelog: 0.11.0...0.12.0
Release created by workflow 16655085468.