Skip to content

Commit

Permalink
Version Bump (#884)
Browse files Browse the repository at this point in the history
updated changelog and _version.py

---------

Co-authored-by: vincentmr <[email protected]>
Co-authored-by: Amintor Dusko <[email protected]>
Co-authored-by: Vincent Michaud-Rioux <[email protected]>
Co-authored-by: Lee James O'Riordan <[email protected]>
Co-authored-by: paul0403 <[email protected]>
Co-authored-by: ringo-but-quantum <[email protected]>
Co-authored-by: Ali Asadi <[email protected]>
Co-authored-by: Raul Torres <[email protected]>
  • Loading branch information
9 people authored Sep 3, 2024
1 parent b9d3334 commit cc2942e
Show file tree
Hide file tree
Showing 15 changed files with 243 additions and 115 deletions.
127 changes: 76 additions & 51 deletions .github/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,51 @@
# Release 0.38.0-dev
# Release 0.39.0-dev

### New features since last release

### Breaking changes

### Improvements

* Optimize gate cache recording for `lightning.tensor` C++ layer.
[(#879)](https://github.com/PennyLaneAI/pennylane-lightning/pull/879)

### Documentation

### Bug fixes

### Contributors

This release contains contributions from (in alphabetical order):

Shuli Shu

---

# Release 0.38.0

### New features since last release

* Add `qml.StatePrep()` and `qml.QubitStateVector()` support to `lightning.tensor`.
[(#849)](https://github.com/PennyLaneAI/pennylane-lightning/pull/849)

* Add LightningGPU Linux (aarch64+GraceHopper) wheels to PyPI.
[(#815)](https://github.com/PennyLaneAI/pennylane-lightning/pull/815)

* Add the analytic `qml.probs()` measurement support to `lightning.tensor`.
* Add analytic `qml.probs()` measurement support to `lightning.tensor`.
[(#830)](https://github.com/PennyLaneAI/pennylane-lightning/pull/830)

* Add `qml.state()` measurement support to `lightning.tensor`.
[(#827)](https://github.com/PennyLaneAI/pennylane-lightning/pull/827)

* Add `var` support to `lightning.tensor`. Note that `var` support is added via `obs**2` and this implementation scales `O(num_obs**2)`.
* Add Lightning-GPU Linux (AArch64 + GraceHopper) wheels to PyPI.
[(#815)](https://github.com/PennyLaneAI/pennylane-lightning/pull/815)

* Add `var` support to `lightning.tensor`. Note that `var` support is added via `obs**2` and this implementation scales as `O(num_obs**2)`.
[(#804)](https://github.com/PennyLaneAI/pennylane-lightning/pull/804)

### Breaking changes

* Add `getData()` in `lightning.tensor` C++ backend. Users should be responsible for ensuring sufficient host memory is allocated for the full state vector.
* Update python packaging to follow PEP 517/518/621/660 standards.
[(#832)](https://github.com/PennyLaneAI/pennylane-lightning/pull/832)

* Add `getData()` in the `lightning.tensor` C++ backend. Users are responsible for ensuring sufficient host memory is allocated for the full state vector.
[(#827)](https://github.com/PennyLaneAI/pennylane-lightning/pull/827)

* Remove `NDpermuter.hpp` which is no longer required.
Expand All @@ -31,58 +57,67 @@
* Do not run GPU tests and Docker workflows on release.
[(#788)](https://github.com/PennyLaneAI/pennylane-lightning/pull/788)

* Update python packaging to follow PEP 517/518/621/660 standards.
[(#832)](https://github.com/PennyLaneAI/pennylane-lightning/pull/832)

### Improvements

* Optimize gate cache recording for `lightning.tensor` C++ layer.
[(#879)](https://github.com/PennyLaneAI/pennylane-lightning/pull/879)

* Updated calls of ``size_t`` to ``std::size_t`` everywhere.
[(#816)](https://github.com/PennyLaneAI/pennylane-lightning/pull/816)

* Update `ctrl_decomp_zyz` tests with `len(control_wires) > 1`.
[(#821)](https://github.com/PennyLaneAI/pennylane-lightning/pull/821)

* Update Lightning tests to support the generalization of basis state preparation.
[(#864)](https://github.com/PennyLaneAI/pennylane-lightning/pull/864)

* Multiple calls to the `append_mps_final_state()` API is allowed in `lightning.tensor`.
[(#830)](https://github.com/PennyLaneAI/pennylane-lightning/pull/830)
* Add `SetState` and `SetBasisState` to `LightningKokkosSimulator`.
[(#861)](https://github.com/PennyLaneAI/pennylane-lightning/pull/861)

* Remove use of the deprecated `Operator.expand` in favour of `Operator.decomposition`.
[(#846)](https://github.com/PennyLaneAI/pennylane-lightning/pull/846)

* The `setBasisState` and `setStateVector` methods of `StateVectorLQubit` and `StateVectorKokkos` are overloaded to support PennyLane-like parameters.
[(#843)](https://github.com/PennyLaneAI/pennylane-lightning/pull/843)

* Move `setBasisState`, `setStateVector` and `resetStateVector` from `StateVectorLQubitManaged` to `StateVectorLQubit`.
[(#841)](https://github.com/PennyLaneAI/pennylane-lightning/pull/841)

* Update `generate_samples` in `LightningKokkos` and `LightningGPU` to support `qml.measurements.Shots` type instances.
[(#839)](https://github.com/PennyLaneAI/pennylane-lightning/pull/839)
[(#864)](https://github.com/PennyLaneAI/pennylane-lightning/pull/864)

* LightningQubit gains native support for the `PauliRot` gate.
* Add a Catalyst-specific wrapping class for Lightning Kokkos.
[(#837)](https://github.com/PennyLaneAI/pennylane-lightning/pull/837)
[(#770)](https://github.com/PennyLaneAI/pennylane-lightning/pull/770)

* Lightning-Qubit natively supports the `PauliRot` gate.
[(#834)](https://github.com/PennyLaneAI/pennylane-lightning/pull/834)

* The `setBasisState` and `setStateVector` methods of `StateVectorLQubit` and `StateVectorKokkos` are overloaded to support PennyLane-like parameters.
[(#843)](https://github.com/PennyLaneAI/pennylane-lightning/pull/843)
* Multiple calls to the `append_mps_final_state()` API is allowed in `lightning.tensor`.
[(#830)](https://github.com/PennyLaneAI/pennylane-lightning/pull/830)

* Add `SetState` and `SetBasisState` to `LightningKokkosSimulator`.
[(#861)](https://github.com/PennyLaneAI/pennylane-lightning/pull/861)
* Add `initial_state_prep` option to Catalyst TOML file.
[(#826)](https://github.com/PennyLaneAI/pennylane-lightning/pull/826)

* `ENABLE_LAPACK` is off by default for all Lightning backends.
* `ENABLE_LAPACK` is `OFF` by default for all Lightning backends.
[(#825)](https://github.com/PennyLaneAI/pennylane-lightning/pull/825)

* Update `LightingQubit.preprocess` to work with changes to preprocessing for mid-circuit measurements.
[(#812)](https://github.com/PennyLaneAI/pennylane-lightning/pull/812)
* Update `ctrl_decomp_zyz` tests with `len(control_wires) > 1`.
[(#821)](https://github.com/PennyLaneAI/pennylane-lightning/pull/821)

* Update the Catalyst-specific wrapping class for Lightning Kokkos to track Catalyst's new support for MCM seeding.
[(#819)](https://github.com/PennyLaneAI/pennylane-lightning/pull/819)

* Shot batching is made more efficient by executing all the shots in one go on LightningQubit.
* Replace ``size_t`` by ``std::size_t`` everywhere.
[(#816)](https://github.com/PennyLaneAI/pennylane-lightning/pull/816/)

* Shot batching is made more efficient by executing all the shots in one go on Lightning-Qubit.
[(#814)](https://github.com/PennyLaneAI/pennylane-lightning/pull/814)

* LightningQubit calls `generate_samples(wires)` on a minimal subset of wires when executing in finite-shot mode.
* Lightning-Qubit calls `generate_samples(wires)` on a minimal subset of wires when executing in finite-shot mode.
[(#813)](https://github.com/PennyLaneAI/pennylane-lightning/pull/813)

* Avoid unnecessary memory reset in LightningQubit's state vector class constructor.
* Update `LightingQubit.preprocess` to work with changes to preprocessing for mid-circuit measurements.
[(#812)](https://github.com/PennyLaneAI/pennylane-lightning/pull/812)

* Avoid unnecessary memory reset in Lightning-Qubit's state vector class constructor.
[(#811)](https://github.com/PennyLaneAI/pennylane-lightning/pull/811)

* Add `generate_samples(wires)` support in LightningQubit.
* Add `generate_samples(wires)` support in Lightning-Qubit, which samples faster for a subset of wires.
[(#809)](https://github.com/PennyLaneAI/pennylane-lightning/pull/809)

* Optimize the OpenMP parallelization of Lightning-Qubit's `probs` for all number of targets.
Expand All @@ -106,37 +141,27 @@
* Enable setting the PennyLane version when invoking, for example, `make docker-build version=master pl_version=master`.
[(#791)](https://github.com/PennyLaneAI/pennylane-lightning/pull/791)

* Add a Catalyst-specific wrapping class for Lightning Kokkos.
[(#770)](https://github.com/PennyLaneAI/pennylane-lightning/pull/770)
[(#837)](https://github.com/PennyLaneAI/pennylane-lightning/pull/837)

* Add `initial_state_prep` option to Catalyst TOML file.
[(#826)](https://github.com/PennyLaneAI/pennylane-lightning/pull/826)

* Move `setBasisState`, `setStateVector` and `resetStateVector` from `StateVectorLQubitManaged` to `StateVectorLQubit`.
[(#841)](https://github.com/PennyLaneAI/pennylane-lightning/pull/841)

* Remove use of the deprecated `Operator.expand` in favour of `Operator.decomposition`.
[(#846)](https://github.com/PennyLaneAI/pennylane-lightning/pull/846)

### Documentation

* The installation instructions for all lightning plugins have been improved.
[(#851)](https://github.com/PennyLaneAI/pennylane-lightning/pull/851)
[(#858)](https://github.com/PennyLaneAI/pennylane-lightning/pull/858)
[(#851)](https://github.com/PennyLaneAI/pennylane-lightning/pull/851)

* Updated the README and added citation format for Lightning arxiv preprint.
* Updated the README and added citation format for Lightning arXiv preprint.
[(#818)](https://github.com/PennyLaneAI/pennylane-lightning/pull/818)

### Bug fixes

* Point to the right Lightning root folder independently from the invocation location, when configuring the project.
[(#874)](https://github.com/PennyLaneAI/pennylane-lightning/pull/874)

* Update dependencies and `build` command options following changes in the build system.
[(#863)](https://github.com/PennyLaneAI/pennylane-lightning/pull/863)

* Replace structured bindings by variables in `GateImplementationsLM.hpp`.
[(#856)](https://github.com/PennyLaneAI/pennylane-lightning/pull/856)

* Remove wrong -m when calling setup.py.
* Remove wrong `-m` when calling `setup.py`.
[(#854)](https://github.com/PennyLaneAI/pennylane-lightning/pull/854)

* Fix plugin-test-matrix CI/CD workflows.
Expand All @@ -148,7 +173,7 @@
* Fix cuQuantum SDK path pass-though in CMake.
[(#831)](https://github.com/PennyLaneAI/pennylane-lightning/pull/831)

* Fix CUDA sync issues on aarch64+GraceHopper.
* Fix CUDA sync issues on AArch64 + GraceHopper.
[(#823)](https://github.com/PennyLaneAI/pennylane-lightning/pull/823)

* Check for the number of wires for Hermitian observables in Lightning-Tensor. Only 1-wire Hermitian observables are supported as of `cuTensorNet-v24.03.0`.
Expand Down Expand Up @@ -218,7 +243,7 @@ Ali Asadi, Astral Cai, Ahmed Darwish, Amintor Dusko, Vincent Michaud-Rioux, Eric
* Release candidate branches automatically use the new large GitHub runner pool.
[(#769)](https://github.com/PennyLaneAI/pennylane-lightning/pull/769)

* Lightning-Kokkos dev wheels for MacOS (x86_64, ARM64) and Linux (aarch64) are uploaded to TestPyPI upon merging a pull request.
* Lightning-Kokkos dev wheels for MacOS (x86_64, ARM64) and Linux (AArch64) are uploaded to TestPyPI upon merging a pull request.
[(#765)](https://github.com/PennyLaneAI/pennylane-lightning/pull/765)

* Lightning-Kokkos Linux (x86_64) dev wheels are pushed to [Test PyPI](https://test.pypi.org/project/PennyLane-Lightning-Kokkos/) upon merging a pull request.
Expand Down Expand Up @@ -273,7 +298,7 @@ Ali Asadi, Astral Cai, Ahmed Darwish, Amintor Dusko, Vincent Michaud-Rioux, Eric
* Remove the daily schedule from the "Compat Check w/PL - release/release" GitHub action.
[(#746)](https://github.com/PennyLaneAI/pennylane-lightning/pull/746)

* Remove the required `scipy` config file for LightningQubit. The support is now maintained by passing `SCIPY_LIBS_PATH` to the compiler.
* Remove the required `scipy` config file for Lightning-Qubit. The support is now maintained by passing `SCIPY_LIBS_PATH` to the compiler.
[(#775)](https://github.com/PennyLaneAI/pennylane-lightning/pull/775)

### Documentation
Expand Down Expand Up @@ -313,7 +338,7 @@ Ali Asadi, Astral Cai, Ahmed Darwish, Amintor Dusko, Vincent Michaud-Rioux, Eric
* The `tests_lkcpu_python.yml` workflow properly checks out the release or stable version of Lightning-Qubit during the test job.
[(#723)](https://github.com/PennyLaneAI/pennylane-lightning/pull/723)

* Fix PennyLane Lightning-Kokkos and LightningQubit tests for stable/stable configuration.
* Fix PennyLane Lightning-Kokkos and Lightning-Qubit tests for stable/stable configuration.
[(#734)](https://github.com/PennyLaneAI/pennylane-lightning/pull/734)

* Remove the Autoray dependency from requirement files.
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/determine-workflow-runner.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:
id: runner_group
env:
# We are not able to use \d to check numeric values as bash does not allow them (not POSIX compliant)
RC_BRANCH_FORMAT_REGEX: v[0-9]+\.[0-9]+\.[0-9]+-rc[0-9]?
RC_BRANCH_FORMAT_REGEX: v[0-9]+\.[0-9]+\.[0-9]+_rc[0-9]?
REPO_FULL_NAME: PennyLaneAI/pennylane-lightning
run: |
if [[ '${{ contains(github.event.pull_request.labels.*.name, 'urgent') }}' == 'true' || ('${{ github.event.pull_request.head.repo.full_name }}' == "$REPO_FULL_NAME" && '${{ github.event.pull_request.head.ref }}' =~ $RC_BRANCH_FORMAT_REGEX) ]]; then
Expand Down
26 changes: 16 additions & 10 deletions .github/workflows/tests_lkcpu_python.yml
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,7 @@ jobs:
name: ${{ matrix.pl_backend }}-${{ matrix.exec_model }}_name.txt
retention-days: 1
if-no-files-found: error
include-hidden-files: true
path: ${{ github.workspace }}/${{ matrix.pl_backend }}-${{ matrix.exec_model }}_name.txt

- name: Cache wheel directories
Expand All @@ -157,6 +158,7 @@ jobs:
name: wheel_${{ matrix.pl_backend }}-${{ matrix.exec_model }}.whl
retention-days: 1
if-no-files-found: error
include-hidden-files: true
path: |
${{ github.workspace }}/wheel_${{ matrix.pl_backend }}-${{ matrix.exec_model }}.whl
Expand Down Expand Up @@ -255,30 +257,33 @@ jobs:
- name: Run PennyLane-Lightning unit tests
run: |
DEVICENAME=`echo ${{ matrix.pl_backend }} | sed "s/_/./g"`
# Remove `python -m` to avoid running tests with relative modules
PL_DEVICE=${DEVICENAME} pytest tests/ $COVERAGE_FLAGS --splits 7 --group ${{ matrix.group }} \
--store-durations --durations-path='.github/workflows/python_lightning_kokkos_test_durations.json' --splitting-algorithm=least_duration
mv .github/workflows/python_lightning_kokkos_test_durations.json ${{ github.workspace }}/.test_durations-${{ matrix.exec_model }}-${{ matrix.group }}
# Remove `python -m` to avoid running tests with relative modules
PL_DEVICE=${DEVICENAME} pytest tests/ $COVERAGE_FLAGS --splits 7 --group ${{ matrix.group }} \
--store-durations --durations-path='.github/workflows/python_lightning_kokkos_test_durations.json' --splitting-algorithm=least_duration
mv .github/workflows/python_lightning_kokkos_test_durations.json ${{ github.workspace }}/.test_durations-${{ matrix.exec_model }}-${{ matrix.group }}
pl-device-test --device ${DEVICENAME} --skip-ops --shots=20000 $COVERAGE_FLAGS --cov-append
pl-device-test --device ${DEVICENAME} --shots=None --skip-ops $COVERAGE_FLAGS --cov-append
mv .coverage .coverage-${{ github.job }}-${{ matrix.pl_backend }}-${{ matrix.group }}
mv .coverage ${{ github.workspace }}/.coverage-${{ github.job }}-${{ matrix.pl_backend }}-${{ matrix.group }}
- name: Upload test durations
uses: actions/upload-artifact@v4
with:
name: .test_durations-${{ matrix.exec_model }}-${{ matrix.group }}
retention-days: 1
if-no-files-found: error
include-hidden-files: true
path: ${{ github.workspace }}/.test_durations-${{ matrix.exec_model }}-${{ matrix.group }}

- name: Upload code coverage results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: ubuntu-codecov-results-python
path: ./.coverage-${{ github.job }}-${{ matrix.pl_backend }}-${{ matrix.group }}
name: .coverage-${{ github.job }}-${{ matrix.pl_backend }}-${{ matrix.group }}
path: ${{ github.workspace }}/.coverage-${{ github.job }}-${{ matrix.pl_backend }}-${{ matrix.group }}
if-no-files-found: error
include-hidden-files: true

upload-to-codecov-linux-python:
if: github.event_name == 'pull_request'
needs: [determine_runner, test_lightning_kokkos_wheels]
name: Upload python coverage data to codecov
runs-on: ${{ needs.determine_runner.outputs.runner_group }}
Expand All @@ -289,9 +294,10 @@ jobs:
fetch-tags: true

- name: Download coverage reports
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: ubuntu-codecov-results-python
pattern: .coverage*
merge-multiple: true

- name: Combine coverage files
run: |
Expand Down
2 changes: 0 additions & 2 deletions .github/workflows/tests_lkcuda_cpp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -92,14 +92,12 @@ jobs:
env:
CMAKE_PREFIX_PATH: ${{ github.workspace }}/Kokkos_install/${{ matrix.exec_model }}
run: |
set -x
sudo apt-get update && sudo apt-get -y -q install gfortran-$GCC_VERSION
cd kokkos_${{ matrix.exec_model }}/example/build_cmake_installed
which -a gfortran || which -a gfortran-$GCC_VERSION
cmake -B build -DCMAKE_Fortran_COMPILER=gfortran-$GCC_VERSION
cmake --build build
cmake --build build --target test
set +x
- name: Cache installation directories
id: kokkos-cache
Expand Down
2 changes: 0 additions & 2 deletions .github/workflows/tests_lkcuda_python.yml
Original file line number Diff line number Diff line change
Expand Up @@ -96,14 +96,12 @@ jobs:
env:
CMAKE_PREFIX_PATH: ${{ github.workspace }}/Kokkos_install/${{ matrix.exec_model }}
run: |
set -x
sudo apt-get update && sudo apt-get -y -q install gfortran-$GCC_VERSION
cd kokkos_${{ matrix.exec_model }}/example/build_cmake_installed
which -a gfortran || which -a gfortran-$GCC_VERSION
cmake -B build -DCMAKE_Fortran_COMPILER=gfortran-$GCC_VERSION
cmake --build build
cmake --build build --target test
set +x
- name: Cache installation directories
id: kokkos-cache
Expand Down
Loading

0 comments on commit cc2942e

Please sign in to comment.