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

[WIP] Add archw64 wheel support #2278

Open
wants to merge 18 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all 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
41 changes: 37 additions & 4 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: ["macos-13", "ubuntu-latest", "windows-2019"]
os: ["macos-13", "ubuntu-22.04", "windows-2019"]
steps:
- uses: actions/checkout@v4
- name: Set up Python Python '3.10'
Expand Down Expand Up @@ -55,7 +55,7 @@ jobs:
path: ./wheelhouse/*.whl
name: artifact-${{ github.job }}
wheel-gpu-cu11:
runs-on: "ubuntu-latest"
runs-on: "ubuntu-22.04"
steps:
- name: Maximize build space
uses: easimon/maximize-build-space@master
Expand Down Expand Up @@ -87,8 +87,41 @@ jobs:
with:
path: ./wheelhouse/*.whl
name: artifact-${{ github.job }}
wheel-gpu-cu12:
runs-on: "ubuntu-22.04"
steps:
- name: Maximize build space
uses: easimon/maximize-build-space@master
with:
root-reserve-mb: 32000
swap-size-mb: 1024
remove-dotnet: 'true'
remove-android: 'true'
remove-haskell: 'true'
remove-codeql: 'true'
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
name: Install Python
with:
python-version: '3.10'
- name: Install cibuildwheel
run: |
python -m pip install cibuildwheel==2.17.0
- name: Build wheels
env:
CIBW_BEFORE_ALL: "sed -i -e 's/^mirrorlist/#mirrorlist/' -e 's/^#baseurl/baseurl/' -e 's/mirror.centos.org/vault.centos.org/' /etc/yum.repos.d/*.repo && yum install -y yum-utils wget && yum-config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-rhel7.repo && yum -y install cuda-compiler-12-0.x86_64 cuda-libraries-12-0.x86_64 cuda-libraries-devel-12-0.x86_64 && yum -y install openblas-devel && yum clean all"
CIBW_BEFORE_BUILD : "pip install nvidia-cuda-runtime-cu12 'nvidia-nvjitlink-cu12<12.6.85' nvidia-cublas-cu12 nvidia-cusolver-cu12 'nvidia-cusparse-cu12<12.5.4.2' 'cuquantum-cu12<24.11.0'"
CIBW_SKIP: "*-manylinux_i686 pp* cp36* cp37* *musllinux*"
CIBW_ENVIRONMENT: QISKIT_AER_PACKAGE_NAME=qiskit-aer-gpu-cu12 QISKIT_AER_CUDA_MAJOR=12 CMAKE_VERBOSE_MAKEFILE=true AER_THRUST_BACKEND=CUDA CUDACXX=/usr/local/cuda/bin/nvcc AER_CUDA_ARCH="7.0 7.2 7.5 8.0 8.6 8.7 9.0" AER_PYTHON_CUDA_ROOT=/opt/_internal AER_CIBUILD=true
CIBW_REPAIR_WHEEL_COMMAND: 'auditwheel repair --exclude libcudart.so.12 --exclude libcustatevec.so.1 --exclude libcutensornet.so.2 --exclude libcutensor.so.1 --exclude libcutensorMg.so.1 --exclude libcusolver.so.12 --exclude libcusolverMg.so.12 --exclude libcusparse.so.12 --exclude libcublas.so.12 --exclude libcublasLt.so.12 --exclude libnvJitLink.so.12 -w {dest_dir} {wheel}'
run: |
python -m cibuildwheel --output-dir wheelhouse
- uses: actions/upload-artifact@v4
with:
path: ./wheelhouse/*.whl
name: artifact-${{ github.job }}
wheel-gpu:
runs-on: "ubuntu-latest"
runs-on: "ubuntu-22.04"
steps:
- name: Maximize build space
uses: easimon/maximize-build-space@master
Expand All @@ -110,7 +143,7 @@ jobs:
- name: Build wheels
env:
CIBW_BEFORE_ALL: "sed -i -e 's/^mirrorlist/#mirrorlist/' -e 's/^#baseurl/baseurl/' -e 's/mirror.centos.org/vault.centos.org/' /etc/yum.repos.d/*.repo && yum install -y yum-utils wget && wget -q https://developer.download.nvidia.com/compute/cuda/12.5.1/local_installers/cuda-repo-rhel8-12-5-local-12.5.1_555.42.06-1.x86_64.rpm && rpm -i cuda-repo-rhel8-12-5-local-12.5.1_555.42.06-1.x86_64.rpm && yum clean all && yum -y install cuda-toolkit-12-5 && yum -y install openblas-devel && yum clean all"
CIBW_BEFORE_BUILD : "pip cache purge && pip install nvidia-cuda-runtime-cu12 nvidia-nvjitlink-cu12 nvidia-cublas-cu12 nvidia-cusolver-cu12 nvidia-cusparse-cu12 'cuquantum-cu12<24.11.0'"
CIBW_BEFORE_BUILD : "pip cache purge && pip install nvidia-cuda-runtime-cu12 'nvidia-nvjitlink-cu12<12.6.85' nvidia-cublas-cu12 nvidia-cusolver-cu12 'nvidia-cusparse-cu12<12.5.4.2' 'cuquantum-cu12<24.11.0'"
CIBW_SKIP: "*-manylinux_i686 pp* cp36* cp37* cp38* cp39* cp310* cp311* *musllinux*"
CIBW_ENVIRONMENT: QISKIT_AER_PACKAGE_NAME=qiskit-aer-gpu QISKIT_AER_CUDA_MAJOR=12 CMAKE_VERBOSE_MAKEFILE=true AER_THRUST_BACKEND=CUDA CUDACXX=/usr/local/cuda/bin/nvcc AER_CUDA_ARCH="7.0 7.2 7.5 8.0 8.6 8.7 8.9 9.0" AER_PYTHON_CUDA_ROOT=/opt/_internal AER_CIBUILD=true
CIBW_REPAIR_WHEEL_COMMAND: 'auditwheel repair --exclude libcudart.so.12 --exclude libcustatevec.so.1 --exclude libcutensornet.so.2 --exclude libcutensor.so.1 --exclude libcutensorMg.so.1 --exclude libcusolver.so.11 --exclude libcusolverMg.so.11 --exclude libcusolver.so.12 --exclude libcusolverMg.so.12 --exclude libcusparse.so.12 --exclude libcublas.so.12 --exclude libcublasLt.so.12 --exclude libnvJitLink.so.12 -w {dest_dir} {wheel}'
Expand Down
18 changes: 9 additions & 9 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ jobs:
name: Build qiskit-aer wheels
strategy:
matrix:
os: ["macos-13", "ubuntu-latest", "windows-2019"]
os: ["macos-13", "ubuntu-22.04", "windows-2019"]
runs-on: ${{ matrix.os }}
environment: release
steps:
Expand Down Expand Up @@ -37,7 +37,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
os: [ubuntu-22.04]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
Expand Down Expand Up @@ -90,7 +90,7 @@ jobs:
name: publish-shared-wheels
sdist:
name: Publish qiskit-aer sdist
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
needs: [publish-shared-wheels]
environment: release
permissions:
Expand Down Expand Up @@ -118,7 +118,7 @@ jobs:
name: Build qiskit-aer-gpu-cu11 wheels
strategy:
matrix:
os: ["ubuntu-latest"]
os: ["ubuntu-22.04"]
runs-on: ${{ matrix.os }}
environment: release
permissions:
Expand Down Expand Up @@ -162,7 +162,7 @@ jobs:
name: Build qiskit-aer-gpu-cu12 wheels
strategy:
matrix:
os: ["ubuntu-latest"]
os: ["ubuntu-22.04"]
runs-on: ${{ matrix.os }}
environment: release
permissions:
Expand All @@ -188,7 +188,7 @@ jobs:
- name: Build wheels
env:
CIBW_BEFORE_ALL: "sed -i -e 's/^mirrorlist/#mirrorlist/' -e 's/^#baseurl/baseurl/' -e 's/mirror.centos.org/vault.centos.org/' /etc/yum.repos.d/*.repo && yum install -y yum-utils wget && wget -q https://developer.download.nvidia.com/compute/cuda/12.5.1/local_installers/cuda-repo-rhel8-12-5-local-12.5.1_555.42.06-1.x86_64.rpm && rpm -i cuda-repo-rhel8-12-5-local-12.5.1_555.42.06-1.x86_64.rpm && yum clean all && yum -y install cuda-toolkit-12-5 && yum -y install openblas-devel && yum clean all"
CIBW_BEFORE_BUILD : "pip install nvidia-cuda-runtime-cu12 nvidia-nvjitlink-cu12 nvidia-cublas-cu12 nvidia-cusolver-cu12 nvidia-cusparse-cu12 'cuquantum-cu12<24.11.0"
CIBW_BEFORE_BUILD : "pip install nvidia-cuda-runtime-cu12 'nvidia-nvjitlink-cu12<12.6.85' nvidia-cublas-cu12 nvidia-cusolver-cu12 'nvidia-cusparse-cu12<12.5.4.2' 'cuquantum-cu12<24.11.0"
CIBW_SKIP: "*-manylinux_i686 pp* cp36* cp37* *musllinux*"
CIBW_TEST_SKIP: "*"
CIBW_ENVIRONMENT: QISKIT_AER_PACKAGE_NAME=qiskit-aer-gpu QISKIT_AER_CUDA_MAJOR=12 CMAKE_VERBOSE_MAKEFILE=true AER_THRUST_BACKEND=CUDA CUDACXX=/usr/local/cuda/bin/nvcc AER_CUDA_ARCH="7.0 7.2 7.5 8.0 8.6 8.7 9.0" AER_PYTHON_CUDA_ROOT=/opt/_internal AER_CIBUILD=true
Expand All @@ -211,7 +211,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
os: [ubuntu-22.04]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
Expand Down Expand Up @@ -247,7 +247,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
os: [ubuntu-22.04]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
Expand Down Expand Up @@ -276,7 +276,7 @@ jobs:
packages-dir: wheelhouse
publish-shared-wheels:
name: Publish shared wheels
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
needs: [wheel-build, wheel-arm64-macos]
environment: release
permissions:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ concurrency:
cancel-in-progress: true
jobs:
docs:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
timeout-minutes: 60
strategy:
matrix:
Expand Down Expand Up @@ -46,7 +46,7 @@ jobs:
name: html_docs
path: docs/_build/html
tutorials:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
needs: [docs]
strategy:
matrix:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/neko.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ concurrency:
jobs:
neko:
name: Qiskit Neko Integration Tests
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
steps:
- uses: Qiskit/qiskit-neko@main
with:
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ concurrency:
cancel-in-progress: true
jobs:
lint:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
strategy:
matrix:
python-version: ['3.10']
Expand Down Expand Up @@ -51,7 +51,7 @@ jobs:
matrix:
python-version: [3.8, 3.9, "3.10", '3.11', "3.12.0"]
platform: [
{ os: "ubuntu-latest", python-architecture: "x64" },
{ os: "ubuntu-22.04", python-architecture: "x64" },
]
steps:
- uses: actions/checkout@v4
Expand Down Expand Up @@ -87,7 +87,7 @@ jobs:
aer-test/bin/pip check
shell: bash
tests_linux:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
name: Linux Python ${{ matrix.python-version }}${{ matrix.qiskit-extra && format(' ({0})', matrix.qiskit-extra) }}
needs: [sdist, lint]
timeout-minutes: 60
Expand Down Expand Up @@ -148,7 +148,7 @@ jobs:
strategy:
matrix:
python-version: ['3.10']
os: ["ubuntu-latest"]
os: ["ubuntu-22.04"]
env:
AER_THRUST_BACKEND: OMP
QISKIT_TEST_CAPTURE_STREAMS: 1
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/unit-tests-latest-qiskit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ concurrency:
cancel-in-progress: true
jobs:
unit-tests-latest-qiskit:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
timeout-minutes: 60
env:
AER_THRUST_BACKEND: OMP
Expand Down
6 changes: 3 additions & 3 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,11 +63,11 @@
]
else:
requirements_cuda = [
"nvidia-cuda-runtime-cu12>=12.1.105",
"nvidia-nvjitlink-cu12",
"nvidia-cuda-runtime-cu12>=12.1.105,<12.6",
"nvidia-nvjitlink-cu12<12.6",
"nvidia-cublas-cu12>=12.1.3.1",
"nvidia-cusolver-cu12>=11.4.5.107",
"nvidia-cusparse-cu12>=12.1.0.106",
"nvidia-cusparse-cu12>=12.1.0.106,<12.5.4.2",
"cuquantum-cu12>=23.3.0,<24.11.0",
]
classifiers_cuda = [
Expand Down
Loading