Release 0.37.0
New features since last release
-
Implement Python interface to the
lightning.tensor
device. (#748) -
Add
inverse
support for gate operations inlightning.tensor
in the C++ layer. (#753) -
Add
observable
andexpval
support to thecutensornet
-backedlightning.tensor
C++ layer. (#728) -
Add gate support to
cutensornet
-backedlightning.tensor
C++ layer. (#718) -
Add
cutensornet
-backedMPS
C++ layer tolightning.tensor
. (#704) -
Add support for
C(BlockEncode)
to Lightning devices. (#743)
Breaking changes
-
Removed the
QuimbMPS
class and the corresponding backend fromlightning.tensor
. (#737) -
Changed the name of
default.tensor
tolightning.tensor
with thequimb
backend. (#730) -
dynamic_one_shot
uses 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_shot
deals 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
ObservablesTNCuda
andMeasurementsTNCuda
classes fromStateTensorT
toTensorNetT
. (#759) -
Silence
NDPermuter
linting 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.tensor
C++ libraries. (#755) -
Set
state_tensor
asconst
for theMeasurementTNCuda
class. (#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
CPhase
in favour ofCPhaseShift
in 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_28
images. (#667) -
Add support for
qml.expval
andqml.var
in thelightning.tensor
device for thequimb
interface and the MPS method. (#686) -
Changed the name of
lightning.tensor
todefault.tensor
with thequimb
backend. (#719) -
lightning.qubit
andlightning.kokkos
adhere 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
scipy
config file for LightningQubit. The support is now maintained by passingSCIPY_LIBS_PATH
to 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) -
ControlledQubitUnitary
is 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.tensor
Python unit tests and ignorelightning_tensor
paths. (#761) -
lightning.qubit
andlightning.kokkos
useqml.ops.Conditional.base
instead ofqml.ops.Conditional.then_op
. (#752) -
The preprocessing step in
lightning.qubit
now 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
,ZERO
functions in Kokkos kernels since they are incompatible with device execution. (#733) -
The
tests_lkcpu_python.yml
workflow 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-0
dependency 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_zyz
tests withlen(control_wires) > 1
. (#757) -
Add support for Scipy v1.14. (#776)
-
Add pickle support for the
DevPool
object 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