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-smiConfigure 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 syncTo 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.comChoose 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 --versionIf 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.
Also Mentioned In
Get Python tooling updates
Subscribe to the newsletter