Skip to content

Release 0.33.0

Compare
Choose a tag to compare
@vincentmr vincentmr released this 30 Oct 16:02

New features since last release

  • Add documentation updates for the lightning_gpu backend. (#525)

  • Add SparseHamiltonian support for Lightning-Qubit and Lightning-GPU. (#526)

  • Add SparseHamiltonian support for Lightning-Kokkos. (#527)

  • Integrate python/pybind layer of distributed Lightning-GPU into the Lightning monorepo with python unit tests. (#518)

  • Integrate the distributed C++ backend of Lightning-GPU into the Lightning monorepo. (#514)

  • Integrate Lightning-GPU into the Lightning monorepo. The new backend is named lightning_gpu and includes all single-GPU features. (#499)

  • Build Linux wheels for Lightning-GPU (CUDA-11). (#517)

  • Add Dockerfile in docker and make docker workflow in Makefile. The Docker images and documentation are available on DockerHub. (#496)

  • Add mid-circuit state preparation operation tests. (#495)

Improvements

  • Improve Python testing for Lightning-GPU (+MPI) by adding jobs in Actions files and adding Python tests to increase code coverage. (#522)

  • Add support for pip install pennylane-lightning[kokkos] for the OpenMP backend. (#515)

  • Update setup.py to allow for multi-package co-existence. The PennyLane_Lightning package now is the responsible for the core functionality, and will be depended upon by all other extensions. (#504)

  • Redesign Lightning-Kokkos StateVectorKokkos class to use Kokkos RangePolicy together with special functors in applyMultiQubitOp to apply 1- to 4-wire generic unitary gates. For more than 4 wires, the general implementation using Kokkos TeamPolicy is employed to yield the best all-around performance. (#490)

  • Redesign Lightning-Kokkos Measurements class to use Kokkos RangePolicy together with special functors to obtain the expectation value of 1- to 4-wire generic unitary gates. For more than 4 wires, the general implementation using Kokkos TeamPolicy is employed to yield the best all-around performance. (#489)

  • Add tests to increase Lightning-Kokkos coverage. (#485)

  • Add memory locality tag reporting and adjoint diff dispatch for lightning.qubit statevector classes. (#492)

  • Add support for dependent external packages to C++ core. (#482)

  • Add support for building multiple backend simulators. (#497)

Breaking changes

  • Add tests_gpu.yml workflow to test the Lightning-Kokkos backend with CUDA-12. (#494)

  • Implement LM::GeneratorDoubleExcitation, LM::GeneratorDoubleExcitationMinus, LM::GeneratorDoubleExcitationPlus kernels. Lightning-Qubit default kernels are now strictly from the LM implementation, which requires less memory and is faster for large state vectors. (#512)

  • Add workflows validating compatibility between PennyLane and Lightning's most recent stable releases and development (latest) versions. (#507) (#498)

  • Introduce timeout-minutes in various workflows, mainly to avoid Windows builds hanging for several hours. (#503)

  • Cast integral-valued arrays to the device's complex type on entry in _preprocess_state_vector to ensure the state is correctly represented with floating-point numbers. (#501)

  • Update DefaultQubit to DefaultQubitLegacy on Lightning fallback. (#500)

  • Enums defined in GateOperation.hpp start at 1 (previously 0). ::BEGIN is introduced in a few places where it was assumed 0 accordingly. (#485) ::BEGIN was later reverted to 0, keeping the rest of the changes, to fix a compatibility issue with Catalyst. (#521)

  • Enable pre-commit hooks to format all Python files and linting of all Python source files. (#485)

Bug fixes

  • Re-add support for pip install pennylane-lightning[gpu]. (#515)

  • Switch most Lightning-Qubit default kernels to LM. Add LM::multiQubitOp tests, failing when targeting out-of-order wires clustered close to num_qubits-1. Fix the LM::multiQubitOp kernel implementation by introducing a generic revWireParity routine and replacing the bitswap-based implementation. Mimic the changes fixing the corresponding multiQubitOp and expval functors in Lightning-Kokkos. (#511)

  • Fix RTD builds by removing unsupported system_packages configuration option. (#491)

Contributors

This release contains contributions from (in alphabetical order):

Ali Asadi, Amintor Dusko, Vincent Michaud-Rioux, Lee J. O'Riordan, Shuli Shu