Implementation:Rapidsai Cuml Dependencies
| Knowledge Sources | |
|---|---|
| Domains | Machine_Learning, Build_System |
| Last Updated | 2026-02-08 12:00 GMT |
Overview
The centralized dependency specification file for the cuML project, used by the RAPIDS dependency-file-generator to produce conda environment files, pip requirements, and pyproject.toml dependency sections.
Description
dependencies.yaml is the single source of truth for all build, runtime, test, and documentation dependencies across the cuML project. It is consumed by the RAPIDS dependency-file-generator tool to produce output files for different packaging systems (conda, pip/requirements, pyproject.toml).
The file is organized into three major sections:
files -- Defines named output configurations, each specifying an output type (conda, pyproject, none), matrix parameters (CUDA versions, architectures, Python versions), and a list of include groups. Key file configurations include:
all-- Full conda environment with all dependenciesdevcontainers-- Same asallbut excluding xgboost (built from source in devcontainers)cpp_all-- C++ only dependencies for x86_64clang_tidy-- Dependencies for static analysistest_cpp,test_python,test_python_dask,test_notebooks-- Test-specific environmentspy_build_cuml,py_run_cuml,py_test_cuml-- pyproject.toml sections for the Python packagepy_build_libcuml,py_run_libcuml-- pyproject.toml sections for the C++ wheel
channels -- Specifies conda channels in priority order: rapidsai-nightly, rapidsai, conda-forge.
dependencies -- Defines reusable dependency groups with version constraints. Each group can have common packages and specific matrix-based variants. Key groups include:
common_build-- CMake (>=3.30.4), Ninja, C/C++ compilers, CUDA nvccpy_build_cuml-- Cython (>=3.0.0,<3.2.0), Treelite (>=4.6.1,<5.0.0)py_run_cuml-- NumPy, SciPy, scikit-learn, joblib, numba, packaging, richcuda-- CUDA runtime and math library dev packages (cublas, cufft, curand, cusolver, cusparse)depends_on_*-- RAPIDS ecosystem dependencies (cudf, cupy, libraft, librmm, pylibraft, raft-dask, rmm, libcuvs, rapids-logger)test_python-- Test frameworks (pytest, hypothesis, hdbscan, umap-learn) with oldest/intermediate/nightly dependency matrix supporttest_python_xgboost-- XGBoost with CUDA-suffixed variants for different architectures
The file supports CUDA versions 12.2 through 13.1 and Python versions 3.11 through 3.13.
Usage
This file is used by the dependency-file-generator to create environment files for CI, development, and packaging. It should be updated when adding, removing, or changing version constraints on any dependency.
Code Reference
Source Location
- Repository: Rapidsai_Cuml
- File:
dependencies.yaml
Signature
files:
all:
output: conda
matrix:
cuda: ["12.9", "13.1"]
arch: [x86_64, aarch64]
includes:
- common_build
- cuda
- cuda_version
# ... (30+ include groups)
channels:
- rapidsai-nightly
- rapidsai
- conda-forge
dependencies:
common_build:
common:
- output_types: [conda, requirements, pyproject]
packages:
- cmake>=3.30.4
- ninja
Import
# Used by the RAPIDS dependency-file-generator:
rapids-dependency-file-generator --config dependencies.yaml
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| cuda | Matrix parameter | Yes | CUDA version (e.g., "12.9", "13.1") |
| arch | Matrix parameter | Yes | CPU architecture (x86_64 or aarch64)
|
| py | Matrix parameter | No | Python version (3.11, 3.12, 3.13)
|
| dependencies | Matrix parameter | No | Dependency version strategy (oldest, intermediate, nightly)
|
Outputs
| Name | Type | Description |
|---|---|---|
| Conda environment files | YAML | Generated conda environment specs for CI and development |
| requirements.txt files | Text | Generated pip requirements files |
| pyproject.toml sections | TOML | Generated dependency sections for Python packages |
Usage Examples
# Example: Adding a new runtime dependency
dependencies:
py_run_cuml:
common:
- output_types: [conda, requirements, pyproject]
packages:
- joblib>=0.11
- numba>=0.60.0,<0.62.0
- numpy>=1.23,<3.0
- scipy>=1.13.0
- scikit-learn>=1.5
# Example: CUDA-suffixed dependency for wheels
dependencies:
depends_on_cudf:
specific:
- output_types: [requirements, pyproject]
matrices:
- matrix:
cuda: "12.*"
cuda_suffixed: "true"
packages:
- cudf-cu12==26.4.*,>=0.0.0a0