f(rccl/gin): fix inverted system-scope fence guard on HIP backends - #10675
Merged
Conversation
5 tasks
dlamd1dai
added a commit
to dlamd1dai/rocm-systems
that referenced
this pull request
Aug 25, 2026
Note 33/34 fixture pass including new G7/G7b fence-counting tests; IPC DetailHelpers gfx950 gap unchanged from PR ROCm#10672. Co-authored-by: Cursor <cursoragent@cursor.com>
3 tasks
dlamd1dai
added a commit
to dlamd1dai/rocm-systems
that referenced
this pull request
Aug 25, 2026
…ixture Update backport-manifest.md with PR ROCm#10672/ROCm#10675 MI355 fixture results and set signal_remote_addrs in DetailHelpers_ChannelAndDirty so useSdmaFusedSignal() passes on gfx950 (34/34 fixtures on MI355). Co-authored-by: Cursor <cursoragent@cursor.com>
dlamd1dai
force-pushed
the
users/dondai/gin-gda-a2a-unittests
branch
from
August 25, 2026 23:19
2dbe02b to
71b597c
Compare
dlamd1dai
force-pushed
the
users/dondai/gin-scope-fence-guard-fix
branch
2 times, most recently
from
August 27, 2026 06:30
29e0dbd to
5d8068e
Compare
✅ All Policy Checks Passed
📖 Need help? See the Policy FAQ for details on every check and how to fix failures. |
Flip the pre-put system fence guard to (required==system && given<required) on anvil_sdma and rocshmem_gda. Add NCCL_GIN_THREADFENCE_SYSTEM() seam in gin_device_common.h. Expand gdaki comment documenting opposite libcu++ ordering. Test updates for GinRocshmemGdaTemplate_test.cpp remain in the gin-gda-a2a-unittests PR. Co-authored-by: Cursor <cursoragent@cursor.com>
Count NCCL_GIN_THREADFENCE_SYSTEM invocations in GDA template tests so G7 validates the corrected given<required guard fires once when required is system and given is block, and does not fire when scopes match. Co-authored-by: Cursor <cursoragent@cursor.com>
dlamd1dai
force-pushed
the
users/dondai/gin-scope-fence-guard-fix
branch
from
August 27, 2026 17:47
5d8068e to
dca0117
Compare
Contributor
Author
CI triage (infra reds — not PR regressions)All failing checks appear infra / environment / unrelated tests. None exercised the fence-guard diff in a way that indicates a code problem. Local MI355 fixtures 34/34 PASS (including fence-counting tests). GIN / Single node gin testing — infra (runner deps)
device-API / Single node device-api testing — infra (GIN plugin not loaded)
mci/rocm-libraries/precheckin(rccl) — likely flaky / unrelated
therock-pr-bot — infra (check-wait timeout)
Re-runs: RCCL cluster CI (GIN + device-API) + MCI precheckin re-triggered from this comment. |
Empty commit to refresh Jenkins/GitHub checks after infra-only CI failures.
pvallem
reviewed
Aug 28, 2026
pvallem
approved these changes
Aug 28, 2026
amd-jiali
approved these changes
Aug 28, 2026
Mirror the GDA fence-counter override in GinAnvilSdmaTemplate_test.cpp so Put_ThreadScopeFence (required=system, given=block) asserts the corrected given<required guard fires exactly once via NCCL_GIN_THREADFENCE_SYSTEM().
dlamd1dai
added a commit
to dlamd1dai/rocm-systems
that referenced
this pull request
Aug 29, 2026
…ixture Update backport-manifest.md with PR ROCm#10672/ROCm#10675 MI355 fixture results and set signal_remote_addrs in DetailHelpers_ChannelAndDirty so useSdmaFusedSignal() passes on gfx950 (34/34 fixtures on MI355). Co-authored-by: Cursor <cursoragent@cursor.com>
dlamd1dai
added a commit
to dlamd1dai/rocm-systems
that referenced
this pull request
Aug 30, 2026
…ixture Update backport-manifest.md with PR ROCm#10672/ROCm#10675 MI355 fixture results and set signal_remote_addrs in DetailHelpers_ChannelAndDirty so useSdmaFusedSignal() passes on gfx950 (34/34 fixtures on MI355). Co-authored-by: Cursor <cursoragent@cursor.com>
Contributor
TheRock Submodule Bump ActivityNewest first
|
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.
Supersedes dlamd1dai/rocm-systems#3 (fork PR retargeted upstream). Follow-up to merged #10672.
Summary
Put/PutValuedevice templates gate the pre-put system fence on(required==system && given>required). On HIP,hip_compat.hordersthread_scope_systemas the max value, sogiven>requiredis never true whenrequired==system— the__threadfence_system()branch is dead code, and a caller that only guaranteed a weaker scope (e.g.block) silently skips the system fence it requested.(required==system && given<required)on the two HIP backends (anvil_sdma,rocshmem_gda), routed through a newNCCL_GIN_THREADFENCE_SYSTEM()seam ingin_device_common.h(expands to__threadfence_system()in production; unit tests can override it to observe the branch).gdakiintentionally left asgiven>required: it is CUDA-only (NCCL_GIN_GDAKI_ENABLE=0on HIP) and libcu++ ordersthread_scope_systemas the lowest value — the opposite of HIP — sogiven>requiredis correct there. Its comment is expanded to document this.Put_WeakerGivenScopeStillPutswithPut_WeakerGivenScopeFencesAndPuts(required=system, given=block→ asserts the fence ran exactly once and the put landed), plusPut_EqualScopeTakesNoFence(required=given=system→ asserts no fence and the put landed).JIRA ID: AICOMRCCL-1527
Base
Rebased onto
developafter #10672 merged (834c295). Two commits; diff vsdevelop: 5 files (+75/−19).Test plan
develop; clean 2-commit diff (5 files).Put_WeakerGivenScopeFencesAndPutsandPut_EqualScopeTakesNoFence.~/rocm-systems/ddai-artifacts/logs/pr3-fixtures-full-20260824-231854.log.~/rocm-systems/ddai-artifacts/logs/mi355-fixtures-20260827-171030.log.Made with Cursor