Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
2f242c9
initial support CUDA 13
mitchdz Oct 8, 2025
d110e65
add Blackwell compute capability
mitchdz Oct 8, 2025
41fc0f7
GPUInfo.cpp: use cudaDeviceGetAttribute for memory clock
mitchdz Oct 8, 2025
3e649c3
bump UCX to v1.19
mitchdz Oct 8, 2025
ff86424
remove Volta
mitchdz Oct 8, 2025
308e5c1
change CC based on CUDA toolkit
mitchdz Oct 9, 2025
d397ba9
update docs for CUDA version; update README; update pyproject.toml
mitchdz Oct 9, 2025
a1da85a
use latest cu12 pip packages for CUDA 13
mitchdz Oct 9, 2025
390796f
remove deprecated thrust calls
mitchdz Oct 10, 2025
9b6d870
bump cupy-cuda13x to 13.6.0
mitchdz Oct 10, 2025
7a61ab0
make code formatting happy
mitchdz Oct 10, 2025
d62c4d7
Merge remote-tracking branch 'origin/main' into test-ubuntu2404
mitchdz Oct 10, 2025
bda32e6
fix syntax error
mitchdz Oct 10, 2025
6901d21
cd into cuda-quantum
mitchdz Oct 10, 2025
f8c4673
fully update cupy 13.4.1 -> 13.6.0
mitchdz Oct 10, 2025
1934d3a
prevent libc++ from redefining conflicting headers from CCCL
mitchdz Oct 12, 2025
7202bf9
Merge remote-tracking branch 'origin/main' into test-ubuntu2404
mitchdz Oct 12, 2025
2415145
remove ubi9 for cuda13 c++ testing
mitchdz Oct 13, 2025
aca8db8
finish removing ubi9:9.6 for cu13
mitchdz Oct 13, 2025
fa0c916
do not show progress bar for python notebook, as it will crash
mitchdz Oct 13, 2025
456db96
try 2
mitchdz Oct 13, 2025
b0a3aea
Merge remote-tracking branch 'origin/main' into test-ubuntu2404
mitchdz Oct 14, 2025
c2e96ea
match cuda runtime version to 12.6
mitchdz Oct 14, 2025
c0c5fb4
skip test installation error for python 3.12 as well.
mitchdz Oct 9, 2025
9e6b157
Revert "match cuda runtime version to 12.6"
mitchdz Oct 15, 2025
aae2100
update mgpu commit sha
mitchdz Oct 15, 2025
d50ffd6
downgrade cupy to 13.4.1
mitchdz Oct 15, 2025
bcdb26f
add Turing CC
mitchdz Oct 15, 2025
0e0f538
use cupy 13.4.1 for cu12, 13.6.0 for cu13
mitchdz Oct 16, 2025
1e4b8cf
Merge remote-tracking branch 'origin/main' into test-ubuntu2404
mitchdz Oct 16, 2025
b6b10f5
add back ubi9 to validation for cu12
mitchdz Oct 16, 2025
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
10 changes: 5 additions & 5 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ jobs:
strategy:
matrix:
platform: [amd64, arm64]
cuda_version: ["12.6"]
cuda_version: ["12.6", "13.0"]
fail-fast: false
uses: ./.github/workflows/dev_environment.yml
secrets:
Expand All @@ -132,7 +132,7 @@ jobs:
strategy:
matrix:
platform: [amd64, arm64]
cuda_version: ["12.6"]
cuda_version: ["12.6", "13.0"]
fail-fast: false
uses: ./.github/workflows/dev_environment.yml
secrets:
Expand Down Expand Up @@ -235,7 +235,7 @@ jobs:
matrix:
platform: [amd64, arm64]
python_version: ['3.11', '3.13']
cuda_version: ["12.6"]
cuda_version: ["12.6", "13.0"]
fail-fast: false
uses: ./.github/workflows/python_wheels.yml
secrets:
Expand All @@ -256,7 +256,7 @@ jobs:
with:
cudaq_version: ${{ needs.python_wheels.outputs.cudaq_version }}
python_versions: "['3.11', '3.13']"
cuda_versions: "['', '12.6']"
cuda_versions: "['', '12.6', '13.0']"
wheel_artifacts: 'pycudaq-*'

binaries:
Expand All @@ -265,7 +265,7 @@ jobs:
strategy:
matrix:
platform: [amd64, arm64]
cuda_version: ["12.6"]
cuda_version: ["12.6", "13.0"]
fail-fast: false
uses: ./.github/workflows/prebuilt_binaries.yml
secrets:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/config/gitlab_commits.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
nvidia-mgpu-repo: cuda-quantum/cuquantum-mgpu.git
nvidia-mgpu-commit: 8346e5d327318e49d1d6a117fccdd2eea78a803d
nvidia-mgpu-commit: bb46a64f7a17f4aafac019adbdde78edd792b16e
49 changes: 49 additions & 0 deletions .github/workflows/config/validation_config.json
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,41 @@
"cuda_distribution": "fedora42"
}
},
{
"platform": "linux/amd64",
"cuda_major": 13,
"operating_systems":
[
"ubuntu:22.04",
"debian:12",
"opensuse/leap:15.5",
"fedora:42"
],
"ubuntu:22.04":
{
"libcdev_package": "libc6-dev",
"cudart_version": "13.0",
"cuda_distribution": "ubuntu2204"
},
"debian:12":
{
"libcdev_package": "libc6-dev",
"cudart_version": "13.0",
"cuda_distribution": "debian12"
},
"opensuse/leap:15.5":
{
"libcdev_package": "glibc-devel",
"cudart_version": "13.0",
"cuda_distribution": "opensuse15"
},
"fedora:42":
{
"libcdev_package": "glibc-devel",
"cudart_version": "13.0",
"cuda_distribution": "fedora42"
}
},
{
"platform": "linux/arm64",
"cuda_major": 12,
Expand All @@ -95,6 +130,20 @@
"cudart_version": "12.6",
"cuda_distribution": "rhel9"
}
},
{
"platform": "linux/arm64",
"cuda_major": 13,
"operating_systems":
[
"ubuntu:22.04"
],
"ubuntu:22.04":
{
"libcdev_package": "libc6-dev",
"cudart_version": "13.0",
"cuda_distribution": "ubuntu2204"
}
}
]
}
4 changes: 2 additions & 2 deletions .github/workflows/create_cache_command.yml
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ jobs:
strategy:
matrix:
platform: [amd64, arm64]
cuda_version: ["12.6"]
cuda_version: ["12.6", "13.0"]
fail-fast: false
uses: ./.github/workflows/dev_environment.yml
secrets:
Expand Down Expand Up @@ -141,7 +141,7 @@ jobs:
strategy:
matrix:
platform: [amd64, arm64]
cuda_version: ["12.6"]
cuda_version: ["12.6", "13.0"]
fail-fast: false
uses: ./.github/workflows/dev_environment.yml
secrets:
Expand Down
26 changes: 17 additions & 9 deletions .github/workflows/deployments.yml
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,7 @@ jobs:
# There are currently no multi-platform manylinux images available.
# See https://github.com/pypa/manylinux/issues/1306.
platform: ${{ fromJson(needs.metadata.outputs.platforms).ids }}
cuda_version: ["12.6"]
cuda_version: ["12.6", "13.0"]
fail-fast: false
uses: ./.github/workflows/dev_environment.yml
secrets:
Expand Down Expand Up @@ -237,7 +237,7 @@ jobs:
strategy:
matrix:
platform: ${{ fromJson(needs.metadata.outputs.platforms).ids }}
cuda_version: ["12.6"]
cuda_version: ["12.6", "13.0"]
fail-fast: false
uses: ./.github/workflows/dev_environment.yml
secrets:
Expand Down Expand Up @@ -268,7 +268,7 @@ jobs:
strategy:
matrix:
platform: ${{ fromJson(needs.metadata.outputs.platforms).ids }}
cuda_version: ["12.6"]
cuda_version: ["12.6", "13.0"]
fail-fast: false
uses: ./.github/workflows/dev_environment.yml
secrets:
Expand Down Expand Up @@ -354,7 +354,7 @@ jobs:
strategy:
matrix:
platform: ${{ fromJson(needs.metadata.outputs.platforms).ids }}
cuda_version: ["12.6"]
cuda_version: ["12.6", "13.0"]
fail-fast: false
uses: ./.github/workflows/dev_environment.yml
secrets:
Expand Down Expand Up @@ -402,7 +402,7 @@ jobs:
strategy:
matrix:
platform: ${{ fromJson(needs.metadata.outputs.platforms).ids }}
cuda_version: ["12.6"]
cuda_version: ["12.6", "13.0"]
fail-fast: false
uses: ./.github/workflows/docker_images.yml
secrets:
Expand Down Expand Up @@ -443,7 +443,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
cuda: ["12.6"]
cuda: ["12.6", "13.0"]

environment: ghcr-deployment

Expand Down Expand Up @@ -666,7 +666,7 @@ jobs:
STITCHED_JSON='${{ needs.aggregate_stitched_images.outputs.json }}'
echo "$STITCHED_JSON" | jq .

for cuda in 12.6; do
for cuda in 12.6 13.0; do
cuda_major="${cuda%%.*}"
artifact_name="image_cu${cuda_major}_publishing"
info_file="$artifact_name.txt"
Expand Down Expand Up @@ -704,14 +704,22 @@ jobs:
retention-days: 30
if-no-files-found: error

- name: Upload image_cu13_publishing
uses: actions/upload-artifact@v4
with:
name: image_cu13_publishing
path: image_cu13_publishing.txt
retention-days: 30
if-no-files-found: error

python_wheels:
name: Create Python wheels
needs: [metadata, config]
strategy:
matrix:
platform: ${{ fromJson(needs.metadata.outputs.platforms).ids }}
python_version: ['3.11', '3.12', '3.13']
cuda_version: ["12.6"]
cuda_version: ["12.6", "13.0"]
fail-fast: false
uses: ./.github/workflows/python_wheels.yml
secrets:
Expand All @@ -730,7 +738,7 @@ jobs:
strategy:
matrix:
platform: ${{ fromJson(needs.metadata.outputs.platforms).ids }}
cuda_version: ["12.6"]
cuda_version: ["12.6", "13.0"]
fail-fast: false
uses: ./.github/workflows/prebuilt_binaries.yml
secrets:
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/publishing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -783,7 +783,7 @@ jobs:
with:
cudaq_version: ${{ needs.assets.outputs.cudaq_version }}
python_versions: "['3.11', '3.12', '3.13']"
cuda_versions: "['', '12.6']"
cuda_versions: "['', '12.6', '13.0']"
wheel_artifacts: '*-wheels'
github_commit: ${{ inputs.github_commit || needs.assets.outputs.github_commit }}

Expand Down Expand Up @@ -925,7 +925,7 @@ jobs:
strategy:
matrix:
os_image: ['redhat/ubi8:8.10', 'ubuntu:24.04']
cuda_version: ['12.6']
cuda_version: ['12.6', '13.0']
fail-fast: false

container:
Expand Down Expand Up @@ -1143,7 +1143,7 @@ jobs:

strategy:
matrix:
cuda_version: ['11.8', '12.4']
cuda_version: ['12.4', '13.0']
fail-fast: false

# Must have environment to access environment secreats
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/python_metapackages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ jobs:

echo "Creating README.md for cudaq package"
package_name=cudaq
cuda_version_requirement="11.x (where x \>= 8) or 12.x"
cuda_version_requirement="12.x or 13.x"
cuda_version_conda=12.4.0 # only used as example in the install script
deprecation_notice="**Note**: Support for CUDA 11 will be removed in future releases. Please update to CUDA 12."
cat python/README.md.in > python/metapackages/README.md
Expand Down Expand Up @@ -201,9 +201,9 @@ jobs:
set -e && check_package=cuda-quantum
;;
*)
# Skip conflict test entirely on Python 3.13 (cuda-quantum==0.8.0 not available)
if [ "${{ matrix.python_version }}" = "3.13" ]; then
echo "::warning::Skipping conflict test on Python 3.13 (cuda-quantum==0.8.0 unavailable)."
# Skip conflict test entirely on Python 3.{13,12} (cuda-quantum==0.8.0 not available)
if [ "${{ matrix.python_version }}" = "3.12" ] || [ "${{ matrix.python_version }}" = "3.13" ]; then
echo "::warning::Skipping conflict test on Python 3.{12,13} (cuda-quantum==0.8.0 unavailable)."
test_conflicting="<skipped>"
check_package=cudaq
else
Expand Down
13 changes: 11 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -537,8 +537,17 @@ endfunction()

if(CMAKE_CUDA_COMPILER)
if (NOT CUDA_TARGET_ARCHS)
# Volta, Ampere, Hopper
set(CUDA_TARGET_ARCHS "70;80;90")
find_package(CUDAToolkit REQUIRED)

message(STATUS "Found CUDA Toolkit version: ${CUDAToolkit_VERSION}")

if (CUDAToolkit_VERSION VERSION_LESS 13.0)
# Turing, Ampere, Hopper
set(CUDA_TARGET_ARCHS "75;80;90")
else()
# Turing, Ampere, Hopper, Blackwell
set(CUDA_TARGET_ARCHS "75;80;90;100")
endif()
endif()
CUDA_get_gencode_args(CUDA_gencode_flags ${CUDA_TARGET_ARCHS})
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -shared -std=c++17 ${CUDA_gencode_flags} --compiler-options -fPIC")
Expand Down
21 changes: 13 additions & 8 deletions docker/build/assets.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -187,15 +187,20 @@ RUN dnf install -y --nobest --setopt=install_weak_deps=False ${PYTHON}-devel &&
${PYTHON} -m pip install numpy build auditwheel patchelf

RUN cd /cuda-quantum && source scripts/configure_build.sh && \
if [ "${CUDA_VERSION#11.}" != "${CUDA_VERSION}" ]; then \
cublas_version=11.11 && \
cusparse_version=11.7 && \
sed -i "s/-cu12/-cu11/g" pyproject.toml && \
sed -i "s/-cuda12/-cuda11/g" pyproject.toml && \
if [ "${CUDA_VERSION#12.}" != "${CUDA_VERSION}" ]; then \
cublas_version=12.0 && \
cusolver_version=11.4 && \
cuda_runtime_version=12.0 && \
cuda_nvrtc_version=12.0 && \
cupy_version=13.4.1 && \
sed -i "s/-cu13/-cu12/g" pyproject.toml && \
sed -i "s/-cuda13/-cuda12/g" pyproject.toml && \
sed -i -E "s/cupy-cuda[0-9]+x/cupy-cuda12x/g" pyproject.toml && \
sed -i -E "s/(cupy-cuda[0-9]+x? ~= )[0-9\.]*/\1${cupy_version}/g" pyproject.toml && \
sed -i -E "s/(nvidia-cublas-cu[0-9]* ~= )[0-9\.]*/\1${cublas_version}/g" pyproject.toml && \
sed -i -E "s/(nvidia-cusparse-cu[0-9]* ~= )[0-9\.]*/\1${cusparse_version}/g" pyproject.toml && \
sed -i -E "s/(nvidia-cuda-nvrtc-cu[0-9]* ~= )[0-9\.]*/\1${CUDA_VERSION}/g" pyproject.toml && \
sed -i -E "s/(nvidia-cuda-runtime-cu[0-9]* ~= )[0-9\.]*/\1${CUDA_VERSION}/g" pyproject.toml; \
sed -i -E "s/(nvidia-cusolver-cu[0-9]* ~= )[0-9\.]*/\1${cusolver_version}/g" pyproject.toml && \
sed -i -E "s/(nvidia-cuda-nvrtc-cu[0-9]* ~= )[0-9\.]*/\1${cuda_nvrtc_version}/g" pyproject.toml && \
sed -i -E "s/(nvidia-cuda-runtime-cu[0-9]* ~= )[0-9\.]*/\1${cuda_runtime_version}/g" pyproject.toml; \
fi && \
# Needed to retrigger the LLVM build, since the MLIR Python bindings
# are not built in the prereqs stage.
Expand Down
7 changes: 6 additions & 1 deletion docker/build/devdeps.ext.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,12 @@ ENV PIP_BREAK_SYSTEM_PACKAGES=1
RUN apt-get update && apt-get install -y --no-install-recommends \
python3 python3-pip && \
apt-get autoremove -y && apt-get clean && rm -rf /var/lib/apt/lists/* && \
python3 -m pip install --break-system-packages cupy-cuda$(echo $CUDA_VERSION | cut -d . -f1)x==13.4.1 cuquantum-cu$(echo $CUDA_VERSION | cut -d . -f1)==25.09 && \
if [ "$(echo $CUDA_VERSION | cut -d . -f1)" = "13" ]; then \
cupy_version=13.6.0; \
else \
cupy_version=13.4.1; \
fi && \
python3 -m pip install --break-system-packages cupy-cuda$(echo $CUDA_VERSION | cut -d . -f1)x==${cupy_version} cuquantum-cu$(echo $CUDA_VERSION | cut -d . -f1)==25.09 && \
if [ "$(python3 --version | grep -o [0-9\.]* | cut -d . -f -2)" != "3.12" ]; then \
echo "expecting Python version 3.12"; \
fi
Expand Down
2 changes: 1 addition & 1 deletion docker/build/devdeps.manylinux.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ RUN LLVM_PROJECTS='clang;mlir' LLVM_SOURCE=/llvm-project \

# Install CUDA

ARG cuda_version=11.8
ARG cuda_version=12.6
ENV CUDA_VERSION=${cuda_version}

RUN arch_folder=$([ "$(uname -m)" == "aarch64" ] && echo sbsa || echo x86_64) \
Expand Down
4 changes: 2 additions & 2 deletions docker/build/devdeps.ompi.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -81,12 +81,12 @@ RUN apt-get update -y && apt-get install -y --no-install-recommends \
ENV CPATH="$GDRCOPY_INSTALL_PREFIX/include:$CPATH"
ENV LIBRARY_PATH="$GDRCOPY_INSTALL_PREFIX/lib64:$LIBRARY_PATH"

# 5 - Install UCX version v1.16.0
# 5 - Install UCX version v1.19.0

ENV UCX_INSTALL_PREFIX=/usr/local/ucx
RUN mkdir -p /var/tmp && cd /var/tmp \
&& git clone https://github.com/openucx/ucx.git ucx && cd /var/tmp/ucx \
&& git checkout v1.16.0 \
&& git checkout v1.19.0 \
&& ./autogen.sh \
&& export common_flags=$([ "$TARGETARCH" == "arm64" ] && echo "$COMMON_COMPILER_FLAGS_ARM" || echo "$COMMON_COMPILER_FLAGS") \
&& CC=gcc CFLAGS="$common_flags" \
Expand Down
Loading
Loading