Skip to content

[Atomics] Migrate metal to use native float atomics#787

Closed
hughperkins wants to merge 4 commits into
mainfrom
hp/metal-native-float-atomics
Closed

[Atomics] Migrate metal to use native float atomics#787
hughperkins wants to merge 4 commits into
mainfrom
hp/metal-native-float-atomics

Conversation

@hughperkins

Copy link
Copy Markdown
Collaborator

Issue: #

Brief Summary

copilot:summary

Walkthrough

copilot:walkthrough

The Jan 2023 FIXME never had a repro: FEM99/FEM128 were GUI demos removed from
the tree, and native float atomics were never enabled on the SPIR-V Metal path.
Add QD_METAL_NATIVE_FLOAT_ATOMICS=1 opt-in, a headless FEM99 numerical test, and
a macos-15 A/B workflow (CAS default vs native).
…p MSL on native abort

Round 1 showed CAS pass / native Abort trap:6 on first FEM99 kernel. Isolate which test
crashes and capture SPIRV-Cross MSL for OpAtomicFAddEXT.
…rior wheel

Even test_ad_reduce (N=16) Abort-traps with QD_METAL_NATIVE_FLOAT_ATOMICS=1.
Add metal_native_atomic_min.py and dump SPIRV-Cross MSL. Skip rebuild when the
previous workflow wheel is reusable.
OpAtomicFAddEXT lowers to atomic_float, which newLibraryWithSource rejects
under the default/MSL-2.x language version ("unknown type name 'atomic_float'"),
then a nil MTLFunction hard-aborts. Bump SPIRV-Cross + MTLCompileOptions to 3.0
when the float-atomic caps are set; nil-check before pipeline creation.
@github-actions

Copy link
Copy Markdown

@github-actions

Copy link
Copy Markdown

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