feat (recipe): add Nemotron 3 Ultra MXFP8 GB200 pretraining perf-recipe - #5287
Conversation
Signed-off-by: Ravi Ghadia <ghadiaravi13@users.noreply.github.com>
…into main-nt3-ultra-mxfp8-gb200
…d documentation - Removed the `nemotron_3_ultra_pretrain_8gpu_gb200_fp8mx_config` function as it was only used for toy runs. - Updated the `nemotron_3_ultra_pretrain_256gpu_gb200_fp8mx_config` function to clarify configuration details and adjusted the minimum offloaded tensor size to match the config for NT3 Ultra MXFP8 on 256xGB200. - Cleaned up comments and improved documentation for clarity. Signed-off-by: Ravi Ghadia <ghadiaravi13@users.noreply.github.com>
…into main-nt3-ultra-mxfp8-gb200
|
/ok to test f526067 |
|
/claude review |
|
Light review: feat(recipe) add Nemotron 3 Ultra 256xGB200 MXFP8 perf recipe Summary: new nemotron_3_ultra_pretrain_256gpu_gb200_fp8mx_config, a GB200 port of the existing GB300 recipe. Differences vs GB300: TP2+SP (smaller GB200 HBM) instead of TP1; min_offloaded_tensor_size lowered 500M to 350M (accounting for the /2 seq split under SP); adds fine_grained_offloading_max_inflight_offloads=1 and graph_capture_record_stream_reuse:True in PYTORCH_CUDA_ALLOC_CONF. Export added to nemotronh/init.py. No functional-logic bugs found; config field names all match existing usage in the deepseek/gb300 recipes. Minor points (non-blocking):
Suggested test cases:
No perf launcher/functional tests impacted (256-GPU recipes exceed the 2-GPU CI budget; scripts/performance/configs/ has no nemotron entries). |
| "NVTE_CUTEDSL_FUSED_GROUPED_MLP": 1, | ||
| } | ||
| return cfg | ||
|
|
There was a problem hiding this comment.
The GB200 recipe drives HSDP via _apply_nemotron_3_ultra_fsdp_hsdp, whose docstring still says "for Nemotron 3 Ultra on GB300", and which computes num_distributed_optimizer_instances from _GB300_NVLINK_DOMAIN_GPUS = 64 (documented as GB300 "16 nodes x 4 GPUs"). For this 256-GPU GB200 recipe that yields 256 // 64 = 4 optimizer instances. Since this recipe advertises NVLINK_DOMAIN_SIZE=72 while sharding on a 64-GPU domain, please confirm the 64-GPU sharding domain is the intended HSDP grouping for GB200 (it does line up with EP64 / NUM_OF_HYBRID_EP_RANKS_PER_NVLINK_DOMAIN=64). If so, consider renaming/generalizing the GB300-specific helper name and constant, or at least updating the docstring so the GB200 reuse isn't surprising.
Signed-off-by: Malay Nagda <malayn@nvidia.com>
|
/ok to test ab1ae70 |
|
Light review - LGTM overall. This adds nemotron_3_ultra_pretrain_256gpu_gb200_fp8mx_config, a GB200 twin of the existing nemotron_3_ultra_pretrain_256gpu_gb300_fp8mx_config, differing intentionally in TP2+SP (smaller GB200 HBM) and min_offloaded_tensor_size (350M vs 500M elems, for the SP-halved seq). The export is wired into init.py, and the AST-based env-var test is extended to resolve local-constant references (needed because this recipe references locals like hybrid_ep_ranks_per_nvlink_domain inside env_vars). Correctness checks pass:
Minor (non-blocking):
Suggested test cases:
No scripts/performance/configs/ perf launcher configs are touched, so no GPU perf launch cases are impacted. |
|
/ok to test 38cfd0d |
What does this PR do ?
Add a pre-training perf-recipe for Nemotron-3 Ultra MXFP8 on 256xGB200.
Changelog
GitHub Actions CI
See the CI section in the Contributing doc for how to trigger the CI. A Nvidia developer will need to approve and trigger the CI for external contributors.
Before your PR is "Ready for review"
Pre checks:
If you haven't finished some of the above items you can still open "Draft" PR.
Additional Information