-
Notifications
You must be signed in to change notification settings - Fork 174
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ENH: functional support for Array API #1861
ENH: functional support for Array API #1861
Conversation
updated onedal4py _device_offload module sklearnex _device_oflload depends on onedal4py only
…imators with daal4py backend
moved refactoring into spererate intel#1877
resolved on intel#1998 and intel#1999
/intelci: run |
/intelci: run |
CI is Green. Test fails are related #2031 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Left a comment elsewhere on a previous review item, just a quick check. Looking pretty good, will give another review by tomorrow.
/intelci: run |
/intelci: run |
/intelci: run |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have verified the extension of testing for sklearn > 1.2 for array_api, and looked at the performance numbers, small comments to answer before approval. Any update on who else has glanced at this, or is unwilling to review?
/intelci: run |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ready to go
This reverts commit c0181f5.
Description
Array API functional support without zero-copy in scikit-learn-intelex.
Depends on #1999 and #1998
Brings extension for the device_offload logic and extends support_usm_ndarray decorator and make this work also for the array-api-strict inputs. New support_array_api decorator mainly impl Array API functional support in scikit-learn-intelex.
Proposed changes shown on the dataflow diagram below. Yellow plates is extensions in the sklearnex dataflow diagram and show the first iteration of the scikit-learn-intelex Array API support (functional support).
Works fine with array-api-strict v1 and v2 as well. Some test suits requires updates for the v2, that will be solved on #2012
Changes includes:
sklearnex._device_offload.wrap_output_data
decorator andsklearnex._device_offload.dispatch
function.onedal._device_offload._transfer_to_host
extended for the Array API inputs.onedal._device_offload.support_usm_ndarray
renamed toonedal._device_offload.support_array_api
extend for Array API inputs handling. (several files changed for this this renaming)get_dataframes_and_queues
extended for the array_api inputs_array_api
modules added in the both onedal4py and sklearnex.\onedal.utils._array_api
module includes several array api utilities and_get_sycl_namespace
that is used in theget_namespace
(fromsklearnex.utils._arrray_api
), that returns supported array api namespace.Changes are documented in the files. General documentation for Array API support will be able at #1918
Test statistics
More than 2834 new test cases (+ 46%) added for Array API inputs. On
sklearnex
testing you may observe the rise of test pass statisticsfrom
5943 passed, 898 skipped, 42083 warnings in 394.72s (0:06:34)
to
8674 passed, 1001 skipped, 44350 warnings in 538.83s (0:08:58)