Release 0.38.0
New features since last release
-
Add
qml.StatePrep()
andqml.QubitStateVector()
support tolightning.tensor
. (#849) -
Add analytic
qml.probs()
measurement support tolightning.tensor
. (#830) -
Add
qml.state()
measurement support tolightning.tensor
. (#827) -
Add Lightning-GPU Linux (AArch64 + GraceHopper) wheels to PyPI. (#815)
-
Add
var
support tolightning.tensor
. Note thatvar
support is added viaobs**2
and this implementation scales asO(num_obs**2)
. (#804)
Breaking changes
-
Update python packaging to follow PEP 517/518/621/660 standards. (#832)
-
Add
getData()
in thelightning.tensor
C++ backend. Users are responsible for ensuring sufficient host memory is allocated for the full state vector. (#827) -
Remove
NDpermuter.hpp
which is no longer required. (#795) -
Remove temporary steps from the CI, such as downgrading Scipy to <1.14 and installing Kokkos v4.2 for
lightning-version == 'stable'
. (#792) -
Do not run GPU tests and Docker workflows on release. (#788)
Improvements
-
Update Lightning tests to support the generalization of basis state preparation. (#864)
-
Add
SetState
andSetBasisState
toLightningKokkosSimulator
. (#861) -
Remove use of the deprecated
Operator.expand
in favour ofOperator.decomposition
. (#846) -
The
setBasisState
andsetStateVector
methods ofStateVectorLQubit
andStateVectorKokkos
are overloaded to support PennyLane-like parameters. (#843) -
Move
setBasisState
,setStateVector
andresetStateVector
fromStateVectorLQubitManaged
toStateVectorLQubit
. (#841) -
Update
generate_samples
inLightningKokkos
andLightningGPU
to supportqml.measurements.Shots
type instances. (#839) -
Add a Catalyst-specific wrapping class for Lightning Kokkos. (#837) (#770)
-
Lightning-Qubit natively supports the
PauliRot
gate. (#834) -
Multiple calls to the
append_mps_final_state()
API is allowed inlightning.tensor
. (#830) -
Add
initial_state_prep
option to Catalyst TOML file. (#826) -
ENABLE_LAPACK
isOFF
by default for all Lightning backends. (#825) -
Update
ctrl_decomp_zyz
tests withlen(control_wires) > 1
. (#821) -
Update the Catalyst-specific wrapping class for Lightning Kokkos to track Catalyst's new support for MCM seeding. (#819)
-
Replace
size_t
bystd::size_t
everywhere. (#816) -
Shot batching is made more efficient by executing all the shots in one go on Lightning-Qubit. (#814)
-
Lightning-Qubit calls
generate_samples(wires)
on a minimal subset of wires when executing in finite-shot mode. (#813) -
Update
LightingQubit.preprocess
to work with changes to preprocessing for mid-circuit measurements. (#812) -
Avoid unnecessary memory reset in Lightning-Qubit's state vector class constructor. (#811)
-
Add
generate_samples(wires)
support in Lightning-Qubit, which samples faster for a subset of wires. (#809) -
Optimize the OpenMP parallelization of Lightning-Qubit's
probs
for all number of targets. (#807) -
Optimize
probs(wires)
of Lightning-Kokkos using various kernels. Which kernel is to be used depends on the device, number of qubits and number of target wires. (#802) -
Add GPU device compute capability check for Lightning-Tensor. (#803)
-
Refactor CUDA utils Python bindings to a separate module. (#801)
-
Parallelize Lightning-Qubit
probs
with OpenMP when using the-DLQ_ENABLE_KERNEL_OMP=1
CMake argument. (#800) -
Implement
probs(wires)
using a bit-shift implementation akin to the gate kernels in Lightning-Qubit. (#795) -
Enable setting the PennyLane version when invoking, for example,
make docker-build version=master pl_version=master
. (#791)
Documentation
-
The installation instructions for all lightning plugins have been improved. (#858) (#851)
-
Updated the README and added citation format for Lightning arXiv preprint. (#818)
Bug fixes
-
Point to the right Lightning root folder independently from the invocation location, when configuring the project. (#874)
-
Update dependencies and
build
command options following changes in the build system. (#863) -
Replace structured bindings by variables in
GateImplementationsLM.hpp
. (#856) -
Remove wrong
-m
when callingsetup.py
. (#854) -
Fix plugin-test-matrix CI/CD workflows. (#850)
-
Set the
immutable
parameter value asfalse
for thecutensornetStateApplyTensorOperator
to allow the followingcutensornetStateUpdateTensorOperator
call. (#845) -
Fix cuQuantum SDK path pass-thought in CMake. (#831)
-
Fix CUDA sync issues on AArch64 + GraceHopper. (#823)
-
Check for the number of wires for Hermitian observables in Lightning-Tensor. Only 1-wire Hermitian observables are supported as of
cuTensorNet-v24.03.0
. (#806) -
Set
PL_BACKEND
for the entirebuild-wheel-lightning-gpu
Docker-build stage to properly build the Lightning-GPU wheel. (#791) -
Fix conditions for skipping build & push steps in the Docker build workflows. (#790)
-
Downgrade Scipy on Lightning stable version tests. (#783)
-
Fix checkout command in test workflows for rc branches. (#777)
Contributors
This release contains contributions from (in alphabetical order):
Ali Asadi, Astral Cai, Ahmed Darwish, Amintor Dusko, Vincent Michaud-Rioux, Erick Ochoa Lopez, Lee J. O'Riordan, Mudit Pandey, Shuli Shu, Raul Torres, Paul Haochen Wang