Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:Rapidsai Cuml Dependencies

From Leeroopedia


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 dependencies
  • devcontainers -- Same as all but excluding xgboost (built from source in devcontainers)
  • cpp_all -- C++ only dependencies for x86_64
  • clang_tidy -- Dependencies for static analysis
  • test_cpp, test_python, test_python_dask, test_notebooks -- Test-specific environments
  • py_build_cuml, py_run_cuml, py_test_cuml -- pyproject.toml sections for the Python package
  • py_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 nvcc
  • py_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, rich
  • cuda -- 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 support
  • test_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

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

Related Pages

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment