Skip to content

fix(ep): drain CXI FIFO rings before quiet - #8

Closed
fergusfinn wants to merge 2 commits into
upstream-basefrom
pr997-quiet-all-rings
Closed

fix(ep): drain CXI FIFO rings before quiet#8
fergusfinn wants to merge 2 commits into
upstream-basefrom
pr997-quiet-all-rings

Conversation

@fergusfinn

@fergusfinn fergusfinn commented Jun 17, 2026

Copy link
Copy Markdown

Summary

  • Post and wait QUIET across every D2H ring on the CXI path so sibling-ring work cannot remain queued behind a completed quiet.
  • Keep BARRIER as a single rank-level rendezvous after the quiet fence.
  • Cache CXI transport mode per proxy and adjust the 8-rank combine config to satisfy the forwarder invariant with NUM_MAX_NVL_PEERS=4.

Testing

  • git diff --check
  • python3 -m py_compile ep/bench/buffer.py
  • 2-node DeepSeek-V4-Flash vLLM serve, CXI transport, NUM_MAX_NVL_PEERS=4
  • vLLM benchmark: ISL=1024 OSL=1024 CONCURRENCY=4096 NUM_PROMPTS=4096 REQUEST_RATE=inf, completed 4096/4096, failed 0, output throughput 6132.09 tok/s, total throughput 12288.13 tok/s

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR aims to make nvshmemi_ibgda_quiet correctly fence/drain CXI D2H work that is sharded across multiple rings by posting (and waiting on) QUIET commands across all relevant D2H channels, instead of one ring per proxy thread.

Changes:

  • Adds a CXI-specific stride/limit so QUIET can be posted on every D2H ring (vs. one per proxy).
  • Tracks the exact D2H channel index for each posted QUIET so the wait phase targets the same rings that were posted.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread ep/include/uccl_ibgda.cuh
Comment thread ep/include/uccl_ibgda.cuh
Comment thread ep/include/uccl_ibgda.cuh
@fergusfinn
fergusfinn force-pushed the pr997-quiet-all-rings branch from e55ec6a to eafa54a Compare June 17, 2026 16:36
@fergusfinn
fergusfinn force-pushed the pr997-quiet-all-rings branch from eafa54a to 8d72efa Compare June 17, 2026 17:03
@fergusfinn fergusfinn changed the title fix(ep): quiet every CXI D2H ring fix(ep): drain FIFO rings before quiet Jun 17, 2026
@fergusfinn
fergusfinn force-pushed the pr997-quiet-all-rings branch 3 times, most recently from e1d52eb to 41eb937 Compare June 17, 2026 17:49
Post and wait QUIET across every D2H ring for the CXI path so sibling-ring work cannot remain queued behind a completed quiet.

Cache the CXI transport selection when each proxy is constructed, and raise the 8-rank combine RDMA send chunk to satisfy the combine forwarder invariant when NUM_MAX_NVL_PEERS=4.
@fergusfinn
fergusfinn force-pushed the pr997-quiet-all-rings branch from 41eb937 to 05a7d4d Compare June 17, 2026 20:03
@fergusfinn fergusfinn changed the title fix(ep): drain FIFO rings before quiet fix(ep): drain CXI FIFO rings before quiet Jun 17, 2026
@fergusfinn
fergusfinn changed the base branch from pr997-swiss-cxi to upstream-base June 19, 2026 15:34
@fergusfinn fergusfinn closed this Jun 24, 2026
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.

2 participants