0.6.0
The 0.6.0 release contains improved support for various HPC scenarios. We have added a plugin infrastructure for connecting CUDA Quantum with an existing MPI installation, and we've added a new platform target that distributes workloads across multiple virtual QPUs, each simulated by one or more GPUs.
Starting with 0.6.0, we are now also distributing pre-built binaries for using CUDA Quantum with C++. The binaries are built against the GNU C library version 2.28. We've added a detailed Building from Source guide to build these binaries for older glibc
versions.
What's Changed
Features and Enhancements 🎉
- C++17 support by @schweitzpgi in #973
- MPI support as plugins by @1tnguyen in #966
- Support for recursive vector arguments and other data types by @schweitzpgi in #1051
- Allow user to directly specify mapping topology file by @bmhowe23 in #1084
- Pre-built binaries, installer, and building from source guide by @bettinaheim in #1010
- Introducing
remote-mqpu
REST Server-Client platform by @1tnguyen in #1012
Bug Fixes 🐛
- Make C++ ASTBridge specification adherent for operation broadcasting by @amccaskey in #876
- Fix missing ctrl-swap support by @schweitzpgi in #918
- Fix WireType compliance issues with qubit-mapping pass by @bmhowe23 in #932
- Reduce GPU memory usage when using reset(q) in user programs by @bmhowe23 in #942
- Fix for misleading CUDA not found message by @khalatepradnya in #986
- Fixes for
tensornet
backend not picking up MPI by @1tnguyen in #974 - Fix bug in sampling a kernel with mz-reset-mz pattern (overwriting sample_result register) by @amccaskey in #997
- Fix ghost qubit bug #981 by @amccaskey in #998
- Hide error message while checking for GPUs in Python workflow by @khalatepradnya in #995
- Fix density matrix qubit ordering bug by @anthony-santana in #1033
- Fix library mode qubit ordering bug. by @amccaskey in #1044
- Patch density matrix bug in release mode by @anthony-santana in #1053
- Fix issue 1064: bug in bridge when lambda argument contains a loop. by @schweitzpgi in #1069
- Improve thread-safety of CUDAQ static variables by @1tnguyen in #1078
- Chemistry related bug fixes by @amccaskey in #1099
- Fix bug 1108 - race condition in sample_async by @amccaskey in #1114
Documentation Updates ✏️
- Fixing typos and copy editing for docs by @mmvandieren in #896
- Add documentation and test for mixed language project by @schweitzpgi in #1085
- MPI plugin docs by @1tnguyen in #1095
- Adding a section on updating CUDA Quantum to docs by @bettinaheim in #1112
Other Changes
- Add new pass, linear-ctrl-form by @schweitzpgi in #853
- Add a MeasureType to Quake by @schweitzpgi in #869
- Deprecate builder ctrl gates that are not specification compliant by @anthony-santana in #935
- Add ability to create shared library to the driver by @schweitzpgi in #985
- Improved support for kernel return values by @schweitzpgi in #1009
- Deprecating qreg and qspan by @schweitzpgi in #983
- Support for return vectors of type std::vector where NT is a numerical type by @schweitzpgi in #1014
- Ability to pass custom passes from
nvq++
by @1tnguyen in #1034 - Add support for vectors of vectors to the bridge. by @schweitzpgi in #1036
- Support controlled-SWAP's in kernel builder by @anthony-santana in #924
- Partial support for passing/return POD struct values. by @schweitzpgi in #1054
- Process initializer lists for struct types in the bridge. by @schweitzpgi in #1068
- Enable use of single-term spin_op with kernel_builder::exp_pauli by @amccaskey in #1071
New Contributors
- @mmvandieren made their first contribution in #896
- @jjacobelli made their first contribution in #832
- @Yaraslaut made their first contribution in #1038
Full Changelog: 0.5.0...0.6.0
Release created by workflow 7702894514.
GitHub commit e0fb95f99b955acca530fcedeb3acd109d9d0183