This site tracks scikit-learn's performance across machines, builds and accelerated backends. It shows which workloads benefit from scikit-learn-intelex or an Array API backend, and when a different BLASBasic Linear Algebra Subprograms: the library that runs the matrix and vector products of NumPy and SciPy. OpenBLAS and MKL are two implementations of it./OpenMPStandard for running the loops of compiled code on several threads. scikit-learn's Cython code (HistGradientBoosting, KMeans, ...) uses it. buildOne packaging of the same scikit-learn version. Here, builds differ by their BLAS and OpenMP libraries. or machine changes anything. Most dashboards below vary one of these (implementationCode that runs a given estimator: stock scikit-learn, scikit-learn-intelex or an Array API backend., build or hardware) and keep the others fixed. The scalability ones look at how a fit speeds up with more CPU coresOne hardware core of the CPU. With SMT, it shows up as two logical CPUs.. Each dashboard explains how to read it in its own intro.
Overall findings:
-
On the benchmarked cases,
scikit-learn-intelexon CPUs is the most consistently fast option among the currently benchmarked set of options, especially for fitting tree-based models. Other backends and builds help in narrower, workload-specific cases.Note that scikit-learn-intelex only accelerates a subset of estimators and parameters (see its supported algorithms). Its behavior can also differ from scikit-learn, for instance in best-first tree growth, multiclass
predict_probaor missing values at predict time. These gaps are actively worked on. - For linear models, a good option for improved performance is simply to pick the MKL conda-forge buildIntel's Math Kernel Library (oneMKL): a BLAS implementation tuned for Intel CPUs, available as a conda-forge build option. of scikit-learn, instead of the PyPIThe Python Package Index, where pip installs packages from. Its scikit-learn wheels bundle their own OpenMP runtime, and NumPy and SciPy bundle OpenBLAS. one.
- Using a bigger machine doesn't help a lot for a single fit for most models except random forests and alike. But it helps a lot for multiple parallelized fits, typically for hyper-parameter tuning workloads.
Dashboards
| Software/implementations comparison | scikit-learn-intelex and Array APIStandard API shared by array libraries (NumPy, PyTorch, CuPy, dpnp). With it, some scikit-learn estimators run directly on these libraries' arrays, including on GPU. backends vs stock scikit-learn. |
| Builds comparison | PyPIThe Python Package Index, where pip installs packages from. Its scikit-learn wheels bundle their own OpenMP runtime, and NumPy and SciPy bundle OpenBLAS. vs conda-forgeCommunity-maintained channel of conda packages. Its scikit-learn can be installed with different BLAS and OpenMP libraries. BLAS/OpenMP buildsOne packaging of the same scikit-learn version. Here, builds differ by their BLAS and OpenMP libraries. of scikit-learn. |
| Hardware comparison | Same software on different machines. |
| Models core-count scalability | How a single fit scales with more CPU cores. |
| RandomizedSearchCV outer-parallelism scalability | Speed-upBaseline time divided by the compared time: 2x is twice as fast as the baseline, 0.5x twice as slow. from evaluating search candidatesHyperparameter combinations tried by the search. Each one is fitted and scored on every cross-validation split. in parallel. |
| HistGradientBoosting thread-scalability breakdown | Fit time per phase as the thread count grows. This is mostly an investigation for scikit-learn developers. |
Benchmark hardware
Intel Core Ultra laptop
Hardware
CPU
Intel(R) Core(TM) Ultra X7 358H
X86_64, 16 physical cores, 16 logical CPUs
31 GB RAM
$1,299, released 2026
GPU(s)
level_zero:gpu:0: Intel(R) Arc(TM) B390 GPU (29 GB, integrated, priced with the CPU)
High-end Intel Xeon server
Hardware
CPU
Intel(R) Xeon(R) 6787P
X86_64, 172 physical cores, 344 logical CPUs
499 GB RAM
$11,648, released 2025
GPU(s)
No GPU detected.
Apple M4 laptop
Hardware
CPU
Apple M4
ARM_8, 10 physical cores, 10 logical CPUs
32 GB RAM
$1,599, released 2024
GPU(s)
mps: Apple M4 GPU (32 GB, integrated, priced with the CPU)
CUDA L4 GPU VM
Hardware
CPU
AMD EPYC 7R13 Processor
X86_64, 2 physical cores, 4 logical CPUs
15 GB RAM
~$1/h (cloud VM), released 2024
GPU(s)
cuda:0: NVIDIA L4 (22 GB, priced with the CPU)