Files
inkcherry 66af8f03a3 zero3: SDMA allgather via mori (sdma_allgather) (#7999)
## Summary
RFC: https://github.com/deepspeedai/DeepSpeed/issues/7884

Wire `sdma_allgather` into ZeRO-3's parameter prefetch path
(`_dist_allgather_fn`).  When enabled, ZeRO-3 allgather routes through
`mori_cpp.AllGatherIntoTensor` (intra-node SDMA copy on AMD MI300), with
a
transparent fallback to `dist.allgather_fn` (RCCL/NCCL) on init failure.

End-to-end demo + repro steps + verified numbers live in

[`examples/sdma_allgather/README.md`](examples/sdma_allgather/README.md).

Headline (8x MI300X, DeepSpeed default ZeRO-3 buckets, 100 steps):

| | GPT-7B-ish | Qwen3-32B |
|---|---|---|
| SDMA off | 697.7 ms / step | 1402.5 ms / step |
| SDMA on  | 622.0 ms / step | 1263.2 ms / step |
| **gain** | **+10.85 %**    | **+9.93 %**      |

Loss curves match off ↔ on, peak memory unchanged.

Speedup is workload-dependent — gains shrink (or invert) when allgather
can't be overlapped with compute

Co-authored-by: wuyl1 <yangwu@amd.com>

---------

Signed-off-by: wuyl1 <yangwu@amd.com>
Signed-off-by: inkcherry <mingzhi.liu@amd.com>
Co-authored-by: wuyl1 <yangwu@amd.com>
2026-05-14 17:59:28 +08:00
..
2025-02-05 00:56:50 +00:00