Skip to content

minimal_async_ep: pipeline bounded high-priority copies - #4021

Draft
sanketpurandare wants to merge 4 commits into
gh/sanketpurandare/9/basefrom
gh/sanketpurandare/9/head
Draft

minimal_async_ep: pipeline bounded high-priority copies#4021
sanketpurandare wants to merge 4 commits into
gh/sanketpurandare/9/basefrom
gh/sanketpurandare/9/head

Conversation

@sanketpurandare

@sanketpurandare sanketpurandare commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Stack from ghstack (oldest at bottom):

Summary

Run dispatch preparation on a normal stream, then hand row copies to a high-priority stream. Bound overlapping copies with a persistent CTA grid so expert compute retains execution resources; keep the no-overlap path unbounded because it lies on the critical path. The unbounded kernel preserves its two-dimensional row-tile grid.

Expose the grid as --compile.ep_overlap.minimal_async_ep_num_copy_ctas. The default is the measured 50-CTA GB300 setting, while None selects an unbounded overlap control for hardware-specific tuning.

Why

Moving copies to another stream does not reserve SM capacity for expert work. A bounded persistent launch provides an explicit resource limit while stream priority minimizes gaps between dispatch preparation and row copies. Preserving the tiled unbounded launch avoids serializing its critical-path work.

Test Plan

  • Verify CTA-grid propagation into all MinimalAsyncEP dispatchers.
  • Reject invalid configured grid sizes.
  • Exercise bounded and unbounded launch grids.
  • Validate copy correctness and prep/copy stream placement in the two-rank dispatcher test.

## Summary

Run dispatch preparation on a normal stream, then hand row copies to a
high-priority stream. Bound overlapping copies with a persistent CTA grid so
expert compute retains execution resources; keep the no-overlap single-buffer
path unbounded because it lies on the critical path.

Expose the grid as
`--compile.ep_overlap.minimal_async_ep_num_copy_ctas`. The default is the
measured 50-CTA GB300 setting, while `None` selects an unbounded overlap
control for hardware-specific tuning.

## Why

Moving copies to another stream does not reserve SM capacity for expert work.
A bounded persistent launch provides an explicit resource limit while stream
priority minimizes gaps between dispatch preparation and row copies.

## Test Plan

- Verify CTA-grid propagation into all MinimalAsyncEP dispatchers.
- Reject invalid configured grid sizes.
- Exercise bounded copy correctness and prep/copy stream placement in the
  two-rank dispatcher test.

[ghstack-poisoned]
[ghstack-poisoned]
[ghstack-poisoned]
[ghstack-poisoned]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ciflow/8gpu CLA Signed This label is managed by the Meta Open Source bot.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant