BUILD: use standard build of OpenBLAS for aarch64, ppc64le, s390x#15279
BUILD: use standard build of OpenBLAS for aarch64, ppc64le, s390x#15279tylerjereddy merged 4 commits intonumpy:masterfrom
Conversation
|
Hmm. The OpenBLAS libs that MacPython/openblas-libs#9 built are |
It doesn't hurt for testing purposes as long as there aren't a bunch of errors. I assume 3.8 will be out before the 1.19 release. |
|
It looks like the new |
|
gcc8 is a side effect of using |
|
The static linking of OpenBLAS to the gcc/gfortran runtime was relatively easy on Mac, and I even did a demo PR to the NumPy repo that contained links to the example script: #13191 But on Linux I thought we'd need to build the gcc toolchain from source because of the same problem Julia had: JuliaLang/julia#326 (comment) I imagine Matti could build the gcc toolchain from source (I've never done it)---I suppose if you wanted that in a workflow you'd need a custom docker container image so we don't have to build from source each time? We've had a few different scattered discussions about static linking of OpenBLAS to the gcc toolchain runtime, but it never really caught much traction with the team, I think. There was a more recent discussion where someone was claiming the above problem for Linux doesn't actually exist, but I'm pretty sure I ran into it. |
|
On an unrelated note, I better go ahead and build the 0.3.7 OpenBLAS libs for the more exotic archs just in case they are needed for debugging, etc. 0.3.8 is clearly getting a lot of changes from what I can see on the tracker. I'll try to do that on Sunday. |
|
Ok, I've started the builds upstream in MacPython/openblas-libs#13 Hopefully that will give NumPy/SciPy etc. access to the |
|
hmm, no libgfortran5 debian package in xenial (ubuntu). So either I need to build the OpenBLAS on multilinux2014 (in MacPython/openblas-libs) with an older gcc, install libgfortran5 on the xenial image, or update to bionic |
|
If the |
9523ba2 to
efb5a01
Compare
|
There are failures on s390x and ppc64le around einsum, maybe due to upgrading to bionic from xenial. s390x is complaining about uninitialized values in arrays: and ppc64le is failing an einsum test at The other x86 failure can be fixed by adding the proper packages to the |
|
maybe connected with signed/unsigned int confusion in PowerPC |
|
Ah, I was thinking about this yesterday: #14693 but seems that is already fixed then... |
|
The ppc64le failure is due to DetailsOn X86_64 the calculation is equivalent to |
|
Debugging this on the gcc112 ppc64le machine on the gcc farm, it seems there is a problem with |
|
OpenBLAS devs recommend using 0.3.8dev which should fix the alignment problem |
|
tests are all passing, ready for review |
tylerjereddy
left a comment
There was a problem hiding this comment.
This LGTM & probably good to identify issues that may crop up as the community starts to look at supporting wheels for these archs.
| env: | ||
| global: | ||
| - OpenBLAS_version=0.3.7 | ||
| - OpenBLAS_version=0.3.8 |
There was a problem hiding this comment.
Technically it is 0.3.8.dev. Perhaps in a follow-up PR we might clamp down on the "string in result" check in openblas_support.py to distinguish between the development branch and the stable release of 0.3.8, but that's a minor point really.
|
Thanks Matti |
In MacPython/openblas-libs#9 we added aarch64, ppc64le, s390x to the standard builds of the OpenBLAS libs. On those architectures we use the multilinux2014 docker image, x86 still uses multilinux1. This PR now uses those CI builds (instead of manual builds) for numpy.
This simplifies
tools/openblas_support.pyand gets us one step closer to wheels for other architectures (gh-14886)