Megatron-LM integration
Megatron-LM already integrates the NVRx sections API. Run its
pretrain_gpt.py entrypoint with ft_launcher and enable
--enable-ft-package. Do not add a second monitoring client or another
checkpoint loop around Megatron.
The walkthrough in GPT checkpoint recovery with Megatron-LM uses fixed section timeouts
on the launcher CLI and NVRx-backed asynchronous distributed checkpoints.
--calc-ft-timeouts is experimental and is deliberately omitted.
Version and environment contract
The source contract for this guide was reviewed against public Megatron-LM
revision 36731acc3f0dac859ee7369bdc3a6af58bac546c:
FT integration,
async orchestration,
and distributed writer integration.
This is a source-reviewed recipe, not a GPU/Slurm qualification claim for that
revision. Pin both Megatron and NVRx in the deployed container, record CUDA,
PyTorch, Transformer Engine, and NCCL versions, and run the recovery checks in
the example before relying on a combination. Megatron’s FT argument help still
labels the integration internal-use; availability in its public source does not
establish a supported combination across all releases. Older Megatron versions
may offer an async_strategy selector; do not copy a backend-selection flag
from another revision without checking its help and implementation.
Section boundaries
Section |
Megatron behavior |
Timeout sizing |
|---|---|---|
|
Opened before initialization; closed before the first train/eval iteration |
Model construction, distributed initialization, compilation, checkpoint load |
|
Training/evaluation steps after configured warmup |
Full step, including communication and optimizer work |
|
Save-related work and async finalization calls |
Preparation plus worst observed finalization stalls |
Out of section |
Work outside open monitored sections, subject to warmup suppression |
Data preparation, logging, and other between-section work |
The section names must match exactly. The DDP example’s init and
checkpoint names are not aliases. Configure finite timeouts before launch;
simply enabling --enable-ft-package does not give those sections deadlines.
See Configuration and timeouts for first-step coverage and restored timeout state.
Async checkpointing and recovery
Megatron owns the training state and checkpoint lifecycle. For the distributed
torch_dist path in the reviewed revision, NVRx supplies
AsyncCallsQueue, AsyncRequest, and FileSystemWriterAsync.
The workload arguments used in the example are:
--load /shared/run/checkpoints \
--save /shared/run/checkpoints \
--save-interval 5 \
--ckpt-format torch_dist \
--async-save \
--use-persistent-ckpt-worker
NVRx InJob remains responsible for process recovery; this is a different component from NVRx async checkpointing.
A save request stages a snapshot and schedules background I/O. Training may continue before that save is recoverable. Finalization completes the distributed checkpoint and publishes its latest-checkpoint tracker. If workers die during an unfinished save, recovery must use the previous completed checkpoint. Do not advance a progress marker merely because a save was submitted.
Megatron wraps save preparation and async finalization in checkpointing
sections. The entire background save is not one continuously open section, and
a stalled background operation can instead surface when finalization waits.
A small checkpointing timeout copied from a synchronous example is unsuitable.
For the distributed optimizer, restore optimizer shards and scheduler/data/RNG state as well as model weights. Keep the example’s active world size and TP/PP shape fixed through replacement. Standbys do not enlarge that world. Different topologies require explicit checkpoint-format and resharding validation; InJob does not implement live model-parallel resizing.
Pass --ft-checkpoint-iteration-file on the launcher CLI with the path to
latest_checkpointed_iteration.txt. This tracks completed checkpoint
progress, not the newest training iteration. Sparse checkpointing and deliberate
Megatron reruns can look like no progress across cycles; see
Operations and troubleshooting for the stop threshold and unavailable-marker behavior.
Timeout state and shutdown
Megatron saves calculated timeouts to ft_state.json only when calibration
runs, but restores an existing file at startup. Use a fresh directory for the
fixed-timeout walkthrough. That file is distinct from launcher YAML and from
the distributed training checkpoint.
Let Megatron finalize outstanding async saves during normal shutdown. A forced worker termination can interrupt an in-flight save; the most recent completed checkpoint remains the recovery point. Qualification must cover failures during training, save preparation, and background-save/finalization windows.