This release adds support for using Amazon Braket and Infeqtion's Superstaq as backends.
Starting with this release, all C++ quantum kernels will be processed by the nvq++ compiler regardless of whether they run on a simulator or on a quantum hardware backend. This change is largely non-breaking, but language constructs that are not officially supported within quantum kernels will now lead to a compilation error whereas previously they could be used when executing on a simulator only. The previous behavior can be forced by passing the --library-mode
flag to the compiler. Please note that if you do so, however, the code will never be executable outside of a simulator and may not be supported even on simulators.
What's Changed
Features and Enhancements 🎉
- Support for the braket target with Python frontend by @khalatepradnya in #2401
- Superstaq integration by @vtomole in #2423
Bug Fixes 🐛
- Fix uninitialized memory issue for the result buffer in statevector simulators by @1tnguyen in #2475
- Fixing JIT compilation error for cudaq.observe from Python by @schweitzpgi in #2392
- Fixing observe for single spin operator by @schweitzpgi in #2394
- Complete revision of
pauli_word
implementation by @schweitzpgi in #2338 - Fix
NoiseModel
for single-precision backends by @1tnguyen in #2406 - Fix a bug with C++ argument handling in the front end by @schweitzpgi in #2459
Breaking Changes 🛠
- Switch the default to enable mlir by @schweitzpgi in #2366
Documentation Updates ✏️
- Fix documentation for Python struct syntax by @bebora in #2365
- Document C++ API for get_state, sample and observe by @lmondada in #2140
- Documentation for
braket
target by @khalatepradnya in #2418 - Documentation for
infleqtion
target by @khalatepradnya in #2464 - Fix wrong parameters in docs for Fermioniq backend by @MarkusPfundstein in #2367
Other Changes
- Tensornet contraction path reuse for expectation value calculation by @1tnguyen in #2397
- Improve binary sizes by not globing MLIR dialects/passes by @boschmitt in #2414
- Improve performance of some opt passes by @annagrin in #2431
- Support measurements of subveqs for braket by @annagrin in #2416
- Support measurement sampling seed for
cutensornet
backends by @1tnguyen in #2398 - Support for allocatable quantum structs by @schweitzpgi in #2432
- Allow setting noise on measurement operation and apply it accordingly by @1tnguyen in #2447
- MGPU updates for NVLink and bug fixes by @1tnguyen in #2424
New Contributors
- @bebora made their first contribution in #2365
- @mitchdz made their first contribution in #2399
- @vtomole made their first contribution in #2423
- @lmondada made their first contribution in #2140
Full Changelog: 0.9.0...0.9.1.
Release created by workflow 12315600791.