Skip to content

Commit

Permalink
V0.21.0 master merger (#233)
Browse files Browse the repository at this point in the history
* Update changelog and version

* Update CHANGELOG

* Add lightning v21 performance gains

* Add lightning performance comparison with previous release

* Update figure resolution

* Update changelog data

* Added example bm for latest lightning release

* Include C++ source files in binary wheels (#225)

* Include C++ source files in binary wheels

* Auto update version

* Auto update version

* Auto update version

Co-authored-by: Ali Asadi <ali@xanadu.ai>
Co-authored-by: Chae-Yeun Park <chae-yeun@xanadu.ai>
  • Loading branch information
3 people committed Feb 25, 2022
1 parent 2d2df24 commit 86efa02
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 13 deletions.
59 changes: 47 additions & 12 deletions .github/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,37 +39,75 @@ Ali Asadi, Chae-Yeun Park
# Release 0.21.0

### New features since last release
* Direct support to probability, expectation value and variance calculation in PL-Lightning.
[(#185)](https://github.com/PennyLaneAI/pennylane-lightning/pull/185)

* Add C++ only benchmark for a given list of gates.
[(#199)](https://github.com/PennyLaneAI/pennylane-lightning/pull/199)

* Wheel-build support for Python 3.10.
[(#186)](https://github.com/PennyLaneAI/pennylane-lightning/pull/186)

* C++ support for probability, expectation value and variance calculations.
[(#185)](https://github.com/PennyLaneAI/pennylane-lightning/pull/185)

* Add bindings to C++ expval, var, probs.
[(#214)](https://github.com/PennyLaneAI/pennylane-lightning/pull/214)

### Breaking changes

### Improvements

* Add a new C++ kernel.
* `setup.py` adds debug only when --debug is given
[(#208)](https://github.com/PennyLaneAI/pennylane-lightning/pull/208)

* Add new highly-performant C++ kernels for quantum gates.
[(#202)](https://github.com/PennyLaneAI/pennylane-lightning/pull/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:

```python
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!

<img src="https://raw.githubusercontent.com/PennyLaneAI/pennylane-lightning/v0.21.0-rc0/doc/_static/lightning_v20_v21_bm.png" width=50%/>

* Ensure debug info is built into dynamic libraries.
[(#201)](https://github.com/PennyLaneAI/pennylane-lightning/pull/201)

### Documentation

* New guidelines on adding and benchmarking C++ kernels.
[(#202)](https://github.com/PennyLaneAI/pennylane-lightning/pull/202)

### Bug fixes

* Add virtual destructor to C++ state-vector classes.
[(#200)](https://github.com/PennyLaneAI/pennylane-lightning/pull/200)
* Update clang-format version
[(#219)](https://github.com/PennyLaneAI/pennylane-lightning/pull/219)

* Fix failed tests on Windows.
[(#218)](https://github.com/PennyLaneAI/pennylane-lightning/pull/218)

* Fix failed tests for the non-binary wheel.
[(#213)](https://github.com/PennyLaneAI/pennylane-lightning/pull/213)

* Fix failed tests on Windows.
[(#218)](https://github.com/PennyLaneAI/pennylane-lightning/pull/218)
* Add virtual destructor to C++ state-vector classes.
[(#200)](https://github.com/PennyLaneAI/pennylane-lightning/pull/200)

### Contributors

Expand Down Expand Up @@ -129,9 +167,6 @@ Lee J. O'Riordan
* Added examples folder containing aggregate gate performance test.
[(#165)](https://github.com/PennyLaneAI/pennylane-lightning/pull/165)

* Add VJP support to PL-Lightning.
[(#181)](https://github.com/PennyLaneAI/pennylane-lightning/pull/181)

### Breaking changes

### Improvements
Expand Down
Binary file added doc/_static/lightning_v20_v21_bm.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion pennylane_lightning/_version.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,4 @@
Version number (major.minor.patch[-label])
"""

__version__ = "0.22.0-dev7"
__version__ = "0.22.0-dev8"

0 comments on commit 86efa02

Please sign in to comment.