Skip to content

How to Install RAPIDS with uv

RAPIDS packages live on NVIDIA’s own package index, not PyPI (see Why Installing GPU Python Packages Is So Complicated for background). Getting uv to find them requires registering that index.

Prerequisites

RAPIDS requires:

  • Linux with glibc >= 2.28 (Ubuntu 20.04+, Debian 10+, Fedora 29+). On Windows, use WSL2 on Windows 11. macOS is not supported.
  • NVIDIA GPU with compute capability 7.0+ (Volta architecture or newer).
  • NVIDIA driver version 525.60.13+ for CUDA 12, or 580.65.06+ for CUDA 13.
  • Python 3.10, 3.11, 3.12, or 3.13.

Check the installed driver version with:

nvidia-smi

Configure the NVIDIA index in pyproject.toml

RAPIDS packages are hosted at https://pypi.nvidia.com. Add this index to pyproject.toml so uv can resolve them:

[[tool.uv.index]]
name = "nvidia"
url = "https://pypi.nvidia.com"

Unlike PyTorch, RAPIDS bakes the CUDA version into the package name (cudf-cu12, cuml-cu13), so there is no need for tool.uv.sources routing. The index registration alone is enough.

Then add the desired RAPIDS packages as dependencies:

[project]
dependencies = [
    "cudf-cu12>=26.2",
    "cuml-cu12>=26.2",
]

Run uv sync to install everything:

uv sync

To restrict uv so that only RAPIDS packages (and their NVIDIA-hosted transitive dependencies) come from the NVIDIA index, add explicit = true:

[[tool.uv.index]]
name = "nvidia"
url = "https://pypi.nvidia.com"
explicit = true

[tool.uv.sources]
cudf-cu12 = { index = "nvidia" }
cuml-cu12 = { index = "nvidia" }

This prevents uv from querying pypi.nvidia.com for unrelated packages. See How to use private package indexes with uv for more on index configuration.

Quick install with uv pip

For a one-off install outside of a project, use the uv pip interface:

uv pip install cudf-cu12 --extra-index-url https://pypi.nvidia.com

Choose between CUDA 12 and CUDA 13

RAPIDS publishes separate packages for each CUDA major version. The suffix in the package name controls which CUDA variant gets installed:

CUDA version Package suffix Example
CUDA 12 -cu12 cudf-cu12, cuml-cu12
CUDA 13 -cu13 cudf-cu13, cuml-cu13

Match the suffix to the CUDA toolkit version on the target machine. Check with:

nvcc --version

If the system has CUDA 12.x, use -cu12 packages. If it has CUDA 13.x, use -cu13. Mixing CUDA versions across packages in the same environment will cause runtime errors.

Consider conda or pixi for mixed GPU stacks

When a project needs RAPIDS alongside other CUDA-dependent libraries like PyTorch, dependency conflicts can arise because each library may pin different versions of shared CUDA runtime packages. The pip/uv ecosystem resolves these packages independently from each index.

conda and pixi handle CUDA as a shared system-level dependency, which avoids these conflicts. If uv resolution fails due to clashing CUDA transitive dependencies, switching to a conda-based workflow may be the more practical path.

Get Python tooling updates

Subscribe to the newsletter
Last updated on

Please submit corrections and feedback...