In [1]:
from sklearn_benchmarks.reporting.hp_match import HpMatchReporting
from sklearn_benchmarks.utils import default_run_dir, default_report_config
from pathlib import Path
import pandas as pd
pd.set_option('display.max_colwidth', None)
pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', None)

scikit-learn-intelex (Intel® oneAPI) vs. scikit-learn

In [2]:
run_dir = default_run_dir()
report_config = default_report_config("scikit_learn_intelex_vs_scikit_learn")
In [3]:
# Parameters
report_config = {
    "other_library": "sklearnex",
    "parameters": {"n_cols": 2},
    "log_scale": True,
    "benchmarking_estimator_parameters": {
        "sklearn_KNeighborsClassifier_brute_force": [
            "n_neighbors",
            "algorithm",
            "n_jobs",
        ],
        "sklearnex_KNeighborsClassifier_brute_force": [],
        "sklearn_KNeighborsClassifier_kd_tree": ["n_neighbors", "algorithm", "n_jobs"],
        "sklearnex_KNeighborsClassifier_kd_tree": [],
        "sklearn_KMeans_tall": [
            "init",
            "algorithm",
            "n_clusters",
            "max_iter",
            "n_init",
            "tol",
        ],
        "sklearnex_KMeans_tall": [],
        "sklearn_KMeans_short": [
            "init",
            "algorithm",
            "n_clusters",
            "max_iter",
            "n_init",
            "tol",
        ],
        "sklearnex_KMeans_short": [],
        "sklearn_LogisticRegression": [
            "penalty",
            "dual",
            "tol",
            "C",
            "fit_intercept",
            "intercept_scaling",
            "class_weight",
            "random_state",
            "solver",
            "max_iter",
            "multi_class",
            "verbose",
            "warm_start",
            "n_jobs",
            "l1_ratio",
        ],
        "sklearnex_LogisticRegression": [],
        "sklearn_LinearRegression": [],
        "sklearnex_LinearRegression": [],
        "sklearn_Ridge": ["alpha"],
        "sklearnex_Ridge": [],
        "sklearn_TSNE": [],
        "sklearnex_TSNE": [],
        "sklearn_PCA": ["n_components"],
        "sklearnex_PCA": [],
        "sklearn_HistGradientBoostingClassifier_best": [
            "learning_rate",
            "n_iter_no_change",
            "max_leaf_nodes",
            "max_bins",
            "min_samples_leaf",
            "max_iter",
        ],
        "sklearn_HistGradientBoostingClassifier": [
            "learning_rate",
            "n_iter_no_change",
            "max_leaf_nodes",
            "max_bins",
            "min_samples_leaf",
            "max_iter",
            "early_stopping",
        ],
        "lightgbm": [
            "learning_rate",
            "num_leaves",
            "max_bin",
            "min_data_in_leaf",
            "bagging_fraction",
            "feature_fraction_bynode",
            "n_estimators",
        ],
        "xgboost": [
            "validate_parameters",
            "tree_method",
            "use_label_encoder",
            "learning_rate",
            "max_leaves",
            "max_bin",
            "min_child_weight",
            "subsample",
            "colsample_bynode",
            "n_estimators",
        ],
        "catboost_lossguide": [
            "allow_writing_files",
            "grow_policy",
            "bootstrap_type",
            "learning_rate",
            "max_leaves",
            "border_count",
            "min_data_in_leaf",
            "subsample",
            "rsm",
            "max_depth",
            "iterations",
        ],
        "catboost_symmetric": [
            "allow_writing_files",
            "grow_policy",
            "bootstrap_type",
            "learning_rate",
            "border_count",
            "min_data_in_leaf",
            "subsample",
            "rsm",
            "max_depth",
            "iterations",
        ],
    },
    "estimators": [
        {
            "title": "KNeighborsClassifier (brute force)",
            "name": "KNeighborsClassifier_brute_force",
            "split_bars_by_parameters": ["n_jobs"],
        },
        {
            "title": "KNeighborsClassifier (KD tree)",
            "name": "KNeighborsClassifier_kd_tree",
            "split_bars_by_parameters": ["n_jobs"],
        },
        {"title": "KMeans (tall)", "name": "KMeans_tall"},
        {"title": "KMeans (short)", "name": "KMeans_short"},
        {"title": "Logistic Regression", "name": "LogisticRegression"},
        {"title": "LinearRegression", "name": "LinearRegression"},
        {"title": "Ridge", "name": "Ridge"},
        {"title": "TSNE", "name": "TSNE"},
        {"title": "PCA", "name": "PCA"},
    ],
}
run_dir = "./results/local/20220316T125727/"
In [4]:
run_dir = Path(run_dir)
In [5]:
reporting = HpMatchReporting(**report_config, run_dir=run_dir)
reporting.make_report()

We assume here there is a perfect match between the hyperparameters of both librairies. For a given set of parameters and a given dataset, we compute the speed-up time scikit-learn / time sklearnex. For instance, a speed-up of 2 means that sklearnex is twice as fast as scikit-learn for a given set of parameters and a given dataset.

KNeighborsClassifier (brute force)

scikit-learn-intelex (2021.20220207.123530) vs. scikit-learn (1.0.2)

Speedup barplots

All estimators share the following parameters: algorithm=brute.

Raw results

fit

function n_samples_train n_samples n_features mean_duration_sklearn std_duration_sklearn iteration_throughput latency n_jobs n_neighbors mean_duration_sklearnex std_duration_sklearnex speedup std_speedup sklearn_profiling sklearnex_profiling
0 fit 100000 100000 100 1.423 0.046 0.056 0.0 -1 1 0.060 0.003 23.516 23.553 Download Download
3 fit 100000 100000 100 1.323 0.014 0.060 0.0 -1 5 0.052 0.000 25.675 25.676 Download Download
6 fit 100000 100000 100 1.415 0.057 0.057 0.0 1 100 0.051 0.000 27.523 27.523 Download Download
9 fit 100000 100000 100 1.398 0.038 0.057 0.0 -1 100 0.056 0.000 24.788 24.788 Download Download
12 fit 100000 100000 100 1.427 0.039 0.056 0.0 1 5 0.052 0.000 27.332 27.333 Download Download
15 fit 100000 100000 100 1.416 0.042 0.056 0.0 1 1 0.057 0.000 24.960 24.960 Download Download
18 fit 100000 100000 2 0.055 0.001 0.029 0.0 -1 1 0.010 0.000 5.277 5.278 Download Download
21 fit 100000 100000 2 0.055 0.000 0.029 0.0 -1 5 0.011 0.000 5.159 5.159 Download Download
24 fit 100000 100000 2 0.055 0.000 0.029 0.0 1 100 0.011 0.000 5.217 5.218 Download Download
27 fit 100000 100000 2 0.055 0.000 0.029 0.0 -1 100 0.010 0.000 5.333 5.334 Download Download
30 fit 100000 100000 2 0.055 0.000 0.029 0.0 1 5 0.010 0.000 5.236 5.237 Download Download
33 fit 100000 100000 2 0.055 0.001 0.029 0.0 1 1 0.010 0.000 5.299 5.301 Download Download

predict

function n_samples_train n_samples n_features mean_duration_sklearn std_duration_sklearn iteration_throughput latency n_jobs n_neighbors mean_duration_sklearnex std_duration_sklearnex speedup std_speedup sklearn_profiling sklearnex_profiling
1 predict 100000 1000 100 3.300 0.133 0.000 0.003 -1 1 0.211 0.002 15.629 15.630 Download Download
2 predict 100000 1 100 0.026 0.003 0.000 0.026 -1 1 0.010 0.002 2.565 2.597 Download Download
4 predict 100000 1000 100 4.061 0.080 0.000 0.004 -1 5 0.218 0.006 18.609 18.616 Download Download
5 predict 100000 1 100 0.028 0.004 0.000 0.028 -1 5 0.009 0.000 3.035 3.036 Download Download
7 predict 100000 1000 100 2.230 0.004 0.000 0.002 1 100 0.267 0.006 8.355 8.357 Download Download
8 predict 100000 1 100 0.023 0.000 0.000 0.023 1 100 0.010 0.000 2.391 2.393 Download Download
10 predict 100000 1000 100 4.241 0.071 0.000 0.004 -1 100 0.276 0.009 15.375 15.384 Download Download
11 predict 100000 1 100 0.029 0.003 0.000 0.029 -1 100 0.010 0.000 2.978 2.980 Download Download
13 predict 100000 1000 100 2.242 0.005 0.000 0.002 1 5 0.225 0.009 9.945 9.953 Download Download
14 predict 100000 1 100 0.024 0.000 0.000 0.024 1 5 0.010 0.001 2.397 2.400 Download Download
16 predict 100000 1000 100 1.390 0.013 0.001 0.001 1 1 0.224 0.013 6.203 6.213 Download Download
17 predict 100000 1 100 0.026 0.007 0.000 0.026 1 1 0.010 0.000 2.662 2.663 Download Download
19 predict 100000 1000 2 2.916 0.090 0.000 0.003 -1 1 0.045 0.002 64.635 64.688 Download Download
20 predict 100000 1 2 0.007 0.002 0.000 0.007 -1 1 0.001 0.000 5.862 5.942 Download Download
22 predict 100000 1000 2 4.063 0.098 0.000 0.004 -1 5 0.039 0.003 104.285 104.533 Download Download
23 predict 100000 1 2 0.007 0.002 0.000 0.007 -1 5 0.001 0.000 6.270 6.318 Download Download
25 predict 100000 1000 2 2.181 0.003 0.000 0.002 1 100 0.084 0.003 25.979 25.992 Download Download
26 predict 100000 1 2 0.003 0.000 0.000 0.003 1 100 0.002 0.000 2.031 2.074 Download Download
28 predict 100000 1000 2 4.005 0.102 0.000 0.004 -1 100 0.084 0.004 47.462 47.517 Download Download
29 predict 100000 1 2 0.007 0.002 0.000 0.007 -1 100 0.001 0.000 5.509 5.594 Download Download
31 predict 100000 1000 2 2.178 0.010 0.000 0.002 1 5 0.038 0.002 57.150 57.210 Download Download
32 predict 100000 1 2 0.003 0.000 0.000 0.003 1 5 0.001 0.000 3.054 3.100 Download Download
34 predict 100000 1000 2 1.232 0.008 0.000 0.001 1 1 0.036 0.003 33.861 33.948 Download Download
35 predict 100000 1 2 0.002 0.000 0.000 0.002 1 1 0.001 0.000 2.269 2.292 Download Download

Profiling traces can be visualized using Perfetto UI.

KNeighborsClassifier (KD tree)

scikit-learn-intelex (2021.20220207.123530) vs. scikit-learn (1.0.2)

Speedup barplots

All estimators share the following parameters: algorithm=kd_tree.

Raw results

fit

function n_samples_train n_samples n_features mean_duration_sklearn std_duration_sklearn iteration_throughput latency n_jobs n_neighbors mean_duration_sklearnex std_duration_sklearnex speedup std_speedup sklearn_profiling sklearnex_profiling
0 fit 1000000 1000000 10 4.174 0.033 0.019 0.0 -1 1 1.030 0.024 4.051 4.052 Download Download
3 fit 1000000 1000000 10 4.110 0.028 0.019 0.0 -1 5 1.018 0.042 4.039 4.043 Download Download
6 fit 1000000 1000000 10 4.086 0.045 0.020 0.0 1 100 0.970 0.019 4.211 4.212 Download Download
9 fit 1000000 1000000 10 4.008 0.031 0.020 0.0 -1 100 1.003 0.028 3.995 3.997 Download Download
12 fit 1000000 1000000 10 4.070 0.016 0.020 0.0 1 5 1.017 0.037 4.001 4.003 Download Download
15 fit 1000000 1000000 10 4.113 0.042 0.019 0.0 1 1 0.970 0.013 4.239 4.239 Download Download
18 fit 1000 1000 2 0.001 0.000 0.025 0.0 -1 1 0.001 0.000 0.503 0.508 Download Download
21 fit 1000 1000 2 0.001 0.000 0.022 0.0 -1 5 0.001 0.000 0.530 0.556 Download Download
24 fit 1000 1000 2 0.001 0.000 0.024 0.0 1 100 0.002 0.000 0.432 0.449 Download Download
27 fit 1000 1000 2 0.001 0.000 0.025 0.0 -1 100 0.002 0.002 0.345 0.486 Download Download
30 fit 1000 1000 2 0.001 0.000 0.021 0.0 1 5 0.001 0.000 0.578 0.593 Download Download
33 fit 1000 1000 2 0.001 0.000 0.025 0.0 1 1 0.001 0.000 0.455 0.457 Download Download

predict

function n_samples_train n_samples n_features mean_duration_sklearn std_duration_sklearn iteration_throughput latency n_jobs n_neighbors mean_duration_sklearnex std_duration_sklearnex speedup std_speedup sklearn_profiling sklearnex_profiling
1 predict 1000000 1000 10 0.528 0.016 0.000 0.001 -1 1 0.132 0.006 4.004 4.008 Download Download
2 predict 1000000 1 10 0.004 0.001 0.000 0.004 -1 1 0.000 0.000 10.363 10.891 Download Download
4 predict 1000000 1000 10 0.974 0.016 0.000 0.001 -1 5 0.225 0.017 4.333 4.346 Download Download
5 predict 1000000 1 10 0.004 0.001 0.000 0.004 -1 5 0.000 0.000 10.519 11.073 Download Download
7 predict 1000000 1000 10 5.494 0.036 0.000 0.005 1 100 0.641 0.021 8.576 8.580 Download Download
8 predict 1000000 1 10 0.004 0.001 0.000 0.004 1 100 0.001 0.000 4.732 4.906 Download Download
10 predict 1000000 1000 10 3.204 0.079 0.000 0.003 -1 100 0.691 0.022 4.637 4.640 Download Download
11 predict 1000000 1 10 0.007 0.001 0.000 0.007 -1 100 0.001 0.000 8.777 9.104 Download Download
13 predict 1000000 1000 10 1.660 0.009 0.000 0.002 1 5 0.228 0.008 7.283 7.287 Download Download
14 predict 1000000 1 10 0.002 0.000 0.000 0.002 1 5 0.001 0.000 3.036 3.202 Download Download
16 predict 1000000 1000 10 0.914 0.052 0.000 0.001 1 1 0.132 0.003 6.944 6.947 Download Download
17 predict 1000000 1 10 0.001 0.000 0.000 0.001 1 1 0.000 0.000 3.264 3.493 Download Download
19 predict 1000 1000 2 0.029 0.002 0.001 0.000 -1 1 0.001 0.000 34.501 36.027 Download Download
20 predict 1000 1 2 0.004 0.001 0.000 0.004 -1 1 0.000 0.000 21.788 25.534 Download Download
22 predict 1000 1000 2 0.033 0.003 0.000 0.000 -1 5 0.001 0.000 26.388 26.778 Download Download
23 predict 1000 1 2 0.003 0.000 0.000 0.003 -1 5 0.000 0.000 9.423 9.893 Download Download
25 predict 1000 1000 2 0.042 0.000 0.000 0.000 1 100 0.006 0.001 6.647 6.706 Download Download
26 predict 1000 1 2 0.001 0.000 0.000 0.001 1 100 0.000 0.000 3.789 4.350 Download Download
28 predict 1000 1000 2 0.044 0.002 0.000 0.000 -1 100 0.006 0.001 7.094 7.146 Download Download
29 predict 1000 1 2 0.003 0.000 0.000 0.003 -1 100 0.000 0.000 10.978 11.982 Download Download
31 predict 1000 1000 2 0.026 0.001 0.001 0.000 1 5 0.001 0.000 25.095 25.537 Download Download
32 predict 1000 1 2 0.001 0.000 0.000 0.001 1 5 0.000 0.000 3.661 4.219 Download Download
34 predict 1000 1000 2 0.024 0.000 0.001 0.000 1 1 0.001 0.000 27.630 29.226 Download Download
35 predict 1000 1 2 0.001 0.000 0.000 0.001 1 1 0.000 0.000 3.612 4.145 Download Download

Profiling traces can be visualized using Perfetto UI.

KMeans (tall)

scikit-learn-intelex (2021.20220207.123530) vs. scikit-learn (1.0.2)

Speedup barplots

All estimators share the following parameters: algorithm=full, n_clusters=3, max_iter=30, n_init=1, tol=1e-16.

Raw results

fit

function n_samples_train n_samples n_features mean_duration_sklearn std_duration_sklearn iteration_throughput latency n_iter init mean_duration_sklearnex std_duration_sklearnex speedup std_speedup sklearn_profiling sklearnex_profiling
0 fit 1000000 1000000 2 0.633 0.013 0.025 0.0 30 random 0.487 0.035 1.299 1.303 Download Download
3 fit 1000000 1000000 2 0.674 0.019 0.024 0.0 30 k-means++ 0.536 0.036 1.257 1.259 Download Download
6 fit 1000000 1000000 100 5.653 0.248 0.142 0.0 30 random 3.041 0.058 1.859 1.859 Download Download
9 fit 1000000 1000000 100 5.886 0.112 0.136 0.0 30 k-means++ 3.219 0.059 1.828 1.829 Download Download

predict

function n_samples_train n_samples n_features mean_duration_sklearn std_duration_sklearn iteration_throughput latency n_iter init mean_duration_sklearnex std_duration_sklearnex speedup std_speedup sklearn_profiling sklearnex_profiling
1 predict 1000000 1000 2 0.000 0.0 0.057 0.0 30 random 0.0 0.0 1.004 1.106 Download Download
2 predict 1000000 1 2 0.000 0.0 0.000 0.0 30 random 0.0 0.0 1.063 1.208 Download Download
4 predict 1000000 1000 2 0.000 0.0 0.055 0.0 30 k-means++ 0.0 0.0 0.850 0.932 Download Download
5 predict 1000000 1 2 0.000 0.0 0.000 0.0 30 k-means++ 0.0 0.0 1.041 1.341 Download Download
7 predict 1000000 1000 100 0.001 0.0 1.436 0.0 30 random 0.0 0.0 1.380 1.471 Download Download
8 predict 1000000 1 100 0.000 0.0 0.003 0.0 30 random 0.0 0.0 1.134 1.269 Download Download
10 predict 1000000 1000 100 0.001 0.0 1.164 0.0 30 k-means++ 0.0 0.0 1.682 1.775 Download Download
11 predict 1000000 1 100 0.000 0.0 0.003 0.0 30 k-means++ 0.0 0.0 1.113 1.266 Download Download

Profiling traces can be visualized using Perfetto UI.

KMeans (short)

scikit-learn-intelex (2021.20220207.123530) vs. scikit-learn (1.0.2)

Speedup barplots

All estimators share the following parameters: algorithm=full, n_clusters=300, max_iter=20, n_init=1, tol=1e-16.

Mismatches between validation scores

WARNING! Mismatch between validation scores for 2 predictions (25.0%).
The observed differences can be found in the diff_adjusted_rand_scores column.
The chosen difference threshold is 0.01 for adjusted_rand_score.
The biggest difference is 0.077 for adjusted_rand_score.
See details in the dataframe below.
estimator library diff_adjusted_rand_scores function n_samples_train n_samples n_features mean_duration_sklearn std_duration_sklearn iteration_throughput latency n_iter algorithm init max_iter n_clusters n_init tol adjusted_rand_score_sklearn mean_duration_sklearnex std_duration_sklearnex adjusted_rand_score_sklearnex speedup std_speedup
7 sklearn_KMeans_short sklearn 0.074768 predict 10000 1000 100 0.002200 0.000789 0.36363 0.000002 20 full random 20 300 1 1.000000e-16 0.222701 0.001633 0.000213 0.297469 1.346842 1.358212
10 sklearn_KMeans_short sklearn 0.076616 predict 10000 1000 100 0.001714 0.000191 0.46675 0.000002 20 full k-means++ 20 300 1 1.000000e-16 0.408030 0.001583 0.000228 0.331414 1.082483 1.093605

Raw results

fit

function n_samples_train n_samples n_features mean_duration_sklearn std_duration_sklearn iteration_throughput latency n_iter init mean_duration_sklearnex std_duration_sklearnex speedup std_speedup sklearn_profiling sklearnex_profiling
0 fit 10000 10000 2 0.105 0.005 0.002 0.0 20 random 0.040 0.001 2.608 2.609 Download Download
3 fit 10000 10000 2 0.259 0.005 0.001 0.0 20 k-means++ 0.107 0.002 2.424 2.424 Download Download
6 fit 10000 10000 100 0.254 0.006 0.031 0.0 20 random 0.177 0.007 1.436 1.437 Download Download
9 fit 10000 10000 100 0.717 0.020 0.011 0.0 20 k-means++ 0.427 0.009 1.677 1.677 Download Download

predict

function n_samples_train n_samples n_features mean_duration_sklearn std_duration_sklearn iteration_throughput latency n_iter init mean_duration_sklearnex std_duration_sklearnex speedup std_speedup sklearn_profiling sklearnex_profiling
1 predict 10000 1000 2 0.001 0.000 0.020 0.0 20 random 0.001 0.0 0.883 0.890 Download Download
2 predict 10000 1 2 0.000 0.000 0.000 0.0 20 random 0.000 0.0 1.209 1.376 Download Download
4 predict 10000 1000 2 0.001 0.000 0.017 0.0 20 k-means++ 0.001 0.0 1.064 1.074 Download Download
5 predict 10000 1 2 0.000 0.000 0.000 0.0 20 k-means++ 0.000 0.0 1.276 1.485 Download Download
7 predict 10000 1000 100 0.002 0.001 0.364 0.0 20 random 0.002 0.0 1.347 1.358 Download Download
8 predict 10000 1 100 0.000 0.000 0.002 0.0 20 random 0.000 0.0 1.178 1.269 Download Download
10 predict 10000 1000 100 0.002 0.000 0.467 0.0 20 k-means++ 0.002 0.0 1.082 1.094 Download Download
11 predict 10000 1 100 0.000 0.000 0.003 0.0 20 k-means++ 0.000 0.0 1.055 1.121 Download Download

Profiling traces can be visualized using Perfetto UI.

Logistic Regression

scikit-learn-intelex (2021.20220207.123530) vs. scikit-learn (1.0.2)

Speedup barplots

All estimators share the following parameters: penalty=l2, dual=False, tol=0.0001, C=1.0, fit_intercept=True, intercept_scaling=1.0, class_weight=nan, random_state=nan, solver=lbfgs, max_iter=100, multi_class=auto, verbose=0, warm_start=False, n_jobs=nan, l1_ratio=nan.

Raw results

fit

function n_samples_train n_samples n_features mean_duration_sklearn std_duration_sklearn iteration_throughput latency n_iter mean_duration_sklearnex std_duration_sklearnex speedup std_speedup sklearn_profiling sklearnex_profiling
0 fit 1000000 1000000 100 12.260 0.442 0.065 0.000 [20] 2.178 0.024 5.629 5.629 Download Download
3 fit 1000 1000 10000 0.875 0.055 0.091 0.001 [27] 0.836 0.056 1.047 1.050 Download Download

predict

function n_samples_train n_samples n_features mean_duration_sklearn std_duration_sklearn iteration_throughput latency n_iter mean_duration_sklearnex std_duration_sklearnex speedup std_speedup sklearn_profiling sklearnex_profiling
1 predict 1000000 1000 100 0.000 0.0 2.175 0.0 [20] 0.001 0.0 0.671 0.696 Download Download
2 predict 1000000 1 100 0.000 0.0 0.009 0.0 [20] 0.000 0.0 0.295 0.318 Download Download
4 predict 1000 100 10000 0.002 0.0 4.122 0.0 [27] 0.004 0.0 0.512 0.513 Download Download
5 predict 1000 1 10000 0.000 0.0 0.731 0.0 [27] 0.001 0.0 0.122 0.124 Download Download

Profiling traces can be visualized using Perfetto UI.

LinearRegression

scikit-learn-intelex (2021.20220207.123530) vs. scikit-learn (1.0.2)

Speedup barplots

All estimators share the following parameters:

Raw results

fit

function n_samples_train n_samples n_features mean_duration_sklearn std_duration_sklearn iteration_throughput latency copy_X fit_intercept normalize positive mean_duration_sklearnex std_duration_sklearnex speedup std_speedup sklearn_profiling sklearnex_profiling
0 fit 1000 1000 10000 2.099 0.043 0.038 0.002 True True deprecated False 2.097 0.041 1.001 1.001 Download Download
3 fit 1000000 1000000 100 8.965 0.068 0.089 0.000 True True deprecated False 0.242 0.010 37.111 37.145 Download Download

predict

function n_samples_train n_samples n_features mean_duration_sklearn std_duration_sklearn iteration_throughput latency copy_X fit_intercept normalize positive mean_duration_sklearnex std_duration_sklearnex speedup std_speedup sklearn_profiling sklearnex_profiling
1 predict 1000 1000 10000 0.011 0.0 7.360 0.0 True True deprecated False 0.018 0.0 0.588 0.588 Download Download
2 predict 1000 10 10000 0.000 0.0 4.277 0.0 True True deprecated False 0.000 0.0 0.465 0.488 Download Download
4 predict 1000000 1000 100 0.000 0.0 4.241 0.0 True True deprecated False 0.001 0.0 0.356 0.370 Download Download
5 predict 1000000 10 100 0.000 0.0 0.100 0.0 True True deprecated False 0.000 0.0 0.377 0.410 Download Download

Profiling traces can be visualized using Perfetto UI.

Ridge

scikit-learn-intelex (2021.20220207.123530) vs. scikit-learn (1.0.2)

Speedup barplots

All estimators share the following parameters: alpha=1e-06.

Raw results

fit

function n_samples_train n_samples n_features mean_duration_sklearn std_duration_sklearn iteration_throughput latency mean_duration_sklearnex std_duration_sklearnex speedup std_speedup sklearn_profiling sklearnex_profiling
0 fit 1000 1000 10000 0.205 0.003 0.390 0.0 0.214 0.004 0.958 0.958 Download Download
3 fit 1000000 1000000 100 1.256 0.024 0.637 0.0 0.291 0.014 4.308 4.314 Download Download

predict

function n_samples_train n_samples n_features mean_duration_sklearn std_duration_sklearn iteration_throughput latency mean_duration_sklearnex std_duration_sklearnex speedup std_speedup sklearn_profiling sklearnex_profiling
1 predict 1000 1000 10000 0.011 0.0 7.112 0.0 0.019 0.0 0.599 0.599 Download Download
2 predict 1000 10 10000 0.000 0.0 4.539 0.0 0.000 0.0 0.443 0.466 Download Download
4 predict 1000000 1000 100 0.000 0.0 4.216 0.0 0.000 0.0 0.451 0.483 Download Download
5 predict 1000000 10 100 0.000 0.0 0.099 0.0 0.000 0.0 0.366 0.393 Download Download

Profiling traces can be visualized using Perfetto UI.

TSNE

scikit-learn-intelex (2021.20220207.123530) vs. scikit-learn (1.0.2)

Speedup barplots

All estimators share the following parameters:

Raw results

fit

function n_samples_train n_samples n_features mean_duration_sklearn std_duration_sklearn iteration_throughput latency n_iter angle early_exaggeration init learning_rate method metric min_grad_norm n_components n_iter_without_progress perplexity square_distances verbose mean_duration_sklearnex std_duration_sklearnex speedup std_speedup sklearn_profiling sklearnex_profiling
0 fit 1000 1000 3 4.288 0.238 0.0 0.004 1000 0.5 12.0 warn warn barnes_hut euclidean 0.0 2 300 30.0 legacy 0 4.498 0.375 0.953 0.957 Download Download

Profiling traces can be visualized using Perfetto UI.

PCA

scikit-learn-intelex (2021.20220207.123530) vs. scikit-learn (1.0.2)

Speedup barplots

All estimators share the following parameters: n_components=10.

Raw results

fit

function n_samples_train n_samples n_features mean_duration_sklearn std_duration_sklearn iteration_throughput latency mean_duration_sklearnex std_duration_sklearnex speedup std_speedup sklearn_profiling sklearnex_profiling
0 fit 100000 100000 100 0.503 0.006 0.159 0.0 0.035 0.003 14.421 14.484 Download Download
1 fit 10000 10000 1000 0.438 0.004 0.183 0.0 0.237 0.009 1.848 1.849 Download Download

Profiling traces can be visualized using Perfetto UI.

Benchmark environment information

System

python 3.8.12 | packaged by conda-forge | (default, Jan 30 2022, 23:42:07) [GCC 9.4.0]
executable /usr/share/miniconda/envs/sklbench/bin/python
machine Linux-5.11.0-1028-azure-x86_64-with-glibc2.10

Dependencies

pip 22.0.4
setuptools 60.9.3
sklearn 1.0.2
numpy 1.22.3
scipy 1.8.0
Cython None
pandas 1.4.1
matplotlib 3.5.1
joblib 1.1.0
threadpoolctl 3.1.0

Threadpool

user_api internal_api prefix filepath version threading_layer architecture num_threads
0 blas openblas libopenblas /usr/share/miniconda/envs/sklbench/lib/libopenblasp-r0.3.18.so 0.3.18 pthreads SkylakeX 2
1 openmp openmp libgomp /usr/share/miniconda/envs/sklbench/lib/libgomp.so.1.0.0 None NaN NaN 2

Cpu_count

cpu_count 2
physical_cpu_count 2