What's Changed
- Add configurable dtype for ZeRO checkpoint export by @gaoxiaomo in #8318
- Raise the per-tensor norms to norm_type when combining them by @vineethsaivs in #8313
- Fix the seq-first Ulysses all2all output layout by @vineethsaivs in #8317
- Count each module object once when aggregating flops profiler totals by @ebarkhordar in #8320
- Fallback for unsupported Hybrid Engine policies by @LiRunGuo in #8265
- [tiled mlp] reshape instead of view by @stas00 in #8348
- Add pin_empty helper for empty scratch destinations by @sfc-gh-truwase in #8332
- Fix Triton NFS detection crash when df wraps long device names by @atirna in #8259
- [AutoTP] Replace tp_shard process-wide globals with per-model AutoTPMeta by @delock in #8241
- feat(cpu-adam): add ARM SVE update kernel by @xylian86 in #8365
- Add macOS (MPS) CI workflow and a torch floor check for the MPS accelerator by @PKUWZP in #8335
- Add an opt-in DeepEP transport for the AutoEP expert all-to-all by @yh0903 in #8213
- remove the dead non-Triton attention path from TritonSelfAttention by @Anai-Guo in #8349
- perf(rollout): profile prefill and decode forwards by @nathon-lee in #8350
- DeepCompile: stabilize ZeRO-3 parameter guards by @tohtana in #8328
- fix: Only bind device id when needed, Fixes #8248 by @pengdurice in #8269
- Make the WarmupCosineLR ratio flags reach the config by @vineethsaivs in #8268
- Forward free_data through partition() instead of hardcoding True by @vineethsaivs in #8305
- Recognize Qwen3.5's RMSNorm variants in AutoTP module loading by @promptsmith1990 in #8306
- Forward barrier device_ids to communication backends by @tohtana in #8312
- Fix flops profiler counts for transposed convolutions by @vineethsaivs in #8323
- Broadcast elementwise flops from the trailing dimension by @vineethsaivs in #8324
- Replace cuda_graph assertion with explicit ValueError; fix custom_op type annotations by @chakshu-dhannawat in #8336
- Keep the elasticity batch overrides out of the caller's config dict by @alanhuangyoo in #8329
- Stop the curriculum schedule starting below min_difficulty by @vineethsaivs in #8334
- Add an opt-in fused weighted restore for AutoEP by @yh0903 in #8326
- Add nccl_version to the source-checkout torch_info fallback by @alanhuangyoo in #8383
- docs: add test discipline rules to agent guidelines by @delock in #8372
- Preallocate the static KV cache with config.head_dim by @ebarkhordar in #8389
- Skip fp16-config tests on accelerators without fp16 support by @delock in #8398
- Do not pin DDP device_ids for CPU reference models by @delock in #8399
- Use device names, not rank ids, for device placement in test helpers by @delock in #8397
- [Ulysses] Carry the KV head count per DistributedAttention by @alanhuangyoo in #8316
- [Workflow] Raise modal CI timeouts to absorb slower sandbox provisioning by @delock in #8403
- Preserve AutoEP score correction bias buffers by @poorpaper in #8369
- op_builder: use C++20 for nvcc on CUDA 13+ by @bheu in #8422
- Reshape instead of view in TiledFusedLogitsLoss by @alanhuangyoo in #8362
- Fix AutoTP + deep compile collectives silently drop when AC is on by @pengdurice in #8355
- fix(lr_schedules): make --lr_range_test_staircase an opt-in flag by @Anai-Guo in #8337
- Split the modal CI budget into acquisition and test phases by @delock in #8404
- [Workflow] run modal GPU workflows only from the merge queue by @delock in #8412
- Read rope_theta from rope_parameters in the Llama injection policy by @alanhuangyoo in #8341
- Stop the debug name maps from pinning the model they snapshot by @alanhuangyoo in #8356
- Muon runs no Newton-Schulz at ZeRO stage 0, the default: run it by @alanhuangyoo in #8442
- Filter --include against the real slots, not against itself by @vineethsaivs in #8239
- Add an opt-in ZeRO-1/2 gradient norm fast path by @yh0903 in #8331
- [AutoEP]Fix optimizer and replaced MOE parameter mismatch by @pengdurice in #8377
- Muon is silently disabled under ZeRO-3 when the model is built with zero.Init by @alanhuangyoo in #8438
- Avoid collective token preparation for AutoEP DeepEP by @yh0903 in #8423
- [MPS] Update C++ Standard in CPUAdamBuilder by @jinyouzhi in #8466
- Split DeepCompile ZeRO-3 memory scheduler by @tohtana in #8233
- Describe universal checkpoint shards as affine maps by @Achyuthan-S in #8385
- Fix comms logger KeyError when log_name is omitted by @jinyouzhi in #8267
- Fix universal checkpoint resume across AutoTP sizes by @0z5a in #8474
- feat(rollout): add continuous batching generation prototype by @nathon-lee in #8368
- Fix ZeRO parameter alignment for grouped_mm by @fwerkor in #8277
- Carry the affine scale on the replicated map, not the split by @Achyuthan-S in #8477
- [muon] Reconcile the momentum dtype when a checkpoint is restored by @alanhuangyoo in #8433
- Deprecate unused DeepSpeed features by @sfc-gh-truwase in #8490
- [muon] Keep the momentum out of steps the loss scaler discards by @alanhuangyoo in #8435
- Remove triton compatibility check for fp_quantizer by @hwchen2017 in #8492
- Muon silently discards the param groups it is given by @alanhuangyoo in #8440
- [Phase 2] Add NEON SIMD path for CPU Adam on AArch64 by @PKUWZP in #8453
- Fix sequence overlap backward gradient permutation by @taking-lying-flat in #8342
- Validate positive inference and HybridEngine max output tokens by @taking-lying-flat in #8343
- Offload a saved view when it is the last value holding its storage by @pengdurice in #8388
- Honor --include/--exclude in the SLURM launcher by @vineethsaivs in #8304
- Make wait() idempotent on AllGatherHandle and NoGatherHandle by @pengdurice in #8487
- Deprecate sparse attention by @hwchen2017 in #8493
- feat(rollout): add continuous batching profiling by @nathon-lee in #8494
- Probe the device module for train_cifar's fork_rng device entries by @delock in #8407
- Gate the offload-state memory deltas on allocator-backed stats by @delock in #8409
- Read rope_theta from rope_parameters across Inference V2 by @alanhuangyoo in #8345
- Partition AutoEP expert parameters per layer under ZeRO-3 by @tohtana in #8424
- Give Muon's momentum the dtype of the gradient it is combined with by @alanhuangyoo in #8483
- Update version.txt after 0.19.6 release by @loadams in #8333
- Add DCO sign-off to release commits by @loadams in #8527
- Emit affine maps from AutoTP layers by @Achyuthan-S in #8519
- Cache the Modal sandbox install chain in image layers by @delock in #8536
- [bugfix] _DimZeroAllToAll silently fails to send grads under torch.compile by @stas00 in #8491
New Contributors
- @atirna made their first contribution in #8259
- @Anai-Guo made their first contribution in #8349
- @promptsmith1990 made their first contribution in #8306
- @chakshu-dhannawat made their first contribution in #8336
- @poorpaper made their first contribution in #8369
- @bheu made their first contribution in #8422
- @0z5a made their first contribution in #8474
- @taking-lying-flat made their first contribution in #8342
Full Changelog: v0.19.6...v0.19.7