BLD: use newly released OpenBLAS 0.3.30, use ILP64 on win_arm64#29280
BLD: use newly released OpenBLAS 0.3.30, use ILP64 on win_arm64#29280mattip wants to merge 1 commit intonumpy:mainfrom
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 |
|
Replaced by #29069 |
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.