Releases: PennyLaneAI/pennylane-lightning
Release v0.25.0
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
andProd
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
New features since last release
-
Add
SingleExcitation
andDoubleExcitation
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
- Use the centralized Xanadu Sphinx Theme to style the Sphinx documentation. (#287)
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
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
intest_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
Bug fixes
- Ensure
qml.Identity
kernel is registered to C++ dispatcher. (#275)
Release 0.22.0
New features since last release
- Add Docker support. (#234)
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
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
- Introduce CY kernel to Lightning to avoid issues with decomposition & adjoint. (#203)
Release 0.20.1
Release 0.20.0
What's Changed
- Add Multi-threaded DOTC, GEMV, GEMM along with BLAS Support by @maliasadi in #155
- Update PL-Lightning to support new features in PL by @maliasadi in #179
- Fix missing header for dependent packages by @mlxd in #180
- setup.py uses CMake by @chaeyeunpark in #176
- Disable AVX default for PPC and ARM by @chaeyeunpark in #182
- No init module use for the tests by @antalszava in #184
- Gate Aggregate Performance Tests; Issue #158 by @isschoch in #165
- Add VJP support to PL-Lightning by @maliasadi in #181
- Add np.complex64 support in PL-Lightning by @maliasadi in #177
New Contributors
Release 0.19.0
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