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
varsupport tolightning.tensor. Note thatvarsupport is added viaobs**2and 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.tensorC++ backend. Users are responsible for ensuring sufficient host memory is allocated for the full state vector. (#827) -
Remove
NDpermuter.hppwhich 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
SetStateandSetBasisStatetoLightningKokkosSimulator. (#861) -
Remove use of the deprecated
Operator.expandin favour ofOperator.decomposition. (#846) -
The
setBasisStateandsetStateVectormethods ofStateVectorLQubitandStateVectorKokkosare overloaded to support PennyLane-like parameters. (#843) -
Move
setBasisState,setStateVectorandresetStateVectorfromStateVectorLQubitManagedtoStateVectorLQubit. (#841) -
Update
generate_samplesinLightningKokkosandLightningGPUto supportqml.measurements.Shotstype instances. (#839) -
Add a Catalyst-specific wrapping class for Lightning Kokkos. (#837) (#770)
-
Lightning-Qubit natively supports the
PauliRotgate. (#834) -
Multiple calls to the
append_mps_final_state()API is allowed inlightning.tensor. (#830) -
Add
initial_state_prepoption to Catalyst TOML file. (#826) -
ENABLE_LAPACKisOFFby default for all Lightning backends. (#825) -
Update
ctrl_decomp_zyztests 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_tbystd::size_teverywhere. (#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.preprocessto 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
probsfor 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
probswith OpenMP when using the-DLQ_ENABLE_KERNEL_OMP=1CMake 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
buildcommand options following changes in the build system. (#863) -
Replace structured bindings by variables in
GateImplementationsLM.hpp. (#856) -
Remove wrong
-mwhen callingsetup.py. (#854) -
Fix plugin-test-matrix CI/CD workflows. (#850)
-
Set the
immutableparameter value asfalsefor thecutensornetStateApplyTensorOperatorto allow the followingcutensornetStateUpdateTensorOperatorcall. (#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_BACKENDfor the entirebuild-wheel-lightning-gpuDocker-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