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-intelex on 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_proba or 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 comparisonscikit-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 comparisonPyPIThe 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 comparisonSame software on different machines.
Models core-count scalabilityHow a single fit scales with more CPU cores.
RandomizedSearchCV outer-parallelism scalabilitySpeed-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 breakdownFit 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)