Skip to main content

cuML - RAPIDS ML Algorithms

Project description

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 >=3.30.4
  • cudf version matching the cuML version
  • libcuml version matching the cuML version
  • libcuml={{ version }}
  • cupy >=13.6.0
  • 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

cuml_cu13-26.4.0-cp311-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (6.2 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

cuml_cu13-26.4.0-cp311-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (5.8 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

File details

Details for the file cuml_cu13-26.4.0-cp311-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cuml_cu13-26.4.0-cp311-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6e04df3a9a4cb13cb0f7ad79ba5a56f469dfb31162a3336857ad7381d96cf7cc
MD5 2b45d6c31eb8c4de492b0fef73ec818a
BLAKE2b-256 eeab4b35c27e84f25c11445988354b9034e1b2c5d168f5775ceef56b59bf1422

See more details on using hashes here.

File details

Details for the file cuml_cu13-26.4.0-cp311-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cuml_cu13-26.4.0-cp311-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b11b78fd6c59a02fb8cf22c3c58c00f0f26f3442aaeecf82ad1c4734c3a823e4
MD5 d93ec7fa62ae308e25a62f0285ef8330
BLAKE2b-256 86d8a749fbb3f1fb833fafcf718cb6fa8e9534ef650563a61f3c52cb524c61f2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page