Skip to content
Merged
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
11 changes: 11 additions & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ jobs:
date: ${{ inputs.date }}
sha: ${{ inputs.sha }}
script: ci/build_cpp.sh
matrix_type: cuda-13-4-nightly
java-static-build-matrix:
permissions:
contents: read
Expand All @@ -72,6 +73,7 @@ jobs:
build_type: ${{ inputs.build_type || 'branch' }}
matrix_name: conda-cpp-build
matrix_filter: 'map(. + {CUDA_MAJOR: (.CUDA_VER | split(".") | .[0])}) | unique_by([.ARCH, .CUDA_MAJOR])'
matrix_type: cuda-13-4-nightly

java-static-build:
needs: [build-details, java-static-build-matrix]
Expand Down Expand Up @@ -204,6 +206,7 @@ jobs:
script: ci/build_python.sh
# Build a conda package for each CUDA x ARCH x minimum supported Python version
matrix_filter: group_by({CUDA_VER, ARCH}) | map(min_by(.PY_VER | split(".") | map(tonumber)))
matrix_type: cuda-13-4-nightly
upload-conda:
needs: [cpp-build, python-build]
permissions:
Expand Down Expand Up @@ -242,6 +245,7 @@ jobs:
package-name: libcuopt
package-type: cpp
matrix_filter: group_by([.ARCH, (.CUDA_VER|split(".")|map(tonumber)|.[0])]) | map(max_by(.PY_VER|split(".")|map(tonumber)))
matrix_type: cuda-13-4-nightly
wheel-publish-libcuopt:
# Gated on the whole libcuopt/cuopt family building.
needs: [wheel-build-cuopt]
Expand Down Expand Up @@ -286,6 +290,7 @@ jobs:
append-cuda-suffix: false
# One build per arch: the client has no CUDA dimension.
matrix_filter: group_by(.ARCH) | map(max_by([(.CUDA_VER|split(".")|map(tonumber)), (.PY_VER|split(".")|map(tonumber))]))
matrix_type: cuda-13-4-nightly
wheel-publish-libcuopt-client:
# Gated on the whole libcuopt/cuopt family building.
needs: [wheel-build-cuopt]
Expand Down Expand Up @@ -328,6 +333,7 @@ jobs:
package-name: libcuopt_mathopt
package-type: cpp
matrix_filter: group_by([.ARCH, (.CUDA_VER|split(".")|map(tonumber)|.[0])]) | map(max_by(.PY_VER|split(".")|map(tonumber)))
matrix_type: cuda-13-4-nightly
wheel-publish-libcuopt-mathopt:
# Gated on the whole libcuopt/cuopt family building.
needs: [wheel-build-cuopt]
Expand Down Expand Up @@ -370,6 +376,7 @@ jobs:
package-name: libcuopt_routing
package-type: cpp
matrix_filter: group_by([.ARCH, (.CUDA_VER|split(".")|map(tonumber)|.[0])]) | map(max_by(.PY_VER|split(".")|map(tonumber)))
matrix_type: cuda-13-4-nightly
wheel-publish-libcuopt-routing:
# Gated on the whole libcuopt/cuopt family building.
needs: [wheel-build-cuopt]
Expand Down Expand Up @@ -417,6 +424,7 @@ jobs:
package-type: python
# Build a wheel for each CUDA x ARCH x minimum supported Python version
matrix_filter: group_by({CUDA_VER, ARCH}) | map(min_by(.PY_VER | split(".") | map(tonumber)))
matrix_type: cuda-13-4-nightly
wheel-publish-cuopt:
# Gated on the whole libcuopt/cuopt family building.
needs: [wheel-build-cuopt]
Expand Down Expand Up @@ -460,6 +468,7 @@ jobs:
pure-wheel: true
# Only need 1 package per CUDA major version. This selects "ARCH=amd64 + the latest supported Python, 1 job per major CUDA version".
matrix_filter: map(select(.ARCH == "amd64")) | group_by(.CUDA_VER|split(".")|map(tonumber)|.[0]) | map(max_by([(.PY_VER|split(".")|map(tonumber)), (.CUDA_VER|split(".")|map(tonumber))]))
matrix_type: cuda-13-4-nightly
wheel-publish-cuopt-server:
needs: wheel-build-cuopt-server
permissions:
Expand Down Expand Up @@ -487,6 +496,7 @@ jobs:
with:
build_type: ${{ inputs.build_type || 'branch' }}
matrix_name: docs-build
matrix_type: cuda-13-4-nightly
docs-build:
needs: [docs-build-matrix, python-build]
permissions:
Expand Down Expand Up @@ -534,6 +544,7 @@ jobs:
pure-wheel: true
# only need 1 build (noarch package): this selects amd64, oldest-supported Python, latest-supported CUDA
matrix_filter: '[map(select(.ARCH == "amd64")) | min_by((.PY_VER | split(".") | map(tonumber)), (.CUDA_VER | split(".") | map(-tonumber)))]'
matrix_type: cuda-13-4-nightly
wheel-publish-cuopt-sh-client:
needs: wheel-build-cuopt-sh-client
permissions:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build_test_publish_images.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ on:
description: 'JSON array of architectures to build for'
cuda_ver:
type: string
default: '["12.9.0", "13.3.0"]'
default: '["12.9.0", "13.4.3"]'
description: 'JSON array of CUDA versions to build for'
python_ver:
type: string
Expand Down
16 changes: 16 additions & 0 deletions .github/workflows/pr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -423,6 +423,7 @@ jobs:
build_type: pull-request
build-datetime: ${{ needs.build-details.outputs.build-datetime }}
script: ci/build_cpp.sh
matrix_type: cuda-13-4-pr
conda-cpp-tests:
needs: [conda-cpp-build, changed-files]
permissions:
Expand All @@ -436,6 +437,7 @@ jobs:
with:
build_type: pull-request
script: ci/test_cpp.sh
matrix_type: cuda-13-4-pr,pull-request
secrets:
script-env-secret-1-key: CUOPT_S3_URI
script-env-secret-1-value: ${{ secrets.CUOPT_S3_URI }}
Expand Down Expand Up @@ -476,6 +478,7 @@ jobs:
script: ci/build_python.sh
# Build a conda package for each CUDA x ARCH x minimum supported Python version
matrix_filter: group_by({CUDA_VER, ARCH}) | map(min_by(.PY_VER | split(".") | map(tonumber)))
matrix_type: cuda-13-4-pr
conda-python-tests:
needs: [conda-python-build, changed-files]
permissions:
Expand All @@ -490,13 +493,15 @@ jobs:
build_type: pull-request
run_codecov: false
script: ci/test_python.sh
matrix_type: cuda-13-4-pr,pull-request
docs-build-matrix:
permissions:
contents: read
uses: rapidsai/shared-workflows/.github/workflows/compute-matrix.yaml@main
with:
build_type: pull-request
matrix_name: docs-build
matrix_type: cuda-13-4-pr
docs-build:
needs: [docs-build-matrix, conda-python-build, changed-files]
permissions:
Expand Down Expand Up @@ -533,6 +538,7 @@ jobs:
build_type: pull-request
matrix_name: conda-cpp-build
matrix_filter: 'map(. + {CUDA_MAJOR: (.CUDA_VER | split(".") | .[0])}) | unique_by([.ARCH, .CUDA_MAJOR])'
matrix_type: cuda-13-4-nightly

java-static-build:
needs: [java-static-build-matrix, changed-files]
Expand Down Expand Up @@ -643,6 +649,7 @@ jobs:
build_type: pull-request
build-datetime: ${{ needs.build-details.outputs.build-datetime }}
script: ci/build_wheel_libcuopt_client.sh
matrix_type: cuda-13-4-pr
wheel-build-libcuopt-mathopt:
needs: [build-details, compute-matrix-filters, changed-files, wheel-build-libcuopt-client]
if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_wheels
Expand All @@ -662,6 +669,7 @@ jobs:
build_type: pull-request
build-datetime: ${{ needs.build-details.outputs.build-datetime }}
script: ci/build_wheel_libcuopt_mathopt.sh
matrix_type: cuda-13-4-pr
wheel-build-libcuopt-routing:
needs: [build-details, compute-matrix-filters, changed-files, wheel-build-libcuopt-client]
if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_wheels
Expand All @@ -681,6 +689,7 @@ jobs:
build_type: pull-request
build-datetime: ${{ needs.build-details.outputs.build-datetime }}
script: ci/build_wheel_libcuopt_routing.sh
matrix_type: cuda-13-4-pr
wheel-build-libcuopt:
needs:
- build-details
Expand All @@ -706,6 +715,7 @@ jobs:
build_type: pull-request
build-datetime: ${{ needs.build-details.outputs.build-datetime }}
script: ci/build_wheel_libcuopt.sh
matrix_type: cuda-13-4-pr
wheel-build-cuopt:
needs:
- build-details
Expand All @@ -732,6 +742,7 @@ jobs:
package-type: python
# Build a wheel for each CUDA x ARCH x minimum supported Python version
matrix_filter: ${{ needs.compute-matrix-filters.outputs.cuopt_filter }}
matrix_type: cuda-13-4-pr
wheel-tests-cuopt:
needs: [wheel-build-cuopt, wheel-build-cuopt-sh-client, changed-files]
permissions:
Expand All @@ -745,6 +756,7 @@ jobs:
with:
build_type: pull-request
script: ci/test_wheel_cuopt.sh
matrix_type: cuda-13-4-pr,pull-request
secrets:
script-env-secret-1-key: CUOPT_S3_URI
script-env-secret-1-value: ${{ secrets.CUOPT_S3_URI }}
Expand Down Expand Up @@ -772,6 +784,7 @@ jobs:
pure-wheel: true
# Only need 1 package per CUDA major version. This selects "ARCH=amd64 + the latest supported Python, 1 job per major CUDA version".
matrix_filter: ${{ needs.compute-matrix-filters.outputs.cuopt_server_filter }}
matrix_type: cuda-13-4-pr
wheel-build-cuopt-sh-client:
needs: [build-details, compute-matrix-filters, changed-files]
if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_wheels
Expand All @@ -793,6 +806,7 @@ jobs:
pure-wheel: true
# only need 1 build (noarch package): this selects amd64, oldest-supported Python, latest-supported CUDA
matrix_filter: ${{ needs.compute-matrix-filters.outputs.cuopt_sh_client_filter }}
matrix_type: cuda-13-4-pr
wheel-tests-cuopt-server:
needs: [wheel-build-cuopt, wheel-build-cuopt-server, changed-files, compute-matrix-filters]
permissions:
Expand All @@ -807,6 +821,7 @@ jobs:
build_type: pull-request
script: ci/test_wheel_cuopt_server.sh
matrix_filter: ${{ needs.compute-matrix-filters.outputs.cuopt_server_test_filter }}
matrix_type: cuda-13-4-pr,pull-request
secrets:
script-env-secret-1-key: CUOPT_S3_URI
script-env-secret-1-value: ${{ secrets.CUOPT_S3_URI }}
Expand All @@ -828,6 +843,7 @@ jobs:
with:
build_type: pull-request
script: ci/test_self_hosted_service.sh
matrix_type: cuda-13-4-pr,pull-request
pr-test-summary:
name: "PR test summary (non-blocking)"
needs:
Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/self_hosted_service_test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@ name: Test self-hosted service on local-setup
on:
workflow_call:
inputs:
matrix_type:
default: "auto"
required: false
type: string
repo:
type: string
branch:
Expand Down Expand Up @@ -48,6 +52,7 @@ jobs:
with:
build_type: ${{ inputs.build_type }}
matrix_name: wheels-test
matrix_type: ${{ inputs.matrix_type }}
# AMD64, latest CUDA within latest Python
matrix_filter: map(select(.ARCH == "amd64")) | group_by(.PY_VER) | map(max_by(.CUDA_VER | split(".") | map(tonumber))) | [max_by(.PY_VER | split(".") | map(tonumber))]
cuopt-service:
Expand Down
7 changes: 7 additions & 0 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ jobs:
date: ${{ inputs.date }}
sha: ${{ inputs.sha }}
script: ci/test_cpp.sh
matrix_type: cuda-13-4-nightly,nightly
secrets:
script-env-secret-1-key: CUOPT_S3_URI
script-env-secret-1-value: ${{ secrets.CUOPT_S3_URI }}
Expand All @@ -65,6 +66,7 @@ jobs:
date: ${{ inputs.date }}
sha: ${{ inputs.sha }}
script: ci/test_python.sh
matrix_type: cuda-13-4-nightly,nightly
secrets:
script-env-secret-1-key: CUOPT_S3_URI
script-env-secret-1-value: ${{ secrets.CUOPT_S3_URI }}
Expand Down Expand Up @@ -102,6 +104,7 @@ jobs:
build_type: ${{ inputs.build_type }}
matrix_name: conda-cpp-build
matrix_filter: 'map(. + {CUDA_MAJOR: (.CUDA_VER | split(".") | .[0])}) | unique_by([.ARCH, .CUDA_MAJOR])'
matrix_type: cuda-13-4-nightly

# Runs the full Java suite against each classifier JAR build.yaml's java-static-build produced,
# on a GPU, with no libcuopt installed, so a JAR that loads but computes wrong answers fails
Expand Down Expand Up @@ -148,6 +151,7 @@ jobs:
date: ${{ inputs.date }}
sha: ${{ inputs.sha }}
script: ci/test_wheel_cuopt.sh
matrix_type: cuda-13-4-nightly,nightly
secrets:
script-env-secret-1-key: CUOPT_S3_URI
script-env-secret-1-value: ${{ secrets.CUOPT_S3_URI }}
Expand All @@ -170,6 +174,7 @@ jobs:
date: ${{ inputs.date }}
sha: ${{ inputs.sha }}
script: ci/test_wheel_cuopt_server.sh
matrix_type: cuda-13-4-nightly,nightly
secrets:
script-env-secret-1-key: CUOPT_S3_URI
script-env-secret-1-value: ${{ secrets.CUOPT_S3_URI }}
Expand All @@ -196,6 +201,7 @@ jobs:
sha: ${{ inputs.sha }}
script: ci/test_conda_split_packages.sh
matrix_filter: 'map(select(.ARCH == "amd64")) | sort_by(.CUDA_VER, .PY_VER) | [last]'
matrix_type: cuda-13-4-nightly,nightly

wheel-split-package-tests:
if: ${{ inputs.build_type == 'nightly' }}
Expand All @@ -213,6 +219,7 @@ jobs:
sha: ${{ inputs.sha }}
script: ci/test_wheel_split_packages.sh
matrix_filter: 'map(select(.ARCH == "amd64")) | sort_by(.CUDA_VER, .PY_VER) | [last]'
matrix_type: cuda-13-4-nightly,nightly

conda-notebook-tests:
permissions:
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ Please install conda if you don't have it already. You can install [miniforge](h
# create the conda environment (assuming in base `cuopt` directory)
# note: cuOpt currently doesn't support `channel_priority: strict`;
# use `channel_priority: flexible` instead
mamba env create -p ./.cuopt_env --file conda/environments/all_cuda-133_arch-$(uname -m).yaml
mamba env create -p ./.cuopt_env --file conda/environments/all_cuda-134_arch-$(uname -m).yaml
# activate the environment
mamba activate ./.cuopt_env # or: conda activate ./.cuopt_env
```
Expand Down
4 changes: 2 additions & 2 deletions ci/release/publish_placeholder_release_images.sh
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
# to nvstaging/nvaie/cuopt (docker login nvcr.io).
#
# Env overrides:
# CUDA_VERS space-separated list of full CUDA versions (default: "12.9.0 13.3.0")
# CUDA_VERS space-separated list of full CUDA versions (default: "12.9.0 13.4.3")
# RELEASE_TAG override the derived release tag (default: derived from VERSION)
# NIGHTLY_TAG override the derived source nightly tag (default: "${RELEASE_TAG}a")
# PUSH_LATEST set to "true" to also push "latest" manifests (default: "false")
Expand All @@ -52,7 +52,7 @@ BASE_VER=$(sed -E 's/\.0+([0-9])/\.\1/g' VERSION | tr -d '[:space:]')

RELEASE_TAG="${RELEASE_TAG:-${BASE_VER}}"
NIGHTLY_TAG="${NIGHTLY_TAG:-${RELEASE_TAG}a}"
CUDA_VERS="${CUDA_VERS:-12.9.0 13.3.0}"
CUDA_VERS="${CUDA_VERS:-12.9.0 13.4.3}"
DRY_RUN="${DRY_RUN:-false}"
PUSH_LATEST="${PUSH_LATEST:-false}"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ dependencies:
- cuda-nvcc
- cuda-nvtx-dev
- cuda-sanitizer-api
- cuda-version=13.3
- cuda-version=13.4
- cudf==26.12.*,>=0.0.0a0
- cupy>=14.0.1,!=14.1.0
- cxx-compiler
Expand Down Expand Up @@ -82,4 +82,4 @@ dependencies:
- pip:
- nvidia-sphinx-theme
- swagger-plugin-for-sphinx
name: all_cuda-133_arch-aarch64
name: all_cuda-134_arch-aarch64
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ dependencies:
- cuda-nvcc
- cuda-nvtx-dev
- cuda-sanitizer-api
- cuda-version=13.3
- cuda-version=13.4
- cudf==26.12.*,>=0.0.0a0
- cupy>=14.0.1,!=14.1.0
- cxx-compiler
Expand Down Expand Up @@ -82,4 +82,4 @@ dependencies:
- pip:
- nvidia-sphinx-theme
- swagger-plugin-for-sphinx
name: all_cuda-133_arch-x86_64
name: all_cuda-134_arch-x86_64
13 changes: 11 additions & 2 deletions dependencies.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ files:
all:
output: conda
matrix:
cuda: ["12.9", "13.3"]
cuda: ["12.9", "13.4"]
arch: [x86_64, aarch64]
includes:
- build_common
Expand Down Expand Up @@ -941,6 +941,10 @@ dependencies:
cuda: "13.3"
packages:
- cuda-version=13.3
- matrix:
cuda: "13.4"
packages:
- cuda-version=13.4
- output_types: [requirements, constraints]
matrices:
# if use_cuda_wheels=false is provided, do not add dependencies on any CUDA wheels
Expand Down Expand Up @@ -996,6 +1000,11 @@ dependencies:
use_cuda_wheels: "true"
packages:
- cuda-toolkit==13.3.*
- matrix:
cuda: "13.4"
use_cuda_wheels: "true"
packages:
- cuda-toolkit==13.4.*
cuda:
common:
- output_types: [conda]
Expand Down Expand Up @@ -1029,7 +1038,7 @@ dependencies:
use_cuda_wheels: "true"
packages:
- &ctk_routing_cu13 cuda-toolkit[cublas,cudart,cusparse]==13.*
- &nvjitlink_cu13 nvidia-nvjitlink>=13.3,<14
- &nvjitlink_cu13 nvidia-nvjitlink>=13.4,<14
# No cuda selector: this is what the pyproject file keys resolve against, and it
# is what populates pyproject.toml in source control. use_cuda_wheels is named
# explicitly so the entry still reads as a CUDA-wheel set.
Expand Down
Loading
Loading