diff --git a/.devcontainer/cuda13.0-conda/devcontainer.json b/.devcontainer/cuda13.0-conda/devcontainer.json new file mode 100644 index 0000000000..0e84c76e04 --- /dev/null +++ b/.devcontainer/cuda13.0-conda/devcontainer.json @@ -0,0 +1,44 @@ +{ + "build": { + "context": "${localWorkspaceFolder}/.devcontainer", + "dockerfile": "${localWorkspaceFolder}/.devcontainer/Dockerfile", + "args": { + "CUDA": "13.0", + "PYTHON_PACKAGE_MANAGER": "conda", + "BASE": "rapidsai/devcontainers:25.10-cpp-mambaforge" + } + }, + "runArgs": [ + "--rm", + "--name", + "${localEnv:USER:anon}-rapids-${localWorkspaceFolderBasename}-25.10-cuda13.0-conda", + "--ulimit", + "nofile=500000" + ], + "hostRequirements": {"gpu": "optional"}, + "features": { + "ghcr.io/rapidsai/devcontainers/features/rapids-build-utils:25.10": {} + }, + "overrideFeatureInstallOrder": [ + "ghcr.io/rapidsai/devcontainers/features/rapids-build-utils" + ], + "initializeCommand": ["/bin/bash", "-c", "mkdir -m 0755 -p ${localWorkspaceFolder}/../.{aws,cache,config,conda/pkgs,conda/${localWorkspaceFolderBasename}-cuda13.0-envs}"], + "postAttachCommand": ["/bin/bash", "-c", "if [ ${CODESPACES:-false} = 'true' ]; then . devcontainer-utils-post-attach-command; . rapids-post-attach-command; fi"], + "workspaceFolder": "/home/coder", + "workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/cuml,type=bind,consistency=consistent", + "mounts": [ + "source=${localWorkspaceFolder}/../.aws,target=/home/coder/.aws,type=bind,consistency=consistent", + "source=${localWorkspaceFolder}/../.cache,target=/home/coder/.cache,type=bind,consistency=consistent", + "source=${localWorkspaceFolder}/../.config,target=/home/coder/.config,type=bind,consistency=consistent", + "source=${localWorkspaceFolder}/../.conda/pkgs,target=/home/coder/.conda/pkgs,type=bind,consistency=consistent", + "source=${localWorkspaceFolder}/../.conda/${localWorkspaceFolderBasename}-cuda13.0-envs,target=/home/coder/.conda/envs,type=bind,consistency=consistent" + ], + "customizations": { + "vscode": { + "extensions": [ + "ms-python.flake8", + "nvidia.nsight-vscode-edition" + ] + } + } +} diff --git a/.devcontainer/cuda13.0-pip/devcontainer.json b/.devcontainer/cuda13.0-pip/devcontainer.json new file mode 100644 index 0000000000..289559f176 --- /dev/null +++ b/.devcontainer/cuda13.0-pip/devcontainer.json @@ -0,0 +1,51 @@ +{ + "build": { + "context": "${localWorkspaceFolder}/.devcontainer", + "dockerfile": "${localWorkspaceFolder}/.devcontainer/Dockerfile", + "args": { + "CUDA": "13.0", + "PYTHON_PACKAGE_MANAGER": "pip", + "BASE": "rapidsai/devcontainers:25.10-cpp-cuda13.0-ucx1.19.0-openmpi5.0.7" + } + }, + "runArgs": [ + "--rm", + "--name", + "${localEnv:USER:anon}-rapids-${localWorkspaceFolderBasename}-25.10-cuda13.0-pip", + "--ulimit", + "nofile=500000" + ], + "hostRequirements": {"gpu": "optional"}, + "features": { + "ghcr.io/rapidsai/devcontainers/features/cuda:25.10": { + "version": "13.0", + "installcuBLAS": true, + "installcuSOLVER": true, + "installcuRAND": true, + "installcuSPARSE": true + }, + "ghcr.io/rapidsai/devcontainers/features/rapids-build-utils:25.10": {} + }, + "overrideFeatureInstallOrder": [ + "ghcr.io/rapidsai/devcontainers/features/cuda", + "ghcr.io/rapidsai/devcontainers/features/rapids-build-utils" + ], + "initializeCommand": ["/bin/bash", "-c", "mkdir -m 0755 -p ${localWorkspaceFolder}/../.{aws,cache,config/pip,local/share/${localWorkspaceFolderBasename}-cuda13.0-venvs}"], + "postAttachCommand": ["/bin/bash", "-c", "if [ ${CODESPACES:-false} = 'true' ]; then . devcontainer-utils-post-attach-command; . rapids-post-attach-command; fi"], + "workspaceFolder": "/home/coder", + "workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/cuml,type=bind,consistency=consistent", + "mounts": [ + "source=${localWorkspaceFolder}/../.aws,target=/home/coder/.aws,type=bind,consistency=consistent", + "source=${localWorkspaceFolder}/../.cache,target=/home/coder/.cache,type=bind,consistency=consistent", + "source=${localWorkspaceFolder}/../.config,target=/home/coder/.config,type=bind,consistency=consistent", + "source=${localWorkspaceFolder}/../.local/share/${localWorkspaceFolderBasename}-cuda13.0-venvs,target=/home/coder/.local/share/venvs,type=bind,consistency=consistent" + ], + "customizations": { + "vscode": { + "extensions": [ + "ms-python.flake8", + "nvidia.nsight-vscode-edition" + ] + } + } +} diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index ae36665da9..9ff8d47361 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -34,7 +34,7 @@ concurrency: jobs: cpp-build: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-build.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-build.yaml@cuda13.0 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} @@ -45,7 +45,7 @@ jobs: if: github.ref_type == 'branch' needs: [python-build] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@cuda13.0 with: arch: "amd64" branch: ${{ inputs.branch }} @@ -58,7 +58,7 @@ jobs: python-build: needs: [cpp-build] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@cuda13.0 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} @@ -68,7 +68,7 @@ jobs: upload-conda: needs: [cpp-build, python-build] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-upload-packages.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/conda-upload-packages.yaml@cuda13.0 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} @@ -76,7 +76,7 @@ jobs: sha: ${{ inputs.sha }} wheel-build-libcuml: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@cuda13.0 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} @@ -96,7 +96,7 @@ jobs: wheel-publish-libcuml: needs: wheel-build-libcuml secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@cuda13.0 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} @@ -107,7 +107,7 @@ jobs: wheel-build-cuml: needs: wheel-build-libcuml secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@cuda13.0 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} @@ -119,7 +119,7 @@ jobs: wheel-publish-cuml: needs: wheel-build-cuml secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/wheels-publish.yaml@cuda13.0 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 039b7b44fa..38605763f5 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -31,7 +31,7 @@ jobs: - wheel-tests-cuml-dask - devcontainer secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/pr-builder.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/pr-builder.yaml@cuda13.0 if: always() with: needs: ${{ toJSON(needs) }} @@ -57,7 +57,7 @@ jobs: changed-files: secrets: inherit needs: telemetry-setup - uses: rapidsai/shared-workflows/.github/workflows/changed-files.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/changed-files.yaml@cuda13.0 with: files_yaml: | test_cpp: @@ -94,7 +94,7 @@ jobs: checks: secrets: inherit needs: telemetry-setup - uses: rapidsai/shared-workflows/.github/workflows/checks.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/checks.yaml@cuda13.0 with: enable_check_generated_files: false ignored_pr_jobs: >- @@ -102,7 +102,7 @@ jobs: clang-tidy: needs: checks secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@cuda13.0 with: build_type: pull-request node_type: "cpu8" @@ -112,14 +112,14 @@ jobs: conda-cpp-build: needs: checks secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-build.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-build.yaml@cuda13.0 with: build_type: pull-request script: ci/build_cpp.sh conda-cpp-tests: needs: [conda-cpp-build, changed-files] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-tests.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-tests.yaml@cuda13.0 if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_cpp with: build_type: pull-request @@ -127,20 +127,20 @@ jobs: conda-cpp-checks: needs: conda-cpp-build secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-post-build-checks.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-post-build-checks.yaml@cuda13.0 with: build_type: pull-request conda-python-build: needs: conda-cpp-build secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@cuda13.0 with: build_type: pull-request script: ci/build_python.sh conda-python-tests-singlegpu: needs: [conda-python-build, changed-files] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@cuda13.0 if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python with: build_type: pull-request @@ -148,7 +148,7 @@ jobs: optional-job-conda-python-tests-cudf-pandas-integration: needs: [conda-python-build, changed-files] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@cuda13.0 if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python with: # Select the amd64 entry with the highest CUDA and Python version @@ -158,7 +158,7 @@ jobs: conda-python-tests-dask: needs: [conda-python-build, changed-files] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@cuda13.0 if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python with: build_type: pull-request @@ -166,7 +166,7 @@ jobs: conda-python-scikit-learn-accel-tests: needs: [conda-python-build, changed-files] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@cuda13.0 if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python with: build_type: pull-request @@ -187,7 +187,7 @@ jobs: conda-python-cuml-accel-upstream-tests: needs: [conda-python-build, changed-files] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@cuda13.0 if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python with: build_type: pull-request @@ -197,7 +197,7 @@ jobs: conda-notebook-tests: needs: [conda-python-build, changed-files] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@cuda13.0 if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_notebooks with: build_type: pull-request @@ -208,7 +208,7 @@ jobs: docs-build: needs: conda-python-build secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@cuda13.0 with: build_type: pull-request node_type: "gpu-l4-latest-1" @@ -218,7 +218,7 @@ jobs: wheel-build-libcuml: needs: checks secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@cuda13.0 with: build_type: pull-request branch: ${{ inputs.branch }} @@ -235,7 +235,7 @@ jobs: wheel-build-cuml: needs: [checks, wheel-build-libcuml] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@cuda13.0 with: build_type: pull-request script: ci/build_wheel_cuml.sh @@ -244,7 +244,7 @@ jobs: wheel-tests-cuml: needs: [wheel-build-cuml, changed-files] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@cuda13.0 if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python with: build_type: pull-request @@ -252,7 +252,7 @@ jobs: wheel-tests-cuml-dask: needs: [wheel-build-cuml, changed-files] secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@cuda13.0 if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python with: build_type: pull-request @@ -260,10 +260,10 @@ jobs: devcontainer: needs: telemetry-setup secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/build-in-devcontainer.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/build-in-devcontainer.yaml@cuda13.0 with: arch: '["amd64", "arm64"]' - cuda: '["12.9"]' + cuda: '["13.0"]' extra-repo-deploy-key: CUMLPRIMS_SSH_PRIVATE_DEPLOY_KEY node_type: "cpu8" rapids-aux-secret-1: GIST_REPO_READ_ORG_GITHUB_TOKEN diff --git a/.github/workflows/pr_issue_status_automation.yml b/.github/workflows/pr_issue_status_automation.yml index e7dd5fd5b8..6297db0e21 100644 --- a/.github/workflows/pr_issue_status_automation.yml +++ b/.github/workflows/pr_issue_status_automation.yml @@ -8,7 +8,7 @@ on: jobs: get-project-id: - uses: rapidsai/shared-workflows/.github/workflows/project-get-item-id.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/project-get-item-id.yaml@cuda13.0 if: github.event.pull_request.state == 'open' secrets: inherit permissions: @@ -19,7 +19,7 @@ jobs: update-status: # This job sets the PR and its linked issues to "In Progress" status - uses: rapidsai/shared-workflows/.github/workflows/project-get-set-single-select-field.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/project-get-set-single-select-field.yaml@cuda13.0 if: ${{ github.event.pull_request.state == 'open' && needs.get-project-id.outputs.ITEM_PROJECT_ID != '' }} needs: get-project-id with: @@ -49,7 +49,7 @@ jobs: update-release: # This job sets the PR and its linked issues to the release they are targeting - uses: rapidsai/shared-workflows/.github/workflows/project-get-set-single-select-field.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/project-get-set-single-select-field.yaml@cuda13.0 if: ${{ github.event.pull_request.state == 'open' && needs.get-project-id.outputs.ITEM_PROJECT_ID != '' }} needs: [get-project-id, process-branch-name] with: diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 368501b64c..fe09e0d06a 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -25,7 +25,7 @@ on: jobs: conda-cpp-checks: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-post-build-checks.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-post-build-checks.yaml@cuda13.0 with: build_type: ${{ inputs.build_type }} branch: ${{ inputs.branch }} @@ -34,7 +34,7 @@ jobs: symbol_exclusions: raft_cutlass conda-cpp-tests: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-tests.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-tests.yaml@cuda13.0 with: build_type: ${{ inputs.build_type }} branch: ${{ inputs.branch }} @@ -43,7 +43,7 @@ jobs: sha: ${{ inputs.sha }} conda-python-tests-singlegpu: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@cuda13.0 with: build_type: ${{ inputs.build_type }} branch: ${{ inputs.branch }} @@ -52,7 +52,7 @@ jobs: script: "ci/test_python_singlegpu.sh" conda-python-tests-dask: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@cuda13.0 with: build_type: ${{ inputs.build_type }} branch: ${{ inputs.branch }} @@ -61,7 +61,7 @@ jobs: script: "ci/test_python_dask.sh" conda-python-scikit-learn-accel-tests: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@cuda13.0 with: build_type: ${{ inputs.build_type }} branch: ${{ inputs.branch }} @@ -84,7 +84,7 @@ jobs: )' conda-python-cuml-accel-upstream-tests: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@cuda13.0 with: build_type: ${{ inputs.build_type }} branch: ${{ inputs.branch }} @@ -95,7 +95,7 @@ jobs: matrix_filter: map(select(.ARCH == "amd64")) | group_by(.CUDA_VER|split(".")|map(tonumber)|.[0]) | map(max_by([.CUDA_VER,.PY_VER]|map(split(".")|map(tonumber)))) wheel-tests-cuml: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@cuda13.0 with: build_type: ${{ inputs.build_type }} branch: ${{ inputs.branch }} @@ -104,7 +104,7 @@ jobs: script: ci/test_wheel.sh wheel-tests-cuml-dask: secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@cuda13.0 with: build_type: ${{ inputs.build_type }} branch: ${{ inputs.branch }} diff --git a/.github/workflows/trigger-breaking-change-alert.yaml b/.github/workflows/trigger-breaking-change-alert.yaml index 48bf37afc4..72751d071b 100644 --- a/.github/workflows/trigger-breaking-change-alert.yaml +++ b/.github/workflows/trigger-breaking-change-alert.yaml @@ -12,7 +12,7 @@ jobs: trigger-notifier: if: contains(github.event.pull_request.labels.*.name, 'breaking') secrets: inherit - uses: rapidsai/shared-workflows/.github/workflows/breaking-change-alert.yaml@branch-25.10 + uses: rapidsai/shared-workflows/.github/workflows/breaking-change-alert.yaml@cuda13.0 with: sender_login: ${{ github.event.sender.login }} sender_avatar: ${{ github.event.sender.avatar_url }} diff --git a/BUILD.md b/BUILD.md index df893931b8..c8165e276f 100644 --- a/BUILD.md +++ b/BUILD.md @@ -19,7 +19,7 @@ It is recommended to use conda for environment/package management. If doing so, ```bash conda create -n cuml_dev python=3.13 -conda env update -n cuml_dev --file=conda/environments/all_cuda-129_arch-x86_64.yaml +conda env update -n cuml_dev --file=conda/environments/all_cuda-130_arch-x86_64.yaml conda activate cuml_dev ``` diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d0c44271d0..cf9cbd8ee7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -144,7 +144,7 @@ methods to run clang-tidy on your local machine: using Docker or Conda. 1. Navigate to the repository root directory. 2. Create and activate the needed conda environment: ```bash - conda env create --yes -n cuml-clang-tidy -f conda/environments/clang_tidy_cuda-129_arch-x86_64.yaml + conda env create --yes -n cuml-clang-tidy -f conda/environments/clang_tidy_cuda-130_arch-x86_64.yaml conda activate cuml-clang-tidy ``` 3. Generate the compile command database with diff --git a/conda/environments/all_cuda-130_arch-aarch64.yaml b/conda/environments/all_cuda-130_arch-aarch64.yaml new file mode 100644 index 0000000000..64255d35b4 --- /dev/null +++ b/conda/environments/all_cuda-130_arch-aarch64.yaml @@ -0,0 +1,84 @@ +# This file is generated by `rapids-dependency-file-generator`. +# To make changes, edit ../../dependencies.yaml and run `rapids-dependency-file-generator`. +channels: +- rapidsai +- rapidsai-nightly +- conda-forge +dependencies: +- c-compiler +- ccache +- certifi +- cmake>=3.30.4 +- cuda-cudart-dev +- cuda-nvcc +- cuda-profiler-api +- cuda-python>=13.0.1,<14.0a0 +- cuda-version=13.0 +- cudf==25.10.*,>=0.0.0a0 +- cupy>=13.6.0 +- cuvs==25.10.*,>=0.0.0a0 +- cxx-compiler +- cython>=3.0.0 +- dask-cuda==25.10.*,>=0.0.0a0 +- dask-cudf==25.10.*,>=0.0.0a0 +- dask-ml +- doxygen=1.9.1 +- gcc_linux-aarch64=14.* +- graphviz +- hdbscan>=0.8.39,<0.8.40 +- hypothesis>=6.0,<7 +- ipykernel +- ipython +- joblib>=0.11 +- libcublas-dev +- libcufft-dev +- libcumlprims==25.10.*,>=0.0.0a0 +- libcurand-dev +- libcusolver-dev +- libcusparse-dev +- libcuvs==25.10.*,>=0.0.0a0 +- libraft==25.10.*,>=0.0.0a0 +- librmm==25.10.*,>=0.0.0a0 +- matplotlib-base +- nbsphinx +- ninja +- nltk +- numba-cuda>=0.19.1,<0.20.0a0 +- numba>=0.60.0,<0.62.0a0 +- numpy>=1.23,<3.0a0 +- numpydoc +- numpydoc<1.9 +- nvidia-ml-py>=12.560.30 +- packaging +- pre-commit +- pydata-sphinx-theme!=0.14.2 +- pylibraft==25.10.*,>=0.0.0a0 +- pynndescent +- pytest +- pytest-benchmark +- pytest-cases +- pytest-cov +- pytest-xdist +- python>=3.10,<3.14 +- pyyaml +- raft-dask==25.10.*,>=0.0.0a0 +- rapids-build-backend>=0.4.0,<0.5.0.dev0 +- rapids-dask-dependency==25.10.*,>=0.0.0a0 +- rapids-logger==0.1.*,>=0.0.0a0 +- recommonmark +- rich +- rmm==25.10.*,>=0.0.0a0 +- scikit-build-core>=0.10.0 +- scikit-learn>=1.4 +- scipy>=1.8.0 +- seaborn +- sphinx +- sphinx-copybutton +- sphinx-markdown-tables +- statsmodels +- sysroot_linux-aarch64==2.28 +- tenacity +- treelite==4.4.1 +- umap-learn==0.5.7 +- xgboost>=2.1.0 +name: all_cuda-130_arch-aarch64 diff --git a/conda/environments/all_cuda-130_arch-x86_64.yaml b/conda/environments/all_cuda-130_arch-x86_64.yaml new file mode 100644 index 0000000000..89f253115d --- /dev/null +++ b/conda/environments/all_cuda-130_arch-x86_64.yaml @@ -0,0 +1,84 @@ +# This file is generated by `rapids-dependency-file-generator`. +# To make changes, edit ../../dependencies.yaml and run `rapids-dependency-file-generator`. +channels: +- rapidsai +- rapidsai-nightly +- conda-forge +dependencies: +- c-compiler +- ccache +- certifi +- cmake>=3.30.4 +- cuda-cudart-dev +- cuda-nvcc +- cuda-profiler-api +- cuda-python>=13.0.1,<14.0a0 +- cuda-version=13.0 +- cudf==25.10.*,>=0.0.0a0 +- cupy>=13.6.0 +- cuvs==25.10.*,>=0.0.0a0 +- cxx-compiler +- cython>=3.0.0 +- dask-cuda==25.10.*,>=0.0.0a0 +- dask-cudf==25.10.*,>=0.0.0a0 +- dask-ml +- doxygen=1.9.1 +- gcc_linux-64=14.* +- graphviz +- hdbscan>=0.8.39,<0.8.40 +- hypothesis>=6.0,<7 +- ipykernel +- ipython +- joblib>=0.11 +- libcublas-dev +- libcufft-dev +- libcumlprims==25.10.*,>=0.0.0a0 +- libcurand-dev +- libcusolver-dev +- libcusparse-dev +- libcuvs==25.10.*,>=0.0.0a0 +- libraft==25.10.*,>=0.0.0a0 +- librmm==25.10.*,>=0.0.0a0 +- matplotlib-base +- nbsphinx +- ninja +- nltk +- numba-cuda>=0.19.1,<0.20.0a0 +- numba>=0.60.0,<0.62.0a0 +- numpy>=1.23,<3.0a0 +- numpydoc +- numpydoc<1.9 +- nvidia-ml-py>=12.560.30 +- packaging +- pre-commit +- pydata-sphinx-theme!=0.14.2 +- pylibraft==25.10.*,>=0.0.0a0 +- pynndescent +- pytest +- pytest-benchmark +- pytest-cases +- pytest-cov +- pytest-xdist +- python>=3.10,<3.14 +- pyyaml +- raft-dask==25.10.*,>=0.0.0a0 +- rapids-build-backend>=0.4.0,<0.5.0.dev0 +- rapids-dask-dependency==25.10.*,>=0.0.0a0 +- rapids-logger==0.1.*,>=0.0.0a0 +- recommonmark +- rich +- rmm==25.10.*,>=0.0.0a0 +- scikit-build-core>=0.10.0 +- scikit-learn>=1.4 +- scipy>=1.8.0 +- seaborn +- sphinx +- sphinx-copybutton +- sphinx-markdown-tables +- statsmodels +- sysroot_linux-64==2.28 +- tenacity +- treelite==4.4.1 +- umap-learn==0.5.7 +- xgboost>=2.1.0 +name: all_cuda-130_arch-x86_64 diff --git a/conda/environments/clang_tidy_cuda-130_arch-x86_64.yaml b/conda/environments/clang_tidy_cuda-130_arch-x86_64.yaml new file mode 100644 index 0000000000..def7ddf833 --- /dev/null +++ b/conda/environments/clang_tidy_cuda-130_arch-x86_64.yaml @@ -0,0 +1,31 @@ +# This file is generated by `rapids-dependency-file-generator`. +# To make changes, edit ../../dependencies.yaml and run `rapids-dependency-file-generator`. +channels: +- rapidsai +- rapidsai-nightly +- conda-forge +dependencies: +- c-compiler +- clang-tools==15.0.7 +- clang==15.0.7 +- cmake>=3.30.4 +- cuda-cudart-dev +- cuda-nvcc +- cuda-profiler-api +- cuda-version=13.0 +- cxx-compiler +- gcc_linux-64=14.* +- libcublas-dev +- libcufft-dev +- libcumlprims==25.10.*,>=0.0.0a0 +- libcurand-dev +- libcusolver-dev +- libcusparse-dev +- libcuvs==25.10.*,>=0.0.0a0 +- libraft-headers==25.10.*,>=0.0.0a0 +- librmm==25.10.*,>=0.0.0a0 +- llvm-openmp==15.0.7 +- ninja +- sysroot_linux-64==2.28 +- tomli +name: clang_tidy_cuda-130_arch-x86_64 diff --git a/conda/environments/cpp_all_cuda-130_arch-x86_64.yaml b/conda/environments/cpp_all_cuda-130_arch-x86_64.yaml new file mode 100644 index 0000000000..ff0887fd60 --- /dev/null +++ b/conda/environments/cpp_all_cuda-130_arch-x86_64.yaml @@ -0,0 +1,27 @@ +# This file is generated by `rapids-dependency-file-generator`. +# To make changes, edit ../../dependencies.yaml and run `rapids-dependency-file-generator`. +channels: +- rapidsai +- rapidsai-nightly +- conda-forge +dependencies: +- c-compiler +- cmake>=3.30.4 +- cuda-cudart-dev +- cuda-nvcc +- cuda-profiler-api +- cuda-version=13.0 +- cxx-compiler +- gcc_linux-64=14.* +- libcublas-dev +- libcufft-dev +- libcumlprims==25.10.*,>=0.0.0a0 +- libcurand-dev +- libcusolver-dev +- libcusparse-dev +- libcuvs==25.10.*,>=0.0.0a0 +- libraft-headers==25.10.*,>=0.0.0a0 +- librmm==25.10.*,>=0.0.0a0 +- ninja +- sysroot_linux-64==2.28 +name: cpp_all_cuda-130_arch-x86_64 diff --git a/conda/recipes/cuml/recipe.yaml b/conda/recipes/cuml/recipe.yaml index 815c26afaa..137f43a7b3 100644 --- a/conda/recipes/cuml/recipe.yaml +++ b/conda/recipes/cuml/recipe.yaml @@ -72,6 +72,7 @@ requirements: - cuda-cudart-dev - if: cuda_major == "12" then: cuda-python >=12.9.2,<13.0a0 + else: cuda-python >=13.0.1,<14.0a0 run: - ${{ pin_compatible("cuda-version", upper_bound="x", lower_bound="x") }} - cudf =${{ minor_version }} @@ -95,6 +96,7 @@ requirements: - cuda-cudart - if: cuda_major == "12" then: cuda-python >=12.9.2,<13.0a0 + else: cuda-python >=13.0.1,<14.0a0 ignore_run_exports: by_name: - cuda-cudart diff --git a/dependencies.yaml b/dependencies.yaml index b00bbfe93d..e9f3f78ddb 100644 --- a/dependencies.yaml +++ b/dependencies.yaml @@ -3,7 +3,7 @@ files: all: output: conda matrix: - cuda: ["12.9"] + cuda: ["12.9", "13.0"] arch: [x86_64, aarch64] includes: - common_build @@ -63,7 +63,7 @@ files: cpp_all: output: conda matrix: - cuda: ["12.9"] + cuda: ["12.9", "13.0"] arch: [x86_64] includes: - common_build @@ -81,7 +81,7 @@ files: clang_tidy: output: conda matrix: - cuda: ["12.9"] + cuda: ["12.9", "13.0"] arch: [x86_64] includes: - clang_tidy @@ -253,6 +253,7 @@ dependencies: - output_types: conda packages: - c-compiler + - cuda-nvcc - cxx-compiler specific: - output_types: conda @@ -260,25 +261,13 @@ dependencies: - matrix: arch: x86_64 packages: - - sysroot_linux-64==2.28 - - matrix: - arch: aarch64 - packages: - - sysroot_linux-aarch64==2.28 - - output_types: conda - matrices: - - matrix: - arch: x86_64 - cuda: "12.*" - packages: - - cuda-nvcc - gcc_linux-64=14.* + - sysroot_linux-64==2.28 - matrix: arch: aarch64 - cuda: "12.*" packages: - - cuda-nvcc - gcc_linux-aarch64=14.* + - sysroot_linux-aarch64==2.28 develop: common: - output_types: [conda, requirements] @@ -335,20 +324,21 @@ dependencies: cuda: "12.9" packages: - cuda-version=12.9 - cuda: - specific: - - output_types: conda - matrices: - matrix: - cuda: "12.*" + cuda: "13.0" packages: - - cuda-cudart-dev - - cuda-profiler-api - - libcublas-dev - - libcufft-dev - - libcurand-dev - - libcusolver-dev - - libcusparse-dev + - cuda-version=13.0 + cuda: + common: + - output_types: [conda] + packages: + - cuda-cudart-dev + - cuda-profiler-api + - libcublas-dev + - libcufft-dev + - libcurand-dev + - libcusolver-dev + - libcusparse-dev cuda_wheels: specific: - output_types: [requirements, pyproject] @@ -362,6 +352,15 @@ dependencies: - nvidia-curand-cu12 - nvidia-cusparse-cu12 - nvidia-cusolver-cu12 + - matrix: + cuda: "13.*" + use_cuda_wheels: "true" + packages: + - nvidia-cublas-cu13 + - nvidia-cufft-cu13 + - nvidia-curand-cu13 + - nvidia-cusparse-cu13 + - nvidia-cusolver-cu13 # if use_cuda_wheels=false is provided, do not add dependencies on any CUDA wheels # (e.g. for DLFW and pip devcontainers) - matrix: @@ -505,9 +504,10 @@ dependencies: cuda: "12.*" packages: - cuda-python>=12.9.2,<13.0a0 + # fallback to CUDA 13 versions if 'cuda' is '13.*' or not provided - matrix: packages: - - cuda-python + - cuda-python>=13.0.1,<14.0a0 depends_on_cudf: common: - output_types: conda @@ -526,6 +526,11 @@ dependencies: cuda_suffixed: "true" packages: - cudf-cu12==25.10.*,>=0.0.0a0 + - matrix: + cuda: "13.*" + cuda_suffixed: "true" + packages: + - cudf-cu13==25.10.*,>=0.0.0a0 - matrix: packages: - *cudf_unsuffixed @@ -546,8 +551,13 @@ dependencies: - output_types: [requirements, pyproject] matrices: - matrix: + cuda: "12.*" packages: - cupy-cuda12x>=13.6.0 + # fallback to CUDA 13 versions if 'cuda' is '13.*' or not provided + - matrix: + packages: + - cupy-cuda13x>=13.6.0 depends_on_cuvs: common: - output_types: conda @@ -566,6 +576,11 @@ dependencies: cuda_suffixed: "true" packages: - cuvs-cu12==25.10.*,>=0.0.0a0 + - matrix: + cuda: "13.*" + cuda_suffixed: "true" + packages: + - cuvs-cu13==25.10.*,>=0.0.0a0 - matrix: packages: - *cuvs_unsuffixed @@ -587,6 +602,11 @@ dependencies: cuda_suffixed: "true" packages: - dask-cuda[cu12]==25.10.*,>=0.0.0a0 + - matrix: + cuda: "13.*" + cuda_suffixed: "true" + packages: + - dask-cuda[cu13]==25.10.*,>=0.0.0a0 - matrix: packages: - *dask_cuda_unsuffixed @@ -608,6 +628,11 @@ dependencies: cuda_suffixed: "true" packages: - dask-cudf-cu12==25.10.*,>=0.0.0a0 + - matrix: + cuda: "13.*" + cuda_suffixed: "true" + packages: + - dask-cudf-cu13==25.10.*,>=0.0.0a0 - matrix: packages: - *dask_cudf_unsuffixed @@ -629,6 +654,11 @@ dependencies: cuda_suffixed: "true" packages: - libcuml-cu12==25.10.*,>=0.0.0a0 + - matrix: + cuda: "13.*" + cuda_suffixed: "true" + packages: + - libcuml-cu13==25.10.*,>=0.0.0a0 - {matrix: null, packages: [*libcuml_unsuffixed]} depends_on_libcumlprims: common: @@ -653,6 +683,11 @@ dependencies: cuda_suffixed: "true" packages: - libcuvs-cu12==25.10.*,>=0.0.0a0 + - matrix: + cuda: "13.*" + cuda_suffixed: "true" + packages: + - libcuvs-cu13==25.10.*,>=0.0.0a0 - {matrix: null, packages: [*libcuvs_unsuffixed]} depends_on_libraft: common: @@ -672,6 +707,11 @@ dependencies: cuda_suffixed: "true" packages: - libraft-cu12==25.10.*,>=0.0.0a0 + - matrix: + cuda: "13.*" + cuda_suffixed: "true" + packages: + - libraft-cu13==25.10.*,>=0.0.0a0 - {matrix: null, packages: [*libraft_unsuffixed]} depends_on_libraft_headers: common: @@ -696,6 +736,11 @@ dependencies: cuda_suffixed: "true" packages: - librmm-cu12==25.10.*,>=0.0.0a0 + - matrix: + cuda: "13.*" + cuda_suffixed: "true" + packages: + - librmm-cu13==25.10.*,>=0.0.0a0 - {matrix: null, packages: [*librmm_unsuffixed]} depends_on_numba_cuda: common: @@ -709,9 +754,10 @@ dependencies: cuda: "12.*" packages: - numba-cuda[cu12]>=0.19.1,<0.20.0a0 + # fallback to CUDA 13 versions if 'cuda' is '13.*' or not provided - matrix: packages: - - numba-cuda>=0.19.1,<0.20.0a0 + - numba-cuda[cu13]>=0.19.1,<0.20.0a0 depends_on_pylibraft: common: - output_types: conda @@ -730,6 +776,11 @@ dependencies: cuda_suffixed: "true" packages: - pylibraft-cu12==25.10.*,>=0.0.0a0 + - matrix: + cuda: "13.*" + cuda_suffixed: "true" + packages: + - pylibraft-cu13==25.10.*,>=0.0.0a0 - matrix: packages: - *pylibraft_unsuffixed @@ -751,6 +802,11 @@ dependencies: cuda_suffixed: "true" packages: - raft-dask-cu12==25.10.*,>=0.0.0a0 + - matrix: + cuda: "13.*" + cuda_suffixed: "true" + packages: + - raft-dask-cu13==25.10.*,>=0.0.0a0 - matrix: packages: - *raft_dask_unsuffixed @@ -782,6 +838,11 @@ dependencies: cuda_suffixed: "true" packages: - rmm-cu12==25.10.*,>=0.0.0a0 + - matrix: + cuda: "13.*" + cuda_suffixed: "true" + packages: + - rmm-cu13==25.10.*,>=0.0.0a0 - matrix: packages: - *rmm_unsuffixed diff --git a/docs/source/supported_versions.rst b/docs/source/supported_versions.rst index 3e65f903bb..cd0fdaf556 100644 --- a/docs/source/supported_versions.rst +++ b/docs/source/supported_versions.rst @@ -13,8 +13,8 @@ The following dependencies are required for the cuML library: * **NumPy**: >=1.23,<3.0a0 * **scikit-learn**: >=1.4 * **scipy**: >=1.8.0 -* **numba**: >=0.59.1,<0.62.0a0 -* **cupy**: cupy-cuda12x>=13.6.0 (CUDA 12) +* **numba**: >=0.60.0,<0.62.0a0 +* **cupy**: cupy-cuda12x>=13.6.0 (CUDA 12), cupy-cuda13x>=13.6.0 (CUDA 13) * **treelite**: ==4.4.1 diff --git a/python/cuml/README.md b/python/cuml/README.md index 90b2fa009c..af3e61a8ac 100644 --- a/python/cuml/README.md +++ b/python/cuml/README.md @@ -57,7 +57,7 @@ To build cuML's Python package, the following dependencies are required: - cudatoolkit version corresponding to system CUDA toolkit - cython >=3.0.0 - numpy - cmake >=3.30.4 +- cmake >=3.30.4 - cudf version matching the cuML version - libcuml version matching the cuML version - libcuml={{ version }} diff --git a/python/cuml/pyproject.toml b/python/cuml/pyproject.toml index d7cc868e7e..2ff4a57a86 100644 --- a/python/cuml/pyproject.toml +++ b/python/cuml/pyproject.toml @@ -91,15 +91,15 @@ authors = [ license = { text = "Apache-2.0" } requires-python = ">=3.10" dependencies = [ - "cuda-python", + "cuda-python>=13.0.1,<14.0a0", "cudf==25.10.*,>=0.0.0a0", - "cupy-cuda12x>=13.6.0", + "cupy-cuda13x>=13.6.0", "cuvs==25.10.*,>=0.0.0a0", "dask-cuda==25.10.*,>=0.0.0a0", "dask-cudf==25.10.*,>=0.0.0a0", "joblib>=0.11", "libcuml==25.10.*,>=0.0.0a0", - "numba-cuda>=0.19.1,<0.20.0a0", + "numba-cuda[cu13]>=0.19.1,<0.20.0a0", "numba>=0.60.0,<0.62.0a0", "numpy>=1.23,<3.0a0", "nvidia-cublas", @@ -188,7 +188,7 @@ dependencies-file = "../../dependencies.yaml" matrix-entry = "cuda_suffixed=true;use_cuda_wheels=true" requires = [ "cmake>=3.30.4", - "cuda-python", + "cuda-python>=13.0.1,<14.0a0", "cython>=3.0.0", "libcuml==25.10.*,>=0.0.0a0", "libcuvs==25.10.*,>=0.0.0a0",