scikit-learn-intelex 2025.4.0__py310-none-win_amd64.whl → 2025.6.0__py310-none-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of scikit-learn-intelex might be problematic. Click here for more details.

Files changed (270) hide show
  1. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/__main__.py +1 -1
  2. scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/daal4py/_daal4py.cp310-win_amd64.pyd +0 -0
  3. scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/daal4py/mb/__init__.py +83 -0
  4. scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/daal4py/mb/gbt_convertors.py +922 -0
  5. scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/daal4py/mb/logistic_regression_builders.py +217 -0
  6. scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/mb/model_builders.py → scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/daal4py/mb/tree_based_builders.py +129 -106
  7. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/mpi_transceiver.cp310-win_amd64.pyd +0 -0
  8. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +6 -2
  9. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/_utils.py +1 -1
  10. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +2 -2
  11. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/k_means.py +6 -38
  12. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +12 -8
  13. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +2 -6
  14. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +3 -7
  15. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +41 -153
  16. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_coordinate_descent.py +13 -15
  17. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_linear.py +7 -10
  18. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_ridge.py +22 -57
  19. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +3 -4
  20. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/_t_sne.py +8 -3
  21. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +30 -7
  22. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +3 -3
  23. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +6 -16
  24. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +4 -7
  25. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +3 -5
  26. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +4 -2
  27. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/base.py +8 -3
  28. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +82 -5
  29. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/__init__.py +125 -83
  30. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/_config.py +27 -2
  31. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/_device_offload.py +86 -82
  32. scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp310-win_amd64.pyd +0 -0
  33. scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp310-win_amd64.pyd +0 -0
  34. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +21 -17
  35. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +44 -39
  36. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/cluster/dbscan.py +35 -42
  37. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/cluster/kmeans.py +83 -74
  38. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/cluster/kmeans_init.py +57 -24
  39. scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/onedal/common/_backend.py +233 -0
  40. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/common/hyperparameters.py +4 -4
  41. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/common/tests/test_sycl.py +27 -12
  42. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/covariance/covariance.py +27 -19
  43. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +35 -32
  44. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +6 -10
  45. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +179 -78
  46. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +39 -25
  47. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/decomposition/pca.py +28 -16
  48. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/decomposition/tests/test_incremental_pca.py +2 -2
  49. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/ensemble/forest.py +130 -93
  50. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +76 -57
  51. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/linear_model/linear_model.py +63 -37
  52. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +96 -68
  53. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/neighbors/neighbors.py +156 -119
  54. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/primitives/get_tree.py +5 -3
  55. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/primitives/kernel_functions.py +21 -18
  56. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/primitives/tests/test_kernel_functions.py +4 -4
  57. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/svm/svm.py +80 -32
  58. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/svm/tests/test_csr_svm.py +10 -9
  59. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvc.py +10 -10
  60. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvr.py +8 -8
  61. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/svm/tests/test_svc.py +5 -5
  62. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/svm/tests/test_svr.py +10 -10
  63. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +3 -13
  64. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/utils/_array_api.py +14 -2
  65. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/utils/_dpep_helpers.py +16 -1
  66. scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/onedal/utils/_sycl_queue_manager.py +161 -0
  67. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/utils/tests/test_validation.py +3 -3
  68. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/utils/validation.py +47 -16
  69. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/__init__.py +3 -2
  70. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/__main__.py +2 -2
  71. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/_config.py +48 -6
  72. scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +194 -0
  73. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/_utils.py +36 -43
  74. scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/sklearnex/base.py +109 -0
  75. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +14 -20
  76. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +31 -40
  77. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +10 -11
  78. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/cluster/k_means.py +20 -19
  79. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +49 -62
  80. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/decomposition/pca.py +9 -20
  81. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/dispatcher.py +4 -4
  82. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +207 -2
  83. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +111 -366
  84. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +1 -1
  85. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +1 -1
  86. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +18 -6
  87. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +41 -126
  88. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +37 -85
  89. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/linear.py +52 -47
  90. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +45 -84
  91. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/ridge.py +17 -20
  92. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +60 -1
  93. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +2 -2
  94. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/manifold/t_sne.py +8 -6
  95. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +1 -3
  96. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +1 -1
  97. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/model_selection/split.py +1 -3
  98. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/neighbors/_lof.py +7 -54
  99. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +6 -5
  100. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +31 -73
  101. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +30 -70
  102. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +5 -13
  103. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +6 -19
  104. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +45 -62
  105. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +10 -3
  106. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +8 -4
  107. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +13 -2
  108. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +10 -3
  109. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +7 -4
  110. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +13 -2
  111. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +9 -2
  112. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +7 -2
  113. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +25 -8
  114. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +6 -2
  115. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +12 -3
  116. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +12 -5
  117. {scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/mb → scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors}/__init__.py +2 -2
  118. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +27 -5
  119. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/svm/_common.py +15 -28
  120. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +36 -129
  121. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +10 -22
  122. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/svm/svc.py +34 -127
  123. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/svm/svr.py +10 -22
  124. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_common.py +51 -11
  125. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_config.py +62 -0
  126. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +18 -24
  127. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +4 -4
  128. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_patching.py +89 -60
  129. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +7 -0
  130. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/utils/base.py +2 -2
  131. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/utils/validation.py +8 -22
  132. {scikit_learn_intelex-2025.4.0.dist-info → scikit_learn_intelex-2025.6.0.dist-info}/METADATA +2 -3
  133. scikit_learn_intelex-2025.6.0.dist-info/RECORD +257 -0
  134. scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/_daal4py.cp310-win_amd64.pyd +0 -0
  135. scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/doc/third-party-programs.txt +0 -424
  136. scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp310-win_amd64.pyd +0 -0
  137. scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp310-win_amd64.pyd +0 -0
  138. scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/common/_base.py +0 -38
  139. scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/common/_policy.py +0 -55
  140. scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/common/_spmd_policy.py +0 -30
  141. scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/common/tests/test_policy.py +0 -76
  142. scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/utils/__init__.py +0 -49
  143. scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +0 -126
  144. scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +0 -19
  145. scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/neighbors.py +0 -25
  146. scikit_learn_intelex-2025.4.0.dist-info/RECORD +0 -259
  147. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/__init__.py +0 -0
  148. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/__init__.py +0 -0
  149. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +0 -0
  150. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/tests/test_dbscan.py +0 -0
  151. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/__init__.py +0 -0
  152. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +0 -0
  153. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/tests/test_decision_forest.py +0 -0
  154. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/__init__.py +0 -0
  155. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +0 -0
  156. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/linear.py +0 -0
  157. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +0 -0
  158. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py +0 -0
  159. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py +0 -0
  160. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_ridge.py +0 -0
  161. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/__init__.py +0 -0
  162. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +0 -0
  163. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +0 -0
  164. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +0 -0
  165. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/_split.py +0 -0
  166. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/tests/test_split.py +0 -0
  167. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
  168. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/_models_info.py +0 -0
  169. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +0 -0
  170. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_patching.py +0 -0
  171. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/utils/_launch_algorithms.py +0 -0
  172. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +0 -0
  173. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +0 -0
  174. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/tests/test_kneighbors.py +0 -0
  175. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +0 -0
  176. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/__init__.py +0 -0
  177. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/tests/test_utils.py +0 -0
  178. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/basic_statistics/__init__.py +0 -0
  179. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +0 -0
  180. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +0 -0
  181. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/utils.py +0 -0
  182. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/cluster/__init__.py +0 -0
  183. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +0 -0
  184. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +0 -0
  185. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +0 -0
  186. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/common/_estimator_checks.py +0 -0
  187. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/common/_mixin.py +0 -0
  188. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/covariance/__init__.py +0 -0
  189. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/covariance/tests/test_covariance.py +0 -0
  190. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/covariance/tests/test_incremental_covariance.py +0 -0
  191. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/datatypes/__init__.py +0 -0
  192. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/datatypes/tests/common.py +0 -0
  193. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/decomposition/__init__.py +0 -0
  194. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/ensemble/__init__.py +0 -0
  195. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/ensemble/tests/test_random_forest.py +0 -0
  196. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/linear_model/__init__.py +0 -0
  197. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_linear_regression.py +0 -0
  198. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_ridge_regression.py +0 -0
  199. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +0 -0
  200. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_logistic_regression.py +0 -0
  201. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_ridge.py +0 -0
  202. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/neighbors/__init__.py +0 -0
  203. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/neighbors/tests/test_knn_classification.py +0 -0
  204. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/primitives/__init__.py +0 -0
  205. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/svm/__init__.py +0 -0
  206. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/tests/test_common.py +0 -0
  207. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +0 -0
  208. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +0 -0
  209. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +0 -0
  210. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +0 -0
  211. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +0 -0
  212. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +0 -0
  213. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +0 -0
  214. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/conftest.py +0 -0
  215. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/covariance/__init__.py +0 -0
  216. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +0 -0
  217. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
  218. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +0 -0
  219. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
  220. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +0 -0
  221. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/__init__.py +0 -0
  222. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +0 -0
  223. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +0 -0
  224. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_ridge.py +0 -0
  225. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
  226. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +0 -0
  227. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
  228. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +0 -0
  229. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +0 -0
  230. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +0 -0
  231. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +0 -0
  232. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +0 -0
  233. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/preview/__init__.py +0 -0
  234. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +0 -0
  235. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +0 -0
  236. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +0 -0
  237. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +0 -0
  238. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -0
  239. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +0 -0
  240. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +0 -0
  241. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +0 -0
  242. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +0 -0
  243. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +0 -0
  244. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +0 -0
  245. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +0 -0
  246. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +0 -0
  247. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +0 -0
  248. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/__init__.py +0 -0
  249. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +0 -0
  250. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +0 -0
  251. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +0 -0
  252. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +0 -0
  253. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +0 -0
  254. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +0 -0
  255. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +0 -0
  256. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +0 -0
  257. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
  258. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +0 -0
  259. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_hyperparameters.py +0 -0
  260. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +0 -0
  261. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_parallel.py +0 -0
  262. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/utils/__init__.py +0 -0
  263. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/utils/spmd.py +0 -0
  264. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/utils/__init__.py +0 -0
  265. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/utils/_array_api.py +0 -0
  266. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -0
  267. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/utils/tests/test_validation.py +0 -0
  268. {scikit_learn_intelex-2025.4.0.dist-info → scikit_learn_intelex-2025.6.0.dist-info}/LICENSE.txt +0 -0
  269. {scikit_learn_intelex-2025.4.0.dist-info → scikit_learn_intelex-2025.6.0.dist-info}/WHEEL +0 -0
  270. {scikit_learn_intelex-2025.4.0.dist-info → scikit_learn_intelex-2025.6.0.dist-info}/top_level.txt +0 -0
@@ -14,7 +14,7 @@
14
14
  # limitations under the License.
15
15
  # ==============================================================================
16
16
 
17
- from abc import ABCMeta
17
+ from abc import ABCMeta, abstractmethod
18
18
  from numbers import Integral
19
19
 
20
20
  import numpy as np
@@ -27,12 +27,16 @@ from daal4py import (
27
27
  kdtree_knn_classification_prediction,
28
28
  kdtree_knn_classification_training,
29
29
  )
30
+ from onedal._device_offload import supports_queue
31
+ from onedal.common._backend import bind_default_backend
32
+ from onedal.utils import _sycl_queue_manager as QM
30
33
 
31
- from ..common._base import BaseEstimator
34
+ from .._config import _get_config
32
35
  from ..common._estimator_checks import _check_is_fitted, _is_classifier, _is_regressor
33
36
  from ..common._mixin import ClassifierMixin, RegressorMixin
34
37
  from ..datatypes import from_table, to_table
35
- from ..utils import (
38
+ from ..utils._array_api import _get_sycl_namespace
39
+ from ..utils.validation import (
36
40
  _check_array,
37
41
  _check_classification_targets,
38
42
  _check_n_features,
@@ -42,7 +46,18 @@ from ..utils import (
42
46
  )
43
47
 
44
48
 
45
- class NeighborsCommonBase(BaseEstimator, metaclass=ABCMeta):
49
+ class NeighborsCommonBase(metaclass=ABCMeta):
50
+ def __init__(self):
51
+ self.requires_y = False
52
+ self.n_neighbors = None
53
+ self.metric = None
54
+ self.classes_ = None
55
+ self.effective_metric_ = None
56
+ self._fit_method = None
57
+ self.radius = None
58
+ self.effective_metric_params_ = None
59
+ self._onedal_model = None
60
+
46
61
  def _parse_auto_method(self, method, n_samples, n_features):
47
62
  result_method = method
48
63
 
@@ -60,8 +75,17 @@ class NeighborsCommonBase(BaseEstimator, metaclass=ABCMeta):
60
75
 
61
76
  return result_method
62
77
 
78
+ @abstractmethod
79
+ def train(self, *args, **kwargs): ...
80
+
81
+ @abstractmethod
82
+ def infer(self, *args, **kwargs): ...
83
+
84
+ @abstractmethod
85
+ def _onedal_fit(self, X, y): ...
86
+
63
87
  def _validate_data(
64
- self, X, y=None, reset=True, validate_separately=False, **check_params
88
+ self, X, y=None, reset=True, validate_separately=None, **check_params
65
89
  ):
66
90
  if y is None:
67
91
  if self.requires_y:
@@ -188,13 +212,13 @@ class NeighborsBase(NeighborsCommonBase, metaclass=ABCMeta):
188
212
  return arr
189
213
 
190
214
  def _validate_n_classes(self):
191
- if len(self.classes_) < 2:
215
+ length = 0 if self.classes_ is None else len(self.classes_)
216
+ if length < 2:
192
217
  raise ValueError(
193
- "The number of classes has to be greater than one; got %d"
194
- " class" % len(self.classes_)
218
+ f"The number of classes has to be greater than one; got {length}"
195
219
  )
196
220
 
197
- def _fit(self, X, y, queue):
221
+ def _fit(self, X, y):
198
222
  self._onedal_model = None
199
223
  self._tree = None
200
224
  self._shape = None
@@ -204,11 +228,14 @@ class NeighborsBase(NeighborsCommonBase, metaclass=ABCMeta):
204
228
  self, "effective_metric_params_", self.metric_params
205
229
  )
206
230
 
231
+ _, xp, _ = _get_sycl_namespace(X)
232
+ use_raw_input = _get_config().get("use_raw_input", False) is True
207
233
  if y is not None or self.requires_y:
208
234
  shape = getattr(y, "shape", None)
209
- X, y = super()._validate_data(
210
- X, y, dtype=[np.float64, np.float32], accept_sparse="csr"
211
- )
235
+ if not use_raw_input:
236
+ X, y = super()._validate_data(
237
+ X, y, dtype=[np.float64, np.float32], accept_sparse="csr"
238
+ )
212
239
  self._shape = shape if shape is not None else y.shape
213
240
 
214
241
  if _is_classifier(self):
@@ -232,7 +259,7 @@ class NeighborsBase(NeighborsCommonBase, metaclass=ABCMeta):
232
259
  self._validate_n_classes()
233
260
  else:
234
261
  self._y = y
235
- else:
262
+ elif not use_raw_input:
236
263
  X, _ = super()._validate_data(X, dtype=[np.float64, np.float32])
237
264
 
238
265
  self.n_samples_fit_ = X.shape[0]
@@ -253,21 +280,22 @@ class NeighborsBase(NeighborsCommonBase, metaclass=ABCMeta):
253
280
  )
254
281
 
255
282
  _fit_y = None
283
+ queue = QM.get_global_queue()
256
284
  gpu_device = queue is not None and queue.sycl_device.is_gpu
257
285
 
258
286
  if _is_classifier(self) or (_is_regressor(self) and gpu_device):
259
287
  _fit_y = self._validate_targets(self._y, X.dtype).reshape((-1, 1))
260
- result = self._onedal_fit(X, _fit_y, queue)
288
+ result = self._onedal_fit(X, _fit_y)
261
289
 
262
290
  if y is not None and _is_regressor(self):
263
- self._y = y if self._shape is None else y.reshape(self._shape)
291
+ self._y = y if self._shape is None else xp.reshape(y, self._shape)
264
292
 
265
293
  self._onedal_model = result
266
294
  result = self
267
295
 
268
296
  return result
269
297
 
270
- def _kneighbors(self, X=None, n_neighbors=None, return_distance=True, queue=None):
298
+ def _kneighbors(self, X=None, n_neighbors=None, return_distance=True):
271
299
  n_features = getattr(self, "n_features_in_", None)
272
300
  shape = getattr(X, "shape", None)
273
301
  if n_features and shape and len(shape) > 1 and shape[1] != n_features:
@@ -316,25 +344,21 @@ class NeighborsBase(NeighborsCommonBase, metaclass=ABCMeta):
316
344
  )
317
345
 
318
346
  chunked_results = None
319
- method = super()._parse_auto_method(
347
+ method = self._parse_auto_method(
320
348
  self._fit_method, self.n_samples_fit_, n_features
321
349
  )
322
350
 
323
- if (
324
- type(self._onedal_model) is kdtree_knn_classification_model
325
- or type(self._onedal_model) is bf_knn_classification_model
351
+ if type(self._onedal_model) in (
352
+ kdtree_knn_classification_model,
353
+ bf_knn_classification_model,
326
354
  ):
327
355
  params = super()._get_daal_params(X, n_neighbors=n_neighbors)
328
- prediction_results = self._onedal_predict(
329
- self._onedal_model, X, params, queue=queue
330
- )
356
+ prediction_results = self._onedal_predict(self._onedal_model, X, params)
331
357
  distances = prediction_results.distances
332
358
  indices = prediction_results.indices
333
359
  else:
334
360
  params = super()._get_onedal_params(X, n_neighbors=n_neighbors)
335
- prediction_results = self._onedal_predict(
336
- self._onedal_model, X, params, queue=queue
337
- )
361
+ prediction_results = self._onedal_predict(self._onedal_model, X, params)
338
362
  distances = from_table(prediction_results.distances)
339
363
  indices = from_table(prediction_results.indices)
340
364
 
@@ -408,14 +432,27 @@ class KNeighborsClassifier(NeighborsBase, ClassifierMixin):
408
432
  )
409
433
  self.weights = weights
410
434
 
435
+ # direct access to the backend model constructor
436
+ @bind_default_backend("neighbors.classification")
437
+ def model(self): ...
438
+
439
+ # direct access to the backend model constructor
440
+ @bind_default_backend("neighbors.classification")
441
+ def train(self, *args, **kwargs): ...
442
+
443
+ @bind_default_backend("neighbors.classification")
444
+ def infer(self, *args, **kwargs): ...
445
+
411
446
  def _get_daal_params(self, data):
412
447
  params = super()._get_daal_params(data)
413
448
  params["resultsToEvaluate"] = "computeClassLabels"
414
449
  params["resultsToCompute"] = ""
415
450
  return params
416
451
 
417
- def _onedal_fit(self, X, y, queue):
418
- gpu_device = queue is not None and queue.sycl_device.is_gpu
452
+ def _onedal_fit(self, X, y):
453
+ # global queue is set as per user configuration (`target_offload`) or from data prior to calling this internal function
454
+ queue = QM.get_global_queue()
455
+ gpu_device = queue is not None and getattr(queue.sycl_device, "is_gpu", False)
419
456
  if self.effective_metric_ == "euclidean" and not gpu_device:
420
457
  params = self._get_daal_params(X)
421
458
  if self._fit_method == "brute":
@@ -425,44 +462,34 @@ class KNeighborsClassifier(NeighborsBase, ClassifierMixin):
425
462
  train_alg = kdtree_knn_classification_training
426
463
 
427
464
  return train_alg(**params).compute(X, y).model
465
+ else:
466
+ params = self._get_onedal_params(X, y)
467
+ X_table, y_table = to_table(X, y, queue=queue)
468
+ return self.train(params, X_table, y_table).model
428
469
 
429
- policy = self._get_policy(queue, X, y)
430
- X_table, y_table = to_table(X, y, queue=queue)
431
- params = self._get_onedal_params(X_table, y)
432
- train_alg = self._get_backend(
433
- "neighbors", "classification", "train", policy, params, X_table, y_table
434
- )
435
-
436
- return train_alg.model
437
-
438
- def _onedal_predict(self, model, X, params, queue):
470
+ def _onedal_predict(self, model, X, params):
439
471
  if type(self._onedal_model) is kdtree_knn_classification_model:
440
472
  return kdtree_knn_classification_prediction(**params).compute(X, model)
441
473
  elif type(self._onedal_model) is bf_knn_classification_model:
442
474
  return bf_knn_classification_prediction(**params).compute(X, model)
443
-
444
- policy = self._get_policy(queue, X)
445
- X = to_table(X, queue=queue)
446
- if hasattr(self, "_onedal_model"):
447
- model = self._onedal_model
448
475
  else:
449
- model = self._create_model(
450
- self._get_backend("neighbors", "classification", None)
451
- )
452
- if "responses" not in params["result_option"]:
453
- params["result_option"] += "|responses"
454
- params["fptype"] = X.dtype
455
- result = self._get_backend(
456
- "neighbors", "classification", "infer", policy, params, model, X
457
- )
476
+ X = to_table(X, queue=QM.get_global_queue())
477
+ if "responses" not in params["result_option"]:
478
+ params["result_option"] += "|responses"
479
+ params["fptype"] = X.dtype
480
+ result = self.infer(params, model, X)
458
481
 
459
- return result
482
+ return result
460
483
 
484
+ @supports_queue
461
485
  def fit(self, X, y, queue=None):
462
- return super()._fit(X, y, queue=queue)
486
+ return self._fit(X, y)
463
487
 
488
+ @supports_queue
464
489
  def predict(self, X, queue=None):
465
- X = _check_array(X, accept_sparse="csr", dtype=[np.float64, np.float32])
490
+ use_raw_input = _get_config().get("use_raw_input", False) is True
491
+ if not use_raw_input:
492
+ X = _check_array(X, accept_sparse="csr", dtype=[np.float64, np.float32])
466
493
  onedal_model = getattr(self, "_onedal_model", None)
467
494
  n_features = getattr(self, "n_features_in_", None)
468
495
  n_samples_fit_ = getattr(self, "n_samples_fit_", None)
@@ -478,7 +505,7 @@ class KNeighborsClassifier(NeighborsBase, ClassifierMixin):
478
505
 
479
506
  _check_is_fitted(self)
480
507
 
481
- self._fit_method = super()._parse_auto_method(
508
+ self._fit_method = self._parse_auto_method(
482
509
  self.algorithm, n_samples_fit_, n_features
483
510
  )
484
511
 
@@ -489,16 +516,17 @@ class KNeighborsClassifier(NeighborsBase, ClassifierMixin):
489
516
  or type(onedal_model) is bf_knn_classification_model
490
517
  ):
491
518
  params = self._get_daal_params(X)
492
- prediction_result = self._onedal_predict(onedal_model, X, params, queue=queue)
519
+ prediction_result = self._onedal_predict(onedal_model, X, params)
493
520
  responses = prediction_result.prediction
494
521
  else:
495
522
  params = self._get_onedal_params(X)
496
- prediction_result = self._onedal_predict(onedal_model, X, params, queue=queue)
523
+ prediction_result = self._onedal_predict(onedal_model, X, params)
497
524
  responses = from_table(prediction_result.responses)
498
525
 
499
526
  result = self.classes_.take(np.asarray(responses.ravel(), dtype=np.intp))
500
527
  return result
501
528
 
529
+ @supports_queue
502
530
  def predict_proba(self, X, queue=None):
503
531
  neigh_dist, neigh_ind = self.kneighbors(X, queue=queue)
504
532
 
@@ -536,8 +564,9 @@ class KNeighborsClassifier(NeighborsBase, ClassifierMixin):
536
564
 
537
565
  return probabilities
538
566
 
567
+ @supports_queue
539
568
  def kneighbors(self, X=None, n_neighbors=None, return_distance=True, queue=None):
540
- return super()._kneighbors(X, n_neighbors, return_distance, queue=queue)
569
+ return self._kneighbors(X, n_neighbors, return_distance)
541
570
 
542
571
 
543
572
  class KNeighborsRegressor(NeighborsBase, RegressorMixin):
@@ -562,68 +591,79 @@ class KNeighborsRegressor(NeighborsBase, RegressorMixin):
562
591
  )
563
592
  self.weights = weights
564
593
 
594
+ @bind_default_backend("neighbors.search", lookup_name="train")
595
+ def train_search(self, *args, **kwargs): ...
596
+
597
+ @bind_default_backend("neighbors.search", lookup_name="infer")
598
+ def infer_search(self, *args, **kwargs): ...
599
+
600
+ @bind_default_backend("neighbors.regression")
601
+ def train(self, *args, **kwargs): ...
602
+
603
+ @bind_default_backend("neighbors.regression")
604
+ def infer(self, *args, **kwargs): ...
605
+
565
606
  def _get_daal_params(self, data):
566
607
  params = super()._get_daal_params(data)
567
608
  params["resultsToCompute"] = "computeIndicesOfNeighbors|computeDistances"
568
609
  params["resultsToEvaluate"] = "none"
569
610
  return params
570
611
 
571
- def _onedal_fit(self, X, y, queue):
572
- gpu_device = queue is not None and queue.sycl_device.is_gpu
612
+ def _onedal_fit(self, X, y):
613
+ # global queue is set as per user configuration (`target_offload`) or from data prior to calling this internal function
614
+ queue = QM.get_global_queue()
615
+ gpu_device = queue is not None and getattr(queue.sycl_device, "is_gpu", False)
573
616
  if self.effective_metric_ == "euclidean" and not gpu_device:
574
617
  params = self._get_daal_params(X)
575
618
  if self._fit_method == "brute":
576
619
  train_alg = bf_knn_classification_training
577
-
578
620
  else:
579
621
  train_alg = kdtree_knn_classification_training
580
622
 
581
623
  return train_alg(**params).compute(X, y).model
582
624
 
583
- policy = self._get_policy(queue, X, y)
584
625
  X_table, y_table = to_table(X, y, queue=queue)
585
626
  params = self._get_onedal_params(X_table, y)
586
- train_alg_regr = self._get_backend("neighbors", "regression", None)
587
- train_alg_srch = self._get_backend("neighbors", "search", None)
588
627
 
589
628
  if gpu_device:
590
- return train_alg_regr.train(policy, params, X_table, y_table).model
591
- return train_alg_srch.train(policy, params, X_table).model
629
+ return self.train(params, X_table, y_table).model
630
+ else:
631
+ return self.train_search(params, X_table).model
632
+
633
+ def _onedal_predict(self, model, X, params):
634
+ assert self._onedal_model is not None, "Model is not trained"
592
635
 
593
- def _onedal_predict(self, model, X, params, queue):
594
636
  if type(model) is kdtree_knn_classification_model:
595
637
  return kdtree_knn_classification_prediction(**params).compute(X, model)
596
638
  elif type(model) is bf_knn_classification_model:
597
639
  return bf_knn_classification_prediction(**params).compute(X, model)
598
640
 
599
- gpu_device = queue is not None and queue.sycl_device.is_gpu
600
- policy = self._get_policy(queue, X)
641
+ # global queue is set as per user configuration (`target_offload`) or from data prior to calling this internal function
642
+ queue = QM.get_global_queue()
643
+ gpu_device = queue is not None and getattr(queue.sycl_device, "is_gpu", False)
601
644
  X = to_table(X, queue=queue)
602
- backend = (
603
- self._get_backend("neighbors", "regression", None)
604
- if gpu_device
605
- else self._get_backend("neighbors", "search", None)
606
- )
607
645
 
608
- if hasattr(self, "_onedal_model"):
609
- model = self._onedal_model
610
- else:
611
- model = self._create_model(backend)
612
646
  if "responses" not in params["result_option"] and gpu_device:
613
647
  params["result_option"] += "|responses"
614
648
  params["fptype"] = X.dtype
615
- result = backend.infer(policy, params, model, X)
616
649
 
617
- return result
650
+ if gpu_device:
651
+ return self.infer(params, self._onedal_model, X)
652
+ else:
653
+ return self.infer_search(params, self._onedal_model, X)
618
654
 
655
+ @supports_queue
619
656
  def fit(self, X, y, queue=None):
620
- return super()._fit(X, y, queue=queue)
657
+ return self._fit(X, y)
621
658
 
659
+ @supports_queue
622
660
  def kneighbors(self, X=None, n_neighbors=None, return_distance=True, queue=None):
623
- return super()._kneighbors(X, n_neighbors, return_distance, queue=queue)
661
+ return self._kneighbors(X, n_neighbors, return_distance)
624
662
 
625
- def _predict_gpu(self, X, queue=None):
626
- X = _check_array(X, accept_sparse="csr", dtype=[np.float64, np.float32])
663
+ def _predict_gpu(self, X):
664
+ use_raw_input = _get_config().get("use_raw_input", False) is True
665
+ if not use_raw_input:
666
+ X = _check_array(X, accept_sparse="csr", dtype=[np.float64, np.float32])
627
667
  onedal_model = getattr(self, "_onedal_model", None)
628
668
  n_features = getattr(self, "n_features_in_", None)
629
669
  n_samples_fit_ = getattr(self, "n_samples_fit_", None)
@@ -639,20 +679,20 @@ class KNeighborsRegressor(NeighborsBase, RegressorMixin):
639
679
 
640
680
  _check_is_fitted(self)
641
681
 
642
- self._fit_method = super()._parse_auto_method(
682
+ self._fit_method = self._parse_auto_method(
643
683
  self.algorithm, n_samples_fit_, n_features
644
684
  )
645
685
 
646
686
  params = self._get_onedal_params(X)
647
687
 
648
- prediction_result = self._onedal_predict(onedal_model, X, params, queue=queue)
688
+ prediction_result = self._onedal_predict(onedal_model, X, params)
649
689
  responses = from_table(prediction_result.responses)
650
690
  result = responses.ravel()
651
691
 
652
692
  return result
653
693
 
654
- def _predict_skl(self, X, queue=None):
655
- neigh_dist, neigh_ind = self.kneighbors(X, queue=queue)
694
+ def _predict_skl(self, X):
695
+ neigh_dist, neigh_ind = self.kneighbors(X)
656
696
 
657
697
  weights = self._get_weights(neigh_dist, self.weights)
658
698
 
@@ -675,14 +715,14 @@ class KNeighborsRegressor(NeighborsBase, RegressorMixin):
675
715
 
676
716
  return y_pred
677
717
 
718
+ @supports_queue
678
719
  def predict(self, X, queue=None):
679
- gpu_device = queue is not None and queue.sycl_device.is_gpu
720
+ gpu_device = queue is not None and getattr(queue.sycl_device, "is_gpu", False)
680
721
  is_uniform_weights = getattr(self, "weights", "uniform") == "uniform"
681
- return (
682
- self._predict_gpu(X, queue=queue)
683
- if gpu_device and is_uniform_weights
684
- else self._predict_skl(X, queue=queue)
685
- )
722
+ if gpu_device and is_uniform_weights:
723
+ return self._predict_gpu(X)
724
+ else:
725
+ return self._predict_skl(X)
686
726
 
687
727
 
688
728
  class NearestNeighbors(NeighborsBase):
@@ -707,6 +747,12 @@ class NearestNeighbors(NeighborsBase):
707
747
  )
708
748
  self.weights = weights
709
749
 
750
+ @bind_default_backend("neighbors.search")
751
+ def train(self, *args, **kwargs): ...
752
+
753
+ @bind_default_backend("neighbors.search")
754
+ def infer(self, *arg, **kwargs): ...
755
+
710
756
  def _get_daal_params(self, data):
711
757
  params = super()._get_daal_params(data)
712
758
  params["resultsToCompute"] = "computeIndicesOfNeighbors|computeDistances"
@@ -715,8 +761,10 @@ class NearestNeighbors(NeighborsBase):
715
761
  )
716
762
  return params
717
763
 
718
- def _onedal_fit(self, X, y, queue):
719
- gpu_device = queue is not None and queue.sycl_device.is_gpu
764
+ def _onedal_fit(self, X, y):
765
+ # global queue is set as per user configuration (`target_offload`) or from data prior to calling this internal function
766
+ queue = QM.get_global_queue()
767
+ gpu_device = queue is not None and getattr(queue.sycl_device, "is_gpu", False)
720
768
  if self.effective_metric_ == "euclidean" and not gpu_device:
721
769
  params = self._get_daal_params(X)
722
770
  if self._fit_method == "brute":
@@ -727,37 +775,26 @@ class NearestNeighbors(NeighborsBase):
727
775
 
728
776
  return train_alg(**params).compute(X, y).model
729
777
 
730
- policy = self._get_policy(queue, X, y)
731
- X_table = to_table(X, queue=queue)
732
- params = self._get_onedal_params(X_table, y)
733
- train_alg = self._get_backend(
734
- "neighbors", "search", "train", policy, params, X_table
735
- )
736
-
737
- return train_alg.model
778
+ else:
779
+ params = self._get_onedal_params(X, y)
780
+ X, y = to_table(X, y, queue=queue)
781
+ return self.train(params, X).model
738
782
 
739
- def _onedal_predict(self, model, X, params, queue):
783
+ def _onedal_predict(self, model, X, params):
740
784
  if type(self._onedal_model) is kdtree_knn_classification_model:
741
785
  return kdtree_knn_classification_prediction(**params).compute(X, model)
742
786
  elif type(self._onedal_model) is bf_knn_classification_model:
743
787
  return bf_knn_classification_prediction(**params).compute(X, model)
744
788
 
745
- policy = self._get_policy(queue, X)
746
- X = to_table(X, queue=queue)
747
- if hasattr(self, "_onedal_model"):
748
- model = self._onedal_model
749
- else:
750
- model = self._create_model(self._get_backend("neighbors", "search", None))
789
+ X = to_table(X, queue=QM.get_global_queue())
751
790
 
752
791
  params["fptype"] = X.dtype
753
- result = self._get_backend(
754
- "neighbors", "search", "infer", policy, params, model, X
755
- )
756
-
757
- return result
792
+ return self.infer(params, model, X)
758
793
 
794
+ @supports_queue
759
795
  def fit(self, X, y, queue=None):
760
- return super()._fit(X, y, queue=queue)
796
+ return self._fit(X, y)
761
797
 
798
+ @supports_queue
762
799
  def kneighbors(self, X=None, n_neighbors=None, return_distance=True, queue=None):
763
- return super()._kneighbors(X, n_neighbors, return_distance, queue=queue)
800
+ return self._kneighbors(X, n_neighbors, return_distance)
@@ -14,12 +14,14 @@
14
14
  # limitations under the License.
15
15
  # ==============================================================================
16
16
 
17
- from onedal import _backend
17
+ from onedal import _default_backend, _dpc_backend
18
+
19
+ backend = _dpc_backend or _default_backend
18
20
 
19
21
 
20
22
  def get_tree_state_cls(model, iTree, n_classes):
21
- return _backend.get_tree.classification.get_tree_state(model, iTree, n_classes)
23
+ return backend.get_tree.classification.get_tree_state(model, iTree, n_classes)
22
24
 
23
25
 
24
26
  def get_tree_state_reg(model, iTree, n_classes):
25
- return _backend.get_tree.regression.get_tree_state(model, iTree, n_classes)
27
+ return backend.get_tree.regression.get_tree_state(model, iTree, n_classes)
@@ -16,11 +16,13 @@
16
16
 
17
17
  import numpy as np
18
18
 
19
- from onedal import _backend
19
+ from onedal import _default_backend as backend
20
+ from onedal._device_offload import supports_queue
21
+ from onedal.common._backend import BackendFunction
22
+ from onedal.utils import _sycl_queue_manager as QM
20
23
 
21
- from ..common._policy import _get_policy
22
24
  from ..datatypes import from_table, to_table
23
- from ..utils import _check_array
25
+ from ..utils.validation import _check_array
24
26
 
25
27
 
26
28
  def _check_inputs(X, Y):
@@ -32,14 +34,20 @@ def _check_inputs(X, Y):
32
34
  return X, Y
33
35
 
34
36
 
35
- def _compute_kernel(params, submodule, X, Y, queue):
36
- policy = _get_policy(queue, X, Y)
37
+ def _compute_kernel(params, submodule, X, Y):
38
+ # get policy for direct backend calls
39
+
40
+ queue = QM.get_global_queue()
37
41
  X, Y = to_table(X, Y, queue=queue)
38
42
  params["fptype"] = X.dtype
39
- result = submodule.compute(policy, params, X, Y)
43
+ compute_method = BackendFunction(
44
+ submodule.compute, backend, "compute", no_policy=False
45
+ )
46
+ result = compute_method(params, X, Y)
40
47
  return from_table(result.values)
41
48
 
42
49
 
50
+ @supports_queue
43
51
  def linear_kernel(X, Y=None, scale=1.0, shift=0.0, queue=None):
44
52
  """
45
53
  Compute the linear kernel between X and Y:
@@ -60,13 +68,13 @@ def linear_kernel(X, Y=None, scale=1.0, shift=0.0, queue=None):
60
68
  X, Y = _check_inputs(X, Y)
61
69
  return _compute_kernel(
62
70
  {"method": "dense", "scale": scale, "shift": shift},
63
- _backend.linear_kernel,
71
+ backend.linear_kernel,
64
72
  X,
65
73
  Y,
66
- queue,
67
74
  )
68
75
 
69
76
 
77
+ @supports_queue
70
78
  def rbf_kernel(X, Y=None, gamma=None, queue=None):
71
79
  """
72
80
  Compute the rbf (gaussian) kernel between X and Y:
@@ -90,11 +98,10 @@ def rbf_kernel(X, Y=None, gamma=None, queue=None):
90
98
  gamma = 1.0 / X.shape[1] if gamma is None else gamma
91
99
  sigma = np.sqrt(0.5 / gamma)
92
100
 
93
- return _compute_kernel(
94
- {"method": "dense", "sigma": sigma}, _backend.rbf_kernel, X, Y, queue
95
- )
101
+ return _compute_kernel({"method": "dense", "sigma": sigma}, backend.rbf_kernel, X, Y)
96
102
 
97
103
 
104
+ @supports_queue
98
105
  def poly_kernel(X, Y=None, gamma=1.0, coef0=0.0, degree=3, queue=None):
99
106
  """
100
107
  Compute the poly kernel between X and Y:
@@ -117,13 +124,13 @@ def poly_kernel(X, Y=None, gamma=1.0, coef0=0.0, degree=3, queue=None):
117
124
  X, Y = _check_inputs(X, Y)
118
125
  return _compute_kernel(
119
126
  {"method": "dense", "scale": gamma, "shift": coef0, "degree": degree},
120
- _backend.polynomial_kernel,
127
+ backend.polynomial_kernel,
121
128
  X,
122
129
  Y,
123
- queue,
124
130
  )
125
131
 
126
132
 
133
+ @supports_queue
127
134
  def sigmoid_kernel(X, Y=None, gamma=1.0, coef0=0.0, queue=None):
128
135
  """
129
136
  Compute the sigmoid kernel between X and Y:
@@ -144,9 +151,5 @@ def sigmoid_kernel(X, Y=None, gamma=1.0, coef0=0.0, queue=None):
144
151
 
145
152
  X, Y = _check_inputs(X, Y)
146
153
  return _compute_kernel(
147
- {"method": "dense", "scale": gamma, "shift": coef0},
148
- _backend.sigmoid_kernel,
149
- X,
150
- Y,
151
- queue,
154
+ {"method": "dense", "scale": gamma, "shift": coef0}, backend.sigmoid_kernel, X, Y
152
155
  )
@@ -91,7 +91,7 @@ def test_dense_small_rbf_kernel(queue, gamma, dtype):
91
91
  _test_dense_small_rbf_kernel(queue, gamma, dtype)
92
92
 
93
93
 
94
- @pass_if_not_implemented_for_gpu(reason="poly kernel is not implemented")
94
+ @pass_if_not_implemented_for_gpu(reason="Polynomial kernel is not implemented for GPU")
95
95
  @pytest.mark.parametrize("queue", get_queues())
96
96
  def test_dense_self_poly_kernel(queue):
97
97
  rng = np.random.RandomState(0)
@@ -116,7 +116,7 @@ def _test_dense_small_poly_kernel(queue, gamma, coef0, degree, dtype):
116
116
  assert_allclose(result, expected, rtol=tol)
117
117
 
118
118
 
119
- @pass_if_not_implemented_for_gpu(reason="poly kernel is not implemented")
119
+ @pass_if_not_implemented_for_gpu(reason="Polynomial kernel is not implemented for GPU")
120
120
  @pytest.mark.parametrize("queue", get_queues())
121
121
  @pytest.mark.parametrize("gamma", [0.1, 1.0])
122
122
  @pytest.mark.parametrize("coef0", [0.0, 1.0])
@@ -126,7 +126,7 @@ def test_dense_small_poly_kernel(queue, gamma, coef0, degree, dtype):
126
126
  _test_dense_small_poly_kernel(queue, gamma, coef0, degree, dtype)
127
127
 
128
128
 
129
- @pass_if_not_implemented_for_gpu(reason="sigmoid kernel is not implemented")
129
+ @pass_if_not_implemented_for_gpu(reason="Sigmoid kernel is not implemented for GPU")
130
130
  @pytest.mark.parametrize("queue", get_queues())
131
131
  def test_dense_self_sigmoid_kernel(queue):
132
132
  rng = np.random.RandomState(0)
@@ -150,7 +150,7 @@ def _test_dense_small_sigmoid_kernel(queue, gamma, coef0, dtype):
150
150
  assert_allclose(result, expected, rtol=tol)
151
151
 
152
152
 
153
- @pass_if_not_implemented_for_gpu(reason="sigmoid kernel is not implemented")
153
+ @pass_if_not_implemented_for_gpu(reason="Sigmoid kernel is not implemented for GPU")
154
154
  @pytest.mark.parametrize("queue", get_queues())
155
155
  @pytest.mark.parametrize("gamma", [0.1, 1.0, 2.4])
156
156
  @pytest.mark.parametrize("coef0", [0.0, 1.0, 5.5])