Skip to main content

cuML Python Package

This folder contains the Python and Cython code of the algorithms and ML primitives of cuML, that are distributed in the Python cuML package.

Contents:

Build Configuration

The build system uses setup.py for configuration and building.

cuML's setup.py can be configured through environment variables and command line arguments.

The environment variables are:

Environment variable Possible values Default behavior if not set Behavior
CUDA_HOME path/to/cuda_toolkit Inferred by location of nvcc Optional variable allowing to manually specify location of the CUDA toolkit.
CUML_BUILD_PATH path/to/libcuml_build_folder Looked for in path_to_cuml_repo/cpp/build Optional variable allowing to manually specify location of libcuml build folder.
RAFT_PATH path/to/raft Looked for in path_to_cuml_repo/cpp/build, if not found clone Optional variable allowing to manually specify location of the RAFT Repository.

The command line arguments (i.e. passed alongside setup.py when invoking, for example setup.py --singlegpu) are:

Argument Behavior
clean --all Cleans all Python and Cython artifacts, including pycache folders, .cpp files resulting of cythonization and compiled extensions.
--singlegpu Option to build cuML without multiGPU algorithms. Removes dependency on nccl and ucxx.

RAFT Integration in cuml.raft

RAFT's Python and Cython is located in the RAFT repository. It was designed to be included in projects as opposed to be distributed by itself, so at build time, setup.py creates a symlink from cuML, located in /python/cuml/raft/ to the Python folder of RAFT.

For developers that need to modify RAFT code, please refer to the RAFT Developer Guide for recommendations.

To configure RAFT at build time:

  1. If the environment variable RAFT_PATH points to the RAFT repo, then that will be used.
  2. If there is a libcuml build folder that has cloned RAFT already, setup.py will use that RAFT. Location of this can be configured with the environment variable CUML_BUILD_PATH.
  3. If none of the above happened, then setup.py will clone RAFT and use it directly.

The RAFT Python code gets included in the cuML build and distributable artifacts as if it was always present in the folder structure of cuML.

Build Requirements

cuML's convenience development yaml files includes all dependencies required to build cuML.

To build cuML's Python package, the following dependencies are required:

  • cudatoolkit version corresponding to system CUDA toolkit
  • cython >=3.2.2
  • numpy
  • cmake >=4.0
  • cudf version matching the cuML version
  • libcuml version matching the cuML version
  • libcuml={{ version }}
  • cupy >=14.0.1
  • joblib >=0.11

Packages required for multigpu algorithms*:

  • ucxx version matching the cuML version
  • dask-cudf version matching the cuML version
  • nccl>=2.5
  • rapids-dask-dependency version matching the cuML version
  • this can be avoided with --singlegpu argument flag.

Python Tests

Python tests are based on the pytest library. To run them, from the path_to_cuml/python/ folder, simply type pytest.

Release files for cuml-cu12 26.8.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for cuml-cu12 26.8.0
File Interpreter ABI Platform
cuml_cu12-26.8.0-cp311-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 abi3 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
cuml_cu12-26.8.0-cp311-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 abi3 Linux glibc 2.28+ ARM64, Linux glibc 2.26+ ARM64 Details

Total release size: 12.7 MB

Release files / cuml_cu12-26.8.0-cp311-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL cuml_cu12-26.8.0-cp311-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 6.6 MB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
300eb186f83129026a7643f6959752294217b4c01cf8457f844c891edd0ace7e
BLAKE2b-256 checksum
How to use checksums
96def2f0aecff2220728d9b9499b6cb634704849af3b8d696ad54c6a8587f33d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / cuml_cu12-26.8.0-cp311-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL cuml_cu12-26.8.0-cp311-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 6.1 MB
Tags CPython 3.11 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
caa50c94d67405046285670e2ad548c89a3abd77035292abb1e482c0087dbf9b
BLAKE2b-256 checksum
How to use checksums
55b4662ccd7838723acc0b93b04b09ced0a8de77695a5eaaf5205f69e60f6416
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release history Release notifications | RSS feed

This release

26.8.0 This release

2 release files

25.8.0

1 release file

25.6.0

1 release file

25.4.0

1 release file

25.2.1

1 release file

25.2.0

1 release file

24.12.0

1 release file

24.10.0

1 release file

24.8.0

1 release file

24.6.1

1 release file

24.6.0

1 release file

24.4.0

1 release file

24.2.0

1 release file

23.10.0

1 release file

23.8.0

1 release file

23.6.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page