Skip to content

Releases: PennyLaneAI/pennylane-lightning

Release v0.25.0

15 Aug 12:26
Compare
Choose a tag to compare

New features since last release

Breaking changes

  • We explicitly disable support for PennyLane's parameter broadcasting. #317

  • We explicitly remove support for PennyLane's Sum, SProd and Prod
    as observables. (#326)

Improvements

  • CI builders use a reduced set of resources and redundant tests for PRs. (#319)

  • Parallelize wheel-builds where applicable. (#314)

  • AVX2/512 kernels are now available on Linux/MacOS with x86-64 architecture. (#313)

Documentation

  • Updated ReadTheDocs runner version from Ubuntu 20.04 to 22.04 (#327)

Bug fixes

  • Test updates to reflect new additions to PennyLane. (#318)

Contributors

This release contains contributions from (in alphabetical order):

Amintor Dusko, Christina Lee, Rashid N H M, Lee J. O'Riordan, Chae-Yeun Park

Release 0.24.0

20 Jun 15:39
7ec27c0
Compare
Choose a tag to compare

New features since last release

  • Add SingleExcitation and DoubleExcitation qchem gates and generators. (#289)

  • Add a new dispatch mechanism for future kernels. (#291)

  • Add IsingXY gate operation. (#303)

  • Support qml.state() in vjp and Hamiltonian in adjoint jacobian. (#294)

Breaking changes

  • Codebase is now moving to C++20. The default compiler for Linux is now GCC10. (#295)

  • Minimum macOS version is changed to 10.15 (Catalina). (#295)

Improvements

  • Split matrix operations, refactor dispatch mechanisms, and add a benchmark suite. (#274)

  • Add native support for the calculation of sparse Hamiltonians' expectation values. Sparse operations are offloaded to Kokkos and Kokkos-Kernels. (#283)

  • Device lightning.qubit now accepts a datatype for a statevector. (#290)

dev1 = qml.device('lightning.qubit', wires=4, c_dtype=np.complex64) # for single precision
dev2 = qml.device('lightning.qubit', wires=4, c_dtype=np.complex128) # for double precision

Documentation

Bug fixes

  • Fix the issue with using available clang-format version in format. (#288)

  • Fix a bug in the generator of DoubleExcitationPlus. (#298)

Contributors

This release contains contributions from (in alphabetical order):
Mikhail Andrenkov, Ali Asadi, Amintor Dusko, Lee James O'Riordan, Chae-Yeun Park, and Shuli Shu

Release 0.23.0

25 Apr 15:19
Compare
Choose a tag to compare

Release 0.23.0

New features since last release

  • Add generate_samples() to lightning. (#247)

  • Add Lightning GBenchmark Suite. (#249)

  • Support runtime and compile information. (#253)

Improvements

  • Add ENABLE_BLAS build to CI checks. (#249)

  • Add more clang-tidy checks and kernel tests. (#253)

  • Add C++ code coverage to CI. (#265)

  • Skip over identity operations in "lightning.qubit". (#268)

Bug fixes

  • Update tests to remove JacobianTape. (#260)

  • Fix tests for MSVC. (#264)

  • Fix #include <cpuid.h> for PPC and AArch64 in Linux. (#266)

  • Remove deprecated tape execution methods. (#270)

  • Update qml.probs in test_measures.py. (#280)

Contributors

This release contains contributions from (in alphabetical order):
Ali Asadi, Chae-Yeun Park, Lee James O'Riordan, and Trevor Vincent

Release 0.22.1

29 Mar 16:59
Compare
Choose a tag to compare

Bug fixes

  • Ensure qml.Identity kernel is registered to C++ dispatcher. (#275)

Release 0.22.0

14 Mar 13:12
Compare
Choose a tag to compare

New features since last release

Improvements

  • Update quantum tapes serialization and Python tests. (#239)

  • Clang-tidy is now enabled for both tests and examples builds under Github Actions. (#237)

  • The return type of StateVectorBase data is now derived-class defined. (#237)

  • Update adjointJacobian and VJP methods. (#222)

  • Set GitHub workflow to upload wheels to Test PyPI. (#220)

  • Finalize the new kernel implementation. (#212)

Bug fixes

  • Fix for OOM errors when using adjoint with large numbers of observables. (#221)

  • Add virtual destructor to C++ state-vector classes. (#200)

  • Fix a bug in Python tests with operations' matrix calls. (#238)

  • Refactor utility header and fix a bug in linear algebra function with CBLAS. (#228)

Contributors

This release contains contributions from (in alphabetical order):

Ali Asadi, Chae-Yeun Park, Lee James O'Riordan

Release 0.21.0

07 Feb 20:43
Compare
Choose a tag to compare

New features since last release

  • Add C++ only benchmark for a given list of gates. (#199)

  • Wheel-build support for Python 3.10. (#186)

  • C++ support for probability, expectation value and variance calculations. (#185)

Improvements

  • setup.py adds debug only when --debug is given (#208)

  • Add new highly-performant C++ kernels for quantum gates. (#202)

The new kernels significantly improve the runtime performance of PennyLane-Lightning
for both differentiable and non-differentiable workflows. Here is an example workflow
using the adjoint differentiation method with a circuit of 5 strongly entangling layers:

import pennylane as qml
from pennylane import numpy as np
from pennylane.templates.layers import StronglyEntanglingLayers
from numpy.random import random
np.random.seed(42)
n_layers = 5
n_wires = 6
dev = qml.device("lightning.qubit", wires=n_wires)

@qml.qnode(dev, diff_method="adjoint")
def circuit(weights):
    StronglyEntanglingLayers(weights, wires=list(range(n_wires)))
    return [qml.expval(qml.PauliZ(i)) for i in range(n_wires)]

init_weights = np.random.random(StronglyEntanglingLayers.shape(n_layers=n_layers, n_wires=n_wires))
params = np.array(init_weights,requires_grad=True)
jac = qml.jacobian(circuit)(params)

The latest release shows improved performance on both single and multi-threaded evaluations!

  • Ensure debug info is built into dynamic libraries. (#201)

Documentation

  • New guidelines on adding and benchmarking C++ kernels. (#202)

Bug fixes

  • Update clang-format version (#219)

  • Fix failed tests on Windows. (#218)

  • Fix failed tests for the non-binary wheel. (#213)

  • Add virtual destructor to C++ state-vector classes. (#200)

Contributors

This release contains contributions from (in alphabetical order):

Ali Asadi, Amintor Dusko, Chae-Yeun Park, Lee James O'Riordan

Release v0.20.2

06 Jan 12:58
Compare
Choose a tag to compare
  • Introduce CY kernel to Lightning to avoid issues with decomposition & adjoint. (#203)

Release 0.20.1

15 Dec 11:25
Compare
Choose a tag to compare

Bug fixes

  • Fix missing header-files causing build errors in algorithms module.
    (#193)

  • Fix failed tests for the non-binary wheel.
    (#191)

Release 0.20.0

14 Dec 11:10
Compare
Choose a tag to compare

What's Changed

New Contributors

Release 0.19.0

08 Nov 18:08
Compare
Choose a tag to compare

What's Changed

  • Update to development version 0.19 by @trbromley in #150
  • Fix C++ compiler warnings by @maliasadi in #147
  • Ensure Lightning adheres to C++17 modernization standard with clang-tidy by @mlxd in #153
  • Add check-tidy to Makefile by @maliasadi in #156
  • Optimise x86_64 builds with AVX friendly opts by @mlxd in #157
  • Version Bump 0.19.0 by @github-actions in #163
  • Fix OpenMP library issues on M1 Macs by @mlxd in #166
  • Fix CI builder release issues by @mlxd in #168

New Contributors

  • @github-actions made their first contribution in #163

Full Changelog: v0.18.0...v0.19.0