Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create v0.39.0 RC branch. #969

Closed
wants to merge 20 commits into from
Closed
Show file tree
Hide file tree
Changes from 8 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 41 additions & 29 deletions .github/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,32 +1,35 @@
# Release 0.39.0-dev
# Release 0.39.0

### New features since last release

* Add `mid-circuit measurements` support to `lightning.gpu`'s single-GPU backend.
[(#931)](https://github.com/PennyLaneAI/pennylane-lightning/pull/931)

* Add Matrix Product Operator (MPO) for all gates support to `lightning.tensor`. Note current C++ implementation only works for MPO sites data provided by users.
[(#859)](https://github.com/PennyLaneAI/pennylane-lightning/pull/859)

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

* Build and upload Lightning-Tensor wheels (x86_64, AARCH64) to PyPI.
[(#862)](https://github.com/PennyLaneAI/pennylane-lightning/pull/862)
[(#905)](https://github.com/PennyLaneAI/pennylane-lightning/pull/905)
* Integrate Lightning-GPU with Catalyst.
[(#928)](https://github.com/PennyLaneAI/pennylane-lightning/pull/928)

* Add `Projector` observable support via diagonalization to Lightning-GPU.
[(#894)](https://github.com/PennyLaneAI/pennylane-lightning/pull/894)

* Add 1-target wire controlled gate support to `lightning.tensor`. Note that `cutensornet` only supports 1-target wire controlled gate as of `v24.08`. A controlled gate with more than 1 target wire should be converted to dense matrix.
[(#880)](https://github.com/PennyLaneAI/pennylane-lightning/pull/880)

* Lightning-Kokkos migrated to the new device API.
[(#810)](https://github.com/PennyLaneAI/pennylane-lightning/pull/810)
* Build and upload Lightning-Tensor wheels (x86_64, AARCH64) to PyPI.
[(#862)](https://github.com/PennyLaneAI/pennylane-lightning/pull/862)
[(#905)](https://github.com/PennyLaneAI/pennylane-lightning/pull/905)

* Add Matrix Product Operator (MPO) for all gates support to `lightning.tensor`. Note current C++ implementation only works for MPO sites data provided by users.
[(#859)](https://github.com/PennyLaneAI/pennylane-lightning/pull/859)

* Lightning-GPU migrated to the new device API.
[(#853)](https://github.com/PennyLaneAI/pennylane-lightning/pull/853)

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

* Lightning-Kokkos migrated to the new device API.
[(#810)](https://github.com/PennyLaneAI/pennylane-lightning/pull/810)

### Breaking changes

* Deprecate `initSV()` and add `resetStateVector()` to `lightning.gpu`.
Expand All @@ -35,62 +38,65 @@
* Deprecate PI gates implementation.
[(#925)](https://github.com/PennyLaneAI/pennylane-lightning/pull/925)

* Update MacOS wheel builds to require Monterey (12.0) or greater for x86_64 and ARM.
[(#901)](https://github.com/PennyLaneAI/pennylane-lightning/pull/901)

* Remove PowerPC wheel build recipe for Lightning-Qubit.
[(#902)](https://github.com/PennyLaneAI/pennylane-lightning/pull/902)

* Update MacOS wheel builds to require Monterey (12.0) or greater for x86_64 and ARM.
[(#901)](https://github.com/PennyLaneAI/pennylane-lightning/pull/901)

* Remove support for Python 3.9.
[(#891)](https://github.com/PennyLaneAI/pennylane-lightning/pull/891)

### Improvements

* Update the `lightning.tensor` Python layer unit tests, as `lightning.tensor` cannot be cleaned up like other state-vector devices because the data is attached to the graph. It is recommended to use one device per circuit for `lightning.tensor`.
[(#971)](https://github.com/PennyLaneAI/pennylane-lightning/pull/971)

* Fix PTM stable-latest.
[(#961)](https://github.com/PennyLaneAI/pennylane-lightning/pull/961)

* Update `README.rst` installation instructions for `lightning.gpu` and `lightning.tensor`.
[(#957)](https://github.com/PennyLaneAI/pennylane-lightning/pull/957)

* Optimize `GlobalPhase` and `C(GlobalPhase)` gate implementation in `lightning.gpu`.
[(#946)](https://github.com/PennyLaneAI/pennylane-lightning/pull/946)

* Add joint check for the N-controlled wires support in `lightning.qubit`.
[(#949)](https://github.com/PennyLaneAI/pennylane-lightning/pull/949)

* Optimize `GlobalPhase` and `C(GlobalPhase)` gate implementation in `lightning.gpu`.
[(#946)](https://github.com/PennyLaneAI/pennylane-lightning/pull/946)

* Optimize the cartesian product to reduce the amount of memory necessary to set the StatePrep with LightningTensor.
[(#943)](https://github.com/PennyLaneAI/pennylane-lightning/pull/943)

* The `prob` data return `lightning.gpu` C++ layer is aligned with other state-vector backends and `lightning.gpu` supports out-of-order `qml.prob`.
[(#941)](https://github.com/PennyLaneAI/pennylane-lightning/pull/941)

* Add `setStateVector(state, wire)` support to the `lightning.gpu` C++ layer.
[(#930)](https://github.com/PennyLaneAI/pennylane-lightning/pull/930)
[(#941)](https://github.com/PennyLaneAI/pennylane-lightning/pull/941)

* Add zero-state initialization to both `StateVectorCudaManaged` and `StateVectorCudaMPI` constructors to remove the `reset_state` in the python layer ctor and refactor `setBasisState(state, wires)` in the C++ layer.
[(#933)](https://github.com/PennyLaneAI/pennylane-lightning/pull/933)

* Add `setStateVector(state, wire)` support to the `lightning.gpu` C++ layer.
[(#930)](https://github.com/PennyLaneAI/pennylane-lightning/pull/930)

* The `generate_samples` methods of lightning.{qubit/kokkos} can now take in a seed number to make the generated samples deterministic. This can be useful when, among other things, fixing flaky tests in CI.
[(#927)](https://github.com/PennyLaneAI/pennylane-lightning/pull/927)

* Remove dynamic decomposition rules in Lightning.
[(#926)](https://github.com/PennyLaneAI/pennylane-lightning/pull/926)

* Always decompose `qml.QFT` in Lightning.
[(#924)](https://github.com/PennyLaneAI/pennylane-lightning/pull/924)

* Uniform Python format to adhere PennyLane style.
[(#924)](https://github.com/PennyLaneAI/pennylane-lightning/pull/924)

* Remove dynamic decomposition rules in Lightning.
[(#926)](https://github.com/PennyLaneAI/pennylane-lightning/pull/926)

* Add the `ci:use-gpu-runner` GitHub label to `lightning.kokkos` GPU Testing CIs.
[(#916)](https://github.com/PennyLaneAI/pennylane-lightning/pull/916)

* Merge `lightning.gpu` and `lightning.tensor` GPU tests in single Python and C++ CIs controlled by the `ci:use-gpu-runner` label.
[(#911)](https://github.com/PennyLaneAI/pennylane-lightning/pull/911)

* Update the test suite to remove deprecated code.
[(#912)](https://github.com/PennyLaneAI/pennylane-lightning/pull/912)

* Merge `lightning.gpu` and `lightning.tensor` GPU tests in single Python and C++ CIs controlled by the `ci:use-gpu-runner` label.
[(#911)](https://github.com/PennyLaneAI/pennylane-lightning/pull/911)

* Skip the compilation of Lightning simulators and development requirements to boost the build of public docs up to 5x.
[(#904)](https://github.com/PennyLaneAI/pennylane-lightning/pull/904)

Expand Down Expand Up @@ -126,11 +132,17 @@

### Documentation

* Update `lightning.tensor` usage suggestions.
[(#971)](https://github.com/PennyLaneAI/pennylane-lightning/pull/971)

* Update ``lightning.tensor`` documentation to include all the new features added since pull request #756. The new features are: 1, Finite-shot measurements; 2. Expval-base quantities; 3. Support for ``qml.state()`` and ``qml.stateprep()``; 4. Support for all gates support via Matrix Product Operator (MPO).
[(#909)](https://github.com/PennyLaneAI/pennylane-lightning/pull/909)

### Bug fixes

* Fix `liblightning_kokkos_catalyst.so` not copied to correct build path for editable installation.
[(#968)](https://github.com/PennyLaneAI/pennylane-lightning/pull/968)

* Fix PTM stable latest related to `default.qubit.legacy`.
[(#966)](https://github.com/PennyLaneAI/pennylane-lightning/pull/966)

Expand All @@ -156,7 +168,7 @@

This release contains contributions from (in alphabetical order):

Ali Asadi, Amintor Dusko, Luis Alfredo Nuñez Meneses, Vincent Michaud-Rioux, Lee J. O'Riordan, Mudit Pandey, Shuli Shu, Haochen Paul Wang
Ali Asadi, Amintor Dusko, Joseph Lee, Luis Alfredo Nuñez Meneses, Vincent Michaud-Rioux, Lee J. O'Riordan, Mudit Pandey, Shuli Shu, Haochen Paul Wang

---

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/compat-docker-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
name: Docker release - Linux::x86_64
uses: ./.github/workflows/docker_linux_x86_64.yml
with:
lightning-version: v0.38.0_rc
pennylane-version: v0.38.0-rc0
lightning-version: v0.39.0_rc
pennylane-version: v0.39.0-rc0
push-to-dockerhub: false
secrets: inherit # pass all secrets
13 changes: 13 additions & 0 deletions .github/workflows/tests_gpu_python.yml
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,19 @@ jobs:
run: |
DEVICENAME=`echo ${{ matrix.pl_backend }} | sed "s/_/./g"`
PL_DEVICE=${DEVICENAME} python -m pytest tests/ $COVERAGE_FLAGS

- name: Test wheels for Lightning-GPU
if : matrix.pl_backend == 'lightning_gpu'
run: |
python -m pip install -r requirements-dev.txt
PL_BACKEND=lightning_qubit python scripts/configure_pyproject_toml.py
SKIP_COMPILATION=True python -m pip install . -vv

DEVICENAME=`echo ${{ matrix.pl_backend }} | sed "s/_/./g"`
PL_BACKEND=${DEVICENAME} python scripts/configure_pyproject_toml.py
python -m build
python -m pip install dist/*.whl --force-reinstall --no-deps
PL_DEVICE=${DEVICENAME} python -m pytest tests/test_device.py $COVERAGE_FLAGS

- name: Move coverage file
run: |
Expand Down
11 changes: 11 additions & 0 deletions .github/workflows/tests_lkcpu_python.yml
Original file line number Diff line number Diff line change
Expand Up @@ -264,6 +264,17 @@ jobs:
pl-device-test --device ${DEVICENAME} --shots=None --skip-ops $COVERAGE_FLAGS --cov-append
mv .coverage ${{ github.workspace }}/.coverage-${{ github.job }}-${{ matrix.pl_backend }}-${{ matrix.group }}

- name: Test editable install
run: |
rm -r build
pip uninstall pennylane-lightning pennylane-lightning-kokkos -y
python scripts/configure_pyproject_toml.py
SKIP_COMPILATION=True python -m pip install -e . --config-settings editable_mode=compat
DEVICENAME=`echo ${{ matrix.pl_backend }} | sed "s/_/./g"`
PL_BACKEND=${DEVICENAME} python scripts/configure_pyproject_toml.py
python -m pip install -e . --config-settings editable_mode=compat -vv
PL_DEVICE=${DEVICENAME} python -m pytest tests/test_device.py $COVERAGE_FLAGS

- name: Upload test durations
uses: actions/upload-artifact@v4
with:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/wheel_linux_aarch64.yml
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ jobs:

- uses: actions/upload-artifact@v4
if: |
github.event_name == 'release' ||
github.event_name == 'pull_request' ||
github.event_name == 'workflow_dispatch' ||
github.ref == 'refs/heads/master'
with:
Expand All @@ -202,7 +202,7 @@ jobs:
cibw_build: ${{ fromJson(needs.set_wheel_build_matrix.outputs.python_version) }}
runs-on: ubuntu-latest
if: |
github.event_name == 'release' ||
github.event_name == 'pull_request' ||
github.ref == 'refs/heads/master'

steps:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/wheel_linux_aarch64_cuda.yml
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ jobs:

- uses: actions/upload-artifact@v4
if: |
github.event_name == 'release' ||
github.event_name == 'pull_request' ||
github.event_name == 'workflow_dispatch' ||
github.ref == 'refs/heads/master'
with:
Expand All @@ -128,7 +128,7 @@ jobs:
permissions:
id-token: write
if: |
github.event_name == 'release' ||
github.event_name == 'pull_request' ||
github.ref == 'refs/heads/master'

steps:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/wheel_linux_x86_64.yml
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ jobs:

- uses: actions/upload-artifact@v4
if: |
github.event_name == 'release' ||
github.event_name == 'pull_request' ||
github.event_name == 'workflow_dispatch' ||
github.ref == 'refs/heads/master' ||
steps.rc_build.outputs.match != ''
Expand All @@ -217,7 +217,7 @@ jobs:
cibw_build: ${{ fromJson(needs.set_wheel_build_matrix.outputs.python_version) }}
runs-on: ubuntu-latest
if: |
github.event_name == 'release' ||
github.event_name == 'pull_request' ||
github.ref == 'refs/heads/master'

steps:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/wheel_linux_x86_64_cuda.yml
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ jobs:

- uses: actions/upload-artifact@v4
if: |
github.event_name == 'release' ||
github.event_name == 'pull_request' ||
github.event_name == 'workflow_dispatch' ||
github.ref == 'refs/heads/master' ||
steps.rc_build.outputs.match != ''
Expand All @@ -141,7 +141,7 @@ jobs:
permissions:
id-token: write
if: |
github.event_name == 'release' ||
github.event_name == 'pull_request' ||
github.ref == 'refs/heads/master'

steps:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/wheel_macos_arm64.yml
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ jobs:

- uses: actions/upload-artifact@v4
if: |
github.event_name == 'release' ||
github.event_name == 'pull_request' ||
github.event_name == 'workflow_dispatch' ||
github.ref == 'refs/heads/master'
with:
Expand All @@ -144,7 +144,7 @@ jobs:
cibw_build: ${{ fromJson(needs.mac-set-matrix-arm.outputs.python_version) }}
runs-on: ubuntu-latest
if: |
github.event_name == 'release' ||
github.event_name == 'pull_request' ||
github.ref == 'refs/heads/master'

steps:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/wheel_macos_x86_64.yml
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ jobs:

- uses: actions/upload-artifact@v4
if: |
github.event_name == 'release' ||
github.event_name == 'pull_request' ||
github.event_name == 'workflow_dispatch' ||
github.ref == 'refs/heads/master' ||
steps.rc_build.outputs.match != ''
Expand All @@ -203,7 +203,7 @@ jobs:
cibw_build: ${{ fromJson(needs.set_wheel_build_matrix.outputs.python_version) }}
runs-on: ubuntu-latest
if: |
github.event_name == 'release' ||
github.event_name == 'pull_request' ||
github.ref == 'refs/heads/master'

steps:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/wheel_noarch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ jobs:
- uses: actions/upload-artifact@v4
if: |
matrix.pl_backend == 'lightning_qubit' &&
(github.event_name == 'release' || github.event_name == 'workflow_dispatch' || github.ref == 'refs/heads/master')
(github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch' || github.ref == 'refs/heads/master')
with:
name: pure-python-wheels-${{ matrix.pl_backend }}.zip
path: dist/*.whl
Expand All @@ -102,7 +102,7 @@ jobs:

steps:
- uses: actions/download-artifact@v4
if: ${{ matrix.pl_backend == 'lightning_qubit' && github.event_name == 'release' }}
if: ${{ matrix.pl_backend == 'lightning_qubit' && github.event_name == 'pull_request' }}
with:
name: pure-python-wheels-${{ matrix.pl_backend }}.zip
path: dist
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/wheel_win_x86_64.yml
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@ jobs:

- uses: actions/upload-artifact@v4
if: |
github.event_name == 'release' ||
github.event_name == 'pull_request' ||
github.event_name == 'workflow_dispatch' ||
github.ref == 'refs/heads/master' ||
steps.rc_build.outputs.match != ''
Expand All @@ -225,7 +225,7 @@ jobs:
cibw_build: ${{ fromJson(needs.set_wheel_build_matrix.outputs.python_version) }}
runs-on: ubuntu-latest
if: |
github.event_name == 'release' ||
github.event_name == 'pull_request' ||
github.ref == 'refs/heads/master'

steps:
Expand Down
Loading
Loading