Skip to content

Release 0.36.0

Compare
Choose a tag to compare
@AmintorDusko AmintorDusko released this 06 May 16:37

New features since last release

  • Add compile-time support for AVX2/512 streaming operations in lightning.qubit. (#664)

  • lightning.kokkos supports mid-circuit measurements. (#672)

  • Add dynamic linking to LAPACK/OpenBlas shared objects in scipy.libs for both C++ and Python layer. (#653)

  • lightning.qubit supports mid-circuit measurements. (#650)

  • Add finite shots support in lightning.qubit2. (#630)

  • Add collapse and normalize methods to the StateVectorLQubit classes, enabling "branching" of the wavefunction. Add methods to create and seed an RNG in the Measurements modules. (#645)

  • Add two new python classes (LightningStateVector and LightningMeasurements) to support lightning.qubit2. (#613)

  • Add analytic-mode qml.probs and qml.var support in lightning.qubit2. (#627)

  • Add LightningAdjointJacobian to support lightning.qubit2. (#631)

  • Add lightning.qubit2 device which uses the new device API. (#607) (#628)

  • Add Vector-Jacobian Product calculation support to lightning.qubit. (#644)

  • Add support for using new operator arithmetic as the default. (#649)

Breaking changes

  • Split Lightning-Qubit and Lightning-Kokkos CPU Python tests with pytest-split. Remove SERIAL from Kokkos' exec_model matrix. Remove all from Lightning-Kokkos' pl_backend matrix. Move clang-tidy checks to tidy.yml. Avoid editable pip installations. (#696)

  • Update lightning.gpu and lightning.kokkos to raise an error instead of falling back to default.qubit. (#689)

  • Add paths directives to test workflows to avoid running tests that cannot be impacted by changes. (#699) (#695)

  • Move common components of /src/simulator/lightning_gpu/utils/ to /src/utils/cuda_utils/. (#676)

  • Deprecate static LAPACK linking support. (#653)

  • Migrate lightning.qubit to the new device API. (#646)

  • Introduce ci:build_wheels label, which controls wheel building on pull_request and other triggers. (#648)

  • Remove building wheels for Lightning Kokkos on Windows. (#693)

Improvements

  • Add tests for Windows Wheels, fix ill-defined caching, and set the proper backend for lightning.kokkos wheels. (#693)

  • Replace string comparisons by isinstance checks where possible. (#691)

  • Refactor cuda_utils to remove its dependency on custatevec.h. (#681)

  • Add test_templates.py module where Grover and QSVT are tested. (#684)

  • Create cuda_utils for common usage of CUDA related backends. (#676)

  • Refactor lightning_gpu_utils unit tests to remove the dependency on statevector class. (#675)

  • Upgrade GitHub actions versions from v3 to v4. (#669)

  • Initialize the private attributes gates_indices_ and generators_indices_ of StateVectorKokkos using the definitions of the Pennylane::Gates::Constant namespace. (#641)

  • Add isort to requirements-dev.txt and run before black upon make format to sort Python imports. (#623)

  • Improve support for new operator arithmetic with QuantumScriptSerializer.serialize_observables. (#670)

  • Add workflow_dispatch to wheels recipes; allowing developers to build wheels manually on a branch instead of temporarily changing the headers. (#679)

  • Add the ENABLE_LAPACK compilation flag to toggle dynamic linking to LAPACK library. (#678)

Documentation

Bug fixes

  • Fix wire order permutations when using qml.probs with out-of-order wires. (#707)

  • Lightning Qubit once again respects the wire order specified on device instantiation. (#705)

  • dynamic_one_shot was refactored to use SampleMP measurements as a way to return the mid-circuit measurement samples. LightningQubit's simulate is modified accordingly. (#694)

  • LightningQubit correctly decomposes state prep operations when used in the middle of a circuit. (#687)

  • LightningQubit correctly decomposes qml.QFT and qml.GroverOperator if len(wires) is greater than 9 and 12 respectively. (#687)

  • Specify isort --py (Python version) and -l (max line length) to stabilize isort across Python versions and environments. (#647)

  • Fix random coverage xml CI issues. (#635)

  • lightning.qubit correctly decomposed state preparation operations with adjoint differentiation. (#661)

  • Fix the failed observable serialization unit tests. (#683)

  • Update the LightningQubit new device API to work with Catalyst. (#665)

  • Update the version of codecov-action to v4 and fix the CodeCov issue with the PL-Lightning check-compatibility actions. (#682)

  • Refactor of dev prerelease auto-update-version workflow. (#685)

  • Remove gates unsupported by catalyst from toml file. (#698)

  • Increase tolerance for a flaky test. (#703)

Contributors

This release contains contributions from (in alphabetical order):

Ali Asadi, Amintor Dusko, Thomas Germain, Christina Lee, Erick Ochoa Lopez, Vincent Michaud-Rioux, Rashid N H M, Lee James O'Riordan, Mudit Pandey, Shuli Shu