This dashboard compares machines running the same software. Every buildOne packaging of the same scikit-learn version. Here, builds differ by their BLAS and OpenMP libraries. or implementationCode that runs a given estimator: stock scikit-learn, scikit-learn-intelex or an Array API backend. present on both machines is matched, so a speed-upBaseline time divided by the compared time: 2x is twice as fast as the baseline, 0.5x twice as slow. comes from the hardware.
How to read
Pick a baselineThe reference that speed-ups are computed against. and a comparison machine. The dropdowns only offer CPU vs CPU or GPU vs GPU pairs that have comparable results. Each cell shows the fitTraining a model on data. More in the scikit-learn glossary or predictMaking predictions with a fitted model. More in the scikit-learn glossary speed-up (log scale) per estimator category, one line per build or implementation. The last cell 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 15x 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.
- Hyper-parameter searches are where the server pays off. Running many candidatesHyperparameter combinations tried by the search. Each one is fitted and scored on every cross-validation split. in parallel fills its cores, and it gets through fits ~10x to 15x faster than the laptop, even for the linear models. That is close to the ratio of physical coresOne hardware core of the CPU. With SMT, it shows up as two logical CPUs. (172 vs 16). The gain is smaller for HistGradientBoosting on small datasets. Random forests and extra trees aren't compared yet, because their forest size differs between the two machines.
- 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.3x to 2x slower than the Intel Core Ultra laptop.
Hardware
| Baseline: Intel Core Ultra laptop | Comparison: High-end Intel Xeon server | |
|---|---|---|
| CPU | Intel(R) Core(TM) Ultra X7 358H | Intel(R) Xeon(R) 6787P |
| Architecture | X86_64 | |
| Cores | 16 physical, 16 logical | 172 physical, 344 logical |
| RAM | 31 GB | 499 GB |
| Price | $1,299, released 2026 | $11,648, released 2025 |
| GPU(s) | Intel(R) Arc(TM) B390 GPU (29 GB, integrated) | none |
| Baseline: Intel Core Ultra laptop | Comparison: High-end Intel Xeon server | |
|---|---|---|
| Python | 3.12.14 | |
| scikit-learn | 1.9.1 (conda-forge) | |
| numpy | 2.5.3 (conda-forge) | |
| scipy | 1.18.0 (conda-forge) | |
| pandas | 2.3.3 (conda-forge) | |
| Threadpools | libmkl_rt 2026.1-Product (16 threads) libomp (16 threads) | libmkl_rt 2026.1-Product (172 threads) libomp (344 threads) |
| OpenMP | Intel/LLVM OpenMP (spec 201611) KMP_BLOCKTIME: 0ms | Intel/LLVM OpenMP (spec 201611) KMP_BLOCKTIME: 200ms |
| Full environment | view pixi env JSON | view pixi env JSON |
| Baseline: Intel Core Ultra laptop | Comparison: High-end Intel Xeon server | |
|---|---|---|
| Python | 3.12.14 | |
| scikit-learn | 1.9.1 (pypi) | |
| numpy | 2.5.3 (pypi) | |
| scipy | 1.18.1 (pypi) | |
| pandas | 2.3.3 (pypi) | |
| Threadpools | libgomp (16 threads) libscipy_openblas 0.3.31.dev (16 threads) libscipy_openblas 0.3.34.106.0 (16 threads) | libgomp (344 threads) libscipy_openblas 0.3.31.dev (64 threads) libscipy_openblas 0.3.34.106.0 (64 threads) |
| OpenMP | GNU libgomp (OpenMP 4.5) GOMP_SPINCOUNT: 300000 | |
| Full environment | view pixi env JSON | view pixi env JSON |
| Baseline: Intel Core Ultra laptop | Comparison: High-end Intel Xeon server | |
|---|---|---|
| Python | 3.12.14 | |
| scikit-learn | 1.9.1 (pypi) | |
| torch | 2.14.0+cpu (pypi) | |
| Threadpools | libgomp (16 threads) libscipy_openblas 0.3.31.dev (16 threads) libscipy_openblas 0.3.34.106.0 (16 threads) | libgomp (344 threads) libscipy_openblas 0.3.31.dev (64 threads) libscipy_openblas 0.3.34.106.0 (64 threads) |
| OpenMP | GNU libgomp (OpenMP 4.5) GOMP_SPINCOUNT: 300000 | |
| Full environment | view pixi env JSON | view pixi env JSON |
| Baseline: Intel Core Ultra laptop | Comparison: High-end Intel Xeon server | |
|---|---|---|
| Python | 3.12.14 | |
| scikit-learn | 1.8.0 (conda-forge) | |
| scikit_learn_intelex | 2026.1.0 (pypi) | |
| daal | 2026.1.0 (pypi) | |
| Threadpools | libgomp (16 threads) libopenblas 0.3.34 (16 threads) | libgomp (344 threads) libopenblas 0.3.34 (128 threads) |
| OpenMP | GNU libgomp (OpenMP 5.2) GOMP_SPINCOUNT: 1 | GNU libgomp (OpenMP 5.2) GOMP_SPINCOUNT: 300000 |
| Full environment | view pixi env JSON | view pixi env JSON |
linear - fit time - 47 cases
linear - predict time - 47 cases
Detailed results
tree-based - fit time - 94 cases
tree-based - predict time - 94 cases
Detailed results
clustering - fit time - 0 cases
clustering - predict time - 0 cases
RandomizedSearchCV from the hyper-parameter search dashboard. Time per fit over the whole search, with each machine at its fastest outer n_jobsParameter setting how many jobs scikit-learn runs in parallel with joblib. -1 means one per CPU. More in the scikit-learn glossary. The search size scales with the machine (2 candidatesHyperparameter combinations tried by the search. Each one is fitted and scored on every cross-validation split. per core on the laptop, 1 on the server), so this is the speed-up for a search big enough to fill each machine. Searches whose data or forest size differs between the two machines are left out.
hyper-parameter search - fit time - 6 cases
Detailed results
Hardware
| Baseline: Intel Core Ultra laptop | Comparison: Apple M4 laptop | |
|---|---|---|
| CPU | Intel(R) Core(TM) Ultra X7 358H | Apple M4 |
| Architecture | X86_64 | ARM_8 |
| Cores | 16 physical, 16 logical | 10 physical, 10 logical |
| RAM | 31 GB | 32 GB |
| Price | $1,299, released 2026 | $1,599, released 2024 |
| GPU(s) | Intel(R) Arc(TM) B390 GPU (29 GB, integrated) | Apple M4 GPU (32 GB, integrated) |
| Baseline: Intel Core Ultra laptop | Comparison: Apple M4 laptop | |
|---|---|---|
| Python | 3.12.14 | |
| scikit-learn | 1.9.1 (pypi) | |
| numpy | 2.5.3 (pypi) | |
| scipy | 1.18.1 (pypi) | |
| pandas | 2.3.3 (pypi) | |
| Threadpools | libgomp (16 threads) libscipy_openblas 0.3.31.dev (16 threads) libscipy_openblas 0.3.34.106.0 (16 threads) | libomp (10 threads) libscipy_openblas 0.3.31.dev (10 threads) libscipy_openblas 0.3.34.106.0 (10 threads) |
| OpenMP | GNU libgomp (OpenMP 4.5) GOMP_SPINCOUNT: 300000 | Intel/LLVM OpenMP (spec 201611) KMP_BLOCKTIME: 200 |
| Full environment | view pixi env JSON | view pixi env JSON |
linear - fit time - 44 cases
linear - predict time - 44 cases
Detailed results
tree-based - fit time - 94 cases
tree-based - predict time - 94 cases
Detailed results
clustering - fit time - 8 cases
clustering - predict time - 8 cases
Detailed results
Hardware
| Baseline: Intel Core Ultra laptop | Comparison: CUDA L4 GPU VM | |
|---|---|---|
| CPU | Intel(R) Core(TM) Ultra X7 358H | AMD EPYC 7R13 Processor |
| Architecture | X86_64 | |
| Cores | 16 physical, 16 logical | 2 physical, 4 logical |
| RAM | 31 GB | 15 GB |
| Price | $1,299, released 2026 | ~$1/h (cloud VM), released 2024 |
| GPU(s) | Intel(R) Arc(TM) B390 GPU (29 GB, integrated) | NVIDIA L4 (22 GB) |
| Baseline: Intel Core Ultra laptop | Comparison: CUDA L4 GPU VM | |
|---|---|---|
| Python | 3.12.14 | |
| scikit-learn | 1.9.1 (pypi) | |
| numpy | 2.5.3 (pypi) | |
| scipy | 1.18.1 (pypi) | |
| pandas | 2.3.3 (pypi) | |
| Threadpools | libgomp (16 threads) libscipy_openblas 0.3.31.dev (16 threads) libscipy_openblas 0.3.34.106.0 (16 threads) | libgomp (4 threads) libscipy_openblas 0.3.31.dev (4 threads) libscipy_openblas 0.3.34.106.0 (4 threads) |
| OpenMP | GNU libgomp (OpenMP 4.5) GOMP_SPINCOUNT: 300000 | |
| Full environment | view pixi env JSON | view pixi env JSON |
linear - fit time - 34 cases
linear - predict time - 34 cases
Detailed results
tree-based - fit time - 92 cases
tree-based - predict time - 92 cases
Detailed results
clustering - fit time - 8 cases
clustering - predict time - 8 cases
Detailed results
Hardware
| Baseline: High-end Intel Xeon server | Comparison: Intel Core Ultra laptop | |
|---|---|---|
| CPU | Intel(R) Xeon(R) 6787P | Intel(R) Core(TM) Ultra X7 358H |
| Architecture | X86_64 | |
| Cores | 172 physical, 344 logical | 16 physical, 16 logical |
| RAM | 499 GB | 31 GB |
| Price | $11,648, released 2025 | $1,299, released 2026 |
| GPU(s) | none | Intel(R) Arc(TM) B390 GPU (29 GB, integrated) |
| Baseline: High-end Intel Xeon server | Comparison: Intel Core Ultra laptop | |
|---|---|---|
| Python | 3.12.14 | |
| scikit-learn | 1.9.1 (conda-forge) | |
| numpy | 2.5.3 (conda-forge) | |
| scipy | 1.18.0 (conda-forge) | |
| pandas | 2.3.3 (conda-forge) | |
| Threadpools | libmkl_rt 2026.1-Product (172 threads) libomp (344 threads) | libmkl_rt 2026.1-Product (16 threads) libomp (16 threads) |
| OpenMP | Intel/LLVM OpenMP (spec 201611) KMP_BLOCKTIME: 200ms | Intel/LLVM OpenMP (spec 201611) KMP_BLOCKTIME: 0ms |
| Full environment | view pixi env JSON | view pixi env JSON |
| Baseline: High-end Intel Xeon server | Comparison: Intel Core Ultra laptop | |
|---|---|---|
| Python | 3.12.14 | |
| scikit-learn | 1.9.1 (pypi) | |
| numpy | 2.5.3 (pypi) | |
| scipy | 1.18.1 (pypi) | |
| pandas | 2.3.3 (pypi) | |
| Threadpools | libgomp (344 threads) libscipy_openblas 0.3.31.dev (64 threads) libscipy_openblas 0.3.34.106.0 (64 threads) | libgomp (16 threads) libscipy_openblas 0.3.31.dev (16 threads) libscipy_openblas 0.3.34.106.0 (16 threads) |
| OpenMP | GNU libgomp (OpenMP 4.5) GOMP_SPINCOUNT: 300000 | |
| Full environment | view pixi env JSON | view pixi env JSON |
| Baseline: High-end Intel Xeon server | Comparison: Intel Core Ultra laptop | |
|---|---|---|
| Python | 3.12.14 | |
| scikit-learn | 1.9.1 (pypi) | |
| torch | 2.14.0+cpu (pypi) | |
| Threadpools | libgomp (344 threads) libscipy_openblas 0.3.31.dev (64 threads) libscipy_openblas 0.3.34.106.0 (64 threads) | libgomp (16 threads) libscipy_openblas 0.3.31.dev (16 threads) libscipy_openblas 0.3.34.106.0 (16 threads) |
| OpenMP | GNU libgomp (OpenMP 4.5) GOMP_SPINCOUNT: 300000 | |
| Full environment | view pixi env JSON | view pixi env JSON |
| Baseline: High-end Intel Xeon server | Comparison: Intel Core Ultra laptop | |
|---|---|---|
| Python | 3.12.14 | |
| scikit-learn | 1.8.0 (conda-forge) | |
| scikit_learn_intelex | 2026.1.0 (pypi) | |
| daal | 2026.1.0 (pypi) | |
| Threadpools | libgomp (344 threads) libopenblas 0.3.34 (128 threads) | libgomp (16 threads) libopenblas 0.3.34 (16 threads) |
| OpenMP | GNU libgomp (OpenMP 5.2) GOMP_SPINCOUNT: 300000 | GNU libgomp (OpenMP 5.2) GOMP_SPINCOUNT: 1 |
| Full environment | view pixi env JSON | view pixi env JSON |
linear - fit time - 47 cases
linear - predict time - 47 cases
Detailed results
tree-based - fit time - 94 cases
tree-based - predict time - 94 cases
Detailed results
clustering - fit time - 0 cases
clustering - predict time - 0 cases
RandomizedSearchCV from the hyper-parameter search dashboard. Time per fit over the whole search, with each machine at its fastest outer n_jobsParameter setting how many jobs scikit-learn runs in parallel with joblib. -1 means one per CPU. More in the scikit-learn glossary. The search size scales with the machine (2 candidatesHyperparameter combinations tried by the search. Each one is fitted and scored on every cross-validation split. per core on the laptop, 1 on the server), so this is the speed-up for a search big enough to fill each machine. Searches whose data or forest size differs between the two machines are left out.
hyper-parameter search - fit time - 6 cases
Detailed results
Hardware
| Baseline: High-end Intel Xeon server | Comparison: Apple M4 laptop | |
|---|---|---|
| CPU | Intel(R) Xeon(R) 6787P | Apple M4 |
| Architecture | X86_64 | ARM_8 |
| Cores | 172 physical, 344 logical | 10 physical, 10 logical |
| RAM | 499 GB | 32 GB |
| Price | $11,648, released 2025 | $1,599, released 2024 |
| GPU(s) | none | Apple M4 GPU (32 GB, integrated) |
| Baseline: High-end Intel Xeon server | Comparison: Apple M4 laptop | |
|---|---|---|
| Python | 3.12.14 | |
| scikit-learn | 1.9.1 (pypi) | |
| numpy | 2.5.3 (pypi) | |
| scipy | 1.18.1 (pypi) | |
| pandas | 2.3.3 (pypi) | |
| Threadpools | libgomp (344 threads) libscipy_openblas 0.3.31.dev (64 threads) libscipy_openblas 0.3.34.106.0 (64 threads) | libomp (10 threads) libscipy_openblas 0.3.31.dev (10 threads) libscipy_openblas 0.3.34.106.0 (10 threads) |
| OpenMP | GNU libgomp (OpenMP 4.5) GOMP_SPINCOUNT: 300000 | Intel/LLVM OpenMP (spec 201611) KMP_BLOCKTIME: 200 |
| Full environment | view pixi env JSON | view pixi env JSON |
linear - fit time - 44 cases
linear - predict time - 44 cases
Detailed results
tree-based - fit time - 94 cases
tree-based - predict time - 94 cases
Detailed results
clustering - fit time - 0 cases
clustering - predict time - 0 cases
Hardware
| Baseline: High-end Intel Xeon server | Comparison: CUDA L4 GPU VM | |
|---|---|---|
| CPU | Intel(R) Xeon(R) 6787P | AMD EPYC 7R13 Processor |
| Architecture | X86_64 | |
| Cores | 172 physical, 344 logical | 2 physical, 4 logical |
| RAM | 499 GB | 15 GB |
| Price | $11,648, released 2025 | ~$1/h (cloud VM), released 2024 |
| GPU(s) | none | NVIDIA L4 (22 GB) |
| Baseline: High-end Intel Xeon server | Comparison: CUDA L4 GPU VM | |
|---|---|---|
| Python | 3.12.14 | |
| scikit-learn | 1.9.1 (pypi) | |
| numpy | 2.5.3 (pypi) | |
| scipy | 1.18.1 (pypi) | |
| pandas | 2.3.3 (pypi) | |
| Threadpools | libgomp (344 threads) libscipy_openblas 0.3.31.dev (64 threads) libscipy_openblas 0.3.34.106.0 (64 threads) | libgomp (4 threads) libscipy_openblas 0.3.31.dev (4 threads) libscipy_openblas 0.3.34.106.0 (4 threads) |
| OpenMP | GNU libgomp (OpenMP 4.5) GOMP_SPINCOUNT: 300000 | |
| Full environment | view pixi env JSON | view pixi env JSON |
linear - fit time - 34 cases
linear - predict time - 34 cases
Detailed results
tree-based - fit time - 92 cases
tree-based - predict time - 92 cases
Detailed results
clustering - fit time - 0 cases
clustering - predict time - 0 cases
Hardware
| Baseline: Apple M4 laptop | Comparison: Intel Core Ultra laptop | |
|---|---|---|
| CPU | Apple M4 | Intel(R) Core(TM) Ultra X7 358H |
| Architecture | ARM_8 | X86_64 |
| Cores | 10 physical, 10 logical | 16 physical, 16 logical |
| RAM | 32 GB | 31 GB |
| Price | $1,599, released 2024 | $1,299, released 2026 |
| GPU(s) | Apple M4 GPU (32 GB, integrated) | Intel(R) Arc(TM) B390 GPU (29 GB, integrated) |
| Baseline: Apple M4 laptop | Comparison: Intel Core Ultra laptop | |
|---|---|---|
| Python | 3.12.14 | |
| scikit-learn | 1.9.1 (pypi) | |
| numpy | 2.5.3 (pypi) | |
| scipy | 1.18.1 (pypi) | |
| pandas | 2.3.3 (pypi) | |
| Threadpools | libomp (10 threads) libscipy_openblas 0.3.31.dev (10 threads) libscipy_openblas 0.3.34.106.0 (10 threads) | libgomp (16 threads) libscipy_openblas 0.3.31.dev (16 threads) libscipy_openblas 0.3.34.106.0 (16 threads) |
| OpenMP | Intel/LLVM OpenMP (spec 201611) KMP_BLOCKTIME: 200 | GNU libgomp (OpenMP 4.5) GOMP_SPINCOUNT: 300000 |
| Full environment | view pixi env JSON | view pixi env JSON |
linear - fit time - 44 cases
linear - predict time - 44 cases
Detailed results
tree-based - fit time - 94 cases
tree-based - predict time - 94 cases
Detailed results
clustering - fit time - 8 cases
clustering - predict time - 8 cases
Detailed results
Hardware
| Baseline: Apple M4 laptop | Comparison: High-end Intel Xeon server | |
|---|---|---|
| CPU | Apple M4 | Intel(R) Xeon(R) 6787P |
| Architecture | ARM_8 | X86_64 |
| Cores | 10 physical, 10 logical | 172 physical, 344 logical |
| RAM | 32 GB | 499 GB |
| Price | $1,599, released 2024 | $11,648, released 2025 |
| GPU(s) | Apple M4 GPU (32 GB, integrated) | none |
| Baseline: Apple M4 laptop | Comparison: High-end Intel Xeon server | |
|---|---|---|
| Python | 3.12.14 | |
| scikit-learn | 1.9.1 (pypi) | |
| numpy | 2.5.3 (pypi) | |
| scipy | 1.18.1 (pypi) | |
| pandas | 2.3.3 (pypi) | |
| Threadpools | libomp (10 threads) libscipy_openblas 0.3.31.dev (10 threads) libscipy_openblas 0.3.34.106.0 (10 threads) | libgomp (344 threads) libscipy_openblas 0.3.31.dev (64 threads) libscipy_openblas 0.3.34.106.0 (64 threads) |
| OpenMP | Intel/LLVM OpenMP (spec 201611) KMP_BLOCKTIME: 200 | GNU libgomp (OpenMP 4.5) GOMP_SPINCOUNT: 300000 |
| Full environment | view pixi env JSON | view pixi env JSON |
linear - fit time - 44 cases
linear - predict time - 44 cases
Detailed results
tree-based - fit time - 94 cases
tree-based - predict time - 94 cases
Detailed results
clustering - fit time - 0 cases
clustering - predict time - 0 cases
Hardware
| Baseline: Apple M4 laptop | Comparison: CUDA L4 GPU VM | |
|---|---|---|
| CPU | Apple M4 | AMD EPYC 7R13 Processor |
| Architecture | ARM_8 | X86_64 |
| Cores | 10 physical, 10 logical | 2 physical, 4 logical |
| RAM | 32 GB | 15 GB |
| Price | $1,599, released 2024 | ~$1/h (cloud VM), released 2024 |
| GPU(s) | Apple M4 GPU (32 GB, integrated) | NVIDIA L4 (22 GB) |
| Baseline: Apple M4 laptop | Comparison: CUDA L4 GPU VM | |
|---|---|---|
| Python | 3.12.14 | |
| scikit-learn | 1.9.1 (pypi) | |
| numpy | 2.5.3 (pypi) | |
| scipy | 1.18.1 (pypi) | |
| pandas | 2.3.3 (pypi) | |
| Threadpools | libomp (10 threads) libscipy_openblas 0.3.31.dev (10 threads) libscipy_openblas 0.3.34.106.0 (10 threads) | libgomp (4 threads) libscipy_openblas 0.3.31.dev (4 threads) libscipy_openblas 0.3.34.106.0 (4 threads) |
| OpenMP | Intel/LLVM OpenMP (spec 201611) KMP_BLOCKTIME: 200 | GNU libgomp (OpenMP 4.5) GOMP_SPINCOUNT: 300000 |
| Full environment | view pixi env JSON | view pixi env JSON |
linear - fit time - 34 cases
linear - predict time - 34 cases
Detailed results
tree-based - fit time - 92 cases
tree-based - predict time - 92 cases
Detailed results
clustering - fit time - 8 cases
clustering - predict time - 8 cases
Detailed results
Hardware
| Baseline: CUDA L4 GPU VM | Comparison: Intel Core Ultra laptop | |
|---|---|---|
| CPU | AMD EPYC 7R13 Processor | Intel(R) Core(TM) Ultra X7 358H |
| Architecture | X86_64 | |
| Cores | 2 physical, 4 logical | 16 physical, 16 logical |
| RAM | 15 GB | 31 GB |
| Price | ~$1/h (cloud VM), released 2024 | $1,299, released 2026 |
| GPU(s) | NVIDIA L4 (22 GB) | Intel(R) Arc(TM) B390 GPU (29 GB, integrated) |
| Baseline: CUDA L4 GPU VM | Comparison: Intel Core Ultra laptop | |
|---|---|---|
| Python | 3.12.14 | |
| scikit-learn | 1.9.1 (pypi) | |
| numpy | 2.5.3 (pypi) | |
| scipy | 1.18.1 (pypi) | |
| pandas | 2.3.3 (pypi) | |
| Threadpools | libgomp (4 threads) libscipy_openblas 0.3.31.dev (4 threads) libscipy_openblas 0.3.34.106.0 (4 threads) | libgomp (16 threads) libscipy_openblas 0.3.31.dev (16 threads) libscipy_openblas 0.3.34.106.0 (16 threads) |
| OpenMP | GNU libgomp (OpenMP 4.5) GOMP_SPINCOUNT: 300000 | |
| Full environment | view pixi env JSON | view pixi env JSON |
linear - fit time - 34 cases
linear - predict time - 34 cases
Detailed results
tree-based - fit time - 92 cases
tree-based - predict time - 92 cases
Detailed results
clustering - fit time - 8 cases
clustering - predict time - 8 cases
Detailed results
Hardware
| Baseline: CUDA L4 GPU VM | Comparison: High-end Intel Xeon server | |
|---|---|---|
| CPU | AMD EPYC 7R13 Processor | Intel(R) Xeon(R) 6787P |
| Architecture | X86_64 | |
| Cores | 2 physical, 4 logical | 172 physical, 344 logical |
| RAM | 15 GB | 499 GB |
| Price | ~$1/h (cloud VM), released 2024 | $11,648, released 2025 |
| GPU(s) | NVIDIA L4 (22 GB) | none |
| Baseline: CUDA L4 GPU VM | Comparison: High-end Intel Xeon server | |
|---|---|---|
| Python | 3.12.14 | |
| scikit-learn | 1.9.1 (pypi) | |
| numpy | 2.5.3 (pypi) | |
| scipy | 1.18.1 (pypi) | |
| pandas | 2.3.3 (pypi) | |
| Threadpools | libgomp (4 threads) libscipy_openblas 0.3.31.dev (4 threads) libscipy_openblas 0.3.34.106.0 (4 threads) | libgomp (344 threads) libscipy_openblas 0.3.31.dev (64 threads) libscipy_openblas 0.3.34.106.0 (64 threads) |
| OpenMP | GNU libgomp (OpenMP 4.5) GOMP_SPINCOUNT: 300000 | |
| Full environment | view pixi env JSON | view pixi env JSON |
linear - fit time - 34 cases
linear - predict time - 34 cases
Detailed results
tree-based - fit time - 92 cases
tree-based - predict time - 92 cases
Detailed results
clustering - fit time - 0 cases
clustering - predict time - 0 cases
Hardware
| Baseline: CUDA L4 GPU VM | Comparison: Apple M4 laptop | |
|---|---|---|
| CPU | AMD EPYC 7R13 Processor | Apple M4 |
| Architecture | X86_64 | ARM_8 |
| Cores | 2 physical, 4 logical | 10 physical, 10 logical |
| RAM | 15 GB | 32 GB |
| Price | ~$1/h (cloud VM), released 2024 | $1,599, released 2024 |
| GPU(s) | NVIDIA L4 (22 GB) | Apple M4 GPU (32 GB, integrated) |
| Baseline: CUDA L4 GPU VM | Comparison: Apple M4 laptop | |
|---|---|---|
| Python | 3.12.14 | |
| scikit-learn | 1.9.1 (pypi) | |
| numpy | 2.5.3 (pypi) | |
| scipy | 1.18.1 (pypi) | |
| pandas | 2.3.3 (pypi) | |
| Threadpools | libgomp (4 threads) libscipy_openblas 0.3.31.dev (4 threads) libscipy_openblas 0.3.34.106.0 (4 threads) | libomp (10 threads) libscipy_openblas 0.3.31.dev (10 threads) libscipy_openblas 0.3.34.106.0 (10 threads) |
| OpenMP | GNU libgomp (OpenMP 4.5) GOMP_SPINCOUNT: 300000 | Intel/LLVM OpenMP (spec 201611) KMP_BLOCKTIME: 200 |
| Full environment | view pixi env JSON | view pixi env JSON |
linear - fit time - 34 cases
linear - predict time - 34 cases
Detailed results
tree-based - fit time - 92 cases
tree-based - predict time - 92 cases
Detailed results
clustering - fit time - 8 cases
clustering - predict time - 8 cases
Detailed results
Hardware
| Baseline: Intel Core Ultra laptop GPU | Comparison: Apple M4 laptop GPU | |
|---|---|---|
| CPU | Intel(R) Core(TM) Ultra X7 358H | Apple M4 |
| Architecture | X86_64 | ARM_8 |
| Cores | 16 physical, 16 logical | 10 physical, 10 logical |
| RAM | 31 GB | 32 GB |
| Price | $1,299, released 2026 | $1,599, released 2024 |
| GPU(s) | Intel(R) Arc(TM) B390 GPU (29 GB, integrated) | Apple M4 GPU (32 GB, integrated) |
| Baseline: Intel Core Ultra laptop GPU | Comparison: Apple M4 laptop GPU | |
|---|---|---|
| Python | 3.12.14 | |
| scikit-learn | 1.9.1 (pypi) | |
| torch | 2.14.0+xpu (pypi) | 2.11.0 (pypi) |
| Threadpools | libgomp (16 threads) libscipy_openblas 0.3.31.dev (16 threads) libscipy_openblas 0.3.34.106.0 (16 threads) | libomp (10 threads) libomp (4 threads) libscipy_openblas 0.3.31.dev (10 threads) libscipy_openblas 0.3.34.106.0 (10 threads) |
| OpenMP | GNU libgomp (OpenMP 4.5) GOMP_SPINCOUNT: 300000 | Intel/LLVM OpenMP (spec 201611) KMP_BLOCKTIME: 200 |
| Full environment | view pixi env JSON | view pixi env JSON |
linear - fit time - 27 cases
- Some operations fell back to CPU according to benchmark logs
linear - predict time - 27 cases
- Some operations fell back to CPU according to benchmark logs
Detailed results
tree-based - fit time - 0 cases
tree-based - predict time - 0 cases
clustering - fit time - 0 cases
clustering - predict time - 0 cases
Hardware
| Baseline: Intel Core Ultra laptop GPU | Comparison: NVIDIA L4 | |
|---|---|---|
| CPU | Intel(R) Core(TM) Ultra X7 358H | AMD EPYC 7R13 Processor |
| Architecture | X86_64 | |
| Cores | 16 physical, 16 logical | 2 physical, 4 logical |
| RAM | 31 GB | 15 GB |
| Price | $1,299, released 2026 | ~$1/h (cloud VM), released 2024 |
| GPU(s) | Intel(R) Arc(TM) B390 GPU (29 GB, integrated) | NVIDIA L4 (22 GB) |
| Baseline: Intel Core Ultra laptop GPU | Comparison: NVIDIA L4 | |
|---|---|---|
| Python | 3.12.14 | |
| scikit-learn | 1.9.1 (pypi) | |
| torch | 2.14.0+xpu (pypi) | 2.13.0+cu129 (pypi) |
| Threadpools | libgomp (16 threads) libscipy_openblas 0.3.31.dev (16 threads) libscipy_openblas 0.3.34.106.0 (16 threads) | libgomp (4 threads) libopenblas 0.3.34 (4 threads) libscipy_openblas 0.3.31.dev (4 threads) |
| OpenMP | GNU libgomp (OpenMP 4.5) GOMP_SPINCOUNT: 300000 | |
| Full environment | view pixi env JSON | view pixi env JSON |
linear - fit time - 21 cases
- Some operations fell back to CPU according to benchmark logs
linear - predict time - 21 cases
- Some operations fell back to CPU according to benchmark logs
Detailed results
tree-based - fit time - 0 cases
tree-based - predict time - 0 cases
clustering - fit time - 0 cases
clustering - predict time - 0 cases
Hardware
| Baseline: Apple M4 laptop GPU | Comparison: Intel Core Ultra laptop GPU | |
|---|---|---|
| CPU | Apple M4 | Intel(R) Core(TM) Ultra X7 358H |
| Architecture | ARM_8 | X86_64 |
| Cores | 10 physical, 10 logical | 16 physical, 16 logical |
| RAM | 32 GB | 31 GB |
| Price | $1,599, released 2024 | $1,299, released 2026 |
| GPU(s) | Apple M4 GPU (32 GB, integrated) | Intel(R) Arc(TM) B390 GPU (29 GB, integrated) |
| Baseline: Apple M4 laptop GPU | Comparison: Intel Core Ultra laptop GPU | |
|---|---|---|
| Python | 3.12.14 | |
| scikit-learn | 1.9.1 (pypi) | |
| torch | 2.11.0 (pypi) | 2.14.0+xpu (pypi) |
| Threadpools | libomp (10 threads) libomp (4 threads) libscipy_openblas 0.3.31.dev (10 threads) libscipy_openblas 0.3.34.106.0 (10 threads) | libgomp (16 threads) libscipy_openblas 0.3.31.dev (16 threads) libscipy_openblas 0.3.34.106.0 (16 threads) |
| OpenMP | Intel/LLVM OpenMP (spec 201611) KMP_BLOCKTIME: 200 | GNU libgomp (OpenMP 4.5) GOMP_SPINCOUNT: 300000 |
| Full environment | view pixi env JSON | view pixi env JSON |
linear - fit time - 27 cases
- Some operations fell back to CPU according to benchmark logs
linear - predict time - 27 cases
- Some operations fell back to CPU according to benchmark logs
Detailed results
tree-based - fit time - 0 cases
tree-based - predict time - 0 cases
clustering - fit time - 0 cases
clustering - predict time - 0 cases
Hardware
| Baseline: Apple M4 laptop GPU | Comparison: NVIDIA L4 | |
|---|---|---|
| CPU | Apple M4 | AMD EPYC 7R13 Processor |
| Architecture | ARM_8 | X86_64 |
| Cores | 10 physical, 10 logical | 2 physical, 4 logical |
| RAM | 32 GB | 15 GB |
| Price | $1,599, released 2024 | ~$1/h (cloud VM), released 2024 |
| GPU(s) | Apple M4 GPU (32 GB, integrated) | NVIDIA L4 (22 GB) |
| Baseline: Apple M4 laptop GPU | Comparison: NVIDIA L4 | |
|---|---|---|
| Python | 3.12.14 | |
| scikit-learn | 1.9.1 (pypi) | |
| torch | 2.11.0 (pypi) | 2.13.0+cu129 (pypi) |
| Threadpools | libomp (10 threads) libomp (4 threads) libscipy_openblas 0.3.31.dev (10 threads) libscipy_openblas 0.3.34.106.0 (10 threads) | libgomp (4 threads) libopenblas 0.3.34 (4 threads) libscipy_openblas 0.3.31.dev (4 threads) |
| OpenMP | Intel/LLVM OpenMP (spec 201611) KMP_BLOCKTIME: 200 | GNU libgomp (OpenMP 4.5) GOMP_SPINCOUNT: 300000 |
| Full environment | view pixi env JSON | view pixi env JSON |
linear - fit time - 21 cases
- Some operations fell back to CPU according to benchmark logs
linear - predict time - 21 cases
- Some operations fell back to CPU according to benchmark logs
Detailed results
tree-based - fit time - 0 cases
tree-based - predict time - 0 cases
clustering - fit time - 0 cases
clustering - predict time - 0 cases
Hardware
| Baseline: NVIDIA L4 | Comparison: Intel Core Ultra laptop GPU | |
|---|---|---|
| CPU | AMD EPYC 7R13 Processor | Intel(R) Core(TM) Ultra X7 358H |
| Architecture | X86_64 | |
| Cores | 2 physical, 4 logical | 16 physical, 16 logical |
| RAM | 15 GB | 31 GB |
| Price | ~$1/h (cloud VM), released 2024 | $1,299, released 2026 |
| GPU(s) | NVIDIA L4 (22 GB) | Intel(R) Arc(TM) B390 GPU (29 GB, integrated) |
| Baseline: NVIDIA L4 | Comparison: Intel Core Ultra laptop GPU | |
|---|---|---|
| Python | 3.12.14 | |
| scikit-learn | 1.9.1 (pypi) | |
| torch | 2.13.0+cu129 (pypi) | 2.14.0+xpu (pypi) |
| Threadpools | libgomp (4 threads) libopenblas 0.3.34 (4 threads) libscipy_openblas 0.3.31.dev (4 threads) | libgomp (16 threads) libscipy_openblas 0.3.31.dev (16 threads) libscipy_openblas 0.3.34.106.0 (16 threads) |
| OpenMP | GNU libgomp (OpenMP 4.5) GOMP_SPINCOUNT: 300000 | |
| Full environment | view pixi env JSON | view pixi env JSON |
linear - fit time - 21 cases
- Some operations fell back to CPU according to benchmark logs
linear - predict time - 21 cases
- Some operations fell back to CPU according to benchmark logs
Detailed results
tree-based - fit time - 0 cases
tree-based - predict time - 0 cases
clustering - fit time - 0 cases
clustering - predict time - 0 cases
Hardware
| Baseline: NVIDIA L4 | Comparison: Apple M4 laptop GPU | |
|---|---|---|
| CPU | AMD EPYC 7R13 Processor | Apple M4 |
| Architecture | X86_64 | ARM_8 |
| Cores | 2 physical, 4 logical | 10 physical, 10 logical |
| RAM | 15 GB | 32 GB |
| Price | ~$1/h (cloud VM), released 2024 | $1,599, released 2024 |
| GPU(s) | NVIDIA L4 (22 GB) | Apple M4 GPU (32 GB, integrated) |
| Baseline: NVIDIA L4 | Comparison: Apple M4 laptop GPU | |
|---|---|---|
| Python | 3.12.14 | |
| scikit-learn | 1.9.1 (pypi) | |
| torch | 2.13.0+cu129 (pypi) | 2.11.0 (pypi) |
| Threadpools | libgomp (4 threads) libopenblas 0.3.34 (4 threads) libscipy_openblas 0.3.31.dev (4 threads) | libomp (10 threads) libomp (4 threads) libscipy_openblas 0.3.31.dev (10 threads) libscipy_openblas 0.3.34.106.0 (10 threads) |
| OpenMP | GNU libgomp (OpenMP 4.5) GOMP_SPINCOUNT: 300000 | Intel/LLVM OpenMP (spec 201611) KMP_BLOCKTIME: 200 |
| Full environment | view pixi env JSON | view pixi env JSON |
linear - fit time - 21 cases
- Some operations fell back to CPU according to benchmark logs
linear - predict time - 21 cases
- Some operations fell back to CPU according to benchmark logs