From 55b24f3e1c9ceeb9f023ad05710b454a5f523064 Mon Sep 17 00:00:00 2001 From: wuyl1 Date: Fri, 6 Mar 2026 14:46:20 +0800 Subject: [PATCH 01/25] add zero3 example Signed-off-by: wuyl1 --- examples/zero3_overlap/ds_config_zero3.json | 44 +++++ examples/zero3_overlap/run.sh | 22 +++ examples/zero3_overlap/train_zero3.py | 198 ++++++++++++++++++++ 3 files changed, 264 insertions(+) create mode 100644 examples/zero3_overlap/ds_config_zero3.json create mode 100644 examples/zero3_overlap/run.sh create mode 100644 examples/zero3_overlap/train_zero3.py diff --git a/examples/zero3_overlap/ds_config_zero3.json b/examples/zero3_overlap/ds_config_zero3.json new file mode 100644 index 000000000000..c0081440fc5c --- /dev/null +++ b/examples/zero3_overlap/ds_config_zero3.json @@ -0,0 +1,44 @@ +{ + "train_batch_size": 64, + "train_micro_batch_size_per_gpu": 2, + "gradient_accumulation_steps": 4, + "steps_per_print": 10, + "optimizer": { + "type": "Adam", + "params": { + "lr": 3e-4, + "betas": [0.9, 0.999], + "eps": 1e-8, + "weight_decay": 0.01 + } + }, + "scheduler": { + "type": "WarmupDecayLR", + "params": { + "warmup_min_lr": 0, + "warmup_max_lr": 3e-4, + "warmup_num_steps": 100, + "total_num_steps": 1000 + } + }, + "gradient_clipping": 1.0, + "bf16": { + "enabled": true + }, + "zero_optimization": { + "stage": 3, + "allgather_partitions": true, + "allgather_bucket_size": 5e8, + "overlap_comm": true, + "reduce_scatter": true, + "reduce_bucket_size": 5e8, + "contiguous_gradients": true, + "stage3_max_live_parameters": 1e9, + "stage3_max_reuse_distance": 1e9, + "stage3_prefetch_bucket_size": 5e8, + "stage3_param_persistence_threshold": 1e6, + "stage3_gather_16bit_weights_on_model_save": true, + "sub_group_size": 1e12 + }, + "wall_clock_breakdown": true +} diff --git a/examples/zero3_overlap/run.sh b/examples/zero3_overlap/run.sh new file mode 100644 index 000000000000..c7214f63685d --- /dev/null +++ b/examples/zero3_overlap/run.sh @@ -0,0 +1,22 @@ +#!/bin/bash +# ============================================================================= +# DeepSpeed ZeRO-3 training with allgather overlap +# Single node, 8x AMD GPUs (MI200/MI250/MI300) +# ============================================================================= + +export NCCL_DEBUG=INFO +export HSA_FORCE_FINE_GRAIN_PCIE=1 + +SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd) + +deepspeed \ + --num_nodes 1 \ + --num_gpus 8 \ + "${SCRIPT_DIR}/train_zero3.py" \ + --deepspeed \ + --deepspeed_config "${SCRIPT_DIR}/ds_config_zero3.json" \ + --hidden_size 2048 \ + --num_layers 24 \ + --num_heads 16 \ + --max_seq_len 1024 \ + --train_steps 200 diff --git a/examples/zero3_overlap/train_zero3.py b/examples/zero3_overlap/train_zero3.py new file mode 100644 index 000000000000..a63c08be8547 --- /dev/null +++ b/examples/zero3_overlap/train_zero3.py @@ -0,0 +1,198 @@ +""" +DeepSpeed ZeRO-3 training example with allgather overlap. +Trains a GPT-2-style transformer on synthetic data for demonstration. +Designed for single-node 8x AMD GPU setup. +""" + +import argparse +import math +import time + +import torch +import torch.nn as nn +import deepspeed +from torch.utils.data import Dataset, DataLoader + + +# --------------------------------------------------------------------------- +# Model: minimal GPT-2-style transformer +# --------------------------------------------------------------------------- +class CausalSelfAttention(nn.Module): + def __init__(self, hidden_size, num_heads, max_seq_len, dropout=0.1): + super().__init__() + assert hidden_size % num_heads == 0 + self.num_heads = num_heads + self.head_dim = hidden_size // num_heads + self.qkv = nn.Linear(hidden_size, 3 * hidden_size) + self.proj = nn.Linear(hidden_size, hidden_size) + self.attn_drop = nn.Dropout(dropout) + self.proj_drop = nn.Dropout(dropout) + self.register_buffer( + "causal_mask", + torch.tril(torch.ones(max_seq_len, max_seq_len)).view(1, 1, max_seq_len, max_seq_len), + ) + + def forward(self, x): + B, T, C = x.size() + q, k, v = self.qkv(x).split(C, dim=-1) + q = q.view(B, T, self.num_heads, self.head_dim).transpose(1, 2) + k = k.view(B, T, self.num_heads, self.head_dim).transpose(1, 2) + v = v.view(B, T, self.num_heads, self.head_dim).transpose(1, 2) + + scale = 1.0 / math.sqrt(self.head_dim) + attn = (q @ k.transpose(-2, -1)) * scale + attn = attn.masked_fill(self.causal_mask[:, :, :T, :T] == 0, float("-inf")) + attn = torch.softmax(attn, dim=-1) + attn = self.attn_drop(attn) + + out = (attn @ v).transpose(1, 2).contiguous().view(B, T, C) + return self.proj_drop(self.proj(out)) + + +class TransformerBlock(nn.Module): + def __init__(self, hidden_size, num_heads, max_seq_len, dropout=0.1): + super().__init__() + self.ln1 = nn.LayerNorm(hidden_size) + self.attn = CausalSelfAttention(hidden_size, num_heads, max_seq_len, dropout) + self.ln2 = nn.LayerNorm(hidden_size) + self.mlp = nn.Sequential( + nn.Linear(hidden_size, 4 * hidden_size), + nn.GELU(), + nn.Linear(4 * hidden_size, hidden_size), + nn.Dropout(dropout), + ) + + def forward(self, x): + x = x + self.attn(self.ln1(x)) + x = x + self.mlp(self.ln2(x)) + return x + + +class GPT2Model(nn.Module): + def __init__(self, vocab_size, hidden_size, num_layers, num_heads, max_seq_len, dropout=0.1): + super().__init__() + self.tok_emb = nn.Embedding(vocab_size, hidden_size) + self.pos_emb = nn.Embedding(max_seq_len, hidden_size) + self.drop = nn.Dropout(dropout) + self.blocks = nn.Sequential( + *[TransformerBlock(hidden_size, num_heads, max_seq_len, dropout) for _ in range(num_layers)] + ) + self.ln_f = nn.LayerNorm(hidden_size) + self.head = nn.Linear(hidden_size, vocab_size, bias=False) + + def forward(self, input_ids, labels=None): + B, T = input_ids.size() + pos = torch.arange(0, T, device=input_ids.device).unsqueeze(0) + x = self.drop(self.tok_emb(input_ids) + self.pos_emb(pos)) + x = self.blocks(x) + x = self.ln_f(x) + logits = self.head(x) + + loss = None + if labels is not None: + loss = nn.functional.cross_entropy( + logits.view(-1, logits.size(-1)), + labels.view(-1), + ) + return loss, logits + + +# --------------------------------------------------------------------------- +# Synthetic dataset +# --------------------------------------------------------------------------- +class SyntheticTextDataset(Dataset): + """Generates random token sequences for demonstration purposes.""" + + def __init__(self, vocab_size, seq_len, num_samples): + self.vocab_size = vocab_size + self.seq_len = seq_len + self.num_samples = num_samples + + def __len__(self): + return self.num_samples + + def __getitem__(self, idx): + tokens = torch.randint(0, self.vocab_size, (self.seq_len + 1,)) + return tokens[:-1], tokens[1:] + + +# --------------------------------------------------------------------------- +# Main +# --------------------------------------------------------------------------- +def parse_args(): + parser = argparse.ArgumentParser(description="DeepSpeed ZeRO-3 training with allgather overlap") + parser.add_argument("--vocab_size", type=int, default=50257) + parser.add_argument("--hidden_size", type=int, default=2048) + parser.add_argument("--num_layers", type=int, default=24) + parser.add_argument("--num_heads", type=int, default=16) + parser.add_argument("--max_seq_len", type=int, default=1024) + parser.add_argument("--dropout", type=float, default=0.1) + parser.add_argument("--num_samples", type=int, default=10000) + parser.add_argument("--train_steps", type=int, default=200) + parser.add_argument("--local_rank", type=int, default=-1) + parser = deepspeed.add_config_arguments(parser) + return parser.parse_args() + + +def main(): + args = parse_args() + + deepspeed.init_distributed() + local_rank = args.local_rank + torch.cuda.set_device(local_rank) + + with deepspeed.zero.Init(config_dict_or_path=args.deepspeed_config): + model = GPT2Model( + vocab_size=args.vocab_size, + hidden_size=args.hidden_size, + num_layers=args.num_layers, + num_heads=args.num_heads, + max_seq_len=args.max_seq_len, + dropout=args.dropout, + ) + + total_params = sum(p.numel() for p in model.parameters()) + if local_rank == 0: + print(f"Model parameters: {total_params / 1e6:.1f}M") + + dataset = SyntheticTextDataset(args.vocab_size, args.max_seq_len, args.num_samples) + + model_engine, optimizer, train_loader, lr_scheduler = deepspeed.initialize( + args=args, + model=model, + training_data=dataset, + ) + + device = model_engine.device + + step = 0 + t_start = time.time() + while step < args.train_steps: + for batch in train_loader: + if step >= args.train_steps: + break + + input_ids = batch[0].to(device) + labels = batch[1].to(device) + + loss, _ = model_engine(input_ids, labels=labels) + model_engine.backward(loss) + model_engine.step() + + if step % 10 == 0 and local_rank == 0: + elapsed = time.time() - t_start + samples_per_sec = (step + 1) * model_engine.train_batch_size() / elapsed + print( + f"step {step:5d} | loss {loss.item():.4f} | " + f"lr {lr_scheduler.get_last_lr()[0]:.6f} | " + f"throughput {samples_per_sec:.1f} samples/s" + ) + step += 1 + + if local_rank == 0: + total_time = time.time() - t_start + print(f"\nTraining complete: {args.train_steps} steps in {total_time:.1f}s") + + +if __name__ == "__main__": + main() From fbedb2fa8eda9347cc8da46c8136e1385f6bad7d Mon Sep 17 00:00:00 2001 From: wuyl1 Date: Mon, 9 Mar 2026 14:40:56 +0800 Subject: [PATCH 02/25] enable sdma allgather Signed-off-by: wuyl1 --- deepspeed/runtime/zero/config.py | 15 +++ .../runtime/zero/partition_parameters.py | 112 +++++++++++++++++- examples/zero3_overlap/ds_config_zero3.json | 4 +- 3 files changed, 129 insertions(+), 2 deletions(-) diff --git a/deepspeed/runtime/zero/config.py b/deepspeed/runtime/zero/config.py index def8d1db5653..8b6c5a29e32d 100644 --- a/deepspeed/runtime/zero/config.py +++ b/deepspeed/runtime/zero/config.py @@ -50,6 +50,8 @@ "zeropp_loco_param": {...}, "log_trace_cache_warnings" : [true|false], "enable_sanity_checks": [true|false], + "sdma_allgather": [true|false], + "sdma_allgather_max_numel": 67108864, } } """ @@ -371,6 +373,19 @@ class DeepSpeedZeroConfig(DeepSpeedConfigModel): Configuration for modules that should be treated as ZeRO3 leaf modules. """ + sdma_allgather: bool = False + """ + Use mori SDMA allgather instead of RCCL allgather for ZeRO-3 parameter + fetching. Effective only when ``overlap_comm`` is enabled (stage 3). + Requires the ``mori`` package (``mori.ccl.AllgatherSdma``). + """ + + sdma_allgather_max_numel: int = Field(pp_int(64 * 1024 * 1024), ge=0) + """ + Maximum number of elements (uint32) per allgather call when using SDMA. + Controls the pre-allocated transit buffer size inside ``AllgatherSdma``. + """ + # Validators @model_validator(mode="after") def overlap_comm_valid(self): diff --git a/deepspeed/runtime/zero/partition_parameters.py b/deepspeed/runtime/zero/partition_parameters.py index 237bbfab2473..e7640240614f 100755 --- a/deepspeed/runtime/zero/partition_parameters.py +++ b/deepspeed/runtime/zero/partition_parameters.py @@ -105,7 +105,106 @@ def wait(self, **kwargs) -> None: self.__complete = True +class _SdmaWork: + """Duck-type compatible with ``torch.distributed.Work``. + + Wraps a GPU event recorded after the SDMA allgather submission. + ``.wait()`` only synchronizes; no data copy is needed because the + ``AllGatherCoalescedHandle`` already holds partitions that are + views into the transit buffer. + """ + + def __init__(self, event): + self._event = event + + def wait(self): + self._event.synchronize() + + def is_completed(self) -> bool: + return self._event.query() + + +class _SdmaAllGatherHandle: + """Persistent handle that caches the ``AllgatherSdma`` C++ object. + + Zero-copy design: when ``copy_output_to_user=False`` (default), the + allgather result lives in an internal transit buffer. Instead of + copying it back to a separate ``flat_tensor``, the caller should + build its ``partitions`` list directly from the transit buffer via + :meth:`get_output_transit_buffer`. + + Args: + max_numel: Maximum number of elements (uint32) per allgather call. + Controls the pre-allocated transit buffer size. + copy_output_to_user: If ``True`` the C++ kernel copies the result + into the caller-supplied *output_tensor*. If ``False`` (default) + the result stays in the internal transit buffer (zero-copy). + """ + + def __init__(self, max_numel: int = 64 * 1024 * 1024, + copy_output_to_user: bool = False): + import mori.shmem as shmem + from mori.ccl import AllgatherSdma + + self._my_pe = shmem.shmem_mype() + self._npes = shmem.shmem_npes() + self._copy = copy_output_to_user + + elem_bytes = 4 # uint32 + self._ag = AllgatherSdma( + self._my_pe, self._npes, + input_buffer_size=max_numel * elem_bytes, + output_buffer_size=max_numel * self._npes * elem_bytes, + copy_output_to_user=copy_output_to_user, + ) + + def get_output_transit_buffer(self) -> Tensor: + """Return the internal transit buffer as a zero-copy 1-D tensor view.""" + return self._ag.get_output_transit_buffer(device=self._my_pe) + + def allgather(self, input_tensor: Tensor, output_tensor: Tensor, + group=None, async_op: bool = True): + """Submit SDMA allgather on the **current** stream. + + Returns an :class:`_SdmaWork` whose ``.wait()`` blocks until the + transfer is complete. If *async_op* is ``False``, waits inline. + """ + stream = get_accelerator().current_stream() + self._ag(input_tensor, output_tensor, input_tensor.numel(), stream) + + event = get_accelerator().Event() + event.record(stream) + + work = _SdmaWork(event) + if not async_op: + work.wait() + return work + + +_sdma_allgather_handle = None + + +def _sdma_allgather_enabled(): + return _sdma_allgather_handle is not None + + +def _init_sdma_allgather(max_numel: int = 64 * 1024 * 1024): + """Initialize the module-level SDMA allgather handle (called once from Init.__init__).""" + global _sdma_allgather_handle + if _sdma_allgather_handle is not None: + return + import mori.shmem as shmem + shmem.shmem_torch_process_group_init("default") + _sdma_allgather_handle = _SdmaAllGatherHandle( + max_numel=max_numel, + ) + if dist.get_rank() == 0: + logger.info(f"SDMA allgather enabled (max_numel={max_numel})") + + def _dist_allgather_fn(input_tensor: Tensor, output_tensor: Tensor, group=None): + if _sdma_allgather_enabled(): + return _sdma_allgather_handle.allgather(input_tensor, output_tensor, group=group, async_op=True) return instrument_w_nvtx(dist.allgather_fn)(output_tensor, input_tensor, group=group, async_op=True) @@ -1112,6 +1211,12 @@ def __init__(self, self.use_all_reduce_for_fetch_params = _ds_config.zero_config.use_all_reduce_for_fetch_params self.allgather_sequential = _ds_config.zero_config.allgather_sequential + if _ds_config.zero_config.sdma_allgather: + cfg_max = _ds_config.zero_config.sdma_allgather_max_numel + prefetch_partition = int(_ds_config.zero_config.prefetch_bucket_size) // self.num_partitions + safe_max = max(cfg_max, prefetch_partition * 2) + _init_sdma_allgather(max_numel=safe_max) + def _update_persist_config(self, ds_config): Init.apply_param_persistence = True Init.param_persistence_threshold = ds_config.zero_config.param_persistence_threshold @@ -1262,7 +1367,12 @@ def _all_gather_dtype(params, world_size, rank_in_group, ds_process_group, allga [p.ds_tensor.to(get_accelerator().current_device_name()).to(allgather_dtype) for p in params], out=partitions[rank_in_group]) handle = _dist_allgather_fn(partitions[rank_in_group], flat_tensor, ds_process_group) - #Fix get_partition_dp_group(params[0])) + + if _sdma_allgather_enabled() and not _sdma_allgather_handle._copy: + transit_buf = _sdma_allgather_handle.get_output_transit_buffer() + partitions = [] + for i in range(world_size): + partitions.append(transit_buf.narrow(0, partition_sz * i, partition_sz)) return AllGatherCoalescedHandle( allgather_handle=handle, diff --git a/examples/zero3_overlap/ds_config_zero3.json b/examples/zero3_overlap/ds_config_zero3.json index c0081440fc5c..b27f23e88f2e 100644 --- a/examples/zero3_overlap/ds_config_zero3.json +++ b/examples/zero3_overlap/ds_config_zero3.json @@ -38,7 +38,9 @@ "stage3_prefetch_bucket_size": 5e8, "stage3_param_persistence_threshold": 1e6, "stage3_gather_16bit_weights_on_model_save": true, - "sub_group_size": 1e12 + "sub_group_size": 1e12, + "sdma_allgather": true, + "sdma_allgather_max_numel": 67108864 }, "wall_clock_breakdown": true } From ccb634eb284820e39c0a4e0ed44671f3565e68d7 Mon Sep 17 00:00:00 2001 From: wuyl1 Date: Mon, 9 Mar 2026 15:39:45 +0800 Subject: [PATCH 03/25] fix bug Signed-off-by: wuyl1 --- examples/zero3_overlap/train_zero3.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/examples/zero3_overlap/train_zero3.py b/examples/zero3_overlap/train_zero3.py index a63c08be8547..7b9b2748c456 100644 --- a/examples/zero3_overlap/train_zero3.py +++ b/examples/zero3_overlap/train_zero3.py @@ -6,6 +6,7 @@ import argparse import math +import os import time import torch @@ -137,11 +138,17 @@ def parse_args(): def main(): args = parse_args() + ds_config_path = args.deepspeed_config + if ds_config_path and not os.path.isfile(ds_config_path): + script_dir = os.path.dirname(os.path.abspath(__file__)) + ds_config_path = os.path.join(script_dir, ds_config_path) + args.deepspeed_config = ds_config_path + deepspeed.init_distributed() local_rank = args.local_rank torch.cuda.set_device(local_rank) - with deepspeed.zero.Init(config_dict_or_path=args.deepspeed_config): + with deepspeed.zero.Init(config_dict_or_path=ds_config_path): model = GPT2Model( vocab_size=args.vocab_size, hidden_size=args.hidden_size, From e0eb5103cae15cfc8c5ffac8cfcb5989ae5c0dc2 Mon Sep 17 00:00:00 2001 From: wuyl1 Date: Mon, 9 Mar 2026 20:34:04 +0800 Subject: [PATCH 04/25] fix bug Signed-off-by: wuyl1 --- deepspeed/comm/ccl.py | 8 +++++++- deepspeed/runtime/zero/partition_parameters.py | 12 ++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/deepspeed/comm/ccl.py b/deepspeed/comm/ccl.py index e95e40a03087..1a43baf39b0e 100644 --- a/deepspeed/comm/ccl.py +++ b/deepspeed/comm/ccl.py @@ -8,7 +8,13 @@ import torch from deepspeed.accelerator import get_accelerator -from deepspeed.ops.op_builder import NotImplementedBuilder +try: + from deepspeed.ops.op_builder import NotImplementedBuilder +except ModuleNotFoundError: + # Fallback for environments where deepspeed/ops symlinks are missing. + # This still allows DeepSpeed to run because CCL backend gracefully + # disables itself when op builders are unavailable. + from op_builder import NotImplementedBuilder from .reduce_op import ReduceOp from .torch import TorchBackend diff --git a/deepspeed/runtime/zero/partition_parameters.py b/deepspeed/runtime/zero/partition_parameters.py index e7640240614f..64e41abb1440 100755 --- a/deepspeed/runtime/zero/partition_parameters.py +++ b/deepspeed/runtime/zero/partition_parameters.py @@ -188,11 +188,23 @@ def _sdma_allgather_enabled(): return _sdma_allgather_handle is not None +def _ensure_default_pg_registered(): + """Register the WORLD process group as 'default' in PyTorch's C++ GroupRegistry + so that mori's shmem_torch_process_group_init can resolve it by name. + + This mirrors what mori's TorchDistContext does after init_process_group(). + """ + world_group = torch.distributed.group.WORLD + assert world_group is not None, "torch.distributed must be initialized before SDMA allgather" + torch._C._distributed_c10d._register_process_group("default", world_group) + + def _init_sdma_allgather(max_numel: int = 64 * 1024 * 1024): """Initialize the module-level SDMA allgather handle (called once from Init.__init__).""" global _sdma_allgather_handle if _sdma_allgather_handle is not None: return + _ensure_default_pg_registered() import mori.shmem as shmem shmem.shmem_torch_process_group_init("default") _sdma_allgather_handle = _SdmaAllGatherHandle( From 6512ecfa500ae0d6ea7516b86b51353c947fdfc2 Mon Sep 17 00:00:00 2001 From: wuyl1 Date: Mon, 9 Mar 2026 20:44:54 +0800 Subject: [PATCH 05/25] fix bug Signed-off-by: wuyl1 --- examples/zero3_overlap/train_zero3.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/zero3_overlap/train_zero3.py b/examples/zero3_overlap/train_zero3.py index 7b9b2748c456..ce111a39d090 100644 --- a/examples/zero3_overlap/train_zero3.py +++ b/examples/zero3_overlap/train_zero3.py @@ -144,7 +144,7 @@ def main(): ds_config_path = os.path.join(script_dir, ds_config_path) args.deepspeed_config = ds_config_path - deepspeed.init_distributed() + deepspeed.init_distributed(dist_backend="cpu:gloo,cuda:nccl") local_rank = args.local_rank torch.cuda.set_device(local_rank) From d5f8489e823e282f0137bbbd59303122a1217b1d Mon Sep 17 00:00:00 2001 From: wuyl1 Date: Mon, 9 Mar 2026 22:14:53 +0800 Subject: [PATCH 06/25] add test case Signed-off-by: wuyl1 --- .../test_sdma_allgather_zero3.py | 243 ++++++++++++++++++ 1 file changed, 243 insertions(+) create mode 100644 examples/zero3_overlap/test_sdma_allgather_zero3.py diff --git a/examples/zero3_overlap/test_sdma_allgather_zero3.py b/examples/zero3_overlap/test_sdma_allgather_zero3.py new file mode 100644 index 000000000000..f7e57801eb79 --- /dev/null +++ b/examples/zero3_overlap/test_sdma_allgather_zero3.py @@ -0,0 +1,243 @@ +#!/usr/bin/env python3 +""" +Unit test for SDMA allgather in the ZeRO-3 code path. + +Simulates exactly how ZeRO-3's _all_gather_dtype calls _dist_allgather_fn: + 1. Creates a flat_tensor and partitions (same as partition_parameters.py) + 2. Each rank fills its partition with known data + 3. Calls _dist_allgather_fn on a dedicated allgather stream (same as coordinator) + 4. Rebuilds partitions from transit buffer (zero-copy path) + 5. handle.wait() + stream sync (same as fetch_sub_module) + 6. Verifies correctness and measures algorithm bandwidth + +Usage: + cd /root/wuyl/DeepSpeed/examples/zero3_overlap + deepspeed --num_gpus 8 test_sdma_allgather_zero3.py + deepspeed --num_gpus 8 test_sdma_allgather_zero3.py --partition_sz 4194304 --iterations 50 +""" + +import os +import argparse +import time +import numpy as np +import torch +import torch.distributed as torch_dist +import deepspeed +from deepspeed import comm as dist +from deepspeed.accelerator import get_accelerator + +from deepspeed.runtime.zero.partition_parameters import ( + _init_sdma_allgather, + _sdma_allgather_enabled, + _sdma_allgather_handle, + _dist_allgather_fn, +) + + +def verify_allgather(partitions, world_size, partition_sz, rank, dtype): + """Verify that each rank's partition contains the expected fill pattern.""" + passed = True + for r in range(world_size): + chunk = partitions[r].narrow(0, 0, partition_sz).float().cpu() + expected_val = float(r + 1) + if not torch.allclose(chunk, torch.full_like(chunk, expected_val)): + unique_vals = chunk.unique() + print(f" [rank {rank}] FAIL: partition[{r}] expected all {expected_val}, " + f"got unique values: {unique_vals[:10]}") + passed = False + return passed + + +def run_single_allgather(rank, world_size, dtype, partition_sz, ag_stream): + """Execute one allgather call following the exact ZeRO-3 _all_gather_dtype path.""" + device = get_accelerator().current_device_name() + + flat_tensor = torch.empty( + partition_sz * world_size, dtype=dtype, device=device, requires_grad=False + ) + partitions = [] + for i in range(world_size): + partitions.append(flat_tensor.narrow(0, partition_sz * i, partition_sz)) + + partitions[rank].fill_(float(rank + 1)) + + with get_accelerator().stream(ag_stream): + handle = _dist_allgather_fn(partitions[rank], flat_tensor) + + if _sdma_allgather_enabled() and not _sdma_allgather_handle._copy: + transit_buf_u32 = _sdma_allgather_handle.get_output_transit_buffer() + transit_buf = transit_buf_u32.view(dtype) + partitions = [] + for i in range(world_size): + partitions.append(transit_buf.narrow(0, partition_sz * i, partition_sz)) + + with get_accelerator().stream(ag_stream): + handle.wait() + get_accelerator().current_stream().wait_stream(ag_stream) + + return partitions + + +def run_correctness_test(rank, world_size, dtype, partition_sz, ag_stream): + """Run a single correctness test.""" + partitions = run_single_allgather(rank, world_size, dtype, partition_sz, ag_stream) + return verify_allgather(partitions, world_size, partition_sz, rank, dtype) + + +def run_bandwidth_test(rank, world_size, dtype, partition_sz, ag_stream, + iterations, warmup): + """Measure allgather bandwidth following the ZeRO-3 overlap pattern.""" + device = get_accelerator().current_device_name() + elem_size = torch.tensor([], dtype=dtype).element_size() + total_bytes = partition_sz * elem_size * world_size + + ev_start = torch.cuda.Event(enable_timing=True) + ev_end = torch.cuda.Event(enable_timing=True) + times_ms = [] + + for i in range(warmup + iterations): + flat_tensor = torch.empty( + partition_sz * world_size, dtype=dtype, device=device, requires_grad=False + ) + partitions = [] + for r in range(world_size): + partitions.append(flat_tensor.narrow(0, partition_sz * r, partition_sz)) + partitions[rank].fill_(float(rank + 1)) + + dist.barrier() + + ev_start.record(ag_stream) + with get_accelerator().stream(ag_stream): + handle = _dist_allgather_fn(partitions[rank], flat_tensor) + with get_accelerator().stream(ag_stream): + handle.wait() + ev_end.record(ag_stream) + + ag_stream.synchronize() + + elapsed_ms = ev_start.elapsed_time(ev_end) + if i >= warmup: + times_ms.append(elapsed_ms) + + return times_ms, total_bytes + + +def main(): + parser = argparse.ArgumentParser(description="SDMA allgather unit test (ZeRO-3 style)") + parser.add_argument("--partition_sz", type=int, default=1024 * 1024, + help="Elements per rank per allgather call") + parser.add_argument("--max_numel", type=int, default=4 * 1024 * 1024, + help="Max uint32 elements for SDMA transit buffer") + parser.add_argument("--iterations", type=int, default=20, + help="Number of measurement iterations") + parser.add_argument("--warmup", type=int, default=5, + help="Number of warmup iterations") + parser.add_argument("--local_rank", type=int, + default=int(os.environ.get("LOCAL_RANK", 0))) + parser = deepspeed.add_config_arguments(parser) + args = parser.parse_args() + + deepspeed.init_distributed(dist_backend="cpu:gloo,cuda:nccl") + rank = dist.get_rank() + world_size = dist.get_world_size() + get_accelerator().set_device(args.local_rank) + + if rank == 0: + print(f"\n{'=' * 65}") + print(f" SDMA Allgather Unit Test (ZeRO-3 code path)") + print(f" world_size : {world_size}") + print(f" partition_sz : {args.partition_sz:,} elements") + print(f" iterations : {args.iterations} (warmup {args.warmup})") + print(f"{'=' * 65}") + + _init_sdma_allgather(max_numel=args.max_numel) + + if rank == 0: + if _sdma_allgather_enabled(): + mode = "zero-copy transit buffer" if not _sdma_allgather_handle._copy else "copy-to-user" + print(f" backend : SDMA ({mode})") + else: + print(f" backend : RCCL (SDMA not available)") + print() + + ag_stream = get_accelerator().Stream() + + test_dtypes = [ + ("bfloat16", torch.bfloat16), + ("float16", torch.float16), + ("float32", torch.float32), + ] + + # ── 1. Correctness ──────────────────────────────────────────────── + if rank == 0: + print("--- Correctness ---") + + all_correct = True + for dtype_name, dtype in test_dtypes: + dist.barrier() + passed = run_correctness_test(rank, world_size, dtype, args.partition_sz, ag_stream) + + passed_t = torch.tensor([1 if passed else 0], dtype=torch.int32) + torch_dist.all_reduce(passed_t, op=torch_dist.ReduceOp.MIN) + ok = passed_t.item() == 1 + + if rank == 0: + elem_bytes = torch.tensor([], dtype=dtype).element_size() + data_mb = args.partition_sz * elem_bytes * world_size / (1024 ** 2) + status = "PASSED" if ok else "FAILED" + print(f" {dtype_name:10s} data={data_mb:8.2f} MB {status}") + if not ok: + all_correct = False + + # ── 2. Bandwidth ────────────────────────────────────────────────── + if rank == 0: + print(f"\n--- Bandwidth (iterations={args.iterations}, warmup={args.warmup}) ---") + print(f" {'dtype':10s} {'data_MB':>10s} {'avg_ms':>9s} {'min_ms':>9s} {'max_ms':>9s} {'algo_BW':>12s}") + print(f" {'-'*10} {'-'*10} {'-'*9} {'-'*9} {'-'*9} {'-'*12}") + + for dtype_name, dtype in test_dtypes: + dist.barrier() + times_ms, total_bytes = run_bandwidth_test( + rank, world_size, dtype, args.partition_sz, ag_stream, + args.iterations, args.warmup, + ) + + avg_ms = np.mean(times_ms) + min_ms = np.min(times_ms) + max_ms = np.max(times_ms) + + avg_t = torch.tensor([avg_ms], dtype=torch.float64) + min_t = torch.tensor([min_ms], dtype=torch.float64) + max_t = torch.tensor([max_ms], dtype=torch.float64) + torch_dist.all_reduce(avg_t, op=torch_dist.ReduceOp.SUM) + torch_dist.all_reduce(min_t, op=torch_dist.ReduceOp.MIN) + torch_dist.all_reduce(max_t, op=torch_dist.ReduceOp.MAX) + + if rank == 0: + g_avg_ms = avg_t.item() / world_size + g_min_ms = min_t.item() + g_max_ms = max_t.item() + data_mb = total_bytes / (1024 ** 2) + algo_bw_gbs = total_bytes / (g_avg_ms / 1000) / (1024 ** 3) + print(f" {dtype_name:10s} {data_mb:10.2f} {g_avg_ms:9.3f} " + f"{g_min_ms:9.3f} {g_max_ms:9.3f} {algo_bw_gbs:9.2f} GB/s") + + # ── Summary ─────────────────────────────────────────────────────── + dist.barrier() + if rank == 0: + print() + if all_correct: + print("Result: All correctness tests PASSED") + else: + print("Result: Some correctness tests FAILED") + print(f"{'=' * 65}\n") + + get_accelerator().synchronize() + dist.barrier() + if _sdma_allgather_enabled(): + import mori.shmem as shmem + shmem.shmem_finalize() + + +if __name__ == "__main__": + main() From 4b2d44d139f3c2d3774328f8a8bf5f2d7feccd9f Mon Sep 17 00:00:00 2001 From: wuyl1 Date: Mon, 9 Mar 2026 22:20:38 +0800 Subject: [PATCH 07/25] fix bug Signed-off-by: wuyl1 --- .../test_sdma_allgather_zero3.py | 25 ++++++++----------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/examples/zero3_overlap/test_sdma_allgather_zero3.py b/examples/zero3_overlap/test_sdma_allgather_zero3.py index f7e57801eb79..ebc9b7a7ff06 100644 --- a/examples/zero3_overlap/test_sdma_allgather_zero3.py +++ b/examples/zero3_overlap/test_sdma_allgather_zero3.py @@ -26,12 +26,7 @@ from deepspeed import comm as dist from deepspeed.accelerator import get_accelerator -from deepspeed.runtime.zero.partition_parameters import ( - _init_sdma_allgather, - _sdma_allgather_enabled, - _sdma_allgather_handle, - _dist_allgather_fn, -) +import deepspeed.runtime.zero.partition_parameters as pp def verify_allgather(partitions, world_size, partition_sz, rank, dtype): @@ -62,10 +57,10 @@ def run_single_allgather(rank, world_size, dtype, partition_sz, ag_stream): partitions[rank].fill_(float(rank + 1)) with get_accelerator().stream(ag_stream): - handle = _dist_allgather_fn(partitions[rank], flat_tensor) + handle = pp._dist_allgather_fn(partitions[rank], flat_tensor) - if _sdma_allgather_enabled() and not _sdma_allgather_handle._copy: - transit_buf_u32 = _sdma_allgather_handle.get_output_transit_buffer() + if pp._sdma_allgather_enabled() and not pp._sdma_allgather_handle._copy: + transit_buf_u32 = pp._sdma_allgather_handle.get_output_transit_buffer() transit_buf = transit_buf_u32.view(dtype) partitions = [] for i in range(world_size): @@ -108,7 +103,7 @@ def run_bandwidth_test(rank, world_size, dtype, partition_sz, ag_stream, ev_start.record(ag_stream) with get_accelerator().stream(ag_stream): - handle = _dist_allgather_fn(partitions[rank], flat_tensor) + handle = pp._dist_allgather_fn(partitions[rank], flat_tensor) with get_accelerator().stream(ag_stream): handle.wait() ev_end.record(ag_stream) @@ -150,14 +145,14 @@ def main(): print(f" iterations : {args.iterations} (warmup {args.warmup})") print(f"{'=' * 65}") - _init_sdma_allgather(max_numel=args.max_numel) + pp._init_sdma_allgather(max_numel=args.max_numel) if rank == 0: - if _sdma_allgather_enabled(): - mode = "zero-copy transit buffer" if not _sdma_allgather_handle._copy else "copy-to-user" + if pp._sdma_allgather_enabled(): + mode = "zero-copy transit buffer" if not pp._sdma_allgather_handle._copy else "copy-to-user" print(f" backend : SDMA ({mode})") else: - print(f" backend : RCCL (SDMA not available)") + print(f" backend : RCCL (SDMA not available, handle is None)") print() ag_stream = get_accelerator().Stream() @@ -234,7 +229,7 @@ def main(): get_accelerator().synchronize() dist.barrier() - if _sdma_allgather_enabled(): + if pp._sdma_allgather_enabled(): import mori.shmem as shmem shmem.shmem_finalize() From f3a0d1bb1547ceb98549bfd014fd7e9af5d69daa Mon Sep 17 00:00:00 2001 From: wuyl1 Date: Tue, 10 Mar 2026 10:58:53 +0800 Subject: [PATCH 08/25] copy_output_to_user=True Signed-off-by: wuyl1 --- deepspeed/runtime/zero/partition_parameters.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deepspeed/runtime/zero/partition_parameters.py b/deepspeed/runtime/zero/partition_parameters.py index 64e41abb1440..a7f4f1a607cf 100755 --- a/deepspeed/runtime/zero/partition_parameters.py +++ b/deepspeed/runtime/zero/partition_parameters.py @@ -142,7 +142,7 @@ class _SdmaAllGatherHandle: """ def __init__(self, max_numel: int = 64 * 1024 * 1024, - copy_output_to_user: bool = False): + copy_output_to_user: bool = True): import mori.shmem as shmem from mori.ccl import AllgatherSdma From 939cc0c377829da2f5d3997e45f13672db5c97c3 Mon Sep 17 00:00:00 2001 From: wuyl1 Date: Tue, 10 Mar 2026 20:37:38 +0800 Subject: [PATCH 09/25] use same training sample Signed-off-by: wuyl1 --- examples/zero3_overlap/train_zero3.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/examples/zero3_overlap/train_zero3.py b/examples/zero3_overlap/train_zero3.py index ce111a39d090..5dfd0e6bad69 100644 --- a/examples/zero3_overlap/train_zero3.py +++ b/examples/zero3_overlap/train_zero3.py @@ -102,18 +102,21 @@ def forward(self, input_ids, labels=None): # Synthetic dataset # --------------------------------------------------------------------------- class SyntheticTextDataset(Dataset): - """Generates random token sequences for demonstration purposes.""" + """Generates random token sequences, deterministic across runs.""" - def __init__(self, vocab_size, seq_len, num_samples): + def __init__(self, vocab_size, seq_len, num_samples, seed=42): self.vocab_size = vocab_size self.seq_len = seq_len self.num_samples = num_samples + self.seed = seed def __len__(self): return self.num_samples def __getitem__(self, idx): - tokens = torch.randint(0, self.vocab_size, (self.seq_len + 1,)) + g = torch.Generator() + g.manual_seed(self.seed + idx) + tokens = torch.randint(0, self.vocab_size, (self.seq_len + 1,), generator=g) return tokens[:-1], tokens[1:] @@ -148,6 +151,9 @@ def main(): local_rank = args.local_rank torch.cuda.set_device(local_rank) + torch.manual_seed(42) + torch.cuda.manual_seed_all(42) + with deepspeed.zero.Init(config_dict_or_path=ds_config_path): model = GPT2Model( vocab_size=args.vocab_size, From ca01795b72ba6dac98e6653961b011f15378e1b6 Mon Sep 17 00:00:00 2001 From: wuyl1 Date: Tue, 10 Mar 2026 21:10:38 +0800 Subject: [PATCH 10/25] add flops Signed-off-by: wuyl1 --- examples/zero3_overlap/ds_config_zero3.json | 2 +- examples/zero3_overlap/train_zero3.py | 26 ++++++++++++++++++--- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/examples/zero3_overlap/ds_config_zero3.json b/examples/zero3_overlap/ds_config_zero3.json index b27f23e88f2e..511f7d01e2fb 100644 --- a/examples/zero3_overlap/ds_config_zero3.json +++ b/examples/zero3_overlap/ds_config_zero3.json @@ -18,7 +18,7 @@ "warmup_min_lr": 0, "warmup_max_lr": 3e-4, "warmup_num_steps": 100, - "total_num_steps": 1000 + "total_num_steps": 2000 } }, "gradient_clipping": 1.0, diff --git a/examples/zero3_overlap/train_zero3.py b/examples/zero3_overlap/train_zero3.py index 5dfd0e6bad69..1cfa51922c96 100644 --- a/examples/zero3_overlap/train_zero3.py +++ b/examples/zero3_overlap/train_zero3.py @@ -132,7 +132,7 @@ def parse_args(): parser.add_argument("--max_seq_len", type=int, default=1024) parser.add_argument("--dropout", type=float, default=0.1) parser.add_argument("--num_samples", type=int, default=10000) - parser.add_argument("--train_steps", type=int, default=200) + parser.add_argument("--train_steps", type=int, default=2000) parser.add_argument("--local_rank", type=int, default=-1) parser = deepspeed.add_config_arguments(parser) return parser.parse_args() @@ -165,8 +165,15 @@ def main(): ) total_params = sum(p.numel() for p in model.parameters()) + num_gpus = torch.distributed.get_world_size() if local_rank == 0: print(f"Model parameters: {total_params / 1e6:.1f}M") + print(f"GPUs: {num_gpus}") + + # FLOPs per token (forward + backward): 6*params + 12*L*H*S + # Reference: "Efficient Large-Scale Language Model Training on GPU Clusters + # Using Megatron-LM" (Narayanan et al., 2021) + flops_per_token = 6 * total_params + 12 * args.num_layers * args.hidden_size * args.max_seq_len dataset = SyntheticTextDataset(args.vocab_size, args.max_seq_len, args.num_samples) @@ -194,17 +201,30 @@ def main(): if step % 10 == 0 and local_rank == 0: elapsed = time.time() - t_start - samples_per_sec = (step + 1) * model_engine.train_batch_size() / elapsed + global_batch = model_engine.train_batch_size() + samples_per_sec = (step + 1) * global_batch / elapsed + tokens_per_sec = samples_per_sec * args.max_seq_len + tflops = tokens_per_sec * flops_per_token / 1e12 + tflops_per_gpu = tflops / num_gpus print( f"step {step:5d} | loss {loss.item():.4f} | " f"lr {lr_scheduler.get_last_lr()[0]:.6f} | " - f"throughput {samples_per_sec:.1f} samples/s" + f"{samples_per_sec:.1f} samples/s | " + f"{tflops:.1f} TFLOPS | " + f"{tflops_per_gpu:.1f} TFLOPS/GPU" ) step += 1 if local_rank == 0: total_time = time.time() - t_start + total_samples = args.train_steps * model_engine.train_batch_size() + avg_samples_per_sec = total_samples / total_time + avg_tokens_per_sec = avg_samples_per_sec * args.max_seq_len + avg_tflops = avg_tokens_per_sec * flops_per_token / 1e12 + avg_tflops_per_gpu = avg_tflops / num_gpus print(f"\nTraining complete: {args.train_steps} steps in {total_time:.1f}s") + print(f" Avg throughput : {avg_samples_per_sec:.1f} samples/s") + print(f" Avg TFLOPS : {avg_tflops:.1f} (total) | {avg_tflops_per_gpu:.1f} (per GPU)") if __name__ == "__main__": From 33edc8a0fc2847a5b936284dd30998c628f63080 Mon Sep 17 00:00:00 2001 From: wuyl1 Date: Tue, 10 Mar 2026 21:27:05 +0800 Subject: [PATCH 11/25] add training log Signed-off-by: wuyl1 --- examples/zero3_overlap/train_zero3.py | 66 ++++++++++++++++++++------- 1 file changed, 49 insertions(+), 17 deletions(-) diff --git a/examples/zero3_overlap/train_zero3.py b/examples/zero3_overlap/train_zero3.py index 1cfa51922c96..785f0b0884b7 100644 --- a/examples/zero3_overlap/train_zero3.py +++ b/examples/zero3_overlap/train_zero3.py @@ -184,14 +184,22 @@ def main(): ) device = model_engine.device + global_batch = model_engine.train_batch_size() + tokens_per_step = global_batch * args.max_seq_len + warmup_steps = min(50, args.train_steps // 10) step = 0 + step_times = [] t_start = time.time() + t_steady = None while step < args.train_steps: for batch in train_loader: if step >= args.train_steps: break + torch.cuda.synchronize() + t_step_start = time.time() + input_ids = batch[0].to(device) labels = batch[1].to(device) @@ -199,32 +207,56 @@ def main(): model_engine.backward(loss) model_engine.step() + torch.cuda.synchronize() + step_time_ms = (time.time() - t_step_start) * 1000 + + if step == warmup_steps: + t_steady = time.time() + if step >= warmup_steps: + step_times.append(step_time_ms) + if step % 10 == 0 and local_rank == 0: - elapsed = time.time() - t_start - global_batch = model_engine.train_batch_size() - samples_per_sec = (step + 1) * global_batch / elapsed - tokens_per_sec = samples_per_sec * args.max_seq_len - tflops = tokens_per_sec * flops_per_token / 1e12 - tflops_per_gpu = tflops / num_gpus + if step_times: + import numpy as np + recent = np.array(step_times[-20:]) + avg_ms = recent.mean() + cur_samples_per_sec = global_batch / (avg_ms / 1000) + cur_tokens_per_sec = cur_samples_per_sec * args.max_seq_len + cur_tflops_per_gpu = cur_tokens_per_sec * flops_per_token / 1e12 / num_gpus + else: + avg_ms = step_time_ms + cur_tflops_per_gpu = 0.0 + cur_samples_per_sec = 0.0 print( f"step {step:5d} | loss {loss.item():.4f} | " f"lr {lr_scheduler.get_last_lr()[0]:.6f} | " - f"{samples_per_sec:.1f} samples/s | " - f"{tflops:.1f} TFLOPS | " - f"{tflops_per_gpu:.1f} TFLOPS/GPU" + f"{cur_samples_per_sec:.1f} samples/s | " + f"{cur_tflops_per_gpu:.2f} TFLOPS/GPU | " + f"step {avg_ms:.1f} ms" ) step += 1 if local_rank == 0: + import numpy as np total_time = time.time() - t_start - total_samples = args.train_steps * model_engine.train_batch_size() - avg_samples_per_sec = total_samples / total_time - avg_tokens_per_sec = avg_samples_per_sec * args.max_seq_len - avg_tflops = avg_tokens_per_sec * flops_per_token / 1e12 - avg_tflops_per_gpu = avg_tflops / num_gpus - print(f"\nTraining complete: {args.train_steps} steps in {total_time:.1f}s") - print(f" Avg throughput : {avg_samples_per_sec:.1f} samples/s") - print(f" Avg TFLOPS : {avg_tflops:.1f} (total) | {avg_tflops_per_gpu:.1f} (per GPU)") + st = np.array(step_times) + steady_steps = len(st) + steady_time = time.time() - t_steady if t_steady else total_time + + steady_samples_per_sec = steady_steps * global_batch / steady_time + steady_tokens_per_sec = steady_samples_per_sec * args.max_seq_len + steady_tflops = steady_tokens_per_sec * flops_per_token / 1e12 + steady_tflops_per_gpu = steady_tflops / num_gpus + + print(f"\n{'=' * 70}") + print(f"Training complete: {args.train_steps} steps in {total_time:.1f}s") + print(f" (warmup={warmup_steps} steps skipped, measured {steady_steps} steps)") + print(f"{'=' * 70}") + print(f" Throughput : {steady_samples_per_sec:.1f} samples/s") + print(f" TFLOPS : {steady_tflops:.1f} (total) | {steady_tflops_per_gpu:.2f} (per GPU)") + print(f" Step time (ms) : avg {st.mean():.1f} | p50 {np.median(st):.1f} | " + f"p99 {np.percentile(st, 99):.1f} | min {st.min():.1f} | max {st.max():.1f}") + print(f"{'=' * 70}") if __name__ == "__main__": From 5eb18e87f08a2e90ae86158c75471de89dfe1ef7 Mon Sep 17 00:00:00 2001 From: wuyl1 Date: Tue, 10 Mar 2026 21:55:29 +0800 Subject: [PATCH 12/25] change to 2.7b Signed-off-by: wuyl1 --- examples/zero3_overlap/ds_config_zero3.json | 2 +- examples/zero3_overlap/train_zero3.py | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/examples/zero3_overlap/ds_config_zero3.json b/examples/zero3_overlap/ds_config_zero3.json index 511f7d01e2fb..3f2da4e319d1 100644 --- a/examples/zero3_overlap/ds_config_zero3.json +++ b/examples/zero3_overlap/ds_config_zero3.json @@ -42,5 +42,5 @@ "sdma_allgather": true, "sdma_allgather_max_numel": 67108864 }, - "wall_clock_breakdown": true + "wall_clock_breakdown": false } diff --git a/examples/zero3_overlap/train_zero3.py b/examples/zero3_overlap/train_zero3.py index 785f0b0884b7..68f6568c841e 100644 --- a/examples/zero3_overlap/train_zero3.py +++ b/examples/zero3_overlap/train_zero3.py @@ -126,10 +126,10 @@ def __getitem__(self, idx): def parse_args(): parser = argparse.ArgumentParser(description="DeepSpeed ZeRO-3 training with allgather overlap") parser.add_argument("--vocab_size", type=int, default=50257) - parser.add_argument("--hidden_size", type=int, default=2048) - parser.add_argument("--num_layers", type=int, default=24) - parser.add_argument("--num_heads", type=int, default=16) - parser.add_argument("--max_seq_len", type=int, default=1024) + parser.add_argument("--hidden_size", type=int, default=4096) + parser.add_argument("--num_layers", type=int, default=48) + parser.add_argument("--num_heads", type=int, default=32) + parser.add_argument("--max_seq_len", type=int, default=2048) parser.add_argument("--dropout", type=float, default=0.1) parser.add_argument("--num_samples", type=int, default=10000) parser.add_argument("--train_steps", type=int, default=2000) From f7d587d7026cf99997280d9c898a79a4355b131a Mon Sep 17 00:00:00 2001 From: wuyl1 Date: Tue, 10 Mar 2026 22:43:09 +0800 Subject: [PATCH 13/25] copy_output_to_user: bool = False Signed-off-by: wuyl1 --- deepspeed/runtime/zero/partition_parameters.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deepspeed/runtime/zero/partition_parameters.py b/deepspeed/runtime/zero/partition_parameters.py index a7f4f1a607cf..64e41abb1440 100755 --- a/deepspeed/runtime/zero/partition_parameters.py +++ b/deepspeed/runtime/zero/partition_parameters.py @@ -142,7 +142,7 @@ class _SdmaAllGatherHandle: """ def __init__(self, max_numel: int = 64 * 1024 * 1024, - copy_output_to_user: bool = True): + copy_output_to_user: bool = False): import mori.shmem as shmem from mori.ccl import AllgatherSdma From 4053ea1afa000e81acf37ad7538174ee37a21116 Mon Sep 17 00:00:00 2001 From: wuyl1 Date: Wed, 11 Mar 2026 15:42:16 +0800 Subject: [PATCH 14/25] fix noncopy Signed-off-by: wuyl1 --- .../runtime/zero/partition_parameters.py | 116 +++++------------- 1 file changed, 32 insertions(+), 84 deletions(-) diff --git a/deepspeed/runtime/zero/partition_parameters.py b/deepspeed/runtime/zero/partition_parameters.py index 64e41abb1440..d15dfc1d7ac2 100755 --- a/deepspeed/runtime/zero/partition_parameters.py +++ b/deepspeed/runtime/zero/partition_parameters.py @@ -106,13 +106,7 @@ def wait(self, **kwargs) -> None: class _SdmaWork: - """Duck-type compatible with ``torch.distributed.Work``. - - Wraps a GPU event recorded after the SDMA allgather submission. - ``.wait()`` only synchronizes; no data copy is needed because the - ``AllGatherCoalescedHandle`` already holds partitions that are - views into the transit buffer. - """ + """Duck-type compatible with ``torch.distributed.Work``.""" def __init__(self, event): self._event = event @@ -124,99 +118,59 @@ def is_completed(self) -> bool: return self._event.query() -class _SdmaAllGatherHandle: - """Persistent handle that caches the ``AllgatherSdma`` C++ object. - - Zero-copy design: when ``copy_output_to_user=False`` (default), the - allgather result lives in an internal transit buffer. Instead of - copying it back to a separate ``flat_tensor``, the caller should - build its ``partitions`` list directly from the transit buffer via - :meth:`get_output_transit_buffer`. - - Args: - max_numel: Maximum number of elements (uint32) per allgather call. - Controls the pre-allocated transit buffer size. - copy_output_to_user: If ``True`` the C++ kernel copies the result - into the caller-supplied *output_tensor*. If ``False`` (default) - the result stays in the internal transit buffer (zero-copy). - """ - - def __init__(self, max_numel: int = 64 * 1024 * 1024, - copy_output_to_user: bool = False): - import mori.shmem as shmem - from mori.ccl import AllgatherSdma - - self._my_pe = shmem.shmem_mype() - self._npes = shmem.shmem_npes() - self._copy = copy_output_to_user - - elem_bytes = 4 # uint32 - self._ag = AllgatherSdma( - self._my_pe, self._npes, - input_buffer_size=max_numel * elem_bytes, - output_buffer_size=max_numel * self._npes * elem_bytes, - copy_output_to_user=copy_output_to_user, - ) - - def get_output_transit_buffer(self) -> Tensor: - """Return the internal transit buffer as a zero-copy 1-D tensor view.""" - return self._ag.get_output_transit_buffer(device=self._my_pe) - - def allgather(self, input_tensor: Tensor, output_tensor: Tensor, - group=None, async_op: bool = True): - """Submit SDMA allgather on the **current** stream. - - Returns an :class:`_SdmaWork` whose ``.wait()`` blocks until the - transfer is complete. If *async_op* is ``False``, waits inline. - """ - stream = get_accelerator().current_stream() - self._ag(input_tensor, output_tensor, input_tensor.numel(), stream) - - event = get_accelerator().Event() - event.record(stream) - - work = _SdmaWork(event) - if not async_op: - work.wait() - return work - - -_sdma_allgather_handle = None +_sdma_ag = None def _sdma_allgather_enabled(): - return _sdma_allgather_handle is not None + return _sdma_ag is not None def _ensure_default_pg_registered(): - """Register the WORLD process group as 'default' in PyTorch's C++ GroupRegistry - so that mori's shmem_torch_process_group_init can resolve it by name. - - This mirrors what mori's TorchDistContext does after init_process_group(). - """ + """Register the WORLD process group as 'default' in PyTorch's C++ GroupRegistry.""" world_group = torch.distributed.group.WORLD assert world_group is not None, "torch.distributed must be initialized before SDMA allgather" torch._C._distributed_c10d._register_process_group("default", world_group) def _init_sdma_allgather(max_numel: int = 64 * 1024 * 1024): - """Initialize the module-level SDMA allgather handle (called once from Init.__init__).""" - global _sdma_allgather_handle - if _sdma_allgather_handle is not None: + """Initialize SDMA allgather with direct-write (single instance). + + Uses ``register_output_buffer`` to IPC-map each unique output_tensor + address on first use. SDMA then writes directly into the caller's + VRAM, bypassing the internal transit buffer entirely. + """ + global _sdma_ag + if _sdma_ag is not None: return _ensure_default_pg_registered() import mori.shmem as shmem + from mori.ccl import AllgatherSdma + shmem.shmem_torch_process_group_init("default") - _sdma_allgather_handle = _SdmaAllGatherHandle( - max_numel=max_numel, + my_pe = shmem.shmem_mype() + npes = shmem.shmem_npes() + elem_bytes = 4 + _sdma_ag = AllgatherSdma( + my_pe, npes, + input_buffer_size=max_numel * elem_bytes, + output_buffer_size=max_numel * npes * elem_bytes, + copy_output_to_user=False, ) if dist.get_rank() == 0: - logger.info(f"SDMA allgather enabled (max_numel={max_numel})") + logger.info(f"SDMA allgather enabled (direct-write, max_numel={max_numel})") def _dist_allgather_fn(input_tensor: Tensor, output_tensor: Tensor, group=None): if _sdma_allgather_enabled(): - return _sdma_allgather_handle.allgather(input_tensor, output_tensor, group=group, async_op=True) + if not _sdma_ag.is_output_registered(output_tensor): + _sdma_ag.register_output_buffer(output_tensor) + + stream = get_accelerator().current_stream() + _sdma_ag(input_tensor, output_tensor, input_tensor.numel(), stream) + + event = get_accelerator().Event() + event.record(stream) + return _SdmaWork(event) return instrument_w_nvtx(dist.allgather_fn)(output_tensor, input_tensor, group=group, async_op=True) @@ -1380,12 +1334,6 @@ def _all_gather_dtype(params, world_size, rank_in_group, ds_process_group, allga out=partitions[rank_in_group]) handle = _dist_allgather_fn(partitions[rank_in_group], flat_tensor, ds_process_group) - if _sdma_allgather_enabled() and not _sdma_allgather_handle._copy: - transit_buf = _sdma_allgather_handle.get_output_transit_buffer() - partitions = [] - for i in range(world_size): - partitions.append(transit_buf.narrow(0, partition_sz * i, partition_sz)) - return AllGatherCoalescedHandle( allgather_handle=handle, params=params, From 72020df84e35d2a718685dcbb88b1405992a486b Mon Sep 17 00:00:00 2001 From: wuyl1 Date: Wed, 11 Mar 2026 22:07:55 +0800 Subject: [PATCH 15/25] fix bug Signed-off-by: wuyl1 --- .../runtime/zero/partition_parameters.py | 221 +++++++++++++++--- examples/zero3_overlap/train_zero3.py | 32 ++- 2 files changed, 220 insertions(+), 33 deletions(-) diff --git a/deepspeed/runtime/zero/partition_parameters.py b/deepspeed/runtime/zero/partition_parameters.py index d15dfc1d7ac2..3ba524720d3a 100755 --- a/deepspeed/runtime/zero/partition_parameters.py +++ b/deepspeed/runtime/zero/partition_parameters.py @@ -118,7 +118,78 @@ def is_completed(self) -> bool: return self._event.query() +class _SdmaOutputPool: + """Pre-allocated registered VRAM buffer pool for SDMA direct-write. + + One large buffer is allocated and registered with SDMA once at init. + The buffer is divided into ``num_slots`` equal slots. Each allgather + call acquires the next slot (round-robin) and SDMA writes directly + into it. Callers use the returned slot view as ``output_tensor``. + + This avoids repeated ``register_output_buffer`` calls (which are + collective and expensive) while keeping each in-flight allgather's + output in an independent memory region. + """ + + def __init__(self, ag, slot_bytes: int, num_slots: int = 6): + self._ag = ag + self._num_slots = num_slots + self._slot_bytes = slot_bytes + self._buf = torch.empty( + slot_bytes * num_slots, + dtype=torch.uint8, + device=get_accelerator().current_device_name(), + ) + self._ag.register_output_buffer(self._buf) + self._idx = 0 + self._slot_events = [None] * num_slots + self._slot_in_use = [False] * num_slots + self._ptr_to_slot = {} + self._reuse_wait_warned = False + self._exhaust_warned = False + + def acquire(self, numel: int, dtype: torch.dtype): + """Return a view into the next slot, or ``None`` if it doesn't fit.""" + byte_need = numel * torch.tensor([], dtype=dtype).element_size() + if byte_need > self._slot_bytes: + return None + for _ in range(self._num_slots): + slot_idx = self._idx + self._idx = (self._idx + 1) % self._num_slots + if self._slot_in_use[slot_idx]: + continue + slot_event = self._slot_events[slot_idx] + if slot_event is not None and not slot_event.query(): + continue + self._slot_in_use[slot_idx] = True + offset = slot_idx * self._slot_bytes + tensor = self._buf.narrow(0, offset, byte_need).view(dtype) + self._ptr_to_slot[int(tensor.data_ptr())] = slot_idx + return tensor + + if not self._exhaust_warned and dist.is_initialized() and dist.get_rank() == 0: + logger.warning("SDMA pool exhausted by active parameter lifetimes; fallback to dist.allgather for this call") + self._exhaust_warned = True + return None + + def record_inflight(self, tensor: Tensor, event) -> None: + """Record the completion event for the slot backing *tensor*.""" + slot_idx = self._ptr_to_slot.get(int(tensor.data_ptr())) + if slot_idx is not None: + self._slot_events[slot_idx] = event + + def release(self, tensor: Tensor) -> None: + """Release a slot previously acquired for *tensor*.""" + slot_idx = self._ptr_to_slot.get(int(tensor.data_ptr())) + if slot_idx is not None: + self._slot_in_use[slot_idx] = False + + _sdma_ag = None +_sdma_pool = None +_sdma_fallback_warned = False +_sdma_fallback_align_warned = False +_sdma_call_failed_warned = False def _sdma_allgather_enabled(): @@ -132,14 +203,23 @@ def _ensure_default_pg_registered(): torch._C._distributed_c10d._register_process_group("default", world_group) -def _init_sdma_allgather(max_numel: int = 64 * 1024 * 1024): - """Initialize SDMA allgather with direct-write (single instance). +def _init_sdma_allgather(max_numel: int = 64 * 1024 * 1024, + prefetch_bucket_size: int = 50000000, + num_slots: int = None, + dtype_bytes: int = 2): + """Initialize SDMA allgather with a single registered output buffer pool. + + One large VRAM buffer is allocated and IPC-registered once. Each + allgather call takes a slot from the pool (round-robin) so that + concurrent in-flight calls never overwrite each other. - Uses ``register_output_buffer`` to IPC-map each unique output_tensor - address on first use. SDMA then writes directly into the caller's - VRAM, bypassing the internal transit buffer entirely. + The slot size is determined by ``prefetch_bucket_size * dtype_bytes`` + which is the max output size of a single allgather (all ranks' + partitions concatenated). This is much smaller than + ``max_numel * npes * elem_bytes`` which sizes the internal SDMA + transit buffer. """ - global _sdma_ag + global _sdma_ag, _sdma_pool if _sdma_ag is not None: return _ensure_default_pg_registered() @@ -156,20 +236,51 @@ def _init_sdma_allgather(max_numel: int = 64 * 1024 * 1024): output_buffer_size=max_numel * npes * elem_bytes, copy_output_to_user=False, ) + if num_slots is None: + # Fixed default for overlap stability/perf without external env knobs. + num_slots = 16 + slot_bytes = int(int(prefetch_bucket_size) * dtype_bytes * 1.2) + _sdma_pool = _SdmaOutputPool(_sdma_ag, slot_bytes=slot_bytes, num_slots=num_slots) if dist.get_rank() == 0: - logger.info(f"SDMA allgather enabled (direct-write, max_numel={max_numel})") + total_mb = slot_bytes * num_slots / (1024 * 1024) + logger.info(f"SDMA allgather enabled (direct-write pool: {num_slots} slots, " + f"slot={slot_bytes // (1024*1024)} MB, total={total_mb:.0f} MB)") + + +def _sdma_acquire_output(numel: int, dtype: torch.dtype) -> Tensor: + """Acquire an output buffer from the SDMA pool for *numel* elements of *dtype*.""" + return _sdma_pool.acquire(numel, dtype) def _dist_allgather_fn(input_tensor: Tensor, output_tensor: Tensor, group=None): if _sdma_allgather_enabled(): + global _sdma_fallback_warned, _sdma_fallback_align_warned, _sdma_call_failed_warned + # mori AllgatherSdma currently operates through a uint32 transport path. + # For direct-write correctness, require exact 4-byte alignment on byte size. + # Otherwise, fall back to dist allgather to avoid tail-byte overwrite. + if (input_tensor.nbytes % 4) != 0 or (output_tensor.nbytes % 4) != 0: + if not _sdma_fallback_align_warned and dist.is_initialized() and dist.get_rank() == 0: + logger.warning("SDMA allgather fallback to dist.allgather for non-4B-aligned tensor size") + _sdma_fallback_align_warned = True + return instrument_w_nvtx(dist.allgather_fn)(output_tensor, input_tensor, group=group, async_op=True) + # Direct-write mode requires output to be from the pre-registered pool. + # If not registered, fall back to the default backend for correctness. if not _sdma_ag.is_output_registered(output_tensor): - _sdma_ag.register_output_buffer(output_tensor) - + if not _sdma_fallback_warned and dist.is_initialized() and dist.get_rank() == 0: + logger.warning("SDMA allgather fallback to dist.allgather for unregistered output tensor") + _sdma_fallback_warned = True + return instrument_w_nvtx(dist.allgather_fn)(output_tensor, input_tensor, group=group, async_op=True) stream = get_accelerator().current_stream() - _sdma_ag(input_tensor, output_tensor, input_tensor.numel(), stream) + ok = _sdma_ag(input_tensor, output_tensor, input_tensor.numel(), stream) + if not ok: + if not _sdma_call_failed_warned and dist.is_initialized() and dist.get_rank() == 0: + logger.warning("SDMA allgather call returned False, fallback to dist.allgather") + _sdma_call_failed_warned = True + return instrument_w_nvtx(dist.allgather_fn)(output_tensor, input_tensor, group=group, async_op=True) event = get_accelerator().Event() event.record(stream) + _sdma_pool.record_inflight(output_tensor, event) return _SdmaWork(event) return instrument_w_nvtx(dist.allgather_fn)(output_tensor, input_tensor, group=group, async_op=True) @@ -749,7 +860,14 @@ def restore_init_context(): class AllGatherHandle: - def __init__(self, handle, param: Parameter, quantization=None, param_buffer=None, original_dtype=None) -> None: + def __init__(self, + handle, + param: Parameter, + quantization=None, + param_buffer=None, + original_dtype=None, + sdma_output=None, + hold_sdma_until_partition=False) -> None: if param.ds_status != ZeroParamStatus.INFLIGHT: raise RuntimeError(f"expected param {param.ds_summary()} to be available") @@ -758,17 +876,33 @@ def __init__(self, handle, param: Parameter, quantization=None, param_buffer=Non self.__quantization = quantization self.__param_buffer = param_buffer self.__original_dtype = original_dtype + self.__sdma_output = sdma_output + self.__hold_sdma_until_partition = hold_sdma_until_partition def wait(self, handle_dependency=True) -> None: instrument_w_nvtx(self.__handle.wait)() if self.__param_buffer is not None: - self.__param.data = self.__param_buffer.narrow(0, 0, self.__param.ds_numel).view(self.__param.ds_shape).to( + gathered = self.__param_buffer.narrow(0, 0, self.__param.ds_numel).view(self.__param.ds_shape).to( self.__original_dtype).to(self.__param.device) + # Fast path: when we keep the slot alive until partition, param.data can + # safely alias SDMA pool memory (zero-copy). + # Slow path: if slot is released immediately and storage still aliases the + # pool, clone to preserve correctness. + if self.__sdma_output is not None and not self.__hold_sdma_until_partition: + if gathered.untyped_storage().data_ptr() == self.__param_buffer.untyped_storage().data_ptr(): + gathered = gathered.clone() + self.__param.data = gathered elif self.__quantization: instrument_w_nvtx(self.__quantization.quant_handle.wait)() self.__param.data = self.__quantization.backend.dequantize( self.__quantization.quantized_param, self.__quantization.scale_buffer).to(self.__param.device) + + if self.__sdma_output is not None: + if self.__hold_sdma_until_partition: + self.__param._ds_sdma_output_ref = self.__sdma_output + elif _sdma_pool is not None: + _sdma_pool.release(self.__sdma_output) self.__param.ds_status = ZeroParamStatus.AVAILABLE @@ -784,6 +918,7 @@ def __init__( world_size: int, use_secondary_tensor=False, quantization=None, + sdma_output=None, ) -> None: self.allgather_handle = allgather_handle self.params = params @@ -792,6 +927,7 @@ def __init__( self.use_secondary_tensor = use_secondary_tensor self.complete = False self.quantization = quantization + self.sdma_output = sdma_output for param in self.params: if param.ds_status != ZeroParamStatus.INFLIGHT: @@ -838,6 +974,8 @@ def wait(self, handle_dependency=True) -> None: param_offset += ds_tensor_numel self.complete = True + if self.sdma_output is not None and _sdma_pool is not None: + _sdma_pool.release(self.sdma_output) if not get_accelerator().is_synchronized_device() and not handle_dependency: # if the device needs to handle dependencies and opts for explicit processing outside the function. AllGatherCoalescedHandle.data_buffer.append(partitions) @@ -1181,7 +1319,10 @@ def __init__(self, cfg_max = _ds_config.zero_config.sdma_allgather_max_numel prefetch_partition = int(_ds_config.zero_config.prefetch_bucket_size) // self.num_partitions safe_max = max(cfg_max, prefetch_partition * 2) - _init_sdma_allgather(max_numel=safe_max) + _init_sdma_allgather( + max_numel=safe_max, + prefetch_bucket_size=int(_ds_config.zero_config.prefetch_bucket_size), + ) def _update_persist_config(self, ds_config): Init.apply_param_persistence = True @@ -1313,10 +1454,16 @@ def _all_gather_dtype(params, world_size, rank_in_group, ds_process_group, allga if use_secondary_tensor: partition_sz = sum(p.ds_tensor.ds_numel * p.ds_secondary_tensor_num_of_groups for p in params) - flat_tensor = torch.empty(partition_sz * world_size, - dtype=allgather_dtype, - device=get_accelerator().current_device_name(), - requires_grad=False) + total_numel = partition_sz * world_size + # Coalesced path requires tensor re-layout (torch.cat) and has shown + # correctness drift with SDMA direct-write in current implementation. + # Keep coalesced allgather on default backend for correctness. + flat_tensor = None + if flat_tensor is None: + flat_tensor = torch.empty(total_numel, + dtype=allgather_dtype, + device=get_accelerator().current_device_name(), + requires_grad=False) partitions: List[Parameter] = [] for i in range(world_size): @@ -1332,7 +1479,8 @@ def _all_gather_dtype(params, world_size, rank_in_group, ds_process_group, allga instrument_w_nvtx(torch.cat)( [p.ds_tensor.to(get_accelerator().current_device_name()).to(allgather_dtype) for p in params], out=partitions[rank_in_group]) - handle = _dist_allgather_fn(partitions[rank_in_group], flat_tensor, ds_process_group) + handle = instrument_w_nvtx(dist.allgather_fn)( + flat_tensor, partitions[rank_in_group], group=ds_process_group, async_op=True) return AllGatherCoalescedHandle( allgather_handle=handle, @@ -1340,6 +1488,7 @@ def _all_gather_dtype(params, world_size, rank_in_group, ds_process_group, allga partitions=partitions, world_size=world_size, use_secondary_tensor=use_secondary_tensor, + sdma_output=None, ) def _all_gather_sequential(params, world_size, use_secondary_tensor, ds_process_group, quantize): @@ -1357,12 +1506,15 @@ def _all_gather_sequential(params, world_size, use_secondary_tensor, ds_process_ else: allgather_dtype = get_allgather_dtype(param, param_ds_tensor) - param_buffer = torch.empty( - buffer_size, - dtype=allgather_dtype, - device=get_accelerator().current_device_name(), - requires_grad=False, - ) + param_buffer = _sdma_acquire_output(buffer_size, allgather_dtype) \ + if (not quantize and _sdma_allgather_enabled()) else None + if param_buffer is None: + param_buffer = torch.empty( + buffer_size, + dtype=allgather_dtype, + device=get_accelerator().current_device_name(), + requires_grad=False, + ) if not quantize: handle = _dist_allgather_fn( param_ds_tensor.to(get_accelerator().current_device_name()).to(allgather_dtype), @@ -1371,8 +1523,15 @@ def _all_gather_sequential(params, world_size, use_secondary_tensor, ds_process_ ) if original_dtype == allgather_dtype: - param.data = param_buffer.narrow(0, 0, param.ds_numel).view(param.ds_shape).to(param.device) - handles.append(AllGatherHandle(handle, param)) + handles.append( + AllGatherHandle( + handle, + param, + param_buffer=param_buffer, + original_dtype=original_dtype, + sdma_output=param_buffer if _sdma_allgather_enabled() else None, + hold_sdma_until_partition=False, + )) else: # This case is complicated: # We use `register_post_accumulate_grad_hook` to set allgather hooks. Normally, the hook is @@ -1388,7 +1547,11 @@ def _all_gather_sequential(params, world_size, use_secondary_tensor, ds_process_ # (original_dtype == allgather_dtype), but because it changes the # state transition of DeepSpeed parameters, we keep it separate for safety. handles.append( - AllGatherHandle(handle, param, param_buffer=param_buffer, original_dtype=original_dtype)) + AllGatherHandle(handle, + param, + param_buffer=param_buffer, + original_dtype=original_dtype, + sdma_output=param_buffer if _sdma_allgather_enabled() else None)) else: if hasattr(param_ds_tensor, "ds_quant_scale"): scales = param_ds_tensor.ds_quant_scale @@ -1730,6 +1893,10 @@ def _partition_param(self, param, buffer=None, has_been_updated=False, free_data print_rank_0(f"Param id {param.ds_id} status is {param.ds_status}", force=False) if param.ds_status is ZeroParamStatus.AVAILABLE: print_rank_0(f"Partitioning param id {param.ds_id} reuse buffers {reuse_buffers}", force=False) + sdma_out = getattr(param, "_ds_sdma_output_ref", None) + if sdma_out is not None and _sdma_pool is not None: + _sdma_pool.release(sdma_out) + delattr(param, "_ds_sdma_output_ref") # if reuse_buffers and False: # numel = buffer.numel() # buffer = param.data.view(-1) diff --git a/examples/zero3_overlap/train_zero3.py b/examples/zero3_overlap/train_zero3.py index 68f6568c841e..4901ed63603e 100644 --- a/examples/zero3_overlap/train_zero3.py +++ b/examples/zero3_overlap/train_zero3.py @@ -102,21 +102,31 @@ def forward(self, input_ids, labels=None): # Synthetic dataset # --------------------------------------------------------------------------- class SyntheticTextDataset(Dataset): - """Generates random token sequences, deterministic across runs.""" + """Generates synthetic token sequences for perf/correctness testing.""" - def __init__(self, vocab_size, seq_len, num_samples, seed=42): + def __init__(self, vocab_size, seq_len, num_samples, seed=42, mode="random"): self.vocab_size = vocab_size self.seq_len = seq_len self.num_samples = num_samples self.seed = seed + self.mode = mode def __len__(self): return self.num_samples def __getitem__(self, idx): - g = torch.Generator() - g.manual_seed(self.seed + idx) - tokens = torch.randint(0, self.vocab_size, (self.seq_len + 1,), generator=g) + if self.mode == "random": + g = torch.Generator() + g.manual_seed(self.seed + idx) + tokens = torch.randint(0, self.vocab_size, (self.seq_len + 1,), generator=g) + elif self.mode == "arange": + start = (self.seed + idx) % self.vocab_size + tokens = (torch.arange(self.seq_len + 1, dtype=torch.long) + start) % self.vocab_size + elif self.mode == "repeat": + v = (self.seed + idx) % self.vocab_size + tokens = torch.full((self.seq_len + 1,), v, dtype=torch.long) + else: + raise ValueError(f"Unsupported data mode: {self.mode}") return tokens[:-1], tokens[1:] @@ -133,6 +143,11 @@ def parse_args(): parser.add_argument("--dropout", type=float, default=0.1) parser.add_argument("--num_samples", type=int, default=10000) parser.add_argument("--train_steps", type=int, default=2000) + parser.add_argument("--data_mode", + type=str, + default="random", + choices=["random", "arange", "repeat"], + help="Synthetic data mode. random is not learnable for next-token prediction.") parser.add_argument("--local_rank", type=int, default=-1) parser = deepspeed.add_config_arguments(parser) return parser.parse_args() @@ -175,7 +190,12 @@ def main(): # Using Megatron-LM" (Narayanan et al., 2021) flops_per_token = 6 * total_params + 12 * args.num_layers * args.hidden_size * args.max_seq_len - dataset = SyntheticTextDataset(args.vocab_size, args.max_seq_len, args.num_samples) + dataset = SyntheticTextDataset(args.vocab_size, args.max_seq_len, args.num_samples, mode=args.data_mode) + if local_rank == 0: + if args.data_mode == "random": + print(f"Data mode: random (expected CE floor ~ ln(vocab) = {math.log(args.vocab_size):.4f})") + else: + print(f"Data mode: {args.data_mode} (learnable pattern, loss should decrease)") model_engine, optimizer, train_loader, lr_scheduler = deepspeed.initialize( args=args, From 6b782d961b0b27caf67336e65566f74b1d4ec330 Mon Sep 17 00:00:00 2001 From: wuyl1 Date: Mon, 16 Mar 2026 14:46:49 +0800 Subject: [PATCH 16/25] update Signed-off-by: wuyl1 --- baseline_pp.py | Bin 0 -> 257192 bytes .../runtime/zero/partition_parameters.py | 216 +++--------------- 2 files changed, 32 insertions(+), 184 deletions(-) create mode 100644 baseline_pp.py diff --git a/baseline_pp.py b/baseline_pp.py new file mode 100644 index 0000000000000000000000000000000000000000..70767c34ae04b691434beed859f8af3334a7e11f GIT binary patch literal 257192 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 DW)cNR literal 0 HcmV?d00001 diff --git a/deepspeed/runtime/zero/partition_parameters.py b/deepspeed/runtime/zero/partition_parameters.py index 3ba524720d3a..2efb92416521 100755 --- a/deepspeed/runtime/zero/partition_parameters.py +++ b/deepspeed/runtime/zero/partition_parameters.py @@ -106,89 +106,25 @@ def wait(self, **kwargs) -> None: class _SdmaWork: - """Duck-type compatible with ``torch.distributed.Work``.""" + """Duck-type compatible with ``torch.distributed.Work``. + + Mirrors NCCL Work.wait() semantics: CPU-level blocking AND GPU-level + stream dependency so the current compute stream sees SDMA-written data. + """ def __init__(self, event): self._event = event def wait(self): self._event.synchronize() + get_accelerator().current_stream().wait_event(self._event) def is_completed(self) -> bool: return self._event.query() -class _SdmaOutputPool: - """Pre-allocated registered VRAM buffer pool for SDMA direct-write. - - One large buffer is allocated and registered with SDMA once at init. - The buffer is divided into ``num_slots`` equal slots. Each allgather - call acquires the next slot (round-robin) and SDMA writes directly - into it. Callers use the returned slot view as ``output_tensor``. - - This avoids repeated ``register_output_buffer`` calls (which are - collective and expensive) while keeping each in-flight allgather's - output in an independent memory region. - """ - - def __init__(self, ag, slot_bytes: int, num_slots: int = 6): - self._ag = ag - self._num_slots = num_slots - self._slot_bytes = slot_bytes - self._buf = torch.empty( - slot_bytes * num_slots, - dtype=torch.uint8, - device=get_accelerator().current_device_name(), - ) - self._ag.register_output_buffer(self._buf) - self._idx = 0 - self._slot_events = [None] * num_slots - self._slot_in_use = [False] * num_slots - self._ptr_to_slot = {} - self._reuse_wait_warned = False - self._exhaust_warned = False - - def acquire(self, numel: int, dtype: torch.dtype): - """Return a view into the next slot, or ``None`` if it doesn't fit.""" - byte_need = numel * torch.tensor([], dtype=dtype).element_size() - if byte_need > self._slot_bytes: - return None - for _ in range(self._num_slots): - slot_idx = self._idx - self._idx = (self._idx + 1) % self._num_slots - if self._slot_in_use[slot_idx]: - continue - slot_event = self._slot_events[slot_idx] - if slot_event is not None and not slot_event.query(): - continue - self._slot_in_use[slot_idx] = True - offset = slot_idx * self._slot_bytes - tensor = self._buf.narrow(0, offset, byte_need).view(dtype) - self._ptr_to_slot[int(tensor.data_ptr())] = slot_idx - return tensor - - if not self._exhaust_warned and dist.is_initialized() and dist.get_rank() == 0: - logger.warning("SDMA pool exhausted by active parameter lifetimes; fallback to dist.allgather for this call") - self._exhaust_warned = True - return None - - def record_inflight(self, tensor: Tensor, event) -> None: - """Record the completion event for the slot backing *tensor*.""" - slot_idx = self._ptr_to_slot.get(int(tensor.data_ptr())) - if slot_idx is not None: - self._slot_events[slot_idx] = event - - def release(self, tensor: Tensor) -> None: - """Release a slot previously acquired for *tensor*.""" - slot_idx = self._ptr_to_slot.get(int(tensor.data_ptr())) - if slot_idx is not None: - self._slot_in_use[slot_idx] = False - _sdma_ag = None -_sdma_pool = None -_sdma_fallback_warned = False -_sdma_fallback_align_warned = False _sdma_call_failed_warned = False @@ -207,19 +143,13 @@ def _init_sdma_allgather(max_numel: int = 64 * 1024 * 1024, prefetch_bucket_size: int = 50000000, num_slots: int = None, dtype_bytes: int = 2): - """Initialize SDMA allgather with a single registered output buffer pool. - - One large VRAM buffer is allocated and IPC-registered once. Each - allgather call takes a slot from the pool (round-robin) so that - concurrent in-flight calls never overwrite each other. + """Initialize SDMA allgather with copy_output_to_user=True. - The slot size is determined by ``prefetch_bucket_size * dtype_bytes`` - which is the max output size of a single allgather (all ranks' - partitions concatenated). This is much smaller than - ``max_numel * npes * elem_bytes`` which sizes the internal SDMA - transit buffer. + SDMA gathers data via DMA into an internal transit buffer, then + copies to the caller-provided output tensor. No output buffer + registration or pool management is needed. """ - global _sdma_ag, _sdma_pool + global _sdma_ag if _sdma_ag is not None: return _ensure_default_pg_registered() @@ -234,42 +164,17 @@ def _init_sdma_allgather(max_numel: int = 64 * 1024 * 1024, my_pe, npes, input_buffer_size=max_numel * elem_bytes, output_buffer_size=max_numel * npes * elem_bytes, - copy_output_to_user=False, + copy_output_to_user=True, ) - if num_slots is None: - # Fixed default for overlap stability/perf without external env knobs. - num_slots = 16 - slot_bytes = int(int(prefetch_bucket_size) * dtype_bytes * 1.2) - _sdma_pool = _SdmaOutputPool(_sdma_ag, slot_bytes=slot_bytes, num_slots=num_slots) if dist.get_rank() == 0: - total_mb = slot_bytes * num_slots / (1024 * 1024) - logger.info(f"SDMA allgather enabled (direct-write pool: {num_slots} slots, " - f"slot={slot_bytes // (1024*1024)} MB, total={total_mb:.0f} MB)") + logger.info("SDMA allgather enabled (copy_output_to_user=True)") -def _sdma_acquire_output(numel: int, dtype: torch.dtype) -> Tensor: - """Acquire an output buffer from the SDMA pool for *numel* elements of *dtype*.""" - return _sdma_pool.acquire(numel, dtype) def _dist_allgather_fn(input_tensor: Tensor, output_tensor: Tensor, group=None): if _sdma_allgather_enabled(): - global _sdma_fallback_warned, _sdma_fallback_align_warned, _sdma_call_failed_warned - # mori AllgatherSdma currently operates through a uint32 transport path. - # For direct-write correctness, require exact 4-byte alignment on byte size. - # Otherwise, fall back to dist allgather to avoid tail-byte overwrite. - if (input_tensor.nbytes % 4) != 0 or (output_tensor.nbytes % 4) != 0: - if not _sdma_fallback_align_warned and dist.is_initialized() and dist.get_rank() == 0: - logger.warning("SDMA allgather fallback to dist.allgather for non-4B-aligned tensor size") - _sdma_fallback_align_warned = True - return instrument_w_nvtx(dist.allgather_fn)(output_tensor, input_tensor, group=group, async_op=True) - # Direct-write mode requires output to be from the pre-registered pool. - # If not registered, fall back to the default backend for correctness. - if not _sdma_ag.is_output_registered(output_tensor): - if not _sdma_fallback_warned and dist.is_initialized() and dist.get_rank() == 0: - logger.warning("SDMA allgather fallback to dist.allgather for unregistered output tensor") - _sdma_fallback_warned = True - return instrument_w_nvtx(dist.allgather_fn)(output_tensor, input_tensor, group=group, async_op=True) + global _sdma_call_failed_warned stream = get_accelerator().current_stream() ok = _sdma_ag(input_tensor, output_tensor, input_tensor.numel(), stream) if not ok: @@ -280,7 +185,6 @@ def _dist_allgather_fn(input_tensor: Tensor, output_tensor: Tensor, group=None): event = get_accelerator().Event() event.record(stream) - _sdma_pool.record_inflight(output_tensor, event) return _SdmaWork(event) return instrument_w_nvtx(dist.allgather_fn)(output_tensor, input_tensor, group=group, async_op=True) @@ -865,9 +769,7 @@ def __init__(self, param: Parameter, quantization=None, param_buffer=None, - original_dtype=None, - sdma_output=None, - hold_sdma_until_partition=False) -> None: + original_dtype=None) -> None: if param.ds_status != ZeroParamStatus.INFLIGHT: raise RuntimeError(f"expected param {param.ds_summary()} to be available") @@ -876,8 +778,6 @@ def __init__(self, self.__quantization = quantization self.__param_buffer = param_buffer self.__original_dtype = original_dtype - self.__sdma_output = sdma_output - self.__hold_sdma_until_partition = hold_sdma_until_partition def wait(self, handle_dependency=True) -> None: instrument_w_nvtx(self.__handle.wait)() @@ -885,24 +785,12 @@ def wait(self, handle_dependency=True) -> None: if self.__param_buffer is not None: gathered = self.__param_buffer.narrow(0, 0, self.__param.ds_numel).view(self.__param.ds_shape).to( self.__original_dtype).to(self.__param.device) - # Fast path: when we keep the slot alive until partition, param.data can - # safely alias SDMA pool memory (zero-copy). - # Slow path: if slot is released immediately and storage still aliases the - # pool, clone to preserve correctness. - if self.__sdma_output is not None and not self.__hold_sdma_until_partition: - if gathered.untyped_storage().data_ptr() == self.__param_buffer.untyped_storage().data_ptr(): - gathered = gathered.clone() self.__param.data = gathered elif self.__quantization: instrument_w_nvtx(self.__quantization.quant_handle.wait)() self.__param.data = self.__quantization.backend.dequantize( self.__quantization.quantized_param, self.__quantization.scale_buffer).to(self.__param.device) - if self.__sdma_output is not None: - if self.__hold_sdma_until_partition: - self.__param._ds_sdma_output_ref = self.__sdma_output - elif _sdma_pool is not None: - _sdma_pool.release(self.__sdma_output) self.__param.ds_status = ZeroParamStatus.AVAILABLE @@ -918,7 +806,6 @@ def __init__( world_size: int, use_secondary_tensor=False, quantization=None, - sdma_output=None, ) -> None: self.allgather_handle = allgather_handle self.params = params @@ -927,7 +814,6 @@ def __init__( self.use_secondary_tensor = use_secondary_tensor self.complete = False self.quantization = quantization - self.sdma_output = sdma_output for param in self.params: if param.ds_status != ZeroParamStatus.INFLIGHT: @@ -974,8 +860,6 @@ def wait(self, handle_dependency=True) -> None: param_offset += ds_tensor_numel self.complete = True - if self.sdma_output is not None and _sdma_pool is not None: - _sdma_pool.release(self.sdma_output) if not get_accelerator().is_synchronized_device() and not handle_dependency: # if the device needs to handle dependencies and opts for explicit processing outside the function. AllGatherCoalescedHandle.data_buffer.append(partitions) @@ -1455,15 +1339,10 @@ def _all_gather_dtype(params, world_size, rank_in_group, ds_process_group, allga partition_sz = sum(p.ds_tensor.ds_numel * p.ds_secondary_tensor_num_of_groups for p in params) total_numel = partition_sz * world_size - # Coalesced path requires tensor re-layout (torch.cat) and has shown - # correctness drift with SDMA direct-write in current implementation. - # Keep coalesced allgather on default backend for correctness. - flat_tensor = None - if flat_tensor is None: - flat_tensor = torch.empty(total_numel, - dtype=allgather_dtype, - device=get_accelerator().current_device_name(), - requires_grad=False) + flat_tensor = torch.empty(total_numel, + dtype=allgather_dtype, + device=get_accelerator().current_device_name(), + requires_grad=False) partitions: List[Parameter] = [] for i in range(world_size): @@ -1488,7 +1367,6 @@ def _all_gather_dtype(params, world_size, rank_in_group, ds_process_group, allga partitions=partitions, world_size=world_size, use_secondary_tensor=use_secondary_tensor, - sdma_output=None, ) def _all_gather_sequential(params, world_size, use_secondary_tensor, ds_process_group, quantize): @@ -1506,15 +1384,12 @@ def _all_gather_sequential(params, world_size, use_secondary_tensor, ds_process_ else: allgather_dtype = get_allgather_dtype(param, param_ds_tensor) - param_buffer = _sdma_acquire_output(buffer_size, allgather_dtype) \ - if (not quantize and _sdma_allgather_enabled()) else None - if param_buffer is None: - param_buffer = torch.empty( - buffer_size, - dtype=allgather_dtype, - device=get_accelerator().current_device_name(), - requires_grad=False, - ) + param_buffer = torch.empty( + buffer_size, + dtype=allgather_dtype, + device=get_accelerator().current_device_name(), + requires_grad=False, + ) if not quantize: handle = _dist_allgather_fn( param_ds_tensor.to(get_accelerator().current_device_name()).to(allgather_dtype), @@ -1522,36 +1397,13 @@ def _all_gather_sequential(params, world_size, use_secondary_tensor, ds_process_ ds_process_group, ) - if original_dtype == allgather_dtype: - handles.append( - AllGatherHandle( - handle, - param, - param_buffer=param_buffer, - original_dtype=original_dtype, - sdma_output=param_buffer if _sdma_allgather_enabled() else None, - hold_sdma_until_partition=False, - )) - else: - # This case is complicated: - # We use `register_post_accumulate_grad_hook` to set allgather hooks. Normally, the hook is - # called once per parameter, even if that parameter is tied to multiple layers. - # However, when the dtype changes, the hook may be triggered multiple times. - # If we directly do: - # param_buffer.narrow(0, 0, param.ds_numel).view(param.ds_shape).to(param.device) - # as above, the dtype may differ, causing the gradient-reduce hook - # to be invoked multiple times. - # To avoid this, we leave `param.data` in a partitioned state. - # This prevents duplicate gradient-reduce hook calls. - # In theory, this path could be consolidated with the case where - # (original_dtype == allgather_dtype), but because it changes the - # state transition of DeepSpeed parameters, we keep it separate for safety. - handles.append( - AllGatherHandle(handle, - param, - param_buffer=param_buffer, - original_dtype=original_dtype, - sdma_output=param_buffer if _sdma_allgather_enabled() else None)) + handles.append( + AllGatherHandle( + handle, + param, + param_buffer=param_buffer, + original_dtype=original_dtype, + )) else: if hasattr(param_ds_tensor, "ds_quant_scale"): scales = param_ds_tensor.ds_quant_scale @@ -1893,10 +1745,6 @@ def _partition_param(self, param, buffer=None, has_been_updated=False, free_data print_rank_0(f"Param id {param.ds_id} status is {param.ds_status}", force=False) if param.ds_status is ZeroParamStatus.AVAILABLE: print_rank_0(f"Partitioning param id {param.ds_id} reuse buffers {reuse_buffers}", force=False) - sdma_out = getattr(param, "_ds_sdma_output_ref", None) - if sdma_out is not None and _sdma_pool is not None: - _sdma_pool.release(sdma_out) - delattr(param, "_ds_sdma_output_ref") # if reuse_buffers and False: # numel = buffer.numel() # buffer = param.data.view(-1) From fc415527f35f266eb675052efcac154968c6a9a5 Mon Sep 17 00:00:00 2001 From: wuyl1 Date: Wed, 18 Mar 2026 22:08:54 +0800 Subject: [PATCH 17/25] use real txt Signed-off-by: wuyl1 --- examples/zero3_overlap/train_zero3.py | 56 ++++++++++++++++++++++++--- 1 file changed, 50 insertions(+), 6 deletions(-) diff --git a/examples/zero3_overlap/train_zero3.py b/examples/zero3_overlap/train_zero3.py index 4901ed63603e..8a39698cc5bd 100644 --- a/examples/zero3_overlap/train_zero3.py +++ b/examples/zero3_overlap/train_zero3.py @@ -130,6 +130,33 @@ def __getitem__(self, idx): return tokens[:-1], tokens[1:] +class WikitextDataset(Dataset): + """Real text dataset from HuggingFace wikitext-2 / wikitext-103.""" + + def __init__(self, vocab_size, seq_len, num_samples, split="train", dataset_name="wikitext-2-raw-v1"): + from datasets import load_dataset + from transformers import GPT2TokenizerFast + + tokenizer = GPT2TokenizerFast.from_pretrained("gpt2") + raw = load_dataset("wikitext", dataset_name, split=split) + text = "\n\n".join([t for t in raw["text"] if t.strip()]) + all_ids = tokenizer.encode(text) + + self.seq_len = seq_len + self.samples = [] + for i in range(0, len(all_ids) - seq_len - 1, seq_len): + self.samples.append(torch.tensor(all_ids[i : i + seq_len + 1], dtype=torch.long)) + if len(self.samples) >= num_samples: + break + + def __len__(self): + return len(self.samples) + + def __getitem__(self, idx): + tokens = self.samples[idx] + return tokens[:-1], tokens[1:] + + # --------------------------------------------------------------------------- # Main # --------------------------------------------------------------------------- @@ -146,8 +173,8 @@ def parse_args(): parser.add_argument("--data_mode", type=str, default="random", - choices=["random", "arange", "repeat"], - help="Synthetic data mode. random is not learnable for next-token prediction.") + choices=["random", "arange", "repeat", "wikitext2", "wikitext103"], + help="Data mode. random/arange/repeat are synthetic; wikitext2/wikitext103 use real text.") parser.add_argument("--local_rank", type=int, default=-1) parser = deepspeed.add_config_arguments(parser) return parser.parse_args() @@ -168,6 +195,8 @@ def main(): torch.manual_seed(42) torch.cuda.manual_seed_all(42) + torch.backends.cudnn.deterministic = True + torch.backends.cudnn.benchmark = False with deepspeed.zero.Init(config_dict_or_path=ds_config_path): model = GPT2Model( @@ -176,7 +205,7 @@ def main(): num_layers=args.num_layers, num_heads=args.num_heads, max_seq_len=args.max_seq_len, - dropout=args.dropout, + dropout=0.0, ) total_params = sum(p.numel() for p in model.parameters()) @@ -190,17 +219,32 @@ def main(): # Using Megatron-LM" (Narayanan et al., 2021) flops_per_token = 6 * total_params + 12 * args.num_layers * args.hidden_size * args.max_seq_len - dataset = SyntheticTextDataset(args.vocab_size, args.max_seq_len, args.num_samples, mode=args.data_mode) + if args.data_mode in ("wikitext2", "wikitext103"): + ds_name = "wikitext-2-raw-v1" if args.data_mode == "wikitext2" else "wikitext-103-raw-v1" + dataset = WikitextDataset(args.vocab_size, args.max_seq_len, args.num_samples, dataset_name=ds_name) + else: + dataset = SyntheticTextDataset(args.vocab_size, args.max_seq_len, args.num_samples, mode=args.data_mode) if local_rank == 0: if args.data_mode == "random": print(f"Data mode: random (expected CE floor ~ ln(vocab) = {math.log(args.vocab_size):.4f})") + elif args.data_mode in ("wikitext2", "wikitext103"): + print(f"Data mode: {args.data_mode} (real text, {len(dataset)} samples)") else: print(f"Data mode: {args.data_mode} (learnable pattern, loss should decrease)") - model_engine, optimizer, train_loader, lr_scheduler = deepspeed.initialize( + model_engine, optimizer, _, lr_scheduler = deepspeed.initialize( args=args, model=model, - training_data=dataset, + ) + sampler = torch.utils.data.distributed.DistributedSampler( + dataset, shuffle=False, seed=42, + ) + train_loader = DataLoader( + dataset, + batch_size=model_engine.train_micro_batch_size_per_gpu(), + sampler=sampler, + num_workers=0, + pin_memory=True, ) device = model_engine.device From 2c5104c81da44711be247012fcf5abf829cbc14d Mon Sep 17 00:00:00 2001 From: inkcherry Date: Thu, 7 May 2026 06:16:07 +0000 Subject: [PATCH 18/25] zero3: route SDMA allgather through mori_cpp.AllGatherIntoTensor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Move all mori-specific code (handle, dtype map, transit buffer sizing, PG-registration helper, Work wrapper) out of partition_parameters.py into a dedicated runtime/comm backend module: deepspeed/runtime/comm/mori.py mori.init(max_numel) # one-shot, idempotent, exception-safe mori.is_enabled() # cheap predicate mori.allgather_into_tensor(in, out) -> Work-compatible object on success, None on fallback The new backend uses mori_cpp.AllGatherIntoTensor (NCCL/RCCL-style flat->flat C++ dispatcher) instead of the old mori.ccl.AllgatherSdma templated Python wrapper, so DeepSpeed no longer has to pre-convert numel into uint32 lane counts or template the C++ class on dtype. partition_parameters.py is now agnostic to the SDMA path: def _dist_allgather_fn(input_tensor, output_tensor, group=None): work = mori.allgather_into_tensor(input_tensor, output_tensor) if work is not None: return work return instrument_w_nvtx(dist.allgather_fn)(...) Init failure (mori missing, non-AMD/ROCm runtime, shmem init error) leaves the handle unset and logs a single rank-0 warning, so the SDMA path silently no-ops and dist.allgather_fn (RCCL/NCCL) takes over — no hard fail. Net change: partition_parameters.py shrinks by 79 lines; one new self-contained module under runtime/comm/. Signed-off-by: inkcherry --- deepspeed/runtime/comm/mori.py | 157 ++++++++++++++++++ .../runtime/zero/partition_parameters.py | 89 +--------- 2 files changed, 162 insertions(+), 84 deletions(-) create mode 100644 deepspeed/runtime/comm/mori.py diff --git a/deepspeed/runtime/comm/mori.py b/deepspeed/runtime/comm/mori.py new file mode 100644 index 000000000000..5f56c803c741 --- /dev/null +++ b/deepspeed/runtime/comm/mori.py @@ -0,0 +1,157 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +"""mori SDMA backend for the ZeRO-3 all_gather_into_tensor hot path. + +Encapsulates every mori-specific import, handle construction and dtype +dispatch so ``deepspeed/runtime/zero/partition_parameters.py`` only needs +to call: + + mori.init(max_numel) # one-shot, idempotent + work = mori.allgather_into_tensor(in_, out_) # returns None on fallback + +The backend silently fails (no exceptions, ``init`` leaves the handle +unset, ``allgather_into_tensor`` returns ``None``) when mori is missing, +the platform isn't AMD/ROCm, or shmem initialization fails. Callers are +expected to fall back to ``dist.allgather_fn`` in that case. +""" + +from typing import Optional + +import torch + +from deepspeed import comm as dist +from deepspeed.accelerator import get_accelerator +from deepspeed.utils import logger + +_handle = None +_dtype_map = None +_init_attempted = False +_call_failed_warned = False + + +class _SdmaWork: + """Duck-type compatible with ``torch.distributed.Work``. + + Mirrors NCCL ``Work.wait()`` semantics: CPU-level blocking AND + GPU-level stream dependency so the current compute stream sees + SDMA-written data. + """ + + def __init__(self, event): + self._event = event + + def wait(self): + self._event.synchronize() + get_accelerator().current_stream().wait_event(self._event) + + def is_completed(self) -> bool: + return self._event.query() + + +def _ensure_default_pg_registered(): + """Register the WORLD process group as 'default' in PyTorch's C++ GroupRegistry. + + mori's shmem layer looks up the PG by name "default"; the standard + DeepSpeed init path doesn't register it under that label. + """ + world_group = torch.distributed.group.WORLD + assert world_group is not None, "torch.distributed must be initialized before SDMA allgather" + torch._C._distributed_c10d._register_process_group("default", world_group) + + +def _build_dtype_map(): + """torch.dtype -> mori_cpp.DataType (NCCL-style enum).""" + from mori.ccl import DataType + return { + torch.uint8: DataType.Uint8, + torch.int8: DataType.Int8, + torch.int16: DataType.Int16, + torch.int32: DataType.Int32, + torch.int64: DataType.Int64, + torch.float16: DataType.Float16, + torch.bfloat16: DataType.BFloat16, + torch.float32: DataType.Float32, + torch.float64: DataType.Float64, + } + + +def init(max_numel: int = 64 * 1024 * 1024) -> None: + """Best-effort, idempotent SDMA handle construction. + + Builds one ``mori_cpp.AllGatherIntoTensor`` (NCCL/RCCL-style C++ + dispatcher) sized for the largest expected per-rank shard. All + subsequent allgather calls reuse this handle. + + Safe to call unconditionally: any failure (mori not installed, + non-AMD/ROCm runtime, shmem init error, ...) leaves ``_handle`` + unset and logs a single rank-0 warning, so callers transparently + fall back to RCCL/NCCL via ``dist.allgather_fn``. + """ + global _handle, _dtype_map, _init_attempted + if _init_attempted: + return + _init_attempted = True + + try: + _ensure_default_pg_registered() + import mori.shmem as shmem + from mori.ccl import AllGatherIntoTensor + + shmem.shmem_torch_process_group_init("default") + my_pe = shmem.shmem_mype() + npes = shmem.shmem_npes() + # Per-rank input transit buffer must hold the largest shard we'll + # ever see; output transit buffer = npes * input. 4 B/element is + # the SDMA kernel's uint32 lane width. + input_bytes = max_numel * 4 + _handle = AllGatherIntoTensor( + my_pe=my_pe, + npes=npes, + input_buffer_size=input_bytes, + output_buffer_size=input_bytes * npes, + copy_output_to_user=True, + ) + _dtype_map = _build_dtype_map() + if dist.is_initialized() and dist.get_rank() == 0: + logger.info("SDMA allgather enabled via mori_cpp.AllGatherIntoTensor") + except Exception as e: + _handle = None + _dtype_map = None + if dist.is_initialized() and dist.get_rank() == 0: + logger.warning(f"SDMA allgather unavailable ({type(e).__name__}: {e}); " + f"falling back to dist.allgather_fn") + + +def is_enabled() -> bool: + return _handle is not None + + +def allgather_into_tensor(input_tensor: torch.Tensor, + output_tensor: torch.Tensor) -> Optional[_SdmaWork]: + """Run one allgather_into_tensor through the SDMA handle. + + Returns an ``_SdmaWork`` (Work-compatible) on success. Returns + ``None`` if SDMA is disabled or the call fails for any reason — the + caller should then fall back to ``dist.allgather_fn``. + """ + global _call_failed_warned + if _handle is None: + return None + try: + stream = get_accelerator().current_stream() + dtype = _dtype_map[input_tensor.dtype] + ok = _handle(input_tensor.data_ptr(), output_tensor.data_ptr(), + input_tensor.numel(), dtype, stream.cuda_stream) + if not ok: + return None + event = get_accelerator().Event() + event.record(stream) + return _SdmaWork(event) + except Exception as e: + if not _call_failed_warned and dist.is_initialized() and dist.get_rank() == 0: + logger.warning(f"SDMA allgather failed ({e}); falling back to dist.allgather") + _call_failed_warned = True + return None diff --git a/deepspeed/runtime/zero/partition_parameters.py b/deepspeed/runtime/zero/partition_parameters.py index 2efb92416521..7001e259fb3e 100755 --- a/deepspeed/runtime/zero/partition_parameters.py +++ b/deepspeed/runtime/zero/partition_parameters.py @@ -28,6 +28,7 @@ from deepspeed.runtime.zero.utils import assert_ints_same_as_other_ranks, is_zero_param from deepspeed.runtime.zero.offload_config import OffloadDeviceEnum from deepspeed.runtime.config_utils import get_config_default +from deepspeed.runtime.comm import mori from deepspeed.utils import instrument_w_nvtx, logger from deepspeed.comm.comm import init_distributed from deepspeed.utils.debug import (debug_param2name_id_shape, debug_param2name_id_shape_device, debug_module2name, @@ -105,87 +106,10 @@ def wait(self, **kwargs) -> None: self.__complete = True -class _SdmaWork: - """Duck-type compatible with ``torch.distributed.Work``. - - Mirrors NCCL Work.wait() semantics: CPU-level blocking AND GPU-level - stream dependency so the current compute stream sees SDMA-written data. - """ - - def __init__(self, event): - self._event = event - - def wait(self): - self._event.synchronize() - get_accelerator().current_stream().wait_event(self._event) - - def is_completed(self) -> bool: - return self._event.query() - - - -_sdma_ag = None -_sdma_call_failed_warned = False - - -def _sdma_allgather_enabled(): - return _sdma_ag is not None - - -def _ensure_default_pg_registered(): - """Register the WORLD process group as 'default' in PyTorch's C++ GroupRegistry.""" - world_group = torch.distributed.group.WORLD - assert world_group is not None, "torch.distributed must be initialized before SDMA allgather" - torch._C._distributed_c10d._register_process_group("default", world_group) - - -def _init_sdma_allgather(max_numel: int = 64 * 1024 * 1024, - prefetch_bucket_size: int = 50000000, - num_slots: int = None, - dtype_bytes: int = 2): - """Initialize SDMA allgather with copy_output_to_user=True. - - SDMA gathers data via DMA into an internal transit buffer, then - copies to the caller-provided output tensor. No output buffer - registration or pool management is needed. - """ - global _sdma_ag - if _sdma_ag is not None: - return - _ensure_default_pg_registered() - import mori.shmem as shmem - from mori.ccl import AllgatherSdma - - shmem.shmem_torch_process_group_init("default") - my_pe = shmem.shmem_mype() - npes = shmem.shmem_npes() - elem_bytes = 4 - _sdma_ag = AllgatherSdma( - my_pe, npes, - input_buffer_size=max_numel * elem_bytes, - output_buffer_size=max_numel * npes * elem_bytes, - copy_output_to_user=True, - ) - if dist.get_rank() == 0: - logger.info("SDMA allgather enabled (copy_output_to_user=True)") - - - - def _dist_allgather_fn(input_tensor: Tensor, output_tensor: Tensor, group=None): - if _sdma_allgather_enabled(): - global _sdma_call_failed_warned - stream = get_accelerator().current_stream() - ok = _sdma_ag(input_tensor, output_tensor, input_tensor.numel(), stream) - if not ok: - if not _sdma_call_failed_warned and dist.is_initialized() and dist.get_rank() == 0: - logger.warning("SDMA allgather call returned False, fallback to dist.allgather") - _sdma_call_failed_warned = True - return instrument_w_nvtx(dist.allgather_fn)(output_tensor, input_tensor, group=group, async_op=True) - - event = get_accelerator().Event() - event.record(stream) - return _SdmaWork(event) + work = mori.allgather_into_tensor(input_tensor, output_tensor) + if work is not None: + return work return instrument_w_nvtx(dist.allgather_fn)(output_tensor, input_tensor, group=group, async_op=True) @@ -1203,10 +1127,7 @@ def __init__(self, cfg_max = _ds_config.zero_config.sdma_allgather_max_numel prefetch_partition = int(_ds_config.zero_config.prefetch_bucket_size) // self.num_partitions safe_max = max(cfg_max, prefetch_partition * 2) - _init_sdma_allgather( - max_numel=safe_max, - prefetch_bucket_size=int(_ds_config.zero_config.prefetch_bucket_size), - ) + mori.init(max_numel=safe_max) def _update_persist_config(self, ds_config): Init.apply_param_persistence = True From f979a54016dae179bf695c2811beaf62b6634999 Mon Sep 17 00:00:00 2001 From: inkcherry Date: Thu, 7 May 2026 07:06:06 +0000 Subject: [PATCH 19/25] zero3: drop CPU sync from SDMA Work.wait() to match RCCL semantics _SdmaWork.wait() previously blocked the CPU on _event.synchronize() before issuing the stream-level dependency. RCCL's Work.wait() only records a stream-level wait (cudaStreamWaitEvent / hipStreamWaitEvent) and does NOT block the CPU, which is what the ZeRO-3 prefetch pipeline relies on: while bucket N is in flight on the GPU, the CPU is free to queue bucket N+1 so it can overlap with the trailing compute of N. The CPU-blocking variant turned out to be a per-step critical-path tax that wiped out SDMA's headroom on workloads that issue many small allgathers per step. Concretely, on Qwen3-32B + ZeRO-3 + seq_len=128, 8x MI300X, ~6400 prefetch buckets per step: before: SDMA 1014 ms / step (1009 tok/s) RCCL 932 ms / step (1099 tok/s) -> SDMA -8.0% after: SDMA 927 ms / step (1104 tok/s) RCCL 929 ms / step (1100 tok/s) -> within noise Loss curve is bit-identical with and without the CPU sync, so this is purely a CPU-pipelining fix. is_completed() is unchanged (it polls via _event.query() without blocking, same as before). Signed-off-by: inkcherry --- deepspeed/runtime/comm/mori.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/deepspeed/runtime/comm/mori.py b/deepspeed/runtime/comm/mori.py index 5f56c803c741..11dacd30219c 100644 --- a/deepspeed/runtime/comm/mori.py +++ b/deepspeed/runtime/comm/mori.py @@ -44,7 +44,9 @@ def __init__(self, event): self._event = event def wait(self): - self._event.synchronize() + # Stream-level dependency only; do NOT block CPU. RCCL Work.wait() + # is also non-CPU-blocking and the ZeRO-3 prefetch pipeline depends on + # the CPU staying free so the next bucket can be queued ahead of time. get_accelerator().current_stream().wait_event(self._event) def is_completed(self) -> bool: From 5644ae32b8feb87feed1f27701aecd4f437d4640 Mon Sep 17 00:00:00 2001 From: inkcherry Date: Thu, 7 May 2026 12:25:21 +0000 Subject: [PATCH 20/25] zero3: add sdma_allgather end-to-end examples (GPT + Qwen3-32B) Move the zero3_overlap demo dir into examples/sdma_allgather/ (the name that matches the feature being demoed) and add a Qwen3-32B + ZeRO-3 trainer that reproduces the +9.93% end-to-end speedup of this PR on 8x MI300X with the default DeepSpeed bucket sizes. Layout: ds_config_zero3_{sdma,nosdma}.json ZeRO-3 + bf16 + DS-default buckets run_gpt_sdma_{on,off}.sh GPT-7B-ish demo (existing trainer) run_qwen3_sdma_{on,off}.sh Qwen3-32B demo (new trainer) train_qwen3_zero3.py self-contained Qwen3 trainer README.md feature overview + repro steps train_zero3.py unchanged (renamed only) test_sdma_allgather_zero3.py unchanged (renamed only) train_qwen3_zero3.py inlines a minimal wikitext-103 dataloader so the benchmark has no dependency on external benchmark repos. Loading via AutoConfig + from_config keeps the example weight-free; only the model config and tokenizer are pulled from HuggingFace. The configs use DeepSpeed's default ZeRO-3 bucket sizes (stage3_prefetch_bucket_size = 5e7, etc.) so the published numbers in README.md are reproducible without any tuning. Verified on 8x MI300X, two fresh rounds: Qwen3-32B + ZeRO-3 + DP=8, seq_len=1024, micro_bs=1, 100 steps SDMA off : 1402.5 ms / step (5841 tok/s) SDMA on : 1263.2 ms / step (6486 tok/s) -> +9.93% e2e GPT-7B + ZeRO-3 + DP=8, 100 steps -> +5.9% e2e Loss curves match across the two backends, peak memory is identical (96.45 GB), per-step jitter is 1.4-2.7%, so the ~140 ms gap is well above noise. Drops: examples/zero3_overlap/run.sh superseded by run_gpt_* examples/zero3_overlap/ds_config_zero3.json superseded by *_sdma.json Signed-off-by: inkcherry --- examples/sdma_allgather/README.md | 85 ++++++ .../ds_config_zero3_nosdma.json | 43 +++ .../ds_config_zero3_sdma.json} | 24 +- examples/sdma_allgather/run_gpt_sdma_off.sh | 8 + examples/sdma_allgather/run_gpt_sdma_on.sh | 15 + examples/sdma_allgather/run_qwen3_sdma_off.sh | 32 +++ examples/sdma_allgather/run_qwen3_sdma_on.sh | 27 ++ .../test_sdma_allgather_zero3.py | 0 examples/sdma_allgather/train_qwen3_zero3.py | 256 ++++++++++++++++++ .../train_zero3.py | 0 examples/zero3_overlap/run.sh | 22 -- 11 files changed, 477 insertions(+), 35 deletions(-) create mode 100644 examples/sdma_allgather/README.md create mode 100644 examples/sdma_allgather/ds_config_zero3_nosdma.json rename examples/{zero3_overlap/ds_config_zero3.json => sdma_allgather/ds_config_zero3_sdma.json} (63%) create mode 100755 examples/sdma_allgather/run_gpt_sdma_off.sh create mode 100755 examples/sdma_allgather/run_gpt_sdma_on.sh create mode 100755 examples/sdma_allgather/run_qwen3_sdma_off.sh create mode 100755 examples/sdma_allgather/run_qwen3_sdma_on.sh rename examples/{zero3_overlap => sdma_allgather}/test_sdma_allgather_zero3.py (100%) create mode 100644 examples/sdma_allgather/train_qwen3_zero3.py rename examples/{zero3_overlap => sdma_allgather}/train_zero3.py (100%) delete mode 100644 examples/zero3_overlap/run.sh diff --git a/examples/sdma_allgather/README.md b/examples/sdma_allgather/README.md new file mode 100644 index 000000000000..41846f396ead --- /dev/null +++ b/examples/sdma_allgather/README.md @@ -0,0 +1,85 @@ +# SDMA AllGather for ZeRO-3 + +End-to-end example of the `sdma_allgather` flag wired into ZeRO-3's parameter +prefetch path. When enabled, ZeRO-3's `_dist_allgather_fn` 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. + +## Enabling the SDMA path + +ZeRO-3 config knob and one env var: + +```jsonc +"zero_optimization": { + "stage": 3, + "sdma_allgather": true, + "sdma_allgather_max_numel": 67108864 +} +``` + +```bash +export MORI_ENABLE_SDMA=1 # uncached transit buffers required by the kernel +``` + +`MORI_ENABLE_SDMA` is required because the SDMA copy kernel reads transit +memory directly; without it mori's `SymmMemManager` falls back to cached +allocations and the kernel faults at NULL on every rank. All +`run_*_sdma_on.sh` scripts in this directory export it for you. + +## Verified results on 8x MI300X (DeepSpeed default ZeRO-3 buckets) + +| | GPT-7B-ish | Qwen3-32B | +|---|---|---| +| trainer | `train_zero3.py` | `train_qwen3_zero3.py` | +| seq / micro batch | 2048 / 1 | 1024 / 1 | +| dataset | wikitext-2-raw-v1 | wikitext-103-raw-v1 (10 %) | +| measured / warmup steps | 100 / 10 | 100 / 10 | +| **SDMA off (RCCL)** | 697.7 ms / step (11.6 samples/s) | 1402.5 ms / step (5841 tok/s) | +| **SDMA on (this PR)** | **622.0 ms / step (13.0 samples/s)** | **1263.2 ms / step (6486 tok/s)** | +| **gain** | **+10.85 %** | **+9.93 %** | +| peak mem (rank 0) | unchanged off ↔ on | 96.45 GB, unchanged off ↔ on | + +The Qwen3-32B number is averaged over two fresh rounds; per-round delta was ++10.85 % and +9.92 %, with 0.29 % run-to-run variance on the off baseline, so +the gap is well outside per-step jitter (~1.5–2.7 %). + +### Loss curves match across off ↔ on + +- GPT (every 10 steps, off vs on): step 10 8.75 / 8.75, step 30 7.75 / 7.75, step 60 6.94 / 6.91, step 90 6.94 / 6.94 +- Qwen3-32B (final loss across two rounds): R1 off 6.265 vs on 6.225; R2 off 6.310 vs on 6.266 + +The SDMA path is a pure plumbing change with no numerical impact in either +workload. + +## Reproduction + +```bash +cd examples/sdma_allgather + +# Demo 1 — GPT-7B-ish, ~minute run, no HF download +bash run_gpt_sdma_off.sh # baseline RCCL allgather +bash run_gpt_sdma_on.sh # mori SDMA allgather -> +10.85 % + +# Demo 2 — Qwen3-32B, ~few-minute run, weight-free (random init via from_config) +bash run_qwen3_sdma_off.sh # ~1402 ms / step +bash run_qwen3_sdma_on.sh # ~1263 ms / step -> +9.93 % +``` + +The configs already use DeepSpeed's default ZeRO-3 bucket sizes, so the +numbers above are reproducible without any tuning. Override knobs via env +vars: `SEQ_LEN`, `BATCH_SIZE`, `NUM_STEPS`, `WARMUP_STEPS`, `NUM_GPUS`, +`MODEL`, `DS_CONFIG`. + +## Files + +``` +ds_config_zero3_nosdma.json ZeRO-3 + bf16 + DS-default buckets, sdma off +ds_config_zero3_sdma.json same as above + sdma_allgather = true +run_gpt_sdma_off.sh GPT-7B-ish + ZeRO-3, SDMA off +run_gpt_sdma_on.sh GPT-7B-ish + ZeRO-3, SDMA on +run_qwen3_sdma_off.sh Qwen3-32B + ZeRO-3, SDMA off +run_qwen3_sdma_on.sh Qwen3-32B + ZeRO-3, SDMA on +test_sdma_allgather_zero3.py unit test exercising the ZeRO-3 SDMA path +train_qwen3_zero3.py Qwen3 trainer (self-contained, wikitext) +train_zero3.py GPT trainer (existing, unchanged) +``` diff --git a/examples/sdma_allgather/ds_config_zero3_nosdma.json b/examples/sdma_allgather/ds_config_zero3_nosdma.json new file mode 100644 index 000000000000..d9057fd23eff --- /dev/null +++ b/examples/sdma_allgather/ds_config_zero3_nosdma.json @@ -0,0 +1,43 @@ +{ + "train_micro_batch_size_per_gpu": 1, + "gradient_accumulation_steps": 1, + "steps_per_print": 10, + "optimizer": { + "type": "AdamW", + "params": { + "lr": 1e-5, + "betas": [0.9, 0.999], + "eps": 1e-8, + "weight_decay": 0.01 + } + }, + "scheduler": { + "type": "WarmupLR", + "params": { + "warmup_min_lr": 0, + "warmup_max_lr": 1e-5, + "warmup_num_steps": 10 + } + }, + "gradient_clipping": 1.0, + "bf16": { + "enabled": true + }, + "zero_optimization": { + "stage": 3, + "allgather_partitions": true, + "allgather_bucket_size": 5e7, + "overlap_comm": true, + "reduce_scatter": true, + "reduce_bucket_size": 5e7, + "contiguous_gradients": true, + "stage3_max_live_parameters": 1e9, + "stage3_max_reuse_distance": 1e9, + "stage3_prefetch_bucket_size": 5e7, + "stage3_param_persistence_threshold": 1e5, + "stage3_gather_16bit_weights_on_model_save": true, + "sub_group_size": 1e12, + "sdma_allgather": false + }, + "wall_clock_breakdown": false +} diff --git a/examples/zero3_overlap/ds_config_zero3.json b/examples/sdma_allgather/ds_config_zero3_sdma.json similarity index 63% rename from examples/zero3_overlap/ds_config_zero3.json rename to examples/sdma_allgather/ds_config_zero3_sdma.json index 3f2da4e319d1..acd3767be08f 100644 --- a/examples/zero3_overlap/ds_config_zero3.json +++ b/examples/sdma_allgather/ds_config_zero3_sdma.json @@ -1,24 +1,22 @@ { - "train_batch_size": 64, - "train_micro_batch_size_per_gpu": 2, - "gradient_accumulation_steps": 4, + "train_micro_batch_size_per_gpu": 1, + "gradient_accumulation_steps": 1, "steps_per_print": 10, "optimizer": { - "type": "Adam", + "type": "AdamW", "params": { - "lr": 3e-4, + "lr": 1e-5, "betas": [0.9, 0.999], "eps": 1e-8, "weight_decay": 0.01 } }, "scheduler": { - "type": "WarmupDecayLR", + "type": "WarmupLR", "params": { "warmup_min_lr": 0, - "warmup_max_lr": 3e-4, - "warmup_num_steps": 100, - "total_num_steps": 2000 + "warmup_max_lr": 1e-5, + "warmup_num_steps": 10 } }, "gradient_clipping": 1.0, @@ -28,15 +26,15 @@ "zero_optimization": { "stage": 3, "allgather_partitions": true, - "allgather_bucket_size": 5e8, + "allgather_bucket_size": 5e7, "overlap_comm": true, "reduce_scatter": true, - "reduce_bucket_size": 5e8, + "reduce_bucket_size": 5e7, "contiguous_gradients": true, "stage3_max_live_parameters": 1e9, "stage3_max_reuse_distance": 1e9, - "stage3_prefetch_bucket_size": 5e8, - "stage3_param_persistence_threshold": 1e6, + "stage3_prefetch_bucket_size": 5e7, + "stage3_param_persistence_threshold": 1e5, "stage3_gather_16bit_weights_on_model_save": true, "sub_group_size": 1e12, "sdma_allgather": true, diff --git a/examples/sdma_allgather/run_gpt_sdma_off.sh b/examples/sdma_allgather/run_gpt_sdma_off.sh new file mode 100755 index 000000000000..c280b745a5de --- /dev/null +++ b/examples/sdma_allgather/run_gpt_sdma_off.sh @@ -0,0 +1,8 @@ +#!/bin/bash +# Run with SDMA allgather DISABLED (baseline RCCL allgather), default GPT shape (~7B). +SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd) +deepspeed --num_gpus 8 "${SCRIPT_DIR}/train_zero3.py" \ + --deepspeed \ + --deepspeed_config "${SCRIPT_DIR}/ds_config_zero3_nosdma.json" \ + --data_mode wikitext2 \ + --train_steps 100 diff --git a/examples/sdma_allgather/run_gpt_sdma_on.sh b/examples/sdma_allgather/run_gpt_sdma_on.sh new file mode 100755 index 000000000000..51985c5d9683 --- /dev/null +++ b/examples/sdma_allgather/run_gpt_sdma_on.sh @@ -0,0 +1,15 @@ +#!/bin/bash +# Run with SDMA allgather ENABLED, default GPT shape (~7B). + +# mori SymmMemManager only allocates uncached (hipExtMallocWithFlags + +# hipDeviceMallocUncached) transit buffers when MORI_ENABLE_SDMA is set; +# otherwise the SDMA kernel reads cached memory and faults at NULL on every +# rank. Always export it for SDMA-on runs. +export MORI_ENABLE_SDMA=1 + +SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd) +deepspeed --num_gpus 8 "${SCRIPT_DIR}/train_zero3.py" \ + --deepspeed \ + --deepspeed_config "${SCRIPT_DIR}/ds_config_zero3_sdma.json" \ + --data_mode wikitext2 \ + --train_steps 100 diff --git a/examples/sdma_allgather/run_qwen3_sdma_off.sh b/examples/sdma_allgather/run_qwen3_sdma_off.sh new file mode 100755 index 000000000000..5ae904d1b08b --- /dev/null +++ b/examples/sdma_allgather/run_qwen3_sdma_off.sh @@ -0,0 +1,32 @@ +#!/bin/bash +# Qwen3-32B + DeepSpeed ZeRO-3, SDMA allgather DISABLED (RCCL baseline). +# +# Default config below reproduces the +9.93% headline result of this PR +# when paired with run_qwen3_sdma_on.sh: +# +# model : Qwen/Qwen3-32B (full 64 layers, BF16, eager attention) +# data : wikitext-103-raw-v1, 10% split, model's own tokenizer +# parallel : ZeRO-3, DP=8 (single node, MI300X x 8) +# bucket : DeepSpeed defaults (stage3_prefetch_bucket_size = 5e7) +# seq/bs : seq_length=1024, micro_batch=1 +# steps : 100 measured + 10 warmup +# +# Override via env vars: SEQ_LEN, BATCH_SIZE, NUM_STEPS, WARMUP_STEPS, +# NUM_GPUS, MODEL, DS_CONFIG. +set -eu + +# Reduce HIP allocator fragmentation — the 32B model has long-lived tensors +# that benefit from segment expansion under heavy ZeRO-3 churn. +export PYTORCH_HIP_ALLOC_CONF=expandable_segments:True +export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True +export TORCH_NCCL_ENABLE_MONITORING=0 # quiets harmless TCPStore shutdown trace + +SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd) +deepspeed --num_gpus "${NUM_GPUS:-8}" "${SCRIPT_DIR}/train_qwen3_zero3.py" \ + --model_name "${MODEL:-Qwen/Qwen3-32B}" \ + --num_layers "${NUM_LAYERS:-0}" \ + --seq_length "${SEQ_LEN:-1024}" \ + --batch_size "${BATCH_SIZE:-1}" \ + --num_steps "${NUM_STEPS:-100}" \ + --warmup_steps "${WARMUP_STEPS:-10}" \ + --ds_config "${DS_CONFIG:-${SCRIPT_DIR}/ds_config_zero3_nosdma.json}" diff --git a/examples/sdma_allgather/run_qwen3_sdma_on.sh b/examples/sdma_allgather/run_qwen3_sdma_on.sh new file mode 100755 index 000000000000..529f6a45f1aa --- /dev/null +++ b/examples/sdma_allgather/run_qwen3_sdma_on.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# Qwen3-32B + DeepSpeed ZeRO-3, SDMA allgather ENABLED. +# +# See run_qwen3_sdma_off.sh for the default workload description. The only +# difference here is --ds_config points at the variant with sdma_allgather=true, +# and MORI_ENABLE_SDMA=1 is exported so mori's SymmMemManager allocates an +# uncached transit buffer (required by the SDMA copy kernel). +set -eu + +# REQUIRED for the SDMA path: tells mori to use hipExtMallocWithFlags + +# hipDeviceMallocUncached for transit buffers. Without this the SDMA kernel +# reads cached memory and faults at NULL on every rank. +export MORI_ENABLE_SDMA=1 + +export PYTORCH_HIP_ALLOC_CONF=expandable_segments:True +export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True +export TORCH_NCCL_ENABLE_MONITORING=0 + +SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd) +deepspeed --num_gpus "${NUM_GPUS:-8}" "${SCRIPT_DIR}/train_qwen3_zero3.py" \ + --model_name "${MODEL:-Qwen/Qwen3-32B}" \ + --num_layers "${NUM_LAYERS:-0}" \ + --seq_length "${SEQ_LEN:-1024}" \ + --batch_size "${BATCH_SIZE:-1}" \ + --num_steps "${NUM_STEPS:-100}" \ + --warmup_steps "${WARMUP_STEPS:-10}" \ + --ds_config "${DS_CONFIG:-${SCRIPT_DIR}/ds_config_zero3_sdma.json}" diff --git a/examples/zero3_overlap/test_sdma_allgather_zero3.py b/examples/sdma_allgather/test_sdma_allgather_zero3.py similarity index 100% rename from examples/zero3_overlap/test_sdma_allgather_zero3.py rename to examples/sdma_allgather/test_sdma_allgather_zero3.py diff --git a/examples/sdma_allgather/train_qwen3_zero3.py b/examples/sdma_allgather/train_qwen3_zero3.py new file mode 100644 index 000000000000..5640a1d6d011 --- /dev/null +++ b/examples/sdma_allgather/train_qwen3_zero3.py @@ -0,0 +1,256 @@ +"""Qwen3 + DeepSpeed ZeRO-3 benchmark for the SDMA allgather feature. + +Loads a Qwen3 model with random initialisation under `deepspeed.zero.Init` +so each rank only allocates its 1/world_size shard, then runs a small number +of training steps on either real wikitext or synthetic random tokens. Step +time is measured rank-0 side and reported with peak memory and the average +loss. The same trainer is used for the SDMA-on and SDMA-off comparison runs +in run_qwen3_sdma_{on,off}.sh. + +The ZeRO-3 config (passed via --ds_config) controls whether the SDMA path is +taken: setting `sdma_allgather: true` makes _dist_allgather_fn route through +mori_cpp.AllGatherIntoTensor (this PR), `false` falls back to the upstream +RCCL/NCCL allgather. + +Real-data path uses HuggingFace `datasets` to stream wikitext-103 and the +model's own tokenizer to pad/truncate to seq_length. No external benchmark +repo is required. +""" + +import argparse +import os +import time + +import deepspeed +import torch +import torch.distributed as dist +from torch.utils.data import DataLoader, Dataset +from torch.utils.data.distributed import DistributedSampler +from transformers import AutoConfig, AutoModelForCausalLM, AutoTokenizer + + +def parse_args(): + p = argparse.ArgumentParser() + p.add_argument("--model_name", default="Qwen/Qwen3-32B") + p.add_argument("--num_layers", type=int, default=0, + help="0 = use model default; smaller values for quick smoke runs") + p.add_argument("--seq_length", type=int, default=1024) + p.add_argument("--batch_size", type=int, default=1) + p.add_argument("--num_steps", type=int, default=50) + p.add_argument("--warmup_steps", type=int, default=10) + p.add_argument("--log_interval", type=int, default=10) + p.add_argument("--ds_config", required=True) + p.add_argument("--dataset", default="wikitext", + choices=["wikitext", "synthetic"], + help="Real text (wikitext-103) or pre-generated random ids") + p.add_argument("--dataset_percentage", type=float, default=10.0, + help="Percentage of wikitext train split to load (1.0-100.0)") + p.add_argument("--local_rank", type=int, default=-1) + return p.parse_args() + + +# --------------------------------------------------------------------------- +# Self-contained data pipeline (no external benchmark repo dependency). +# --------------------------------------------------------------------------- +class _SyntheticDataset(Dataset): + """Pre-generated random token ids for deterministic timing runs.""" + + def __init__(self, vocab_size, seq_length, num_samples=10000, seed=42): + gen = torch.Generator().manual_seed(seed) + self.input_ids = torch.randint(0, vocab_size, (num_samples, seq_length), + generator=gen, dtype=torch.long) + self.seq_length = seq_length + + def __len__(self): + return self.input_ids.shape[0] + + def __getitem__(self, idx): + ids = self.input_ids[idx] + return { + "input_ids": ids, + "labels": ids.clone(), + "attention_mask": torch.ones(self.seq_length, dtype=torch.long), + } + + +def _build_wikitext_loader(model_name, seq_length, batch_size, dataset_percentage, + rank, world_size, is_main): + """Stream wikitext-103-raw-v1, tokenise with the model's tokenizer.""" + from datasets import DownloadConfig, load_dataset + from datasets.utils.logging import disable_progress_bar + if not is_main: + disable_progress_bar() + + fraction = max(1, int(dataset_percentage)) + split = "train" if dataset_percentage >= 100 else f"train[:{fraction}%]" + + if is_main: + print(f"[trainer] loading wikitext-103-raw-v1 split={split}") + raw = load_dataset("wikitext", "wikitext-103-raw-v1", split=split, + download_config=DownloadConfig(disable_tqdm=True)) + + tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True) + if tokenizer.pad_token is None: + tokenizer.pad_token = tokenizer.eos_token or tokenizer.convert_ids_to_tokens(2) + + def tok_fn(batch): + return tokenizer(batch["text"], padding="max_length", + max_length=seq_length, truncation=True) + + if is_main: + print(f"[trainer] tokenising {len(raw)} rows ...") + tokenised = raw.map(tok_fn, batched=True, num_proc=1, keep_in_memory=True) + tokenised.set_format(type="torch", columns=["input_ids", "attention_mask"]) + + class _Labelled(Dataset): + def __init__(self, base): + self.base = base + + def __len__(self): + return len(self.base) + + def __getitem__(self, idx): + it = self.base[idx] + return { + "input_ids": it["input_ids"], + "labels": it["input_ids"].clone(), + "attention_mask": it["attention_mask"], + } + + sampler = DistributedSampler(tokenised, num_replicas=world_size, rank=rank) + return DataLoader(_Labelled(tokenised), batch_size=batch_size, sampler=sampler, + num_workers=2, drop_last=True, pin_memory=True) + + +def _build_loader(args, vocab_size, rank, world_size, is_main): + if args.dataset == "wikitext": + return _build_wikitext_loader(args.model_name, args.seq_length, args.batch_size, + args.dataset_percentage, rank, world_size, is_main) + ds = _SyntheticDataset(vocab_size, args.seq_length) + return DataLoader(ds, batch_size=args.batch_size, shuffle=False, drop_last=True, + num_workers=0, pin_memory=True) + + +# --------------------------------------------------------------------------- +# Model construction under deepspeed.zero.Init so each rank only materialises +# its shard. Passing the config_path here is required: Init reads +# zero_config.sdma_allgather and constructs the mori SDMA handle when true. +# --------------------------------------------------------------------------- +def build_model(model_name, num_layers, ds_config_path): + cfg = AutoConfig.from_pretrained(model_name, trust_remote_code=True) + if num_layers > 0: + cfg.num_hidden_layers = num_layers + cfg.torch_dtype = torch.bfloat16 + cfg.use_cache = False + cfg.attn_implementation = "eager" # FA2 not always available on AMD; eager is safe. + if dist.is_initialized() and dist.get_rank() == 0: + print(f"[trainer] {model_name}: layers={cfg.num_hidden_layers} " + f"hidden={cfg.hidden_size} heads={cfg.num_attention_heads} " + f"kv_heads={cfg.num_key_value_heads} vocab={cfg.vocab_size}") + with deepspeed.zero.Init(config_dict_or_path=ds_config_path): + model = AutoModelForCausalLM.from_config(cfg, trust_remote_code=True) + return model, cfg + + +def main(): + args = parse_args() + deepspeed.init_distributed() + rank = dist.get_rank() + world = dist.get_world_size() + device = torch.device(f"cuda:{args.local_rank if args.local_rank >= 0 else rank % torch.cuda.device_count()}") + torch.cuda.set_device(device) + + if rank == 0: + print(f"[trainer] world={world} device={device} ds_config={args.ds_config}") + + model, cfg = build_model(args.model_name, args.num_layers, args.ds_config) + + engine, _, _, _ = deepspeed.initialize( + args=args, + model=model, + model_parameters=[p for p in model.parameters() if p.requires_grad], + config=args.ds_config, + ) + + if rank == 0: + from deepspeed.runtime.comm import mori as _mori + print(f"[trainer] SDMA handle is_enabled={_mori.is_enabled()}", flush=True) + + loader = _build_loader(args, cfg.vocab_size, rank, world, rank == 0) + if rank == 0: + print(f"[trainer] dataloader: {len(loader)} batches/epoch, " + f"running {args.num_steps} steps", flush=True) + + step_times, losses = [], [] + torch.cuda.reset_peak_memory_stats() + t_train_start = time.perf_counter() + step, epoch = 0, 0 + data_iter = iter(loader) + skipped_empty = 0 + while step < args.num_steps: + try: + batch = next(data_iter) + except StopIteration: + epoch += 1 + if hasattr(loader.sampler, "set_epoch"): + loader.sampler.set_epoch(epoch) + data_iter = iter(loader) + batch = next(data_iter) + ids = batch["input_ids"].to(device, non_blocking=True) + labels = batch["labels"].to(device, non_blocking=True) + attn = batch["attention_mask"].to(device, non_blocking=True) + # Wikitext rows are highly variable; many are nearly empty (section + # headers etc.) and become an all-pad batch after padding. Such + # batches contribute nothing to LM training (loss would be NaN under + # the -100 mask below) and are skipped without consuming a step. + if int(attn.sum().item()) == 0: + skipped_empty += 1 + continue + # Standard HF causal-LM training: padded positions must NOT contribute + # to the loss. Without this masking the model trivially predicts + # pad_token on mostly-empty rows and reported loss collapses to ~0. + labels = labels.masked_fill(attn == 0, -100) + torch.cuda.synchronize() + t0 = time.perf_counter() + out = engine(input_ids=ids, labels=labels, attention_mask=attn) + engine.backward(out.loss) + engine.step() + torch.cuda.synchronize() + dt = time.perf_counter() - t0 + + if step >= args.warmup_steps: + step_times.append(dt) + losses.append(out.loss.detach().item()) + + if rank == 0 and step % args.log_interval == 0: + tag = "warmup" if step < args.warmup_steps else "measured" + tps = args.batch_size * args.seq_length * world / dt + print(f"[trainer] step {step:4d} ({tag:7s}) | loss {out.loss.item():8.4f} | " + f"step {dt*1000:7.1f} ms | {tps:8.0f} tok/s", flush=True) + step += 1 + + t_train_end = time.perf_counter() + + if rank == 0: + n = len(step_times) + avg_dt = sum(step_times) / n + tokens_per_step = args.batch_size * args.seq_length * world + tps = tokens_per_step / avg_dt + peak_gb = torch.cuda.max_memory_allocated() / 1e9 + avg_loss = sum(losses) / n + print() + print("=" * 70) + print("Qwen3 ZeRO-3 benchmark complete") + print(f" measured steps : {n} (warmup={args.warmup_steps} skipped)") + print(f" total wall (s) : {t_train_end - t_train_start:.1f}") + print(f" avg step (ms) : {avg_dt * 1000:.1f}") + print(f" tokens/sec (ws) : {tps:.1f}") + print(f" peak mem (GB,r0) : {peak_gb:.2f}") + print(f" avg loss : {avg_loss:.4f}") + print(f" final loss : {losses[-1]:.4f}") + print(f" empty batches : {skipped_empty}") + print("=" * 70) + + +if __name__ == "__main__": + main() diff --git a/examples/zero3_overlap/train_zero3.py b/examples/sdma_allgather/train_zero3.py similarity index 100% rename from examples/zero3_overlap/train_zero3.py rename to examples/sdma_allgather/train_zero3.py diff --git a/examples/zero3_overlap/run.sh b/examples/zero3_overlap/run.sh deleted file mode 100644 index c7214f63685d..000000000000 --- a/examples/zero3_overlap/run.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash -# ============================================================================= -# DeepSpeed ZeRO-3 training with allgather overlap -# Single node, 8x AMD GPUs (MI200/MI250/MI300) -# ============================================================================= - -export NCCL_DEBUG=INFO -export HSA_FORCE_FINE_GRAIN_PCIE=1 - -SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd) - -deepspeed \ - --num_nodes 1 \ - --num_gpus 8 \ - "${SCRIPT_DIR}/train_zero3.py" \ - --deepspeed \ - --deepspeed_config "${SCRIPT_DIR}/ds_config_zero3.json" \ - --hidden_size 2048 \ - --num_layers 24 \ - --num_heads 16 \ - --max_seq_len 1024 \ - --train_steps 200 From 2f5eaa6aead476c666bf2446df37fd368e614e16 Mon Sep 17 00:00:00 2001 From: inkcherry Date: Thu, 7 May 2026 13:33:11 +0000 Subject: [PATCH 21/25] update readme Signed-off-by: inkcherry --- examples/sdma_allgather/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/sdma_allgather/README.md b/examples/sdma_allgather/README.md index 41846f396ead..cd75c30ac581 100644 --- a/examples/sdma_allgather/README.md +++ b/examples/sdma_allgather/README.md @@ -37,7 +37,7 @@ allocations and the kernel faults at NULL on every rank. All | **SDMA off (RCCL)** | 697.7 ms / step (11.6 samples/s) | 1402.5 ms / step (5841 tok/s) | | **SDMA on (this PR)** | **622.0 ms / step (13.0 samples/s)** | **1263.2 ms / step (6486 tok/s)** | | **gain** | **+10.85 %** | **+9.93 %** | -| peak mem (rank 0) | unchanged off ↔ on | 96.45 GB, unchanged off ↔ on | +| peak mem (rank 0) | 12.12 GB, unchanged off ↔ on | 96.45 GB, unchanged off ↔ on | The Qwen3-32B number is averaged over two fresh rounds; per-round delta was +10.85 % and +9.92 %, with 0.29 % run-to-run variance on the off baseline, so From e7bbe36ca2f0eb94bb682fde7e8bb3116f194341 Mon Sep 17 00:00:00 2001 From: inkcherry Date: Mon, 11 May 2026 10:52:59 +0000 Subject: [PATCH 22/25] readme: 2000-step loss curve plots (off vs on) Signed-off-by: inkcherry --- examples/sdma_allgather/README.md | 23 +++++++++++++----- .../sdma_allgather/images/loss_gpt_2k.png | Bin 0 -> 116894 bytes .../sdma_allgather/images/loss_qwen3_2k.png | Bin 0 -> 210010 bytes 3 files changed, 17 insertions(+), 6 deletions(-) create mode 100644 examples/sdma_allgather/images/loss_gpt_2k.png create mode 100644 examples/sdma_allgather/images/loss_qwen3_2k.png diff --git a/examples/sdma_allgather/README.md b/examples/sdma_allgather/README.md index cd75c30ac581..76c6936244c9 100644 --- a/examples/sdma_allgather/README.md +++ b/examples/sdma_allgather/README.md @@ -37,19 +37,28 @@ allocations and the kernel faults at NULL on every rank. All | **SDMA off (RCCL)** | 697.7 ms / step (11.6 samples/s) | 1402.5 ms / step (5841 tok/s) | | **SDMA on (this PR)** | **622.0 ms / step (13.0 samples/s)** | **1263.2 ms / step (6486 tok/s)** | | **gain** | **+10.85 %** | **+9.93 %** | -| peak mem (rank 0) | 12.12 GB, unchanged off ↔ on | 96.45 GB, unchanged off ↔ on | +| peak mem (rank 0) | unchanged off ↔ on | 96.45 GB, unchanged off ↔ on | The Qwen3-32B number is averaged over two fresh rounds; per-round delta was +10.85 % and +9.92 %, with 0.29 % run-to-run variance on the off baseline, so the gap is well outside per-step jitter (~1.5–2.7 %). -### Loss curves match across off ↔ on +### Loss curves match across off ↔ on (2000-step runs) -- GPT (every 10 steps, off vs on): step 10 8.75 / 8.75, step 30 7.75 / 7.75, step 60 6.94 / 6.91, step 90 6.94 / 6.94 -- Qwen3-32B (final loss across two rounds): R1 off 6.265 vs on 6.225; R2 off 6.310 vs on 6.266 +A long-horizon sanity check on each demo confirms the SDMA path introduces +no numerical drift: 2000 training steps on the same wikitext shuffle, off +vs on traces overlap throughout (per-200-step bucketed means differ by +≤0.026 on GPT and ≤0.055 on Qwen3, well below natural per-step jitter). -The SDMA path is a pure plumbing change with no numerical impact in either -workload. +![GPT-7B-ish — training loss vs step, SDMA off vs on, 2000 steps](images/loss_gpt_2k.png) + +![Qwen3-32B — training loss vs step, SDMA off vs on, 2000 steps](images/loss_qwen3_2k.png) + +On the 2000-step averages the e2e speedup holds (GPT +8.45 %, Qwen3 ++6.60 %); the slightly lower headline vs the 100-step table above is the +usual long-run jitter (occasional 1.5–2 s step-time spikes from +filesystem / HIP allocator). The SDMA path is a pure plumbing change +with no numerical impact in either workload. ## Reproduction @@ -82,4 +91,6 @@ run_qwen3_sdma_on.sh Qwen3-32B + ZeRO-3, SDMA on test_sdma_allgather_zero3.py unit test exercising the ZeRO-3 SDMA path train_qwen3_zero3.py Qwen3 trainer (self-contained, wikitext) train_zero3.py GPT trainer (existing, unchanged) +images/loss_gpt_2k.png GPT loss curve, off vs on, 2000 steps +images/loss_qwen3_2k.png Qwen3-32B loss curve, off vs on, 2000 steps ``` diff --git a/examples/sdma_allgather/images/loss_gpt_2k.png b/examples/sdma_allgather/images/loss_gpt_2k.png new file mode 100644 index 0000000000000000000000000000000000000000..0cbc2954c3ca92a2c0733566e870756d1e714baa GIT binary patch literal 116894 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 DPw-y0 literal 0 HcmV?d00001 diff --git a/examples/sdma_allgather/images/loss_qwen3_2k.png b/examples/sdma_allgather/images/loss_qwen3_2k.png new file mode 100644 index 0000000000000000000000000000000000000000..bcb6fa5c0029b8cbb672d0ff06a51b2b1c0fd4a8 GIT binary patch literal 210010 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 FPpXK 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%0DCInI>5?pzlPb#$NddbiKFx?kW?VVT5F{ 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 z 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 A_y7O^ literal 0 HcmV?d00001 From 57d929df1d98db977cc41ba38f766629cae3039c Mon Sep 17 00:00:00 2001 From: inkcherry Date: Mon, 11 May 2026 15:43:45 +0000 Subject: [PATCH 23/25] qwen3 trainer: chunked wikitext loader + cleaner 2000-step loss curve Signed-off-by: inkcherry --- examples/sdma_allgather/README.md | 15 ++-- .../sdma_allgather/images/loss_qwen3_2k.png | Bin 210010 -> 146071 bytes examples/sdma_allgather/train_qwen3_zero3.py | 65 +++++++++++------- 3 files changed, 47 insertions(+), 33 deletions(-) diff --git a/examples/sdma_allgather/README.md b/examples/sdma_allgather/README.md index 76c6936244c9..3f8ee41e4834 100644 --- a/examples/sdma_allgather/README.md +++ b/examples/sdma_allgather/README.md @@ -47,18 +47,19 @@ the gap is well outside per-step jitter (~1.5–2.7 %). A long-horizon sanity check on each demo confirms the SDMA path introduces no numerical drift: 2000 training steps on the same wikitext shuffle, off -vs on traces overlap throughout (per-200-step bucketed means differ by -≤0.026 on GPT and ≤0.055 on Qwen3, well below natural per-step jitter). +vs on traces overlap throughout. Both trainers use the standard "concat +the corpus + slice into fixed `seq_length` chunks" pattern, so every +sample has the same number of real tokens and per-step loss has no +variance from padding fraction. Bucketed mean |off − on| over the full +2000 steps is ≤ **0.026** on GPT and ≤ **0.048** on Qwen3, well below +natural per-step jitter. ![GPT-7B-ish — training loss vs step, SDMA off vs on, 2000 steps](images/loss_gpt_2k.png) ![Qwen3-32B — training loss vs step, SDMA off vs on, 2000 steps](images/loss_qwen3_2k.png) -On the 2000-step averages the e2e speedup holds (GPT +8.45 %, Qwen3 -+6.60 %); the slightly lower headline vs the 100-step table above is the -usual long-run jitter (occasional 1.5–2 s step-time spikes from -filesystem / HIP allocator). The SDMA path is a pure plumbing change -with no numerical impact in either workload. +The SDMA path is a pure plumbing change with no numerical impact in either +workload. ## Reproduction diff --git a/examples/sdma_allgather/images/loss_qwen3_2k.png b/examples/sdma_allgather/images/loss_qwen3_2k.png index bcb6fa5c0029b8cbb672d0ff06a51b2b1c0fd4a8..1843e506a092cd4f1d8a1eaf6f9a515c8de710b5 100644 GIT binary patch literal 146071 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

1*bpKH0+s%6`D3pZnN*|uGG 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℞3*(Wtu5Ja^`qu!-GI#Z22 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%0DOo^1$Ue0R(_`l;O)~}|;S)<)M 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 R*QD_4ld%)V9Cq_v^*4IUD3|~M literal 210010 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 FPpXK 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%0DCInI>5?pzlPb#$NddbiKFx?kW?VVT5F{ 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 z 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 A_y7O^ diff --git a/examples/sdma_allgather/train_qwen3_zero3.py b/examples/sdma_allgather/train_qwen3_zero3.py index 5640a1d6d011..19f19ed14b16 100644 --- a/examples/sdma_allgather/train_qwen3_zero3.py +++ b/examples/sdma_allgather/train_qwen3_zero3.py @@ -75,7 +75,15 @@ def __getitem__(self, idx): def _build_wikitext_loader(model_name, seq_length, batch_size, dataset_percentage, rank, world_size, is_main): - """Stream wikitext-103-raw-v1, tokenise with the model's tokenizer.""" + """Stream wikitext-103-raw-v1 as a concatenated token stream sliced into + fixed `seq_length` chunks. + + This is the standard "group_texts" / GPT-style chunking pattern: every + sample is exactly seq_length REAL tokens with no padding and no per-row + boundaries. Result is uniform-difficulty samples, so the per-step loss + has no variance from "this row was 90 % padding" effects — which is what + made the per-row+padding variant of this loader jittery on bs=1 demos. + """ from datasets import DownloadConfig, load_dataset from datasets.utils.logging import disable_progress_bar if not is_main: @@ -93,33 +101,42 @@ def _build_wikitext_loader(model_name, seq_length, batch_size, dataset_percentag if tokenizer.pad_token is None: tokenizer.pad_token = tokenizer.eos_token or tokenizer.convert_ids_to_tokens(2) - def tok_fn(batch): - return tokenizer(batch["text"], padding="max_length", - max_length=seq_length, truncation=True) - if is_main: - print(f"[trainer] tokenising {len(raw)} rows ...") - tokenised = raw.map(tok_fn, batched=True, num_proc=1, keep_in_memory=True) - tokenised.set_format(type="torch", columns=["input_ids", "attention_mask"]) + print(f"[trainer] encoding {len(raw)} rows as a single stream ...") + text = "\n\n".join(t for t in raw["text"] if t.strip()) + all_ids = tokenizer.encode(text, add_special_tokens=False) + + # Optional cap on number of chunks (env var) so the per-epoch length can + # be tuned for short demos. 0 = use all available chunks. + max_chunks = int(os.environ.get("QWEN3_MAX_CHUNKS", "0")) + n_full = len(all_ids) // seq_length + if max_chunks > 0: + n_full = min(n_full, max_chunks) + chunks = torch.tensor(all_ids[: n_full * seq_length], + dtype=torch.long).view(n_full, seq_length) + if is_main: + print(f"[trainer] chunked: {len(all_ids)} tokens -> {n_full} " + f"sequences of {seq_length} (no padding)", flush=True) - class _Labelled(Dataset): - def __init__(self, base): - self.base = base + class _ChunkDataset(Dataset): + def __init__(self, t): + self.t = t def __len__(self): - return len(self.base) + return self.t.shape[0] def __getitem__(self, idx): - it = self.base[idx] + ids = self.t[idx] return { - "input_ids": it["input_ids"], - "labels": it["input_ids"].clone(), - "attention_mask": it["attention_mask"], + "input_ids": ids, + "labels": ids.clone(), + "attention_mask": torch.ones(ids.shape[0], dtype=torch.long), } - sampler = DistributedSampler(tokenised, num_replicas=world_size, rank=rank) - return DataLoader(_Labelled(tokenised), batch_size=batch_size, sampler=sampler, - num_workers=2, drop_last=True, pin_memory=True) + ds = _ChunkDataset(chunks) + sampler = DistributedSampler(ds, num_replicas=world_size, rank=rank) + return DataLoader(ds, batch_size=batch_size, sampler=sampler, + num_workers=0, drop_last=True, pin_memory=True) def _build_loader(args, vocab_size, rank, world_size, is_main): @@ -199,16 +216,12 @@ def main(): ids = batch["input_ids"].to(device, non_blocking=True) labels = batch["labels"].to(device, non_blocking=True) attn = batch["attention_mask"].to(device, non_blocking=True) - # Wikitext rows are highly variable; many are nearly empty (section - # headers etc.) and become an all-pad batch after padding. Such - # batches contribute nothing to LM training (loss would be NaN under - # the -100 mask below) and are skipped without consuming a step. + # Defensive: on the chunked wikitext loader every chunk is full of + # real tokens so these guards are no-ops, but they keep the trainer + # safe for the synthetic mode and any future padded variants. if int(attn.sum().item()) == 0: skipped_empty += 1 continue - # Standard HF causal-LM training: padded positions must NOT contribute - # to the loss. Without this masking the model trivially predicts - # pad_token on mostly-empty rows and reported loss collapses to ~0. labels = labels.masked_fill(attn == 0, -100) torch.cuda.synchronize() t0 = time.perf_counter() From cec6dbfb363afbefd9b6338e7f67201628564eb7 Mon Sep 17 00:00:00 2001 From: inkcherry Date: Tue, 12 May 2026 06:44:46 +0000 Subject: [PATCH 24/25] readme: drop perf annotation from GPT loss plot (loss-only figures) Signed-off-by: inkcherry --- .../sdma_allgather/images/loss_gpt_2k.png | Bin 116894 -> 125876 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/examples/sdma_allgather/images/loss_gpt_2k.png b/examples/sdma_allgather/images/loss_gpt_2k.png index 0cbc2954c3ca92a2c0733566e870756d1e714baa..de3d18d9f014f1e873eabc26c193acd3938307eb 100644 GIT binary patch delta 50777 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 From 8f45f83cf9849076d7231651d6502d3535bd4f8c Mon Sep 17 00:00:00 2001 From: inkcherry Date: Tue, 12 May 2026 06:46:04 +0000 Subject: [PATCH 25/25] update readme Signed-off-by: inkcherry --- examples/sdma_allgather/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/sdma_allgather/README.md b/examples/sdma_allgather/README.md index 3f8ee41e4834..2613837b7fc6 100644 --- a/examples/sdma_allgather/README.md +++ b/examples/sdma_allgather/README.md @@ -26,7 +26,7 @@ memory directly; without it mori's `SymmMemManager` falls back to cached allocations and the kernel faults at NULL on every rank. All `run_*_sdma_on.sh` scripts in this directory export it for you. -## Verified results on 8x MI300X (DeepSpeed default ZeRO-3 buckets) +## Verified results on 8x MI300X | | GPT-7B-ish | Qwen3-32B | |---|---|---|