Flatten Megatron configs, smoke, and sweep cell keys and update docs - #391
Conversation
Move suite and config detail into published how-to and schema RST, and pass --save on Primus checkpoint writes so resume can load a real checkpoint.
Skip optional missing metrics, parse Primus distributed checkpoint load lines, and keep the docs in sync.
Align combination ids with threshold cells so pytest IDs and lookup keys cannot drift.
solaiys
left a comment
There was a problem hiding this comment.
Blocking: Primus save is a checkpoint directory, not a boolean flag. Bare --save will be parsed as the path --save_interval and the actual interval token is left dangling, so checkpoint write/resume still cannot work.
| "NCCL_IB_HCA": "<changeme>", | ||
| "NCCL_SOCKET_IFNAME": "<changeme>", | ||
| "GLOO_SOCKET_IFNAME": "<changeme>", | ||
| "NCCL_IB_GID_INDEX": "3", |
There was a problem hiding this comment.
this also should be <changeme> with example.
Either give the example in a comment line key:value.
OR
add the <changeme> tag at the end of the actual value what we are using
ex:
"NCCL_IB_HCA": "rdma0,rdma1,rdma2,rdma3,rdma4,rdma5,rdma6,rdma7 <changeme>",
"NCCL_SOCKET_IFNAME": "eno0 <changeme>",
"GLOO_SOCKET_IFNAME": "eno0 <changeme>",
"NCCL_IB_GID_INDEX": "3 <changeme>",
solaiys
left a comment
There was a problem hiding this comment.
changeme tag should accompany with the example values.
submit it in the next PR.
Summary
Document unified suites and Primus checkpoint save
docs/how-to/test-suites/training/megatron.rstanddocs/reference/configuration-files/training/megatron.rst).--saveon checkpoint writes so resume can load a real checkpoint.Drive test_smoke from a top-level smoke block
test_smokereadssmoke.enabled,iters,micro_batch_size,global_batch_size, andprecisionfrom the variant JSON instead of hardcoded knobs.enabled=falseskips smoke. All packaged Megatron variant configs include this block.Flatten Megatron configs onto paths, train_params, and container.env
config/model_params/schema_version/framework.gpu_name,paths,train_params, andcontainer.env(NNODES,MASTER_ADDR,NCCL_*, sockets asdocker run -e).MASTER_ADDR/NNODES."optional": trueSKIPPED intest_metricwhen the metric is missing (training.mem_usage; distributed alsotraining.scaling_efficiency_pct).loading distributed checkpoint fromas well as Megatron-LMloading checkpoint from.Require sweep keys to match MBS/GBS/PRECISION
sweep.combinationskey and matchingsweep.runsentry toMBS=<micro_batch_size>,GBS=<global_batch_size>,PRECISION=<precision>(same string as the threshold cell and the pytest parametrize ID).=and,to_(for exampleMBS_4_GBS_128_PRECISION_FP8).Test plan
make fmt-check lint ut*_single.jsonand*_distributed.jsonviaload_training_variant(all<changeme>replaced)smoke.*; one sweep cell; optional mem_usage SKIPPED if the parser does not emit it--save; load log containsloading distributed checkpoint fromMBS=…,GBS=…,PRECISION=…; a leftover slug likellama3_1_8b-mi300x-…fails load