Skip to content
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

Adds wheels for linux/aarch64 #23

Open
wants to merge 13 commits into
base: master
Choose a base branch
from

Conversation

merschformann
Copy link

Description

This PR adds wheels for linux-aarch64.

Changes

  • Adds *-manylinux_aarch64 wheels build target(s).
  • Moves cibuildwheel configuration to pyproject.toml.
  • Modifies {...}/setup_optimizers_linux/action.yml to also download the optimizers for linux-aarch64.

Notes

  • I was not able to add the COPT download link for linux-aarch64, as I don't have access to it.
  • I did not add a separate test workflow for linux-aarch64, as no native aarch64/arm64 runner is supported by GitHub yet (for Linux that is). The wheels are built through Qemu, which is already terribly slow. Maybe the missing linux-aarch64 test workflow is an acceptable risk until official release (see GH blog post). This also raises the question whether editing the action.yml file is necessary at all at this point.
  • I moved the build configuration to the project file for more centralized / harmonic builds. Let me know whether you like it.
  • I opened another PR for highsbox (see Adds wheels for linux/aarch64 highsbox#5)
  • I tested the wheels on an RPi and AWS instance for HiGHS and they worked fine.

@metab0t
Copy link
Owner

metab0t commented Sep 10, 2024

I prefer to wait for the official GHA runner for Linux on ARM for reasons you have mentioned:

  1. QEMU is terribly slow.
  2. We cannot test it on every commit (this is important because I have no local hardware).
  3. GitHub says that they expect to begin offering Arm runners for open source projects by the end of the year, so we do not need to hurry. If someone needs the wheel, the building process of POI is quite easy because it does not depend on any solver binary (only a working C++ compiler and CMake).

Anyway, thanks for your hard work! Do you prefer to leave this PR open to get back on it later, or close it?

@merschformann
Copy link
Author

Yeah, that makes sense. I am happy to circle back to this when such runners become available. Feel free to ping me then. We can keep this PR open or close it until then. I don't mind. 😊

@metab0t
Copy link
Owner

metab0t commented Sep 10, 2024

OK, I will keep this open until we can use official GHA ARM runner.

By the way, I found out that ARM Linux can be run in VM on my M1 mac, so I can actually test it locally.

@merschformann
Copy link
Author

Yes, that works. Unfortunately, docker does not appear to be supported easily on the macos-14 runner (happy to be proven wrong here though - just tested it with a new workflow added in this branch, the relevant action run).
Alternatively, I have a personal self-hosted linux-aarch64 runner that would be able to cover, but that is security-wise dicey as it will get access to repo secrets when running and it runs foreign code in my basement rack. 😅 So, not sure whether it is worth it (from both our perspectives).

@metab0t metab0t force-pushed the master branch 3 times, most recently from 8bb914f to 362800f Compare November 22, 2024 18:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants