GPU Accelerated Machine Learning

OPEN BETA: ACCELERATING SCIKIT-LEARN, UMAP,
AND HDBSCAN WITH ZERO CODE CHANGE

Zero Code Change Acceleration

Write your code with the ease and familiarity of scikit-learn, UMAP, or HDBSCAN. Just load cuml.accel and run your code on the GPU for maximum performance.


Algorithms for Every Use Case

Accelerating the most popular estimators for classification, regression, dimensionality reduction, and clustering.

Train Models Faster

Up to 50x faster training times for popular machine learning algorithms. Spend less time waiting and more time optimizing your model.


Device Independent Code

Develop on CPU and deploy on GPUs. Or vice versa. All without any changes to your code.

Bringing GPU Acceleration
to Every scikit-learn User

How to Use It

To accelerate IPython or Jupyter Notebooks, use the magic:

%load_ext cuml.accel
import sklearn
...


To accelerate a Python script, you can use the Python module flag from the command line:

python -m cuml.accel script.py

Or, explicitly enable cuml.accel in your code via import if you can't use command line flags:

import cuml.accel
cuml.accel.install()

import sklearn
...

How It Works

Under the Hood

When you load cuml.accel, importing scikit-learn (or umap-learn or hdbscan) allows cuML to "intercept" estimators from these CPU modules. When you create a new estimator to run a machine learning algorithm, a "proxy estimator" is created instead.

In [1]: %load_ext cuml.accel
In [2]: from sklearn.cluster import KMeans

In [3]: type(KMeans)
Out[3]: cuml.internals.base_helpers.BaseMetaClass;


Estimators that are implemented in cuML will be dispatched to run on the GPU where possible, and fall back to the CPU library otherwise. This applies to scikit-learn operations in your code, as well as third party libraries you may be using.


If a model is constructed on the GPU and then a method is called that is not implemented in cuML, cuml.accel will reconstruct the model on the CPU and gracefully fall back to the equivalent scikit-learn function instead.

Execution Flow

Get Started with
Accelerated Machine Learning

Try Now on Colab

Get started accelerating your machine learning workflows in a free GPU-enabled notebook environment using your Google account. Launch on Colab


cuML's accelerator works smoothly with all of the other RAPIDS libraries. Visit the RAPIDS Quick Start to get started with any RAPIDS library on your favorite platform.

Learn More

cuML-accelerated scikit-learn is in open beta and under active development. It's ready for wide use, but certain estimators come with known issues and limitations. Learn more through the documentation and the release blog


Want to contribute or share feedback, reach out on GitHub