ci: add GitHub Actions workflow (Linux x86_64 + aarch64)#11
Merged
Conversation
Configures, builds, and runs the ctest suite on push/PR: - Linux x86_64 (ubuntu-latest): NEON off, Vulkan via Mesa lavapipe (software rasterizer), CUDA off. Exercises the scalar/Eigen fallbacks and the Vulkan shaders under lavapipe. - Linux aarch64 (ubuntu-24.04-arm): NEON on, Vulkan via lavapipe, CUDA off. Actually runs the ARM NEON code paths. VK_ICD_FILENAMES is pinned to the lavapipe ICD so the loader does not try to find a host GPU (free runners have none). Not exercised here (no free CI hardware): - CUDA (test_cuda_kernels) — needs an NVIDIA GPU - SVE2 (test_sve2_kernels) — needs an ARMv9 core; the ubuntu-24.04-arm runner is Neoverse-N1, which is ARMv8.2-a with no SVE2 - FP16 NEON tests — build only on FP16-capable ARM targets Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
First attempt hard-coded /usr/share/vulkan/icd.d/lvp_icd.{x86_64,aarch64}.json
which does not exist on the current mesa-vulkan-drivers package on
ubuntu-latest / ubuntu-24.04-arm; both jobs failed on the "Force lavapipe"
step. Discover whichever lvp_icd.*.json the package actually installed,
fall back to letting the loader search /usr/share/vulkan/icd.d by default,
and as a last resort pin VK_LOADER_DRIVERS_SELECT=lvp.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
.github/workflows/ci.yml— the repo had no CI at all.ubuntu-latest(x86_64, NEON off) andubuntu-24.04-arm(aarch64, NEON on). Both configure, build, and run the ctest suite on every push tomainand every PR.VK_ICD_FILENAMESis pinned to the lavapipe ICD so the loader does not try to find a host GPU on the free-tier runner.What CI does not cover (no free hardware)
test_cuda_kernelsrequires an NVIDIA GPU; job runs with-DENABLE_CUDA=OFF.ubuntu-24.04-armrunner is Neoverse-N1 (ARMv8.2-A, no SVE2), sotest_sve2_kernelswill not be built there.OPTMATH_HAS_FP16CMake probe; will build on the aarch64 runner if the compiler accepts it, otherwise skipped.Test plan
mainand every future PR.🤖 Generated with Claude Code