Release v0.34.0
New features since last release
-
Support added for Python 3.12 wheel builds. (#541)
-
Lightning-Qubit support arbitrary controlled gates (any wires and any control values). The kernels are implemented in the
LM
module. (#576) -
Shot-noise related methods now accommodate observable objects with arbitrary eigenvalues. Add a Kronecker product method for two diagonal matrices. (#570)
-
Add shot-noise support for probs in the C++ layer. Probabilities are calculated from generated samples. All Lightning backends support this feature. Please note that target wires should be sorted in ascending manner. (#568)
-
Add
LM
kernels to apply arbitrary controlled operations efficiently. (#516) -
Add shots support for variance value, probs, sample, counts calculation for given observables (
NamedObs
,TensorProd
andHamiltonian
) based on Pauli words,Identity
andHadamard
in the C++ layer. All Lightning backends support this support feature. (#561) -
Add shots support for expectation value calculation for given observables (
NamedObs
,TensorProd
andHamiltonian
) based on Pauli words,Identity
andHadamard
in the C++ layer by addingmeasure_with_samples
to the measurement interface. All Lightning backends support this support feature. (#556) -
qml.QubitUnitary
operators can be included in a circuit differentiated with the adjoint method. Lightning handles circuits with arbitrary non-differentiableqml.QubitUnitary
operators. 1,2-qubitqml.QubitUnitary
operators with differentiable parameters can be differentiated using decomposition. (#540)
Breaking changes
-
Set the default version of Kokkos to 4.2.00 throughout the project (CMake, CI, etc.) (#578)
-
Overload
applyOperation
with a fifthmatrix
argument to all state vector classes to support arbitrary operations inAdjointJacobianBase
. (#540)
Improvements
-
Ensure aligned memory used for numpy arrays with state-vector without reallocations. (#572)
-
Unify error messages of shot measurement related unsupported observables to better Catalyst. (#577)
-
Add configuration files to improve compatibility with Catalyst. (#566)
-
Refactor shot-noise related methods of MeasurementsBase class in the C++ layer and eigenvalues are not limited to
1
and-1
. AddgetObs()
method to Observables class. RefactorapplyInPlaceShots
to allow users to get eigenvalues of Observables object. Deprecated_preprocess_state
method inMeasurementsBase
class for safer use of theLightningQubitRaw
backend. (#570) -
Modify
setup.py
to use backend-specific build directory (f"build_{backend}"
) to accelerate rebuilding backends in alternation. (#540) -
Update Dockerfile and rewrite the
build-wheel-lightning-gpu
stage to build Lightning-GPU from thepennylane-lightning
monorepo. (#539) -
Add the MPI test CI workflows of Lightning-GPU in compatibility cron jobs. (#536)
-
Add MPI synchronization in places to safely handle communicated data. (#538)
-
Add release option in compatibility cron jobs to test the release candidates of PennyLane and the Lightning plugins against one another. (#531)
-
Add GPU workflows in compatibility cron jobs to test Lightning-GPU and Lightning-Kokkos with the Kokkos CUDA backend. (#528)
Documentation
-
Fixed a small typo in the documentation page for the PennyLane-Lightning GPU device. (#563)
-
Add OpenGraph social preview for Lightning docs. (#574)
Bug fixes
-
Fix CodeCov file contention issue when uploading data from many workloads. (#584)
-
Ensure the
lightning.gpu
intermediate wheel builds are uploaded to TestPyPI. (#575) -
Allow support for newer clang-tidy versions on non-x86_64 platforms. (#567)
-
Do not run C++ tests when testing for compatibility with PennyLane, hence fixing plugin-matrix failures. Fix Lightning-GPU workflow trigger. (#571)
-
Revert single-node multi-GPU batching behaviour to match PennyLaneAI/pennylane-lightning-gpu#27. (#564)
-
Move deprecated
stateprep
QuantumScript
argument into the operation list inmpitests/test_adjoint_jacobian.py
. (#540) -
Fix MPI Python unit tests for the adjoint method. (#538)
-
Fix the issue with assigning kernels to ops before registering kernels on macOS. (#582)
-
Update
MANIFEST.in
to include device config files andCHANGELOG.md
. (#585)
Contributors
This release contains contributions from (in alphabetical order):
Ali Asadi, Isaac De Vlugt, Amintor Dusko, Vincent Michaud-Rioux, Erick Ochoa Lopez, Lee James O'Riordan, Shuli Shu