Skip to content

UCP/RNDV: Avoid strict key for fence between PUT and AM#11636

Open
tvegas1 wants to merge 1 commit into
openucx:masterfrom
tvegas1:ep_fence_am
Open

UCP/RNDV: Avoid strict key for fence between PUT and AM#11636
tvegas1 wants to merge 1 commit into
openucx:masterfrom
tvegas1:ep_fence_am

Conversation

@tvegas1

@tvegas1 tvegas1 commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

What?

Add UCT_FENCE_FLAG_AM_ONLY and use it in rndv/put/mtype before ATP.

Why?

RNDV put/mtype only needs prior PUT data to be visible before the remote ATP AM callback. It does not need ordering between PUTs before and after the ATP.

Today the fence arms fence_beat, but SEND/AM does not consume it, so the next unrelated PUT pays the strict/atomic rkey cost. Impact on setup with PCIe relaxed ordering and two 90GB/s lanes:

  • 145727 MB/s, without fix
  • 174388 MB/s, with fix, line rate reached with bigger window

UCX_RNDV_FRAG_SIZE=cuda:16M ucx_perftest -t ucp_put_bw -s $((64*1024*1024)) -O64 -m cuda

How?

Pass UCT_FENCE_FLAG_AM_ONLY for the fenced ATP path. IB RC/DC keeps the fence call but does not arm fence_beat; other transports keep their existing fence behavior.

RDMA may use relaxed ordering and does not consume RX CQEs. The following SEND/AM does consume an RX CQE, whose PCIe write is non-relaxed, so prior relaxed PCIe writes are visible before the AM callback runs.

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