Skip to content

Add support for multi-GPU measurement processes #8804

Add support for multi-GPU measurement processes

Add support for multi-GPU measurement processes #8804

Workflow file for this run

name: Wheel::Any::None
# **What it does**: Builds a pure python wheel for Linux (ubuntu-latest) and store it as an artifact.
# Python version: 3.10.
# **Why we have it**: To test the wheel build in the python layer, with no compilation.
# **Who does it impact**: Wheels to be uploaded to PyPI.
on:
pull_request:
types:
- opened
- reopened
- synchronize
- ready_for_review
push:
branches:
- master
release:
types: [published]
workflow_dispatch:
concurrency:
group: wheel_noarch-${{ github.ref }}
cancel-in-progress: true
jobs:
determine_runner:
if: github.event.pull_request.draft == false
name: Determine runner type to use
uses: ./.github/workflows/determine-workflow-runner.yml
with:
default_runner: ubuntu-latest
build-pure-python-wheel:
if: |
github.event_name != 'pull_request' ||
contains(github.event.pull_request.labels.*.name, 'ci:build_wheels') ||
github.event_name == 'workflow_dispatch'
needs: [determine_runner]
strategy:
matrix:
pl_backend: ["lightning_gpu", "lightning_kokkos", "lightning_qubit"]
timeout-minutes: 30
name: Linux - Pure Python wheels - ${{ matrix.pl_backend }} (Python 3.10)
runs-on: ${{ needs.determine_runner.outputs.runner_group }}
steps:
- name: Checkout PennyLane-Lightning
if: ${{ matrix.pl_backend == 'lightning_qubit'}}
uses: actions/checkout@v4
- uses: actions/setup-python@v5
if: ${{ matrix.pl_backend == 'lightning_qubit'}}
with:
python-version: '3.10'
- name: Upgrade pip
if: ${{ matrix.pl_backend == 'lightning_qubit'}}
run: |
python -m pip install --upgrade pip
- name: Install dependencies
if: ${{ matrix.pl_backend == 'lightning_qubit'}}
run: |
python -m pip install tomlkit
- name: Configure pyproject.toml file
if: ${{ matrix.pl_backend == 'lightning_qubit'}}
run: PL_BACKEND="${{ matrix.pl_backend }}" python scripts/configure_pyproject_toml.py
- name: Build wheels and source dist
if: ${{ matrix.pl_backend == 'lightning_qubit'}}
env:
SKIP_COMPILATION: True
run: |
python -m pip install --upgrade pip wheel build
python -m build
- name: Validate wheels
if: ${{ matrix.pl_backend == 'lightning_qubit'}}
run: |
python -m pip install twine
python -m twine check dist/*.whl
- 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')
with:
name: pure-python-wheels-${{ matrix.pl_backend }}.zip
path: dist/*.whl
retention-days: 1
include-hidden-files: true
upload-pypi:
needs: build-pure-python-wheel
strategy:
matrix:
pl_backend: ["lightning_gpu", "lightning_kokkos", "lightning_qubit"]
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v4
if: ${{ matrix.pl_backend == 'lightning_qubit' && github.event_name == 'release' }}
with:
name: pure-python-wheels-${{ matrix.pl_backend }}.zip
path: dist
- name: Upload wheels to PyPI
if: ${{ matrix.pl_backend == 'lightning_qubit' && github.event_name == 'release' }}
uses: pypa/gh-action-pypi-publish@release/v1
with:
user: __token__
password: ${{ secrets.TEST_PYPI_API_TOKEN }}
repository-url: https://test.pypi.org/legacy/