Skip to content

ci: real-GPU tests on Metal (macOS arm64 runner) - #225

Merged
mgyoo86 merged 1 commit into
masterfrom
ci/gpu-metal
Oct 22, 2026
Merged

mgyoo86 merged 1 commit into
masterfrom
ci/gpu-metal

Conversation

@mgyoo86

@mgyoo86 mgyoo86 commented Oct 22, 2026

Copy link
Copy Markdown
Member

Stacked on #224: targets its branch, to be retargeted to master once #224 is merged.

Summary

Runs the opt-in real-GPU suite (test/gpu/runtests.jl with FI_GPU_BACKEND=metal) on GitHub's arm64 macOS runner for PRs that touch the GPU code. The main CI checks the GPU extension's host-side logic with JLArrays, which compiles kernels as ordinary CPU code; this job compiles and runs them on a Metal device, so kernel compile failures (e.g. a throwing NoExtrap path left in a kernel) and the suite's inlining guard are checked on every relevant PR.

  • The runner's GPU is paravirtualized (GitHub documents Metal Performance Shaders as unsupported there; FI uses compute kernels only), so a probe first checks that Metal.jl finds a device and runs a kernel. Without a usable device the job warns and passes; with one, a test failure fails the job.
  • Triggers: PRs touching the GPU/Adapt extensions, src/core/, src/linear/, test/gpu/, Project.toml or this workflow; pushes to master; manual dispatch.

Open question

Whether the hosted runner's Metal device can run the suite: answered by this PR's first run.

Base automatically changed from feat/gpu-device-storage to master October 22, 2026 21:33
Runs the opt-in real-GPU suite (test/gpu/runtests.jl, FI_GPU_BACKEND=metal) for PRs that touch
the GPU code. A probe first checks that Metal.jl finds a usable device and runs a kernel (the
runner's GPU is paravirtualized); without one the job warns and passes.
@mgyoo86
mgyoo86 merged commit d9c6b1f into master Oct 22, 2026
1 check passed
@mgyoo86
mgyoo86 deleted the ci/gpu-metal branch October 22, 2026 21:40
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.

1 participant