diff --git a/.github/CHANGELOG.md b/.github/CHANGELOG.md index 317d06f9d6..7cd9ce23bf 100644 --- a/.github/CHANGELOG.md +++ b/.github/CHANGELOG.md @@ -13,8 +13,11 @@ ### Breaking changes +* Remove PowerPC wheel build recipe for Lightning-Qubit. + [(#902)](https://github.com/PennyLaneAI/pennylane-lightning/pull/902) + * Remove support for Python 3.9. - [#891](https://github.com/PennyLaneAI/pennylane-lightning/pull/891) + [(#891)](https://github.com/PennyLaneAI/pennylane-lightning/pull/891) ### Improvements @@ -33,7 +36,7 @@ * Smarter defaults for the `split_obs` argument in the serializer. The serializer splits linear combinations into chunks instead of all their terms. [(#873)](https://github.com/PennyLaneAI/pennylane-lightning/pull/873/) -* Unify Lightning Kokkos device and Lightning Qubit device under a Lightning Base device +* Unify Lightning-Kokkos device and Lightning-Qubit device under a Lightning Base device. [(#876)](https://github.com/PennyLaneAI/pennylane-lightning/pull/876) ### Documentation diff --git a/.github/workflows/wheel_linux_ppc64le.yml b/.github/workflows/wheel_linux_ppc64le.yml deleted file mode 100644 index aae010adf2..0000000000 --- a/.github/workflows/wheel_linux_ppc64le.yml +++ /dev/null @@ -1,202 +0,0 @@ -name: Wheel::Linux::PowerPC - -# **What it does**: Builds python wheels for Linux (ubuntu-latest) architecture PowerPC 64 and store it as artifacts. -# Python versions: 3.10, 3.11, 3.12. -# **Why we have it**: To build wheels for pennylane-lightning installation. -# **Who does it impact**: Wheels to be uploaded to PyPI. - -on: - pull_request: - types: - - opened - - reopened - - synchronize - - ready_for_review - - labeled - push: - branches: - - master - release: - types: [published] - workflow_dispatch: - -concurrency: - group: wheel_linux_ppc64le-${{ github.ref }} - cancel-in-progress: true - -jobs: - set_wheel_build_matrix: - if: | - github.event_name != 'pull_request' || - (github.event.pull_request.draft == false && contains(github.event.pull_request.labels.*.name, 'ci:build_wheels')) - name: "Set wheel build matrix" - uses: ./.github/workflows/set_wheel_build_matrix.yml - with: - event_name: ${{ github.event_name }} - - build_dependencies: - needs: [set_wheel_build_matrix] - strategy: - matrix: - os: [ubuntu-latest] - arch: [ppc64le] - exec_model: ${{ fromJson(needs.set_wheel_build_matrix.outputs.exec_model) }} - kokkos_version: ${{ fromJson(needs.set_wheel_build_matrix.outputs.kokkos_version) }} - container_img: ["quay.io/pypa/manylinux_2_28_ppc64le"] - timeout-minutes: 45 - name: Kokkos core (${{ matrix.exec_model }}::${{ matrix.arch }}) - runs-on: ${{ matrix.os }} - - steps: - - name: Cache installation directories - id: kokkos-cache - uses: actions/cache@v4 - with: - path: ${{ github.workspace }}/Kokkos_install/${{ matrix.exec_model }} - key: ${{ matrix.container_img }}-kokkos${{ matrix.kokkos_version }}-${{ matrix.exec_model }} - - - name: Clone Kokkos libs - if: steps.kokkos-cache.outputs.cache-hit != 'true' - run: | - git clone --branch ${{ matrix.kokkos_version }} https://github.com/kokkos/kokkos.git - pushd . &> /dev/null - - - uses: docker/setup-qemu-action@v3 - name: Set up QEMU - - - name: Build Kokkos core library - if: steps.kokkos-cache.outputs.cache-hit != 'true' - run: | - mkdir -p ${{ github.workspace }}/Kokkos_install/${{ matrix.exec_model }} - cd kokkos - docker run --platform linux/ppc64le \ - -v /var/run/docker.sock:/var/run/docker.sock \ - -v `pwd`:/io \ - -v ${{ github.workspace }}/Kokkos_install/${{ matrix.exec_model }}:/install \ - -i ${{ matrix.container_img }} \ - bash -c "git config --global --add safe.directory /io && \ - cd /io && \ - python3.10 -m pip install ninja && \ - ln -s /opt/python/cp310-cp310/bin/ninja /usr/bin/ninja && \ - cmake -BBuild . -DCMAKE_INSTALL_PREFIX=/install \ - -DKokkos_ENABLE_COMPLEX_ALIGN=OFF \ - -DKokkos_ENABLE_SERIAL=ON \ - -DKokkos_ENABLE_${{ matrix.exec_model }}=ON \ - -DKokkos_ENABLE_DEPRECATION_WARNINGS=OFF \ - -DCMAKE_CXX_STANDARD=20 \ - -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ - -G Ninja && \ - cmake --build ./Build --verbose && \ - cmake --install ./Build; " - cd - - - linux-wheels-ppc64le: - needs: [set_wheel_build_matrix, build_dependencies] - strategy: - fail-fast: false - matrix: - os: [ubuntu-latest] - arch: [ppc64le] - pl_backend: ["lightning_kokkos", "lightning_qubit"] - cibw_build: ${{fromJson(needs.set_wheel_build_matrix.outputs.python_version)}} - exec_model: ${{ fromJson(needs.set_wheel_build_matrix.outputs.exec_model) }} - kokkos_version: ${{ fromJson(needs.set_wheel_build_matrix.outputs.kokkos_version) }} - container_img: ["quay.io/pypa/manylinux_2_28_ppc64le"] - timeout-minutes: 45 - name: ${{ matrix.os }}::${{ matrix.arch }} - ${{ matrix.pl_backend }} (Python ${{ fromJson('{"cp310-*":"3.10","cp311-*":"3.11", "cp312-*":"3.12"}')[matrix.cibw_build] }}) - runs-on: ${{ matrix.os }} - - steps: - - name: Checkout PennyLane-Lightning - uses: actions/checkout@v4 - - - name: Restoring cached dependencies - id: kokkos-cache - uses: actions/cache@v4 - with: - path: ${{ github.workspace }}/Kokkos_install/${{ matrix.exec_model }} - key: ${{ matrix.container_img }}-kokkos${{ matrix.kokkos_version }}-${{ matrix.exec_model }} - - - name: Copy cached libraries - if: steps.kokkos-cache.outputs.cache-hit == 'true' - run: | - mkdir Kokkos - cp -rf ${{ github.workspace }}/Kokkos_install/${{ matrix.exec_model }}/* Kokkos/ - - - name: Install dependencies - run: python -m pip install cibuildwheel~=2.16.0 tomlkit - - - uses: docker/setup-qemu-action@v3 - name: Set up QEMU - - - name: Configure pyproject.toml file - run: PL_BACKEND="${{ matrix.pl_backend }}" python scripts/configure_pyproject_toml.py - - - name: Build wheels - env: - CIBW_ARCHS_LINUX: ${{matrix.arch}} - - CIBW_BUILD: ${{ matrix.cibw_build }} - - CIBW_SKIP: "*-musllinux*" - - # Python build settings - CIBW_BEFORE_BUILD: | - cat /etc/yum.conf | sed "s/\[main\]/\[main\]\ntimeout=5/g" > /etc/yum.conf - python -m pip install ninja cmake~=3.24.0 - - CIBW_ENVIRONMENT: CMAKE_ARGS="-DENABLE_LAPACK=OFF" - - CIBW_MANYLINUX_PPC64LE_IMAGE: manylinux_2_28 - - CIBW_BUILD_VERBOSITY: 3 - - run: python3 -m cibuildwheel --output-dir wheelhouse - - - name: Validate wheels - run: | - python3 -m pip install twine - python3 -m twine check ./wheelhouse/*.whl - - - uses: actions-ecosystem/action-regex-match@main - id: rc_build - with: - text: ${{ github.event.pull_request.head.ref }} - regex: '.*[0-9]+.[0-9]+.[0-9]+[-_]?rc[0-9]+' - - - uses: actions/upload-artifact@v4 - if: | - github.event_name == 'release' || - github.event_name == 'workflow_dispatch' || - github.ref == 'refs/heads/master' || - steps.rc_build.outputs.match != '' - with: - name: ${{ runner.os }}-wheels-${{ matrix.pl_backend }}-${{ fromJson('{ "cp310-*":"py310","cp311-*":"py311","cp312-*":"py312" }')[matrix.cibw_build] }}-${{ matrix.arch }}.zip - path: ./wheelhouse/*.whl - retention-days: 1 - include-hidden-files: true - - upload-pypi: - needs: [set_wheel_build_matrix, linux-wheels-ppc64le] - strategy: - matrix: - arch: [ppc64le] - pl_backend: ["lightning_qubit"] - cibw_build: ${{ fromJson(needs.set_wheel_build_matrix.outputs.python_version) }} - runs-on: ubuntu-latest - if: | - github.event_name == 'release' || - github.ref == 'refs/heads/master' - - steps: - - uses: actions/download-artifact@v4 - with: - name: ${{ runner.os }}-wheels-${{ matrix.pl_backend }}-${{ fromJson('{ "cp310-*":"py310","cp311-*":"py311","cp312-*":"py312" }')[matrix.cibw_build] }}-${{ matrix.arch }}.zip - path: dist - - - name: Upload wheels to PyPI - uses: pypa/gh-action-pypi-publish@release/v1 - with: - user: __token__ - password: ${{ secrets.TEST_PYPI_API_TOKEN }} - repository-url: https://test.pypi.org/legacy/ diff --git a/README.rst b/README.rst index 2153a9a9ac..6a00f393ee 100644 --- a/README.rst +++ b/README.rst @@ -62,7 +62,7 @@ The following table summarizes the supported platforms and the primary installat +-----------+---------+--------+-------------+----------------+-----------------+----------------+----------------+ | Linux ARM | pip | pip | | pip | source | source | | +-----------+---------+--------+-------------+----------------+-----------------+----------------+----------------+ -| Linux PPC | pip | source | | pip | source | source | | +| Linux PPC | pip | source | | source | source | source | | +-----------+---------+--------+-------------+----------------+-----------------+----------------+----------------+ | MacOS x86 | pip | | | pip | | | | +-----------+---------+--------+-------------+----------------+-----------------+----------------+----------------+ diff --git a/pennylane_lightning/core/_version.py b/pennylane_lightning/core/_version.py index 7a3513576d..1f7bd4c08f 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-dev11" +__version__ = "0.39.0-dev12"