Conversation
Garfee023
force-pushed
the
feat/mara-b1-dma-fence-selection
branch
from
September 3, 2026 13:18
7a28ae8 to
64724dd
Compare
Garfee023
force-pushed
the
feat/mara-b1-dma-fence-selection
branch
from
September 3, 2026 14:43
9063341 to
cee14c0
Compare
Commit 66aa348 cherry-picked the internal gcc/libstdc++ toolchain config into the public repo, which ships a libc++-built LLVM. Restore the clang++/libc++ flags, -fno-rtti/-fno-exceptions, and drop the stdc++fs link that has no libstdc++fs in this toolchain.
Garfee023
force-pushed
the
feat/mara-b1-dma-fence-selection
branch
from
September 4, 2026 10:39
cee14c0 to
23e2e7c
Compare
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
Implements the first phase (B1) of MARA's minimal proxy-aware fence placement for DMA edges, gated off by default. Also bundles the required build-toolchain restore so the PR is self-contained (builds on a clean checkout).
Changes
Build toolchain (prerequisite)
The public repo ships a libc++-built LLVM, but
66aa348cherry-picked the internal gcc/libstdc++ config, breaking the build (unable to find library -lstdc++fs). This restores the clang++/-stdlib=libc++toolchain and drops thestdc++fslink.DMA fence insertion (B1, opt-in)
NVGPUTarget::SelectDMAFences(conservative, storage-direction keyed):GLOBAL→SHARED→ producerglobal/threads/release+ consumershared/threads/acquire;SHARED→GLOBAL→ producershared/threads/release.FenceInsertioninto the semantic routine so theco2irfrontend (NoCodegen=true) observes the annotations.ProjectStorage(canonicalGLOBAL).NONE) fence scope to the space's natural coherence level (GLOBAL→DEVICE,SHARED→GROUP) inemitFenceKinds, mirroring the explicitsync.fencepath.Gated off by default
--insert-dma-fencesnow defaults to false (was true) — the placement is still conservative (not yet minimal), so it stays opt-in until the elision work (B3) lands. Enable with--insert-dma-fences=true.Test plan
tools/coir/tests/irgen/dma-fence.co(runsco2ir --insert-dma-fences=true) asserts resolved fences for G2S and S2G edges.tests/cli/insert_dma_fences.cofor the new default (default: false).Notes
-t cuteAST path consumes the notes in B2.