-
-
Notifications
You must be signed in to change notification settings - Fork 25.8k
CI Build wheels for the ARM64 architecture #18782
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
Conversation
I have recently tried doing this. I found that I had to update I also had a travis-ci build that can builld the wheel but stalls during |
Is it possible to use arm64-gravtion2 to build and test the wheels? It will go much faster. Travis-CI Graviton2 support: https://blog.travis-ci.com/2020-09-11-arm-on-aws Travis-CI config to use Graviton2 instances:
|
Thank you @janaknat for the suggestion. I will have a look as soon as #18761 gets merged 😉. |
I will wait for #18761 to get merged before continuing working on this PR to use the
Same for me. We need to extend the waiting time with |
You might want to try to set the environment variables of #18807 and increase the verbosity of cibuildwheel to see how far it could make progress. |
I think it's time to re-explore using the graviton2 processors which might be significantly faster as suggested in #18782 (comment) . |
Let us try ;) |
The suggestion of @janaknat allows the
|
This are probably the same failures than those reported by @janaknat in MacPython/scikit-learn-wheels#66. It seems that they are all happening on models that use BLAS / LAPACK operations which makes me suspect a bug on the BLAS implementation for ARM64 on graviton2 processors... |
We still get a timeout after 10min without any output on the Python 3.9 job though... |
I pushed a change to print the implementation and version of BLAS used by numpy and scipy in those wheels. I am afraid that we will have to start interactive debugging sessions to craft minimal reproduction cases that only depend on numpy and/or scipy to be able to report the issues upstream for that platform. |
Check to see if the bugs disappear with different implementations of BLAS and LAPACK. Alternatives:
|
I think we do it only manually for ARM64 wheels. |
And we should move the ICC and scipy-dev builds out of travis (e.g. to github actions or Azure). If someone wants to volunteer :) |
Indeed, I will try to move the wheel builder for ARM64 to |
I think that the Am I wrong? |
It is. I moved it to azure-pipelines a few months ago to get the ball rolling. I opened #19036 to remove |
FYI, the ARM64 wheels are available online: https://anaconda.org/scikit-learn-wheels-staging/scikit-learn/files. |
@alfaro96 The latest version doesn't have the aarch64 wheels. |
cibuildwheel 1.8.0 now supports building ARM via emulation on GHA and others. :) |
@alfaro96 I highly recommend asking Travis, they may have the ability to increase the free allotment for special cases. They have done that for at least one group here. |
CC @thomasjpfan and @ogrisel. |
I think @adrinjalali has already emailed travis about this. |
Yes. I have sent two emails, no luck so far! |
@alfaro96 Did Travis get in contact wrt credits? |
Any idea on when the wheels will show up in PyPI? |
@alfaro96 Will the aarch64 wheels show up in pypi? |
Since the WDYT @ogrisel and @thomasjpfan. |
I think we are waiting for the 0.24.2 release. I do not think the script would work now because it will try to upload all the wheels and fail because pypi does not allow one to reload a wheel with the same version. (unless we give it a "post1" tag) Technically, we can run build-wheel on the |
@thomasjpfan Is your user name on pypi the same as your github's? |
@adrinjalali It is the same as my github handle. |
Sent you an invite. |
Thank you @adrinjalali! I have uploaded the wheels aarch64 files onto pypi. |
Thanks @thomasjpfan and sorry @alfaro96 for not replying to your pings, I had too many notifications in my inbox. |
Reference Issues/PRs
Closes MacPython/scikit-learn-wheels#66
What does this implement/fix? Explain your changes.
This PR build the wheels for the ARM64 architecture using the
cibuildwheel
package.