Skip to content

Release 0.38.0

Latest
Compare
Choose a tag to compare
@vincentmr vincentmr released this 03 Sep 17:04

New features since last release

  • Add qml.StatePrep() and qml.QubitStateVector() support to lightning.tensor. (#849)

  • Add analytic qml.probs() measurement support to lightning.tensor. (#830)

  • Add qml.state() measurement support to lightning.tensor. (#827)

  • Add Lightning-GPU Linux (AArch64 + GraceHopper) wheels to PyPI. (#815)

  • Add var support to lightning.tensor. Note that var support is added via obs**2 and this implementation scales as O(num_obs**2). (#804)

Breaking changes

  • Update python packaging to follow PEP 517/518/621/660 standards. (#832)

  • Add getData() in the lightning.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 and SetBasisState to LightningKokkosSimulator. (#861)

  • Remove use of the deprecated Operator.expand in favour of Operator.decomposition. (#846)

  • The setBasisState and setStateVector methods of StateVectorLQubit and StateVectorKokkos are overloaded to support PennyLane-like parameters. (#843)

  • Move setBasisState, setStateVector and resetStateVector from StateVectorLQubitManaged to StateVectorLQubit. (#841)

  • Update generate_samples in LightningKokkos and LightningGPU to support qml.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 in lightning.tensor. (#830)

  • Add initial_state_prep option to Catalyst TOML file. (#826)

  • ENABLE_LAPACK is OFF by default for all Lightning backends. (#825)

  • Update ctrl_decomp_zyz tests with len(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 by std::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 calling setup.py. (#854)

  • Fix plugin-test-matrix CI/CD workflows. (#850)

  • Set the immutable parameter value as false for the cutensornetStateApplyTensorOperator to allow the following cutensornetStateUpdateTensorOperator 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 entire build-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