-
Notifications
You must be signed in to change notification settings - Fork 240
docker: add ARM64 base image support using GitHub runners #2751
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
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't get why the changes are so big and why it needs a copy paste of the CPU docker file. Only change should be to add the runner and tag to the deploy action
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #2751 +/- ##
==========================================
- Coverage 83.05% 83.05% -0.01%
==========================================
Files 248 248
Lines 50294 50284 -10
Branches 4426 4423 -3
==========================================
- Hits 41773 41762 -11
+ Misses 7763 7762 -1
- Partials 758 760 +2
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
You are right. Will fix and push again. |
dc07227
to
4257f4e
Compare
.github/workflows/docker-bases.yml
Outdated
tags: "devitocodes/bases:cpu-gcc${{ matrix.gcc }}" | ||
|
||
####################################################### | ||
############## GCC ARM64 Base ######################### |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this can me berged with the GCC above with a matrix
4257f4e
to
6a70760
Compare
5991b8f
to
72d04ee
Compare
Add comprehensive ARM64 (linux/arm64) support for Devito's Docker images and CI/CD pipeline, enabling deployment on AWS Graviton, Apple Silicon, and other ARM64 platforms. Architecture & Build Strategy: - Native ARM64 builds on GitHub's free ubuntu-24.04-arm runners - Separate runners for each architecture (no cross-compilation) - x86_64 builds on ubuntu-22.04 (pinned to avoid ubuntu-latest migration) - Multi-platform Docker image support with proper manifest lists Workflow Improvements: - Refactor docker-bases.yml to use matrix strategy for GCC builds - Consolidate x86_64 and ARM64 base image builds into single job - Remove QEMU setup (not needed for native builds) - Add arm64 workflow dispatch input parameter - Conditional execution based on input flags to run only requested builds - ARM64 GCC limited to default version (building from source too slow) CI Test Coverage: - Add ARM64 test configurations to pytest-core-nompi.yml: - pytest-ubuntu-py312-gcc14-omp-arm64 - pytest-ubuntu-py311-gcc13-omp-arm64 - Add ARM64 MPI tests to pytest-core-mpi.yml (gcc-arm64) - Add ARM64 smoke test to docker-devito.yml - Pin x86_64 tests to ubuntu-22.04 for stability Bug Fixes: - Fix OpenMPI parallel build: change ${nproc} to $(nproc) in Dockerfile.cpu (reduces build time from ~15-20 mins to ~5-8 mins) - Add actionlint.yaml config for self-hosted runner label validation Documentation: - Add ARM64 section to docker/README.md - Document supported ARM64 platforms (AWS Graviton, Apple Silicon, etc.) - Add usage examples for ARM64 images
72d04ee
to
146b4c7
Compare
Replace rank-specific hardcoded assertions with ownership-based verification using _dist_datamap. The test now validates sparse point interpolation values based on actual point ownership rather than assuming a specific MPI topology, ensuring consistent results across different decompositions.
fd3e9c7
to
0a26204
Compare
Having a different image for ARM doesn't make sense, it should be a single cpu image with multiple platform support. You can have a look at the ![]() |
Done in #2773 |
Adds ARM64 (Graviton/Apple Silicon) support to Docker infrastructure:
Single ARM64 base image supports all Graviton variants (2/3/4) and Apple Silicon via runtime detection through Devito's JIT compiler.