From a8deb1f8a796cf2383ba1b3a2ec8f2daf6f9670a Mon Sep 17 00:00:00 2001 From: Shuli Shu <08cnbj@gmail.com> Date: Mon, 16 Sep 2024 13:42:16 +0000 Subject: [PATCH 01/20] Initial commit --- README.rst | 2 +- doc/lightning_tensor/device.rst | 37 +++++++++++++-------------------- 2 files changed, 15 insertions(+), 24 deletions(-) diff --git a/README.rst b/README.rst index 4d5450f1c0..0c2c876355 100644 --- a/README.rst +++ b/README.rst @@ -49,7 +49,7 @@ PennyLane-Lightning high performance simulators include the following backends: * ``lightning.qubit``: is a fast state-vector simulator written in C++. * ``lightning.gpu``: is a state-vector simulator based on the `NVIDIA cuQuantum SDK `_. It notably implements a distributed state-vector simulator based on MPI. * ``lightning.kokkos``: is a state-vector simulator written with `Kokkos `_. It can exploit the inherent parallelism of modern processing units supporting the `OpenMP `_, `CUDA `_ or `HIP `_ programming models. -* ``lightning.tensor``: is a tensor network simulator based on the `NVIDIA cuQuantum SDK `_ (requires NVIDIA GPUs with SM 7.0 or greater). This device is designed to simulate large-scale quantum circuits using tensor networks. For small circuits, state-vector simulator plugins may be more suitable. The supported method is Matrix Product State (MPS). This device does not currently support finite shots. Currently, the supported measurement types are expectation values and the supported differentiation methods are ``parameter-shift`` and ``finite-diff``. Note that only 1,2-wire gates and gates that can be decomposed by PennyLane into 1,2-wire gates are supported. +* ``lightning.tensor``: is a tensor network simulator based on the `NVIDIA cuQuantum SDK `_ (requires NVIDIA GPUs with SM 7.0 or greater). This device is designed to simulate large-scale quantum circuits using tensor networks. For small circuits, state-vector simulator plugins may be more suitable. The supported method is Matrix Product State (MPS). This device supports both analytical and finite shots measurements. Currently, the supported differentiation methods are ``parameter-shift`` and ``finite-diff``. Note that MPS backend of ``lightning.tensor`` supports multi-wires gate via Matrix Product Operators (MPO). Disable the new arithmetic operator dunders is recommended since only 1-wire Hermitian is supported by ``lightning.tensor``. It is recommended to use the shot measurements for the ``lightning.tensor`` device. The calculation of analytical probabilities and variances may result in excessive memory usage for large-scale quantum simulations or become impractical due to prohibitive computational costs. It's also recommended to disable ``new_opmath`` for the ``lightning.tensor`` device since ``lightning.tensor`` only supports 1-wire Hermitian observables. .. header-end-inclusion-marker-do-not-remove diff --git a/doc/lightning_tensor/device.rst b/doc/lightning_tensor/device.rst index c4a0d4ae74..43cf7ed46e 100644 --- a/doc/lightning_tensor/device.rst +++ b/doc/lightning_tensor/device.rst @@ -20,11 +20,16 @@ The ``lightning.tensor`` device dispatches all operations to be performed on a C and greater. .. note:: - Given the inherent parallelism of GPUs, simulations with intensive parallel computation, such as those with larger maximum + Some tips on the usage of the ``lightning.tensor`` device: + - ``lightning.tensor`` performs better for the maximum bond dimension MPS calculation. Given the inherent parallelism of GPUs, simulations with intensive parallel computation, such as those with larger maximum bond dimensions, stand to gain the most from the computational power offered by GPU and those simulations can benifit from the ``lightning.tensor`` device. It's worth noting that if the bond dimension used in the simulation is small, the ``lightning.tensor`` device with ``MPS`` running a GPU may perform slower compared to a ``default.tensor`` device with ``MPS`` running on a CPU. For more details on how bond dimension affects the simulation performance, please refer to the ``Approximate Tensor Network Methods`` section in the `cuQuantum SDK `__. + - The ``lightning.tensor`` device is optimized for large-scale quantum simulations. For small-scale quantum simulations, the overhead of transferring data between the CPU and GPU may outweigh the benefits of GPU acceleration. + - For the ``lightning.tensor`` device, it is recommended to use shot-based ``probs()`` measurements. The analytical calculation of ``prob()`` can lead to excessive memory usage or become impractical due to high computational costs for large-scale quantum simulations. + - Similarly, shot-based ``var()`` measurements are recommended for the ``lightning.tensor`` device. The analytical calculation of ``var()`` may also result in excessive memory usage or be impractical due to prohibitive computational costs for large-scale quantum simulations. + - It is advisable to disable new_opmath for the ``lightning.tensor`` device, as it only supports 1-wire Hermitian observables. Users also have the flexibility to customize these parameters according to their specific needs with: @@ -58,7 +63,7 @@ Check out the :doc:`/lightning_tensor/installation` guide for more information. Operations and observables support ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The "lightning.tensor" supports 1- and 2-wire gate operations and all other operations that can be decomposed to that by PennyLane. +The "lightning.tensor" supports all gate operations supported by PennyLane. **Supported operations:** @@ -70,6 +75,7 @@ The "lightning.tensor" supports 1- and 2-wire gate operations and all other oper :nosignatures: ~pennylane.BasisState + ~pennylane.BlockEncode ~pennylane.CNOT ~pennylane.ControlledPhaseShift ~pennylane.ControlledQubitUnitary @@ -82,7 +88,10 @@ The "lightning.tensor" supports 1- and 2-wire gate operations and all other oper ~pennylane.CZ ~pennylane.DiagonalQubitUnitary ~pennylane.DoubleExcitation + ~pennylane.DoubleExcitationMinus + ~pennylane.DoubleExcitationPlus ~pennylane.ECR + ~pennylane.GlobalPhase ~pennylane.Hadamard ~pennylane.Identity ~pennylane.IsingXX @@ -98,6 +107,7 @@ The "lightning.tensor" supports 1- and 2-wire gate operations and all other oper ~pennylane.PSWAP ~pennylane.QFT ~pennylane.QubitCarry + ~pennylane.QubitStateVector ~pennylane.QubitSum ~pennylane.QubitUnitary ~pennylane.Rot @@ -108,6 +118,7 @@ The "lightning.tensor" supports 1- and 2-wire gate operations and all other oper ~pennylane.SingleExcitation ~pennylane.SingleExcitationMinus ~pennylane.SingleExcitationPlus + ~pennylane.StatePrep ~pennylane.SISWAP ~pennylane.SQISW ~pennylane.SWAP @@ -119,30 +130,10 @@ The "lightning.tensor" supports 1- and 2-wire gate operations and all other oper -**Unsupported operations:** - -.. raw:: html - -
- -.. autosummary:: - :nosignatures: - - ~pennylane.StatePrep - ~pennylane.QubitStateVector - ~pennylane.DoubleExcitationMinus - ~pennylane.DoubleExcitationPlus - ~pennylane.GlobalPhase - ~pennylane.BlockEncode - - -.. raw:: html - -
**Supported observables:** -The ``lightning.tensor`` supports all observables supported by the Lightning state-vector simulators, besides ``qml.SparseHamiltonian``, ``qml.Projector`` and limited support to ``qml.Hamiltonian``, ``qml.Prod``. +The ``lightning.tensor`` supports all observables supported by the Lightning state-vector simulators, besides ``qml.SparseHamiltonian``, ``qml.Projector`` and limited support to ``qml.Hamiltonian``, ``qml.Prod`` since ``lightning.tensor`` only supports 1-wire Hermitian observables. Users can not create a ``Hamiltonian`` or ``Prod`` observable from ``Hamiltonian`` observables. From 50443c23f9ecafdfb0f58a212fbc77e58c86206a Mon Sep 17 00:00:00 2001 From: ringo-but-quantum Date: Mon, 16 Sep 2024 13:43:08 +0000 Subject: [PATCH 02/20] Auto update version from '0.39.0-dev23' to '0.39.0-dev24' --- pennylane_lightning/core/_version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pennylane_lightning/core/_version.py b/pennylane_lightning/core/_version.py index 92c41602b4..065f0933a9 100644 --- a/pennylane_lightning/core/_version.py +++ b/pennylane_lightning/core/_version.py @@ -16,4 +16,4 @@ Version number (major.minor.patch[-label]) """ -__version__ = "0.39.0-dev23" +__version__ = "0.39.0-dev24" From deea7599b034b7d544c4f3817e46916dc0e4c67e Mon Sep 17 00:00:00 2001 From: Shuli Shu <08cnbj@gmail.com> Date: Mon, 16 Sep 2024 14:03:15 +0000 Subject: [PATCH 03/20] Add changelog --- .github/CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/CHANGELOG.md b/.github/CHANGELOG.md index 0262afc467..b421cb56e8 100644 --- a/.github/CHANGELOG.md +++ b/.github/CHANGELOG.md @@ -66,6 +66,9 @@ ### Documentation +* Update ``lightning.tensor`` documentation on all the new features. + [(#909)](https://github.com/PennyLaneAI/pennylane-lightning/pull/909) + ### Bug fixes * Bug fix for analytic `probs` in the `lightning.tensor` C++ layer. From 7b78d010624e152ee169e9d4814d21ce5d734d9b Mon Sep 17 00:00:00 2001 From: Shuli Shu <08cnbj@gmail.com> Date: Mon, 16 Sep 2024 14:11:18 +0000 Subject: [PATCH 04/20] update about --- CMakeLists.txt | 2 +- README.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 21fb8e2429..c08304cc19 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,7 +12,7 @@ set(CMAKE_OSX_DEPLOYMENT_TARGET "11" CACHE STRING "Minimum OS X deployment versi set(CMAKE_CXX_STANDARD 20) # At least C++20 is required project(pennylane_lightning - DESCRIPTION "C++ suite of state-vector simulators bindings for PennyLane. " + DESCRIPTION "C++ suite of state-vector and tensor network simulators bindings for PennyLane. " LANGUAGES CXX ) diff --git a/README.rst b/README.rst index 0c2c876355..82426febb4 100644 --- a/README.rst +++ b/README.rst @@ -35,7 +35,7 @@ Lightning Plugins .. header-start-inclusion-marker-do-not-remove -The Lightning plugin ecosystem provides fast state-vector simulators written in C++. +The Lightning plugin ecosystem provides fast state-vector and tensor network simulators written in C++. `PennyLane `_ is a cross-platform Python library for quantum machine learning, automatic differentiation, and optimization of hybrid quantum-classical computations. From d02f463c75ed1fbba108f64c296d5fcd5b5b1ada Mon Sep 17 00:00:00 2001 From: Shuli Shu <08cnbj@gmail.com> Date: Mon, 16 Sep 2024 15:29:36 +0000 Subject: [PATCH 05/20] update bullet points --- doc/lightning_tensor/device.rst | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/lightning_tensor/device.rst b/doc/lightning_tensor/device.rst index 43cf7ed46e..afa8784c41 100644 --- a/doc/lightning_tensor/device.rst +++ b/doc/lightning_tensor/device.rst @@ -21,15 +21,15 @@ and greater. .. note:: Some tips on the usage of the ``lightning.tensor`` device: - - ``lightning.tensor`` performs better for the maximum bond dimension MPS calculation. Given the inherent parallelism of GPUs, simulations with intensive parallel computation, such as those with larger maximum + * ``lightning.tensor`` performs better for the maximum bond dimension MPS calculation. Given the inherent parallelism of GPUs, simulations with intensive parallel computation, such as those with larger maximum bond dimensions, stand to gain the most from the computational power offered by GPU and those simulations can benifit from the ``lightning.tensor`` device. It's worth noting that if the bond dimension used in the simulation is small, the ``lightning.tensor`` device with ``MPS`` running a GPU may perform slower compared to a ``default.tensor`` device with ``MPS`` running on a CPU. For more details on how bond dimension affects the simulation performance, please refer to the ``Approximate Tensor Network Methods`` section in the `cuQuantum SDK `__. - - The ``lightning.tensor`` device is optimized for large-scale quantum simulations. For small-scale quantum simulations, the overhead of transferring data between the CPU and GPU may outweigh the benefits of GPU acceleration. - - For the ``lightning.tensor`` device, it is recommended to use shot-based ``probs()`` measurements. The analytical calculation of ``prob()`` can lead to excessive memory usage or become impractical due to high computational costs for large-scale quantum simulations. - - Similarly, shot-based ``var()`` measurements are recommended for the ``lightning.tensor`` device. The analytical calculation of ``var()`` may also result in excessive memory usage or be impractical due to prohibitive computational costs for large-scale quantum simulations. - - It is advisable to disable new_opmath for the ``lightning.tensor`` device, as it only supports 1-wire Hermitian observables. + * The ``lightning.tensor`` device is optimized for large-scale quantum simulations. For small-scale quantum simulations, the overhead of transferring data between the CPU and GPU may outweigh the benefits of GPU acceleration. + * For the ``lightning.tensor`` device, it is recommended to use shot-based ``probs()`` measurements. The analytical calculation of ``prob()`` can lead to excessive memory usage or become impractical due to high computational costs for large-scale quantum simulations. + * Similarly, shot-based ``var()`` measurements are recommended for the ``lightning.tensor`` device. The analytical calculation of ``var()`` may also result in excessive memory usage or be impractical due to prohibitive computational costs for large-scale quantum simulations. + * It is advisable to disable new_opmath for the ``lightning.tensor`` device, as it only supports 1-wire Hermitian observables. Users also have the flexibility to customize these parameters according to their specific needs with: From 069bb15b48d016aae91c5e2d895381dd99976aca Mon Sep 17 00:00:00 2001 From: Shuli Shu <08cnbj@gmail.com> Date: Mon, 16 Sep 2024 16:33:25 +0000 Subject: [PATCH 06/20] fix typo --- doc/lightning_tensor/device.rst | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/doc/lightning_tensor/device.rst b/doc/lightning_tensor/device.rst index afa8784c41..042279a671 100644 --- a/doc/lightning_tensor/device.rst +++ b/doc/lightning_tensor/device.rst @@ -19,17 +19,12 @@ The default setup for the MPS tensor network approximation is: The ``lightning.tensor`` device dispatches all operations to be performed on a CUDA-capable GPU of generation SM 7.0 (Volta) and greater. -.. note:: - Some tips on the usage of the ``lightning.tensor`` device: - * ``lightning.tensor`` performs better for the maximum bond dimension MPS calculation. Given the inherent parallelism of GPUs, simulations with intensive parallel computation, such as those with larger maximum - bond dimensions, stand to gain the most from the computational power offered by GPU and those simulations can benifit from the - ``lightning.tensor`` device. It's worth noting that if the bond dimension used in the simulation is small, the ``lightning.tensor`` - device with ``MPS`` running a GPU may perform slower compared to a ``default.tensor`` device with ``MPS`` running on a CPU. For more details - on how bond dimension affects the simulation performance, please refer to the ``Approximate Tensor Network Methods`` section in the `cuQuantum SDK `__. - * The ``lightning.tensor`` device is optimized for large-scale quantum simulations. For small-scale quantum simulations, the overhead of transferring data between the CPU and GPU may outweigh the benefits of GPU acceleration. - * For the ``lightning.tensor`` device, it is recommended to use shot-based ``probs()`` measurements. The analytical calculation of ``prob()`` can lead to excessive memory usage or become impractical due to high computational costs for large-scale quantum simulations. - * Similarly, shot-based ``var()`` measurements are recommended for the ``lightning.tensor`` device. The analytical calculation of ``var()`` may also result in excessive memory usage or be impractical due to prohibitive computational costs for large-scale quantum simulations. - * It is advisable to disable new_opmath for the ``lightning.tensor`` device, as it only supports 1-wire Hermitian observables. +Some tips on the usage of the ``lightning.tensor`` device: + - ``lightning.tensor`` performs better for the maximum bond dimension MPS calculation. Given the inherent parallelism of GPUs, simulations with intensive parallel computation, such as those with larger maximum bond dimensions, stand to gain the most from the computational power offered by GPU and those simulations can benifit from the ``lightning.tensor`` device. It's worth noting that if the bond dimension used in the simulation is small, the ``lightning.tensor`` device with ``MPS`` running a GPU may perform slower compared to a ``default.tensor`` device with ``MPS`` running on a CPU. For more details on how bond dimension affects the simulation performance, please refer to the ``Approximate Tensor Network Methods`` section in the `cuQuantum SDK `__. + - The ``lightning.tensor`` device is optimized for large-scale quantum simulations. For small-scale quantum simulations, the overhead of transferring data between the CPU and GPU may outweigh the benefits of GPU acceleration. + - For the ``lightning.tensor`` device, it is recommended to use shot-based ``probs()`` measurements. The analytical calculation of ``prob()`` can lead to excessive memory usage or become impractical due to high computational costs for large-scale quantum simulations. + - Similarly, shot-based ``var()`` measurements are recommended for the ``lightning.tensor`` device. The analytical calculation of ``var()`` may also result in excessive memory usage or be impractical due to prohibitive computational costs for large-scale quantum simulations. + - It is advisable to disable ``new_opmath`` for the ``lightning.tensor`` device, as it only supports 1-wire Hermitian observables. Users also have the flexibility to customize these parameters according to their specific needs with: From 2e9962bb364ef56596f186b0805cf83223c2fe09 Mon Sep 17 00:00:00 2001 From: ringo-but-quantum Date: Mon, 16 Sep 2024 16:33:53 +0000 Subject: [PATCH 07/20] Auto update version from '0.39.0-dev24' to '0.39.0-dev25' --- pennylane_lightning/core/_version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pennylane_lightning/core/_version.py b/pennylane_lightning/core/_version.py index 065f0933a9..1d0b6fde2a 100644 --- a/pennylane_lightning/core/_version.py +++ b/pennylane_lightning/core/_version.py @@ -16,4 +16,4 @@ Version number (major.minor.patch[-label]) """ -__version__ = "0.39.0-dev24" +__version__ = "0.39.0-dev25" From 87a3bf18cb628706055d65bb9ecad6d5c48179a0 Mon Sep 17 00:00:00 2001 From: Shuli Shu <08cnbj@gmail.com> Date: Wed, 18 Sep 2024 14:18:56 -0400 Subject: [PATCH 08/20] apply some comments --- README.rst | 3 +-- doc/lightning_tensor/device.rst | 15 ++++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/README.rst b/README.rst index 82426febb4..6649f184d1 100644 --- a/README.rst +++ b/README.rst @@ -49,8 +49,7 @@ PennyLane-Lightning high performance simulators include the following backends: * ``lightning.qubit``: is a fast state-vector simulator written in C++. * ``lightning.gpu``: is a state-vector simulator based on the `NVIDIA cuQuantum SDK `_. It notably implements a distributed state-vector simulator based on MPI. * ``lightning.kokkos``: is a state-vector simulator written with `Kokkos `_. It can exploit the inherent parallelism of modern processing units supporting the `OpenMP `_, `CUDA `_ or `HIP `_ programming models. -* ``lightning.tensor``: is a tensor network simulator based on the `NVIDIA cuQuantum SDK `_ (requires NVIDIA GPUs with SM 7.0 or greater). This device is designed to simulate large-scale quantum circuits using tensor networks. For small circuits, state-vector simulator plugins may be more suitable. The supported method is Matrix Product State (MPS). This device supports both analytical and finite shots measurements. Currently, the supported differentiation methods are ``parameter-shift`` and ``finite-diff``. Note that MPS backend of ``lightning.tensor`` supports multi-wires gate via Matrix Product Operators (MPO). Disable the new arithmetic operator dunders is recommended since only 1-wire Hermitian is supported by ``lightning.tensor``. It is recommended to use the shot measurements for the ``lightning.tensor`` device. The calculation of analytical probabilities and variances may result in excessive memory usage for large-scale quantum simulations or become impractical due to prohibitive computational costs. It's also recommended to disable ``new_opmath`` for the ``lightning.tensor`` device since ``lightning.tensor`` only supports 1-wire Hermitian observables. - +* ``lightning.tensor``: is a tensor network simulator based on the `NVIDIA cuQuantum SDK `_ (requires NVIDIA GPUs with SM 7.0 or greater). The supported method is Matrix Product State (MPS). .. header-end-inclusion-marker-do-not-remove The following table summarizes the supported platforms and the primary installation mode: diff --git a/doc/lightning_tensor/device.rst b/doc/lightning_tensor/device.rst index 042279a671..139779ee97 100644 --- a/doc/lightning_tensor/device.rst +++ b/doc/lightning_tensor/device.rst @@ -1,7 +1,7 @@ Lightning Tensor device ======================= -The ``lightning.tensor`` device is a tensor network simulator device. The device is built on top of the `cutensornet `__ from the NVIDIA cuQuantum SDK, enabling GPU-accelerated simulation of quantum tensor network evolution. +The ``lightning.tensor`` device is a tensor network simulator device. The device is built on top of the `cutensornet `__ from the NVIDIA cuQuantum SDK, enabling GPU-accelerated simulation of quantum tensor network evolution. This device is designed to simulate large-scale quantum circuits using tensor networks. For small circuits, state-vector simulator plugins may be more suitable. A ``lightning.tensor`` device can be loaded simply using: @@ -14,16 +14,17 @@ By default, the device represents the quantum state approximated as a Matrix Pro The default setup for the MPS tensor network approximation is: - ``max_bond_dim`` (maximum bond dimension) defaults to ``128`` . - ``cutoff`` (singular value truncation threshold) defaults to ``0`` . - - ``cutoff_mode`` (singular value truncation mode) defaults to ``abs`` , considering the absolute values of the singular values; Alternatively, users can opt to set ``cutoff_mode`` to ``rel`` to consider the relative values of the singular values. + - ``cutoff_mode`` (singular value truncation mode) defaults to ``abs`` , considering the absolute values of the singular values; Alternatively, users can opt to set ``cutoff_mode`` to ``rel`` to consider the relative values of the singular values. +Note that the ``cutensornet`` will automatically determin the reduced extent of the bond dimension based on the lowest among the multiple truncation cutoffs (``max_bond_dim``, ``cutoff-abs`` and ``cutoff-rel``). For more details on how the ``cutoff`` works, please check it out the `cuQuantum documentation`__. All swap and decomposition operations in MPS-MPO multiplication will follow the same constraints set by SVD configurations (``cutoff``) and target extents setups. For more details, please refer to the `cuQuantum documentation`__. The ``lightning.tensor`` device dispatches all operations to be performed on a CUDA-capable GPU of generation SM 7.0 (Volta) -and greater. +and greater. This device supports both analytical and finite shots measurements. Currently, the supported differentiation methods are parameter-shift and finite-diff. Note that MPS backend of lightning.tensor supports multi-wires gate via Matrix Product Operators (MPO). Disable the new arithmetic operator dunders is recommended since only 1-wire Hermitian is supported by lightning.tensor. It is recommended to use the shot measurements for the lightning.tensor device. The calculation of analytical probabilities and variances may result in excessive memory usage for large-scale quantum simulations or become impractical due to prohibitive computational costs. It's also recommended to disable new_opmath for the lightning.tensor device since lightning.tensor only supports 1-wire Hermitian observables. Some tips on the usage of the ``lightning.tensor`` device: - - ``lightning.tensor`` performs better for the maximum bond dimension MPS calculation. Given the inherent parallelism of GPUs, simulations with intensive parallel computation, such as those with larger maximum bond dimensions, stand to gain the most from the computational power offered by GPU and those simulations can benifit from the ``lightning.tensor`` device. It's worth noting that if the bond dimension used in the simulation is small, the ``lightning.tensor`` device with ``MPS`` running a GPU may perform slower compared to a ``default.tensor`` device with ``MPS`` running on a CPU. For more details on how bond dimension affects the simulation performance, please refer to the ``Approximate Tensor Network Methods`` section in the `cuQuantum SDK `__. - - The ``lightning.tensor`` device is optimized for large-scale quantum simulations. For small-scale quantum simulations, the overhead of transferring data between the CPU and GPU may outweigh the benefits of GPU acceleration. - - For the ``lightning.tensor`` device, it is recommended to use shot-based ``probs()`` measurements. The analytical calculation of ``prob()`` can lead to excessive memory usage or become impractical due to high computational costs for large-scale quantum simulations. - - Similarly, shot-based ``var()`` measurements are recommended for the ``lightning.tensor`` device. The analytical calculation of ``var()`` may also result in excessive memory usage or be impractical due to prohibitive computational costs for large-scale quantum simulations. + - ``lightning.tensor`` performs better for the larger bond dimensions in MPS calculations, see the ``Approximate Tensor Network Methods`` section in the `cuQuantum SDK `__. + - The ``lightning.tensor`` device is recommended for large-scale quantum simulations. For small-scale simulations, the cost of SVD decomposition and MPS-MPO multiplication might outweigh than the benifits of MPS. + - It is recommended to use shot-based ``probs()`` measurements for the ``lightning.tensor`` device when the number of target/projected wires is large. The analytical calculation of ``prob()`` target at ``30+`` wires can lead to excessive memory usage. The analytical calculation of ``prob()`` that targets at small number of subset wires but projects a larger number of wires could become impractical due to high computational costs for large-scale quantum simulations. If the number of projected wires is ``n``, ``2**n`` times of ``cutensornet`` API calls should be made to get the analytical ``probs()``, which could be prohibitive if ``n`` is large. + - The analytical calculation of ``var()`` measurements could be impractical for Hamiltonian observables with many terms. The computational cost of current ``var`` implementation scales with ``n**2``, where ``n`` is the number of terms in the Hamiltonian observable. - It is advisable to disable ``new_opmath`` for the ``lightning.tensor`` device, as it only supports 1-wire Hermitian observables. Users also have the flexibility to customize these parameters according to their specific needs with: From f145604bbba728b10337715b5aadcd9077a13f0a Mon Sep 17 00:00:00 2001 From: ringo-but-quantum Date: Wed, 18 Sep 2024 18:19:23 +0000 Subject: [PATCH 09/20] Auto update version from '0.39.0-dev25' to '0.39.0-dev27' --- pennylane_lightning/core/_version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pennylane_lightning/core/_version.py b/pennylane_lightning/core/_version.py index 1d0b6fde2a..bb3de8f43b 100644 --- a/pennylane_lightning/core/_version.py +++ b/pennylane_lightning/core/_version.py @@ -16,4 +16,4 @@ Version number (major.minor.patch[-label]) """ -__version__ = "0.39.0-dev25" +__version__ = "0.39.0-dev27" From 336ce5f06a94d2c94ae119449ad47886c7a3d2ae Mon Sep 17 00:00:00 2001 From: Shuli Shu <31480676+multiphaseCFD@users.noreply.github.com> Date: Wed, 18 Sep 2024 14:28:37 -0400 Subject: [PATCH 10/20] Update doc/lightning_tensor/device.rst Co-authored-by: Thomas Germain <115888357+tomlqc@users.noreply.github.com> --- doc/lightning_tensor/device.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/lightning_tensor/device.rst b/doc/lightning_tensor/device.rst index 139779ee97..9da8b31b17 100644 --- a/doc/lightning_tensor/device.rst +++ b/doc/lightning_tensor/device.rst @@ -25,7 +25,7 @@ Some tips on the usage of the ``lightning.tensor`` device: - The ``lightning.tensor`` device is recommended for large-scale quantum simulations. For small-scale simulations, the cost of SVD decomposition and MPS-MPO multiplication might outweigh than the benifits of MPS. - It is recommended to use shot-based ``probs()`` measurements for the ``lightning.tensor`` device when the number of target/projected wires is large. The analytical calculation of ``prob()`` target at ``30+`` wires can lead to excessive memory usage. The analytical calculation of ``prob()`` that targets at small number of subset wires but projects a larger number of wires could become impractical due to high computational costs for large-scale quantum simulations. If the number of projected wires is ``n``, ``2**n`` times of ``cutensornet`` API calls should be made to get the analytical ``probs()``, which could be prohibitive if ``n`` is large. - The analytical calculation of ``var()`` measurements could be impractical for Hamiltonian observables with many terms. The computational cost of current ``var`` implementation scales with ``n**2``, where ``n`` is the number of terms in the Hamiltonian observable. - - It is advisable to disable ``new_opmath`` for the ``lightning.tensor`` device, as it only supports 1-wire Hermitian observables. + - It is advisable to disable ``new_opmath`` for the ``lightning.tensor`` device, as the device only supports 1-wire Hermitian observables. Users also have the flexibility to customize these parameters according to their specific needs with: From 0ea1a8e01ba8963adae08e6f0e01b58289be63a5 Mon Sep 17 00:00:00 2001 From: Shuli Shu <08cnbj@gmail.com> Date: Wed, 18 Sep 2024 16:40:08 -0400 Subject: [PATCH 11/20] update changelog --- .github/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/CHANGELOG.md b/.github/CHANGELOG.md index b421cb56e8..b019fb8c22 100644 --- a/.github/CHANGELOG.md +++ b/.github/CHANGELOG.md @@ -66,7 +66,7 @@ ### Documentation -* Update ``lightning.tensor`` documentation on all the new features. +* 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 From 43e8f6dc3e02bc43e1e31fffbf20dda0efee40c0 Mon Sep 17 00:00:00 2001 From: ringo-but-quantum Date: Wed, 18 Sep 2024 20:42:42 +0000 Subject: [PATCH 12/20] Auto update version from '0.39.0-dev26' to '0.39.0-dev27' --- pennylane_lightning/core/_version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pennylane_lightning/core/_version.py b/pennylane_lightning/core/_version.py index ebebbc9f97..bb3de8f43b 100644 --- a/pennylane_lightning/core/_version.py +++ b/pennylane_lightning/core/_version.py @@ -16,4 +16,4 @@ Version number (major.minor.patch[-label]) """ -__version__ = "0.39.0-dev26" +__version__ = "0.39.0-dev27" From 8d461099b8757f8f8b1a9d1ba0f195cb008e3548 Mon Sep 17 00:00:00 2001 From: Shuli Shu <08cnbj@gmail.com> Date: Wed, 18 Sep 2024 17:06:20 -0400 Subject: [PATCH 13/20] fix typo --- doc/lightning_tensor/device.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/lightning_tensor/device.rst b/doc/lightning_tensor/device.rst index 9da8b31b17..1791d18370 100644 --- a/doc/lightning_tensor/device.rst +++ b/doc/lightning_tensor/device.rst @@ -15,7 +15,7 @@ The default setup for the MPS tensor network approximation is: - ``max_bond_dim`` (maximum bond dimension) defaults to ``128`` . - ``cutoff`` (singular value truncation threshold) defaults to ``0`` . - ``cutoff_mode`` (singular value truncation mode) defaults to ``abs`` , considering the absolute values of the singular values; Alternatively, users can opt to set ``cutoff_mode`` to ``rel`` to consider the relative values of the singular values. -Note that the ``cutensornet`` will automatically determin the reduced extent of the bond dimension based on the lowest among the multiple truncation cutoffs (``max_bond_dim``, ``cutoff-abs`` and ``cutoff-rel``). For more details on how the ``cutoff`` works, please check it out the `cuQuantum documentation`__. All swap and decomposition operations in MPS-MPO multiplication will follow the same constraints set by SVD configurations (``cutoff``) and target extents setups. For more details, please refer to the `cuQuantum documentation`__. +Note that the ``cutensornet`` will automatically determin the reduced extent of the bond dimension based on the lowest among the multiple truncation cutoffs (``max_bond_dim``, ``cutoff-abs`` and ``cutoff-rel``). For more details on how the ``cutoff`` works, please check it out the `cuQuantum documentation `__. All swap and decomposition operations in MPS-MPO multiplication will follow the same constraints set by SVD configurations (``cutoff``) and target extents setups. For more details, please refer to the `cuQuantum documentation `__. The ``lightning.tensor`` device dispatches all operations to be performed on a CUDA-capable GPU of generation SM 7.0 (Volta) and greater. This device supports both analytical and finite shots measurements. Currently, the supported differentiation methods are parameter-shift and finite-diff. Note that MPS backend of lightning.tensor supports multi-wires gate via Matrix Product Operators (MPO). Disable the new arithmetic operator dunders is recommended since only 1-wire Hermitian is supported by lightning.tensor. It is recommended to use the shot measurements for the lightning.tensor device. The calculation of analytical probabilities and variances may result in excessive memory usage for large-scale quantum simulations or become impractical due to prohibitive computational costs. It's also recommended to disable new_opmath for the lightning.tensor device since lightning.tensor only supports 1-wire Hermitian observables. From 946d524cf5903ab63814f12ba3ab1ce788d081eb Mon Sep 17 00:00:00 2001 From: Shuli Shu <31480676+multiphaseCFD@users.noreply.github.com> Date: Thu, 19 Sep 2024 11:34:50 -0400 Subject: [PATCH 14/20] Update doc/lightning_tensor/device.rst Co-authored-by: Korbinian Kottmann <43949391+Qottmann@users.noreply.github.com> --- doc/lightning_tensor/device.rst | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/doc/lightning_tensor/device.rst b/doc/lightning_tensor/device.rst index 1791d18370..c2f128d4bb 100644 --- a/doc/lightning_tensor/device.rst +++ b/doc/lightning_tensor/device.rst @@ -18,7 +18,11 @@ The default setup for the MPS tensor network approximation is: Note that the ``cutensornet`` will automatically determin the reduced extent of the bond dimension based on the lowest among the multiple truncation cutoffs (``max_bond_dim``, ``cutoff-abs`` and ``cutoff-rel``). For more details on how the ``cutoff`` works, please check it out the `cuQuantum documentation `__. All swap and decomposition operations in MPS-MPO multiplication will follow the same constraints set by SVD configurations (``cutoff``) and target extents setups. For more details, please refer to the `cuQuantum documentation `__. The ``lightning.tensor`` device dispatches all operations to be performed on a CUDA-capable GPU of generation SM 7.0 (Volta) -and greater. This device supports both analytical and finite shots measurements. Currently, the supported differentiation methods are parameter-shift and finite-diff. Note that MPS backend of lightning.tensor supports multi-wires gate via Matrix Product Operators (MPO). Disable the new arithmetic operator dunders is recommended since only 1-wire Hermitian is supported by lightning.tensor. It is recommended to use the shot measurements for the lightning.tensor device. The calculation of analytical probabilities and variances may result in excessive memory usage for large-scale quantum simulations or become impractical due to prohibitive computational costs. It's also recommended to disable new_opmath for the lightning.tensor device since lightning.tensor only supports 1-wire Hermitian observables. +and greater. This device supports both exact and finite shots measurements. Currently, the supported differentiation methods are parameter-shift and finite-diff. Note that the MPS backend of lightning.tensor supports multi-wire gates via Matrix Product Operators (MPO). + +Note that measurements of ``qml.probs()`` or ``qml.state()`` return dense vectors of dimension :math:`2^{n_\text{qubits}}`, so they should only be used for small systems. When using finite shots, ``qml.probs()`` can be used to get individual samples. + +.. note:: ``qml.Hermitian`` is currently only supported for single wires. You can use ``qml.pauli_decompose`` on smaller matrices to obtain a compatible Pauli decomposition in the meantime. Some tips on the usage of the ``lightning.tensor`` device: - ``lightning.tensor`` performs better for the larger bond dimensions in MPS calculations, see the ``Approximate Tensor Network Methods`` section in the `cuQuantum SDK `__. From 8b991ad2996d02ed69fc7116dadb14298517e7ee Mon Sep 17 00:00:00 2001 From: Shuli Shu <08cnbj@gmail.com> Date: Thu, 19 Sep 2024 15:56:09 +0000 Subject: [PATCH 15/20] apply Korbinian's comments --- doc/lightning_tensor/device.rst | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/doc/lightning_tensor/device.rst b/doc/lightning_tensor/device.rst index c2f128d4bb..64a481d99a 100644 --- a/doc/lightning_tensor/device.rst +++ b/doc/lightning_tensor/device.rst @@ -15,21 +15,14 @@ The default setup for the MPS tensor network approximation is: - ``max_bond_dim`` (maximum bond dimension) defaults to ``128`` . - ``cutoff`` (singular value truncation threshold) defaults to ``0`` . - ``cutoff_mode`` (singular value truncation mode) defaults to ``abs`` , considering the absolute values of the singular values; Alternatively, users can opt to set ``cutoff_mode`` to ``rel`` to consider the relative values of the singular values. -Note that the ``cutensornet`` will automatically determin the reduced extent of the bond dimension based on the lowest among the multiple truncation cutoffs (``max_bond_dim``, ``cutoff-abs`` and ``cutoff-rel``). For more details on how the ``cutoff`` works, please check it out the `cuQuantum documentation `__. All swap and decomposition operations in MPS-MPO multiplication will follow the same constraints set by SVD configurations (``cutoff``) and target extents setups. For more details, please refer to the `cuQuantum documentation `__. +Note that the ``cutensornet`` will automatically determine the reduced extent of the bond dimension based on the lowest among the multiple truncation cutoffs (``max_bond_dim``, ``cutoff-abs`` and ``cutoff-rel``). For more details on how the ``cutoff`` works, please check it out the `cuQuantum documentation `__. The ``lightning.tensor`` device dispatches all operations to be performed on a CUDA-capable GPU of generation SM 7.0 (Volta) and greater. This device supports both exact and finite shots measurements. Currently, the supported differentiation methods are parameter-shift and finite-diff. Note that the MPS backend of lightning.tensor supports multi-wire gates via Matrix Product Operators (MPO). -Note that measurements of ``qml.probs()`` or ``qml.state()`` return dense vectors of dimension :math:`2^{n_\text{qubits}}`, so they should only be used for small systems. When using finite shots, ``qml.probs()`` can be used to get individual samples. +Note that the ``lightning.tensor`` device is designed for expectation value calculations and large-scale quantum circuits. Measurements of ``qml.probs()`` or ``qml.state()`` return dense vectors of dimension :math:`2^{n_\text{qubits}}`, so they should only be used for small systems. When using finite shots, ``qml.probs()`` can be used to get individual samples. -.. note:: ``qml.Hermitian`` is currently only supported for single wires. You can use ``qml.pauli_decompose`` on smaller matrices to obtain a compatible Pauli decomposition in the meantime. - -Some tips on the usage of the ``lightning.tensor`` device: - - ``lightning.tensor`` performs better for the larger bond dimensions in MPS calculations, see the ``Approximate Tensor Network Methods`` section in the `cuQuantum SDK `__. - - The ``lightning.tensor`` device is recommended for large-scale quantum simulations. For small-scale simulations, the cost of SVD decomposition and MPS-MPO multiplication might outweigh than the benifits of MPS. - - It is recommended to use shot-based ``probs()`` measurements for the ``lightning.tensor`` device when the number of target/projected wires is large. The analytical calculation of ``prob()`` target at ``30+`` wires can lead to excessive memory usage. The analytical calculation of ``prob()`` that targets at small number of subset wires but projects a larger number of wires could become impractical due to high computational costs for large-scale quantum simulations. If the number of projected wires is ``n``, ``2**n`` times of ``cutensornet`` API calls should be made to get the analytical ``probs()``, which could be prohibitive if ``n`` is large. - - The analytical calculation of ``var()`` measurements could be impractical for Hamiltonian observables with many terms. The computational cost of current ``var`` implementation scales with ``n**2``, where ``n`` is the number of terms in the Hamiltonian observable. - - It is advisable to disable ``new_opmath`` for the ``lightning.tensor`` device, as the device only supports 1-wire Hermitian observables. +.. note:: ``qml.Hermitian`` is currently only supported for single wires. You can use ``qml.pauli_decompose`` on smaller matrices to obtain a compatible Pauli decomposition in the meantime. As a result, it is advisable to disable ``new_opmath`` for the ``lightning.tensor`` device. This limitation will be addressed once multi-wires Hermitian observables can be supported with ``cutensornet``. Users also have the flexibility to customize these parameters according to their specific needs with: From 247e3adeda7bdc20393f7eeedf4284f243c4781e Mon Sep 17 00:00:00 2001 From: Shuli Shu <08cnbj@gmail.com> Date: Thu, 19 Sep 2024 16:01:45 +0000 Subject: [PATCH 16/20] explain the reason of disable new_opmath --- doc/lightning_tensor/device.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/lightning_tensor/device.rst b/doc/lightning_tensor/device.rst index 64a481d99a..eb753b0c39 100644 --- a/doc/lightning_tensor/device.rst +++ b/doc/lightning_tensor/device.rst @@ -20,9 +20,9 @@ Note that the ``cutensornet`` will automatically determine the reduced extent of The ``lightning.tensor`` device dispatches all operations to be performed on a CUDA-capable GPU of generation SM 7.0 (Volta) and greater. This device supports both exact and finite shots measurements. Currently, the supported differentiation methods are parameter-shift and finite-diff. Note that the MPS backend of lightning.tensor supports multi-wire gates via Matrix Product Operators (MPO). -Note that the ``lightning.tensor`` device is designed for expectation value calculations and large-scale quantum circuits. Measurements of ``qml.probs()`` or ``qml.state()`` return dense vectors of dimension :math:`2^{n_\text{qubits}}`, so they should only be used for small systems. When using finite shots, ``qml.probs()`` can be used to get individual samples. +Note that the ``lightning.tensor`` device is designed for expectation value calculations. Measurements of ``qml.probs()`` or ``qml.state()`` return dense vectors of dimension :math:`2^{n_\text{qubits}}`, so they should only be used for small systems. When using finite shots, ``qml.probs()`` can be used to get individual samples. -.. note:: ``qml.Hermitian`` is currently only supported for single wires. You can use ``qml.pauli_decompose`` on smaller matrices to obtain a compatible Pauli decomposition in the meantime. As a result, it is advisable to disable ``new_opmath`` for the ``lightning.tensor`` device. This limitation will be addressed once multi-wires Hermitian observables can be supported with ``cutensornet``. +.. note:: ``qml.Hermitian`` is currently only supported for single wires. You can use ``qml.pauli_decompose`` on smaller matrices to obtain a compatible Pauli decomposition in the meantime. As a result, it is advisable to disable ``new_opmath`` for the ``lightning.tensor`` device to prevent the implicit conversion of Pauli words to multi-wire Hermitian observables. This limitation will be addressed once multi-wires Hermitian observables can be supported with ``cutensornet``. Users also have the flexibility to customize these parameters according to their specific needs with: From 26b56cc8b5c9c05c6401e275ee1780bc94bf21cf Mon Sep 17 00:00:00 2001 From: Shuli Shu <31480676+multiphaseCFD@users.noreply.github.com> Date: Thu, 19 Sep 2024 12:56:44 -0400 Subject: [PATCH 17/20] Update doc/lightning_tensor/device.rst Co-authored-by: Amintor Dusko <87949283+AmintorDusko@users.noreply.github.com> --- doc/lightning_tensor/device.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/lightning_tensor/device.rst b/doc/lightning_tensor/device.rst index eb753b0c39..03e5fde555 100644 --- a/doc/lightning_tensor/device.rst +++ b/doc/lightning_tensor/device.rst @@ -20,7 +20,7 @@ Note that the ``cutensornet`` will automatically determine the reduced extent of The ``lightning.tensor`` device dispatches all operations to be performed on a CUDA-capable GPU of generation SM 7.0 (Volta) and greater. This device supports both exact and finite shots measurements. Currently, the supported differentiation methods are parameter-shift and finite-diff. Note that the MPS backend of lightning.tensor supports multi-wire gates via Matrix Product Operators (MPO). -Note that the ``lightning.tensor`` device is designed for expectation value calculations. Measurements of ``qml.probs()`` or ``qml.state()`` return dense vectors of dimension :math:`2^{n_\text{qubits}}`, so they should only be used for small systems. When using finite shots, ``qml.probs()`` can be used to get individual samples. +The ``lightning.tensor`` device is designed for expectation value calculations. Measurements of ``qml.probs()`` or ``qml.state()`` return dense vectors of dimension :math:`2^{n_\text{qubits}}`, so they should only be used for small systems. When using finite shots, ``qml.probs()`` can be used to get individual samples. .. note:: ``qml.Hermitian`` is currently only supported for single wires. You can use ``qml.pauli_decompose`` on smaller matrices to obtain a compatible Pauli decomposition in the meantime. As a result, it is advisable to disable ``new_opmath`` for the ``lightning.tensor`` device to prevent the implicit conversion of Pauli words to multi-wire Hermitian observables. This limitation will be addressed once multi-wires Hermitian observables can be supported with ``cutensornet``. From 3f2b60f6544850e8e8dcd2c479d1604987f1eff4 Mon Sep 17 00:00:00 2001 From: Shuli Shu <08cnbj@gmail.com> Date: Fri, 20 Sep 2024 15:19:02 +0000 Subject: [PATCH 18/20] tidy up --- doc/lightning_tensor/device.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/lightning_tensor/device.rst b/doc/lightning_tensor/device.rst index 03e5fde555..0d5b973d4b 100644 --- a/doc/lightning_tensor/device.rst +++ b/doc/lightning_tensor/device.rst @@ -20,7 +20,7 @@ Note that the ``cutensornet`` will automatically determine the reduced extent of The ``lightning.tensor`` device dispatches all operations to be performed on a CUDA-capable GPU of generation SM 7.0 (Volta) and greater. This device supports both exact and finite shots measurements. Currently, the supported differentiation methods are parameter-shift and finite-diff. Note that the MPS backend of lightning.tensor supports multi-wire gates via Matrix Product Operators (MPO). -The ``lightning.tensor`` device is designed for expectation value calculations. Measurements of ``qml.probs()`` or ``qml.state()`` return dense vectors of dimension :math:`2^{n_\text{qubits}}`, so they should only be used for small systems. When using finite shots, ``qml.probs()`` can be used to get individual samples. +The ``lightning.tensor`` device is designed for expectation value calculations. Measurements of ``qml.probs()`` or ``qml.state()`` return dense vectors of dimension :math:`2^{n_\text{qubits}}`, so they should only be used for small systems. .. note:: ``qml.Hermitian`` is currently only supported for single wires. You can use ``qml.pauli_decompose`` on smaller matrices to obtain a compatible Pauli decomposition in the meantime. As a result, it is advisable to disable ``new_opmath`` for the ``lightning.tensor`` device to prevent the implicit conversion of Pauli words to multi-wire Hermitian observables. This limitation will be addressed once multi-wires Hermitian observables can be supported with ``cutensornet``. From cc3dc52f4b72bc03ea9f8815a59d86c5dc0f8d41 Mon Sep 17 00:00:00 2001 From: ringo-but-quantum Date: Fri, 20 Sep 2024 15:19:24 +0000 Subject: [PATCH 19/20] Auto update version from '0.39.0-dev27' to '0.39.0-dev29' --- pennylane_lightning/core/_version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pennylane_lightning/core/_version.py b/pennylane_lightning/core/_version.py index bb3de8f43b..0c3a07cb02 100644 --- a/pennylane_lightning/core/_version.py +++ b/pennylane_lightning/core/_version.py @@ -16,4 +16,4 @@ Version number (major.minor.patch[-label]) """ -__version__ = "0.39.0-dev27" +__version__ = "0.39.0-dev29" From f52a43d911233e791de63f183a30b90d1dc4a6c2 Mon Sep 17 00:00:00 2001 From: ringo-but-quantum Date: Fri, 20 Sep 2024 15:30:10 +0000 Subject: [PATCH 20/20] Auto update version from '0.39.0-dev28' to '0.39.0-dev29' --- pennylane_lightning/core/_version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pennylane_lightning/core/_version.py b/pennylane_lightning/core/_version.py index 83c48476df..0c3a07cb02 100644 --- a/pennylane_lightning/core/_version.py +++ b/pennylane_lightning/core/_version.py @@ -16,4 +16,4 @@ Version number (major.minor.patch[-label]) """ -__version__ = "0.39.0-dev28" +__version__ = "0.39.0-dev29"