Release 0.37.0
New features since last release
-
Implement Python interface to the
lightning.tensordevice. (#748) -
Add
inversesupport for gate operations inlightning.tensorin the C++ layer. (#753) -
Add
observableandexpvalsupport to thecutensornet-backedlightning.tensorC++ layer. (#728) -
Add gate support to
cutensornet-backedlightning.tensorC++ layer. (#718) -
Add
cutensornet-backedMPSC++ layer tolightning.tensor. (#704) -
Add support for
C(BlockEncode)to Lightning devices. (#743)
Breaking changes
-
Removed the
QuimbMPSclass and the corresponding backend fromlightning.tensor. (#737) -
Changed the name of
default.tensortolightning.tensorwith thequimbbackend. (#730) -
dynamic_one_shotuses shot-vectors in the auxiliary tape to tell the device how many times to repeat the tape. Lightning-Qubit is updated accordingly. (#724) -
dynamic_one_shotdeals with post-selection during the post-processing phase, so Lightning-Qubit does not returnNone-valued measurements for mismatching samples anymore. (#720)
Improvements
-
Release candidate branches automatically use the new large GitHub runner pool. (#769)
-
Lightning-Kokkos dev wheels for MacOS (x86_64, ARM64) and Linux (aarch64) are uploaded to TestPyPI upon merging a pull request. (#765)
-
Lightning-Kokkos Linux (x86_64) dev wheels are pushed to Test PyPI upon merging a pull request. (#763)
-
Change the type of tensor network objects passed to
ObservablesTNCudaandMeasurementsTNCudaclasses fromStateTensorTtoTensorNetT. (#759) -
Silence
NDPermuterlinting warnings. (#750) -
Rationalize MCM tests, removing most end-to-end tests from the native MCM test file, but keeping one that validates multiple mid-circuit measurements with any allowed return. (#754)
-
Rename
lightning.tensorC++ libraries. (#755) -
Set
state_tensorasconstfor theMeasurementTNCudaclass. (#753) -
Updated Kokkos version and support to 4.3.01. (#725)
-
Lightning-Kokkos' functors are rewritten as functions wrapping around generic gate and generator functors templated over a coefficient interaction function. This reduces boilerplate while clarifying how the various kernels differ from one another. (#640)
-
Update C++ and Python GitHub actions names to include the matrix info. (#717)
-
Remove
CPhasein favour ofCPhaseShiftin Lightning devices. (#717) -
The various OpenMP configurations of Lightning-Qubit are tested in parallel on different Github Actions runners. (#712)
-
Update Linux wheels to use
manylinux_2_28images. (#667) -
Add support for
qml.expvalandqml.varin thelightning.tensordevice for thequimbinterface and the MPS method. (#686) -
Changed the name of
lightning.tensortodefault.tensorwith thequimbbackend. (#719) -
lightning.qubitandlightning.kokkosadhere to user-specified mid-circuit measurement configuration options. (#736) -
Patch the C++
Measurements.probs(wires)method in Lightning-Qubit and Lightning-Kokkos toMeasurements.probs()when called with all wires.
This will trigger a more optimized implementation for calculating the probabilities of the entire system. (#744) -
Remove the daily schedule from the "Compat Check w/PL - release/release" GitHub action. (#746)
-
Remove the required
scipyconfig file for LightningQubit. The support is now maintained by passingSCIPY_LIBS_PATHto the compiler. (#775)
Documentation
- Add installation instructions and documentation for
lightning.tensor. (#756)
Bug fixes
-
Don't route
probs(wires=[])toprobs(all_wires)in Lightning-Kokkos. (#762) -
ControlledQubitUnitaryis present in the Python device but not the TOML files. It is added to the decomposition gates since it can be implemented in its alternate form ofC(QubitUnitary). (#767) -
Update the Lightning TOML files to indicate that non-commuting observables are supported. (#764)
-
Fix regex matching issue with auto on-boarding of release candidate branch to using the large runner queue. (#774)
-
Fix random CI failures for
lightning.tensorPython unit tests and ignorelightning_tensorpaths. (#761) -
lightning.qubitandlightning.kokkosuseqml.ops.Conditional.baseinstead ofqml.ops.Conditional.then_op. (#752) -
The preprocessing step in
lightning.qubitnow uses interface information to properly support the hardware-like postselection for mid-circuit measurements. (#760) -
Fix AVX streaming operation support with newer GCC. (#729)
-
Revert changes calling the templated
IMAG,ONE,ZEROfunctions in Kokkos kernels since they are incompatible with device execution. (#733) -
The
tests_lkcpu_python.ymlworkflow properly checks out the release or stable version of Lightning-Qubit during the test job. (#723) -
Fix PennyLane Lightning-Kokkos and LightningQubit tests for stable/stable configuration. (#734)
-
Remove the Autoray dependency from requirement files. (#736)
-
Fix the
cuda-runtime-12-0dependency issue on RHEL8. (#739) -
Fix the memory segmentation fault when initializing zero-wire Lightning-Kokkos. (#757)
-
Remove
pennylane.ops.op_math.controlled_decompositions.ctrl_decomp_zyztests withlen(control_wires) > 1. (#757) -
Add support for Scipy v1.14. (#776)
-
Add pickle support for the
DevPoolobject inlightning.gpu. (#772)
Contributors
This release contains contributions from (in alphabetical order):
Ali Asadi, Amintor Dusko, Lillian Frederiksen, Pietropaolo Frisoni, David Ittah, Vincent Michaud-Rioux, Lee James O'Riordan, Mudit Pandey, Shuli Shu, Jay Soni