mirror of
https://github.com/deepseek-ai/DeepEP.git
synced 2026-11-05 00:47:32 +00:00
[GH-ISSUE #35] Why use "ld.acquire" order to get channel_tail_idx in dispatch kernels? #33
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#33
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?
Originally created by @hellboywyh on GitHub (Mar 2, 2025).
Original GitHub issue: https://github.com/deepseek-ai/DeepEP/issues/35
I notice the use of "ld.acquire" order to get channel_tail_idx in dispatch kernels. I guess it is used to gurantee that the following load will not preceed the load of channel_tail_idx. But I think the condition of breaking "while block", I mean,
cached_channel_head_idx != cached_channel_tail_idx, has already gurantee the order. So if use a normal load, it will also work?@LyricZhao commented on GitHub (Mar 3, 2025):
Normal loads (
ld.volatile) are correct, butrelease/acquirepairs are more "semantically" correct, you can think it as a coding standard.