diff --git a/conda/environments/all_cuda-129_arch-aarch64.yaml b/conda/environments/all_cuda-129_arch-aarch64.yaml index d05c0eba7c..3fc866ce17 100644 --- a/conda/environments/all_cuda-129_arch-aarch64.yaml +++ b/conda/environments/all_cuda-129_arch-aarch64.yaml @@ -12,10 +12,10 @@ dependencies: - cuda-cudart-dev - cuda-nvcc - cuda-profiler-api -- cuda-python>=12.6.2,<13.0a0 +- cuda-python>=12.9.2,<13.0a0 - cuda-version=12.9 - cudf==25.10.*,>=0.0.0a0 -- cupy>=12.0.0 +- cupy>=13.6.0 - cuvs==25.10.*,>=0.0.0a0 - cxx-compiler - cython>=3.0.0 @@ -43,16 +43,17 @@ dependencies: - nbsphinx - ninja - nltk -- numba>=0.59.1,<0.62.0a0 +- 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 -- pynvml>=12.0.0,<13.0.0a0 - pytest - pytest-benchmark - pytest-cases diff --git a/conda/environments/all_cuda-129_arch-x86_64.yaml b/conda/environments/all_cuda-129_arch-x86_64.yaml index 5890223c01..467ec1e91e 100644 --- a/conda/environments/all_cuda-129_arch-x86_64.yaml +++ b/conda/environments/all_cuda-129_arch-x86_64.yaml @@ -12,10 +12,10 @@ dependencies: - cuda-cudart-dev - cuda-nvcc - cuda-profiler-api -- cuda-python>=12.6.2,<13.0a0 +- cuda-python>=12.9.2,<13.0a0 - cuda-version=12.9 - cudf==25.10.*,>=0.0.0a0 -- cupy>=12.0.0 +- cupy>=13.6.0 - cuvs==25.10.*,>=0.0.0a0 - cxx-compiler - cython>=3.0.0 @@ -43,16 +43,17 @@ dependencies: - nbsphinx - ninja - nltk -- numba>=0.59.1,<0.62.0a0 +- 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 -- pynvml>=12.0.0,<13.0.0a0 - pytest - pytest-benchmark - pytest-cases diff --git a/conda/recipes/cuml/recipe.yaml b/conda/recipes/cuml/recipe.yaml index 48dd48e153..815c26afaa 100644 --- a/conda/recipes/cuml/recipe.yaml +++ b/conda/recipes/cuml/recipe.yaml @@ -70,15 +70,18 @@ requirements: - scikit-build-core >=0.10.0 - treelite ${{ treelite_version }} - cuda-cudart-dev - - cuda-python >=12.6.2,<13.0a0 + - if: cuda_major == "12" + then: cuda-python >=12.9.2,<13.0a0 run: - ${{ pin_compatible("cuda-version", upper_bound="x", lower_bound="x") }} - cudf =${{ minor_version }} - - cupy >=12.0.0 + - cupy >=13.6.0 - dask-cudf =${{ minor_version }} - joblib >=0.11 - libcuml =${{ version }} - libcumlprims =${{ minor_version }} + - numba >=0.60.0,<0.62.0a0 + - numba-cuda >=0.19.1,<0.20.0a0 - numpy >=1.23,<3.0a0 - scikit-learn >=1.4 - packaging @@ -90,7 +93,8 @@ requirements: - rich - treelite ${{ treelite_version }} - cuda-cudart - - cuda-python >=12.6.2,<13.0a0 + - if: cuda_major == "12" + then: cuda-python >=12.9.2,<13.0a0 ignore_run_exports: by_name: - cuda-cudart diff --git a/dependencies.yaml b/dependencies.yaml index 1d039cc264..b00bbfe93d 100644 --- a/dependencies.yaml +++ b/dependencies.yaml @@ -13,11 +13,13 @@ files: - depends_on_cuda_python - depends_on_cupy - depends_on_cuvs + - depends_on_dask_cuda - depends_on_dask_cudf - depends_on_libcumlprims - depends_on_libcuvs - depends_on_libraft - depends_on_librmm + - depends_on_numba_cuda - depends_on_pylibraft - depends_on_raft_dask - depends_on_rapids_logger @@ -41,11 +43,13 @@ files: - depends_on_cuda_python - depends_on_cupy - depends_on_cuvs + - depends_on_dask_cuda - depends_on_dask_cudf - depends_on_libcumlprims - depends_on_libcuvs - depends_on_libraft - depends_on_librmm + - depends_on_numba_cuda - depends_on_pylibraft - depends_on_raft_dask - depends_on_rapids_logger @@ -119,7 +123,9 @@ files: - depends_on_cuml - depends_on_cupy - depends_on_cuvs + - depends_on_dask_cuda - depends_on_dask_cudf + - depends_on_numba_cuda - depends_on_pylibraft - depends_on_raft_dask - depends_on_rmm @@ -161,8 +167,10 @@ files: - depends_on_cudf - depends_on_cupy - depends_on_cuvs + - depends_on_dask_cuda - depends_on_dask_cudf - depends_on_libcuml + - depends_on_numba_cuda - depends_on_pylibraft - depends_on_raft_dask - depends_on_rmm @@ -289,9 +297,8 @@ dependencies: common: - output_types: [conda, requirements, pyproject] packages: - - dask-cuda==25.10.*,>=0.0.0a0 - joblib>=0.11 - - numba>=0.59.1,<0.62.0a0 + - numba>=0.60.0,<0.62.0a0 - &numpy numpy>=1.23,<3.0a0 - scipy>=1.8.0 - packaging @@ -449,7 +456,9 @@ dependencies: - nltk # upstream sklearn docstring tests require numpydoc<1.9 - numpydoc<1.9 - - pynvml>=12.0.0,<13.0.0a0 + # 'nvidia-ml-py' provides the 'pynvml' module, since v12.560.30 + # ref: https://github.com/conda-forge/nvidia-ml-py-feedstock/pull/24 + - nvidia-ml-py>=12.560.30 - pyyaml - pytest - pytest-benchmark @@ -495,7 +504,7 @@ dependencies: - matrix: cuda: "12.*" packages: - - cuda-python>=12.6.2,<13.0a0 + - cuda-python>=12.9.2,<13.0a0 - matrix: packages: - cuda-python @@ -529,13 +538,16 @@ dependencies: common: - output_types: conda packages: - - cupy>=12.0.0 + - cupy>=13.6.0 + # NOTE: This is intentionally not broken into groups by a 'cuda_suffixed' selector like + # other packages with -cu{nn}x suffixes in this file. + # All RAPIDS wheel builds (including in devcontainers) expect cupy to be suffixed. specific: - output_types: [requirements, pyproject] matrices: - - matrix: # All CUDA 12 versions + - matrix: packages: - - cupy-cuda12x>=12.0.0 + - cupy-cuda12x>=13.6.0 depends_on_cuvs: common: - output_types: conda @@ -557,6 +569,27 @@ dependencies: - matrix: packages: - *cuvs_unsuffixed + depends_on_dask_cuda: + common: + - output_types: conda + packages: + - &dask_cuda_unsuffixed dask-cuda==25.10.*,>=0.0.0a0 + - output_types: requirements + packages: + # pip recognizes the index as a global option for the requirements.txt file + - --extra-index-url=https://pypi.nvidia.com + - --extra-index-url=https://pypi.anaconda.org/rapidsai-wheels-nightly/simple + specific: + - output_types: [requirements, pyproject] + matrices: + - matrix: + cuda: "12.*" + cuda_suffixed: "true" + packages: + - dask-cuda[cu12]==25.10.*,>=0.0.0a0 + - matrix: + packages: + - *dask_cuda_unsuffixed depends_on_dask_cudf: common: - output_types: conda @@ -664,6 +697,21 @@ dependencies: packages: - librmm-cu12==25.10.*,>=0.0.0a0 - {matrix: null, packages: [*librmm_unsuffixed]} + depends_on_numba_cuda: + common: + - output_types: [conda] + packages: + - numba-cuda>=0.19.1,<0.20.0a0 + specific: + - output_types: [requirements, pyproject] + matrices: + - matrix: + cuda: "12.*" + packages: + - numba-cuda[cu12]>=0.19.1,<0.20.0a0 + - matrix: + packages: + - numba-cuda>=0.19.1,<0.20.0a0 depends_on_pylibraft: common: - output_types: conda diff --git a/docs/source/supported_versions.rst b/docs/source/supported_versions.rst index c771606622..3e65f903bb 100644 --- a/docs/source/supported_versions.rst +++ b/docs/source/supported_versions.rst @@ -14,7 +14,7 @@ The following dependencies are required for the cuML library: * **scikit-learn**: >=1.4 * **scipy**: >=1.8.0 * **numba**: >=0.59.1,<0.62.0a0 -* **cupy**: cupy-cuda12x>=12.0.0 +* **cupy**: cupy-cuda12x>=13.6.0 (CUDA 12) * **treelite**: ==4.4.1 diff --git a/python/cuml/README.md b/python/cuml/README.md index c9bbd831ec..90b2fa009c 100644 --- a/python/cuml/README.md +++ b/python/cuml/README.md @@ -55,13 +55,13 @@ cuML's convenience [development yaml files](https://github.com/rapidsai/cuml/tre To build cuML's Python package, the following dependencies are required: - cudatoolkit version corresponding to system CUDA toolkit -- cython >= 0.29, < 0.30 +- cython >=3.0.0 - numpy -- cmake >= 3.14 + cmake >=3.30.4 - cudf version matching the cuML version - libcuml version matching the cuML version - libcuml={{ version }} -- cupy>=7.8.0,<12.0.0a0 +- cupy >=13.6.0 - joblib >=0.11 Packages required for multigpu algorithms*: diff --git a/python/cuml/pyproject.toml b/python/cuml/pyproject.toml index 8d6974ce89..d7cc868e7e 100644 --- a/python/cuml/pyproject.toml +++ b/python/cuml/pyproject.toml @@ -93,13 +93,14 @@ requires-python = ">=3.10" dependencies = [ "cuda-python", "cudf==25.10.*,>=0.0.0a0", - "cupy-cuda12x>=12.0.0", + "cupy-cuda12x>=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>=0.59.1,<0.62.0a0", + "numba-cuda>=0.19.1,<0.20.0a0", + "numba>=0.60.0,<0.62.0a0", "numpy>=1.23,<3.0a0", "nvidia-cublas", "nvidia-cufft", @@ -133,8 +134,8 @@ test = [ "hypothesis>=6.0,<7", "nltk", "numpydoc<1.9", + "nvidia-ml-py>=12.560.30", "pynndescent", - "pynvml>=12.0.0,<13.0.0a0", "pytest", "pytest-benchmark", "pytest-cases",