What problem does it solve?
It reduces GPU memory pressure in Megatron Bridge training by offloading either layer activations or optimizer states to CPU, helping prevent OOMs and enable larger models or batch sizes.
Core Features & Use Cases
- Activation offloading (layer-level): Offloads transformer layer activations (optionally weights) to CPU with strict constraints like
pipeline_model_parallel_size = 1 and no recompute or CUDA graphs, which is mainly useful for small/medium models.
- Optimizer offloading (fractional): Offloads Adam optimizer state to CPU via
HybridDeviceOptimizer using optimizer_cpu_offload and optimizer_offload_fraction, supporting PP>1 and offering a controllable memory-speed tradeoff.
- Practical performance guidance: Provides recommended fractions and overlap settings to balance memory savings against throughput, validated on large MoE experiments.
Quick Start
Enable optimizer CPU offloading by setting optimizer.optimizer_cpu_offload=True and optimizer.optimizer_offload_fraction=0.5 (optionally also setting optimizer.overlap_cpu_optimizer_d2h_h2d=True for higher fractions) to reduce GPU memory while keeping training numerically stable.