-
Notifications
You must be signed in to change notification settings - Fork 274
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
CI: Add Ubuntu on ARM runner to CI #894
base: dev2
Are you sure you want to change the base?
Conversation
Hu? Why are the runners that are using Clang on Ubuntu failing? I didn't touch anything in the rules about them... Looking back on the actions that ran in the last couple of weeks: That isn't new with the changes from here. These runners started failing without any change in this repository. A few tests for LAGraphX are failing with a segfault now.
|
Sure enough, those workflows succeed if they are reverted to the Ubuntu 22.04 runners. What I've missed before: The runners that build for Windows MSVC using Clang as the compiler are also failing the tests for LAGraph. |
Thanks. yes, I've noticed the Windows clang failures. I was considering just deleting those runners. |
01fc658
to
54a3153
Compare
GitHub started hosting runners with Ubuntu on ARM64 processors for open source projects for free: https://github.blog/changelog/2025-01-16-linux-arm64-hosted-runners-now-available-for-free-in-public-repositories-public-preview/ Add one configuration that is using these runners to the build matrix.
GitHub hosts Ubuntu on ARM64 runners now. Remove the emulated runner (in favor of the native one).
LLVM Clang emits a different set of compiler warnings for potential issues in the source code (compared to GCC). So, it makes sense to keep building with it in CI. There is probably little reason (when it comes to coverage) to build with different configurations with that compiler though. Keep only one configuration that builds with Clang on Ubuntu (to save some CI minutes - and reduce the energy footprint).
I tried to enable CUDA on the Ubuntu on ARM runner. But CMake couldn't detect a working CUDA compiler (albeit installing the same packages that work for Ubuntu on x86_64).
I don't know how to install a working CUDA toolchain on ARM or how to tell CMake to use it. I also can't test that locally (no ARM hardware here). So, I opted for disabling CUDA on the ARM runner. In the last run for the root CMakeLists.txt file on Ubuntu on ARM, checking out the repository failed apparently for some reason. Other than that, this should be ready for review now. |
GitHub started hosting runners with Ubuntu on ARM64 processors for open source projects for free:
https://github.blog/changelog/2025-01-16-linux-arm64-hosted-runners-now-available-for-free-in-public-repositories-public-preview/
Add one configuration that is using these runners to the build matrix.
According to their blog post, the arm64 runners are more efficient and potentially faster than the x86_64 runners. (But it is still in a preview phase and maybe it will take some time for them to better scale and balance the load.) If that turns out to be true, it should be easy to switch more configurations in that workflow (or the one using the root CMake file) to the arm64 runners (and maybe keep only one or two running on x86_64).
Since there is now the possibility to run tests for this target natively, remove that target from the build matrix of the workflow that emulates it with
qemu
.There is an open PR for the Alpine action that would allow running the armv7 tests natively on aarch64. But it hasn't been merged yet:
jirutka/setup-alpine#22
So, keep emulating armv7 on x86_64 for the time being.