This dashboard compares machines running the same software. Since the software is fixed, a speed-upBaseline time divided by the compared time: 2x is twice as fast as the baseline, 0.5x twice as slow. In the detailed results, a noisy speed-up is shown as ~1.5x (5-15% spread over the repeats) or as a range like 1.2-1.9x (more than 15%). comes from the hardware.
How to read
Pick a software tab. The CPU and GPU runs of a library are separate
tabs, like sklearn-torch-cpu and sklearn-torch-gpu.
Below it, each machine has a tab describing the machine and its
software environmentOne Pixi environment of this repository: a fixed set of package versions and builds., since versions can differ between machines.
To change the baselineThe reference that speed-ups are computed against., open another machine tab and click "Pick as
baseline".
The plots read like in the software/implementations dashboard, with one color per machine: each point is one benchmark case, and points above the dashed 1x line are faster than the baseline. Marker shapes mean the same.
Random forests and extra trees often have a different forest size on each machine: their times are rescaled to the same size and their metrics aren't compared. KMeans is capped at 64 threads on machines with more than 64 CPUs, to avoid an OpenBLAS crash. The last row compares the time per fit in hyper-parameter searches, where many fits run in parallel.
Findings
On the benchmarked cases:
- The high-end Intel Xeon server mostly helps random forests and extra trees. With scikit-learn, their fit is ~2x to 4x faster than on the Intel Core Ultra laptop. Their predict is close to parity.
- scikit-learn-intelex makes much better use of the server's 172 cores. With it, random forests and extra trees fit ~10x to 12x faster on the server than on the laptop.
- For linear models, the server is often slower than the laptop. A single fit doesn't use many cores well, so the laptop's faster cores probably win.
- HistGradientBoosting results are hard to interpret, because of known scalability issues on laptops with conda-forgeCommunity-maintained channel of conda packages. Its scikit-learn can be installed with different BLAS and OpenMP libraries. builds and on machines with many cores. See scikit-learn#34764 and the HistGradientBoosting thread-scalability breakdown.
- On 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. build, the Apple M4 CPU is ~1.5x to 2x slower than the Intel Core Ultra laptop.