Skip to content

test: gate the bm8 MPP smoke test on Apple GPU Family 9+#25

Merged
TheTom merged 3 commits into
devfrom
tom/fix/bm8-mpp-skip-guard
Jun 24, 2026
Merged

test: gate the bm8 MPP smoke test on Apple GPU Family 9+#25
TheTom merged 3 commits into
devfrom
tom/fix/bm8-mpp-skip-guard

Conversation

@TheTom

@TheTom TheTom commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

What

moeBm8Smoke (OpsSpecialPathTests) dispatches the int4 bm8 MPP cooperative-tensor kernel but had no hardware gate, unlike its bm64 MPP siblings in MoEBgemmBm64MppTests.

The intermittent CI failure

macos-latest is a mixed M1/M3 runner pool. On a Family 9+ runner the bm64 tests run and bm8 passes; on a Family < 9 runner the bm64 tests skip via mppCooperativeTensorAvailable, but the unguarded bm8 test still tries to compile the MPP PSO, which on the current toolchain fatal-errors at PSOCache.swift:67 (unsupported deferred-static-alloca-size). That is the failure we kept clearing with reruns (it hit #23, #24, and dev merges).

Fix

Add the same .enabled(if: mppCooperativeTensorAvailable, "MPP cooperative tensor — Apple GPU Family 9+") gate the bm64 cells use, reusing the single availability source so it stays in sync. Skips on inadequate hardware, runs on Family 9+.

Test

swift test --filter moeBm8Smoke passes on M5 (Family 9). On Family < 9 it now skips instead of fatal-erroring.

moeBm8Smoke dispatches the int4 bm8 MPP cooperative-tensor kernel but,
unlike its bm64 MPP siblings, had no hardware gate. The macos-latest
runner pool is mixed M1/M3 hardware: on a Family < 9 runner the MPP PSO
fails to compile on the current toolchain and fatal-errors PSOCache,
which is the intermittent CI failure we kept rerunning past. Reuse the
existing mppCooperativeTensorAvailable gate so the test skips on
inadequate hardware and runs on Family 9+, matching the bm64 cells.
@github-actions github-actions Bot added the test Tests only — no behavior change label Jun 24, 2026
TheTom added 2 commits June 23, 2026 23:18
The manifest sweep compiles every kernel into a PSO, which includes the
MPP cooperative-tensor (`_mpp_` / `bgemm`) kernels. On a Family < 9
macos-latest runner those fail to compile, so the sweep recorded a wall
of failures. Skip the MPP kernels there (matching PSOCache's detection);
they are covered by ffai-kernels' own GPU correctness suite on M3+. This
is the same class of fix as the bm8 dispatch guard in this PR — both are
"MPP needs Apple GPU Family 9+, which the mixed runner pool doesn't
always have."
Name-matching `_mpp_` / `bgemm` missed cooperative-tensor cells with other
names (the `_nax_` steel-GEMM kernels), so the manifest sweep still
recorded ~105 failures on a Family < 9 runner. Catch the specific
"deferred-static-alloca-size" compile error and treat it as a skip when
MPP is unavailable, which covers every cooperative-tensor kernel
regardless of name. Other compile errors are still real failures.
@TheTom
TheTom merged commit a475cbb into dev Jun 24, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

test Tests only — no behavior change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant