-
Notifications
You must be signed in to change notification settings - Fork 179
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
[CI, enhancement] add sklearnex CI job with nightly oneDAL DPCPP build in github actions #1845
Conversation
/azp run CI |
I'm running into issues with the necessary secret. This PR is on hold until this has been updated. |
/intelci: run |
Issues with secrets have been resolved, and the use of a PAT is not necessary in order to access oneDAL's artifacts. |
/intelci: run |
pytest==7.4.4 ; python_version <= '3.9' | ||
pytest==8.3.2 ; python_version >= '3.10' | ||
pytest==7.4.4 ; python_version <= '3.10' | ||
pytest==8.3.2 ; python_version >= '3.11' | ||
numpy>=1.19.5 ; python_version <= '3.9' |
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.
Why is this needed?
# This is necessary to prevent import errors from sklearnex and by extension | ||
# sklearn caused by initial scipy and/or numpy versions that are installed. | ||
# It is written in a way to be `packaging` independent. This branch occurs | ||
# when a sklearn version is given to the script externally. | ||
def sklearn_check_version(ver): | ||
ver = [int(i) if i != "" else 0 for i in ver.split(".")[:2]] | ||
sk_ver = [int(i) if i != "" else 0 for i in str(argv[1]).split(".")[:2]] | ||
return sk_ver[0] > ver[0] or (sk_ver[0] == ver[0] and sk_ver[1] >= ver[1]) |
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.
To me this is not obvious. In which case this should work better?
Description
This PR expands sklearnex testing to work with latest oneDAL builds. It uses a custom Visual Studio / Intel DPC++ compiler (AVX2) windows build for Windows testing. It uses a Intel DPC++ Linux build (AVX2). This uses only publicly available components (which would match external contributor capabilities), and follows what an external contributor would have to do to hand-build oneDAL/sklearnex.
It has:
onedal.__init__
anddaal4py.__init__
Regressions:
Note this PR removes github runner introduced in #1844 because the github.token secret has sufficient permissions (read) able to access artifacts from oneDAL (and other open-source github repos).
Current Setup tests the following for Windows and Linux (matching current CI for verification):
Further development would be required to change these due to the fragility of some of the ci setup scripts and related pandas/scipy/numpy versions (e.g. some work will be required after new values are determined).