-
Notifications
You must be signed in to change notification settings - Fork 519
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
Arm wheels missing from latest release #2408
Comments
Further context: #2405 (comment) |
See comment. This should fix our CI on arm. Can revert this once h5py/h5py#2408 is resolved.
We've seen the same problem at https://github.com/ultralytics/ultralytics. Missing aarch64 wheels have crashed the Arm64 Docker deployments that install tensorflow (with h5py as a required tensorflow dependency). We've temporarily resolved this by avoiding h5py==3.11.0 installs on aarch64 in ultralytics/ultralytics#9956 |
I would be happy to review a PR moving us to cibuildwheel on GHA. This issue highlights some of the inherent problems in the way wheels get built (see https://pypackaging-native.github.io for more details). |
I would find that a little daunting for h5py because of the many different old CI workflows this would have to replace: Travis, Azure Pipelines, and the existing nightly GH Actions wheel job. But all you really have to do is add this to your [tool.cibuildwheel.linux]
# Build wheels for aarch64 under emulation.
archs = ["auto", "aarch64"] |
My concern with using GHA with QEMU via cibuildwheel is that from what I can see it doesn't actually test the wheel, whereas our current setup across the different provided does do that (that was the reason to use travis, to test on native hardware). Also, given we've previously had issues specific to non-x86 systems, I'm really wary of publishing something that is untested on its native platform (or just straight up untested). I think if someone either provides a PR which replaces travis with a CI provider who provides native ARM64 (e.g. what's the state of ARM MacOS on GHA, and can we run a linux VM on there?), or works out how to run the entire flow inside QEMU (so we do the build+test on ARM64), I would be inclined to review it (not speaking for any of the other maintainers, but I'd rather a native platform, just so we're not bitten by any emulation bugs). |
Yes, it does test the wheels built under emulation. Here are three packages that I work on that build Linux aarch64 wheels under QEMU emulation on GitHub actions; in all cases cibuildwheel tests the wheels built under emulation. |
pypa/cibuildwheel#1771 suggests this won't work for h5py, as we also have custom manylinux wheels 😞 |
Do you mean to say, it won't work for h5py because you have a custom manylinux Docker image? |
Yep, images, not wheels (and now I'm going to bed, obviously too tired to write logical sentences). |
It's odd that they are having a problem with pypa/cibuildwheel#1771 given that this works with the default manylinux Docker images. Perhaps there is a problem with the metadata for their particular Docker images? |
Not immediately useful or relevant, but perhaps a maintainer could sign up for the private beta of native arm runners: https://resources.github.com/devops/accelerate-your-cicd-with-arm-and-gpu-runners-in-github-actions/ |
Done, but from the language on the form they are looking for paid early adopters 🤣 |
For anyone who encounters this issue in the CI, setting export PIP_PREFER_BINARY=1 will download a wheel from an old version. |
Looks like Github is looking to add more folks in in Jun/July. https://github.com/orgs/community/discussions/19197#discussioncomment-9167725 In the meantime if @AWSjswinney and I can swing some credits for an AWS Graviton self-hosted runner, would you be willing to get the build working on that for now? And then when the managed runners are released, move to a self managed runner? |
Hello there, I spotted the back-link from that issue. Curious if you have actually hit this issue or just assuming you will? Many of cibuildwheel's users use custom manylinux images in emulation without problems, but I'd like to know if it's a wider issue. |
From #2414:
@tacaswell We reached out to TravisCI and they let us know that you should have credits again. Can you check please? |
h5py is unable to be installed on our arm64 images, see h5py/h5py#2408
Hello, sorry for asking, but I, too, ran into the problem of missing wheels for |
Over in #2434, using emulation at least builds nightly wheels for |
These files are present in the 3.10 release but the equivalent files are missing from the 3.11 release:
The text was updated successfully, but these errors were encountered: