mirror of
https://github.com/deepseek-ai/DeepEP.git
synced 2026-11-05 00:47:32 +00:00
[PR #632] [CLOSED] Fix: Add fence.proxy.async before TMA load in combine recv phase #674
Labels
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
deepseek-ai/DeepEP#674
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/deepseek-ai/DeepEP/pull/632
Author: @elvircrn
Created: 5/11/2026
Status: ❌ Closed
Base:
main← Head:correctness-fix📝 Commits (1)
d7d1cdcAdd fence.proxy.async before TMA load in combine recv phase. Fixes correctness for batch size > 256 on NVL72📊 Changes
1 file changed (+1 additions, -0 deletions)
View changed files
📝
csrc/kernels/legacy/internode_ll.cu(+1 -0)📄 Description
Background
Correctness issues with repeated runs of combine at bath sizes higher than 256 were found and issue was reported.
An investigation was done revealing doing __ldg on the
bufferptr instead of TMA make combine produce consistent results at bach size > 256 on NVL72. A plausible explanation for this is that switching to generic proxy resolves the issue.Investigating further revealed that the local rank polls the generic proxy but then uses TMA to load data. Without
fence.proxy.async, TMA can see stale data.From https://docs.nvidia.com/cuda/parallel-thread-execution/#async-proxy:
With the fence in place, the test scripts made as part of this report correct behavior.
Fence Performance Impact
Benchmark script.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.