-
-
Notifications
You must be signed in to change notification settings - Fork 11k
BLD: use newly released OpenBLAS 0.3.30, use ILP64 on win_arm64 #29280
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
base: main
Are you sure you want to change the base?
Conversation
On cirrusCI in the first cibuildwheel iteration (python3.11) of the macos_arm64 build these tests are failing, pointing to a problem with OpenBLAS. The dtype seems to always be float32, but the tests with a * test many dtypes and float32 appears first in the list of dtypes to try:
and more in total 44 tests failed. |
Locally, the cirrusCI failure does not reproduce on a macbook pro m2 with clang 17.0.0. However locally I can reproduce the 2 failures from the 'transition to github CI" PR #29069. CirrusCI uses clang 16.0.0, the PR uses clang 15.0.0, so I don't think it is a compiler problem. |
I can also reproduce those two failures on my mac. |
It reproduces on scipy-openblas32 as well, and reproduces all the way back to the first scipy-openblas macos_arm64 packages 0.3.24.95.0. The warnings are emitted in |
I am stuck.
@martin-frbg any hints how to move past the failures? Do you know off-hand what kernel is used by Maybe we can wrap the call and manually reset the flags on macos-arm64? numpy/numpy/linalg/umath_linalg.cpp Line 821 in 2bb4005
|
getrf is reimplemented via ztrsm&zgemm (or as getf2 using zgemv&zscal when the problem size is small enough. if you are building for either Apple M or generic ARMV8 that should mean trsm as generic C code ( unlikely to be an issue) zgemv, zgemm and zscal all using the same assembly that any other non-SVE target uses. |
Thanks. If I go back to 0.3.24, I still see the FPE registers set in |
I worked around the problem in a different PR to use github to build the NumPy wheels by resetting the registers after a call to |
OpenBLAS 0.3.30 was recently released, let's use it. Since we now have scipy-openblas64 wheels for win_arm64, use those in the wheel build.