update submodules to latest versions#73
Conversation
f3e7581 to
d58f5b6
Compare
6844808 to
7f89729
Compare
|
The 32 bit builds are failing the new I can try to reproduce the failure locally using the manylinux2010 32-bit image |
|
IIRC, the tests are run in a docker image. I wonder if the correct image is being used? |
|
@r-devulap do you have an idea why the Edit: @charris is correct, this is with the matthew-brett 32 bit image using wheelhouse/numpy-1.19.0.dev0+4edd437-cp36-cp36m-manylinux2010_i686.wh produced by the build-wheel step |
|
@charris is that wheel uploaded anywhere, or is it only local to the CI run? |
|
@mattip Which wheel? |
|
The wheels from this PR: specifically wheelhouse/numpy-1.19.0.dev0+4edd437-cp36-cp36m-manylinux2010_i686.whl |
|
No, the wheels generated in PRs are not uploaded, the rackspace access key isn't decoded in PR's. I don't know how to access them otherwise. We can change that as a travis option, I think, but then the rackspace repository would be contaminated. I wonder if we could send wheels to someplace like dropbox? |
|
Not a big deal, I can build it locally since both the build and the test are scripted runs. |
|
The 32-bit docker that fails and the 64-bit that pass have the same |
|
mfpmath=sse vs mfpmath=387? |
@mattip the ULP difference is not 8, it is 8.38861e+06 ULP. Something is off (like computing ULP difference between 2 NAN's or something). Can you point me to a docker image I can try running locally to debug? |
|
I see this in the error message: |
|
The same docker that runs the azure tests successfully fails to properly use the wheel built here. I am now going to try to both build and test with the azure script from numpy/numpy. Note that this repo builds a wheel in the multilinux2010 docker and then tests it in a different one. |
Ahh, so maybe it is failing to properly catch the NAN error conditions in these dockers, and somehow Azure does something special? |
Do we set that at all in the gcc flags, or is there an |
|
@r-devulap : I can run the manylinux docker like Once in the docker, you will want to The problem only shows up when compiling inside the docker of the manylinux image. |
|
Thanks @mattip, I did confirm the failure and it happens for a NAN to NAN comparison, not sure what the difference is between this and other linux Glibc that it fails for this. Will dig in further tomorrow. |
|
As always, there is more than one problem. First, Second, Edit: loop name, proper define |
|
For completeness, this is what Edit: SSE2 is detected, but |
|
Edited: the first problem is |
|
xref numpy/numpy#15593 for the use of a too-specific NAN For the dissonance between SSE2 detection methods, ping @seiko2plus |
|
The log problem is solved by added |
|
@mattip, The short answer, |
|
Now better, but there are still 32-bit failures. We should probably add a manylinux201 i686 run to the regular CI to pick these up. Is there an accepted way to skip test failures in certain builds? Or perhaps we should disable 32-bit wheel builds until we can work out the kinks. Edit: add "wheel" to last line |
|
Nope, still getting a segfault on linux32. |
|
Close reopen to upgrade openblas to 0.3.9 beta |
| exclude: | ||
| # Exclude the default Python 3.6 build | ||
| - python: 3.6 | ||
| jobs: |
There was a problem hiding this comment.
lines 19-here update the confusing travis.yml: we don't have any python3.6 jobs to exclude, sudo is no longer needed, matrix should be replaced by jobs.
| install_gfortran | ||
| else | ||
| # For manylinux2010 builds with manylinux1 openblas builds | ||
| $use_sudo yum install -y libgfortran-4.4.7 |
There was a problem hiding this comment.
This is needed to use the manylinux2010 openblas builds on the manylinux1 wheel builds. libfortran will be statically linked (uses the *.a file) so the wheels are still valid.
There was a problem hiding this comment.
Sounds like the comment is backward. Maybe "Needed for manylinux1 wheels using libraries built for manylinux2010."
|
Builds are green |
config.sh
Outdated
| (cd / && $use_sudo tar zxf $tar_path) | ||
| # Use the same incantation as numpy/tools/travis-before-install.sh | ||
| python -mpip install urllib3 | ||
| target=$(python numpy/tools/openblas_support.py) |
There was a problem hiding this comment.
Strange to call a command a target. Maybe explicitly use python on the next line. Where does the file come from?
EDIT: nvm.
There was a problem hiding this comment.
This is a strange construction, it could use a comment.
There was a problem hiding this comment.
Looks like what it does is download all the libraries into /var/tmp/openblas/. This could become rather inefficient if the libraries become numerous.
There was a problem hiding this comment.
Adding a comment and a todo to use site.cfg instead of copying.
| # Environment variables for build | ||
| OPENBLAS_VERSION="v0.3.7" | ||
| MACOSX_DEPLOYMENT_TARGET=10.9 | ||
| CFLAGS="-msse2 -std=c99 -fno-strict-aliasing" |
There was a problem hiding this comment.
This is comes from env_vars.sh, correct? I assume the extra bit is -msse2. Is the latest multibuild is updated to use this. Is it documented in the README?
There was a problem hiding this comment.
The needed bit is the -msse2. Commenting here, do you have a place in the README you would like to see it documented as well?
There was a problem hiding this comment.
Added a line to the README, as well as explaining the OpenBLAS download
| echo "import sys; import numpy; \ | ||
| sys.exit(not numpy.test('full', \ | ||
| extra_argv=[${extra_argv}]))" | ||
| extra_argv=['-vv', ${extra_argv}]))" |
|
LGTM, I'll put this in when the tests finish. Thanks Matti. |
|
Is changing |
|
Updated appyveyor too |
|
Merged. |
|
Hmm, two of the 32 bit builds segfaulted in the merge. |
|
Grrr. I was hoping that the move to xenial would fix those pesky 32-bit segfaults. Maybe we should revert the |
Me too :) SSE2 has been around for 20 years, in fact I think NumPy requires it and we made that decision some time ago. Remind me what the compiler problem is. |
|
If we compile with sse2 we get segfaults. If we compile without it, we get test failures on 32-bit since
|
|
Hmm. Is the problem only in |
|
It is something new in master: we now have sse-specific loops for many ufuncs. The latest crop of sse/avx loops added accuracy tests. This pointed out a deficiency in the glibc version of some of the functions (particularily I see that on Azure the builds also do not fail. There the tests are run in the multibuild2010_i686 image on top of Ubuntu 18.04, here we run in a Ubuntu 16.04 (xenial) image on top of Ubuntu 18.04 (bionic). Things to try:
|
test latest version of tools before adding new platforms, also check openblas is properly installed