Extension for Scikit-learn is a seamless way to speed up your Scikit-learn application
1,357
stars
2,761
commits
Python
primary language
Sep 10, 2026
updated
Releases | Documentation | Examples | Support | License
Extension for scikit-learn is a free software AI accelerator designed to deliver up to 100X acceleration to existing workflows from scikit-learn, which is the most widely-used Python library for machine learning on tabular data. This software acceleration is achieved with vector instructions, AI hardware-specific memory optimizations, threading, and optimizations.
With Extension for scikit-learn, you can:
Easiest way to benefit from accelerations from the extension is by patching scikit-learn with it:
Enable CPU optimizations
import numpy as np
from sklearnex import patch_sklearn
patch_sklearn()
from sklearn.cluster import DBSCAN
X = np.array([[1., 2.], [2., 2.], [2., 3.],
[8., 7.], [8., 8.], [25., 80.]], dtype=np.float32)
clustering = DBSCAN(eps=3, min_samples=2).fit(X)
Enable GPU optimizations
Note: executing on GPU has additional system software requirements - see details.
import numpy as np
from sklearnex import patch_sklearn, config_context
patch_sklearn()
from sklearn.cluster import DBSCAN
X = np.array([[1., 2.], [2., 2.], [2., 3.],
[8., 7.], [8., 8.], [25., 80.]], dtype=np.float32)
with config_context(target_offload="gpu:0"):
clustering = DBSCAN(eps=3, min_samples=2).fit(X)
:eyes: Read about other ways to patch scikit-learn.
:eyes: Check out available notebooks for more examples.
Alternatively, all functionalities are also available under a separate module which can be imported directly, without involving any patching.
To run on CPU:
import numpy as np
from sklearnex.cluster import DBSCAN
X = np.array([[1., 2.], [2., 2.], [2., 3.],
[8., 7.], [8., 8.], [25., 80.]], dtype=np.float32)
clustering = DBSCAN(eps=3, min_samples=2).fit(X)
To run on GPU:
import numpy as np
from sklearnex import config_context
from sklearnex.cluster import DBSCAN
X = np.array([[1., 2.], [2., 2.], [2., 3.],
[8., 7.], [8., 8.], [25., 80.]], dtype=np.float32)
with config_context(target_offload="gpu:0"):
clustering = DBSCAN(eps=3, min_samples=2).fit(X)
To install Extension for scikit-learn, run:
pip install scikit-learn-intelex
Package is also offered through other channels such as conda-forge. See all installation instructions in the Installation Guide.
Acceleration in patched scikit-learn classes is achieved by replacing calls to scikit-learn with calls to oneDAL (oneAPI Data Analytics Library) behind the scenes:
We welcome community contributions, check our Contributing Guidelines to learn more.
* The Intel logo, and other Intel marks are trademarks of Intel Corporation or its subsidiaries. Other names and brands may be claimed as the property of others.
(top 30 of 77)
Python
79.1%
C++
18.8%
Extension for Scikit-learn is a seamless way to speed up your Scikit-learn application
1,357
stars
2,761
commits
Python
primary language
Sep 10, 2026
updated
Releases | Documentation | Examples | Support | License
Extension for scikit-learn is a free software AI accelerator designed to deliver up to 100X acceleration to existing workflows from scikit-learn, which is the most widely-used Python library for machine learning on tabular data. This software acceleration is achieved with vector instructions, AI hardware-specific memory optimizations, threading, and optimizations.
With Extension for scikit-learn, you can:
Easiest way to benefit from accelerations from the extension is by patching scikit-learn with it:
Enable CPU optimizations
import numpy as np
from sklearnex import patch_sklearn
patch_sklearn()
from sklearn.cluster import DBSCAN
X = np.array([[1., 2.], [2., 2.], [2., 3.],
[8., 7.], [8., 8.], [25., 80.]], dtype=np.float32)
clustering = DBSCAN(eps=3, min_samples=2).fit(X)
Enable GPU optimizations
Note: executing on GPU has additional system software requirements - see details.
import numpy as np
from sklearnex import patch_sklearn, config_context
patch_sklearn()
from sklearn.cluster import DBSCAN
X = np.array([[1., 2.], [2., 2.], [2., 3.],
[8., 7.], [8., 8.], [25., 80.]], dtype=np.float32)
with config_context(target_offload="gpu:0"):
clustering = DBSCAN(eps=3, min_samples=2).fit(X)
:eyes: Read about other ways to patch scikit-learn.
:eyes: Check out available notebooks for more examples.
Alternatively, all functionalities are also available under a separate module which can be imported directly, without involving any patching.
To run on CPU:
import numpy as np
from sklearnex.cluster import DBSCAN
X = np.array([[1., 2.], [2., 2.], [2., 3.],
[8., 7.], [8., 8.], [25., 80.]], dtype=np.float32)
clustering = DBSCAN(eps=3, min_samples=2).fit(X)
To run on GPU:
import numpy as np
from sklearnex import config_context
from sklearnex.cluster import DBSCAN
X = np.array([[1., 2.], [2., 2.], [2., 3.],
[8., 7.], [8., 8.], [25., 80.]], dtype=np.float32)
with config_context(target_offload="gpu:0"):
clustering = DBSCAN(eps=3, min_samples=2).fit(X)
To install Extension for scikit-learn, run:
pip install scikit-learn-intelex
Package is also offered through other channels such as conda-forge. See all installation instructions in the Installation Guide.
Acceleration in patched scikit-learn classes is achieved by replacing calls to scikit-learn with calls to oneDAL (oneAPI Data Analytics Library) behind the scenes:
We welcome community contributions, check our Contributing Guidelines to learn more.
* The Intel logo, and other Intel marks are trademarks of Intel Corporation or its subsidiaries. Other names and brands may be claimed as the property of others.
(top 30 of 77)
Python
79.1%
C++
18.8%