@@ -143,6 +143,9 @@ def nemotron_3_super_pretrain_64gpu_gb200_fp8mx_config() -> ConfigContainer:
143143 cfg .model .cuda_graph_scope = ["attn" , "mamba" , "moe_router" , "moe_preprocess" ]
144144
145145 _apply_nemotron_3_super_perf_defaults (cfg )
146+ cfg .model .use_transformer_engine_op_fuser = True
147+ cfg .model .moe_mlp_glu_interleave_size = 32
148+ cfg .mixed_precision .fp8_dot_product_attention = True
146149 # Keep process settings next to the recipe so users can see the exact benchmark environment.
147150 cfg .env_vars = {
148151 ** COMMON_PERF_ENV_VARS ,
@@ -160,7 +163,9 @@ def nemotron_3_super_pretrain_64gpu_gb200_fp8mx_config() -> ConfigContainer:
160163 "NVLINK_DOMAIN_SIZE" : 72 ,
161164 "USE_MNNVL" : 1 ,
162165 # Transformer Engine overlap settings for this model.
166+ "CUDNNFE_CLUSTER_OVERLAP_MARGIN" : 8 ,
163167 "NVTE_BWD_LAYERNORM_SM_MARGIN" : 20 ,
168+ "NVTE_CUTEDSL_FUSED_GROUPED_MLP" : 1 ,
164169 "NVTE_FWD_LAYERNORM_SM_MARGIN" : 20 ,
165170 }
166171 return cfg
@@ -354,8 +359,7 @@ def nemotron_3_nano_pretrain_8gpu_gb200_bf16_config() -> ConfigContainer:
354359 return cfg
355360
356361
357- def nemotron_3_nano_pretrain_8gpu_gb200_fp8mx_config () -> ConfigContainer :
358- """Nemotron 3 Nano pretrain: 8× GB200, MXFP8."""
362+ def _build_nemotron_3_nano_gb200_mxfp8 () -> ConfigContainer :
359363 cfg = nemotron_3_nano_pretrain_config ()
360364 _apply_nemotron_3_nano_perf_defaults (cfg )
361365 cfg .mixed_precision = _perf_precision ("fp8_mx" )
@@ -379,6 +383,15 @@ def nemotron_3_nano_pretrain_8gpu_gb200_fp8mx_config() -> ConfigContainer:
379383
380384 _benchmark_common (cfg )
381385 cfg .model .moe_hybridep_num_sms = 32
386+ return cfg
387+
388+
389+ def nemotron_3_nano_pretrain_8gpu_gb200_fp8mx_config () -> ConfigContainer :
390+ """Nemotron 3 Nano pretrain: 8× GB200, MXFP8."""
391+ cfg = _build_nemotron_3_nano_gb200_mxfp8 ()
392+ cfg .model .use_transformer_engine_op_fuser = True
393+ cfg .model .moe_mlp_glu_interleave_size = 32
394+ cfg .mixed_precision .fp8_dot_product_attention = True
382395 # Keep process settings next to the recipe so users can see the exact benchmark environment.
383396 cfg .env_vars = {
384397 ** COMMON_PERF_ENV_VARS ,
@@ -396,7 +409,9 @@ def nemotron_3_nano_pretrain_8gpu_gb200_fp8mx_config() -> ConfigContainer:
396409 "NVLINK_DOMAIN_SIZE" : 72 ,
397410 "USE_MNNVL" : 1 ,
398411 # Transformer Engine overlap settings for this model.
412+ "CUDNNFE_CLUSTER_OVERLAP_MARGIN" : 8 ,
399413 "NVTE_BWD_LAYERNORM_SM_MARGIN" : 20 ,
414+ "NVTE_CUTEDSL_FUSED_GROUPED_MLP" : 1 ,
400415 "NVTE_FWD_LAYERNORM_SM_MARGIN" : 20 ,
401416 # Use cuDNN LayerNorm for this measured baseline.
402417 "NVTE_NORM_BWD_USE_CUDNN" : 1 ,
@@ -489,9 +504,8 @@ def nemotron_3_5_lightning_pretrain_8gpu_gb200_bf16_config() -> ConfigContainer:
489504 return cfg
490505
491506
492- def nemotron_3_5_lightning_pretrain_8gpu_gb200_fp8mx_config () -> ConfigContainer :
493- """Nemotron 3.5 Lightning pretrain: 8× GB200, MXFP8."""
494- cfg = nemotron_3_nano_pretrain_8gpu_gb200_fp8mx_config ()
507+ def _build_nemotron_3_5_lightning_gb200_mxfp8 () -> ConfigContainer :
508+ cfg = _build_nemotron_3_nano_gb200_mxfp8 ()
495509 cfg .model .moe_hybridep_num_sms = 16
496510 cfg .model .mtp_num_layers = 2
497511 cfg .model .mtp_hybrid_override_pattern = "*E"
@@ -502,6 +516,15 @@ def nemotron_3_5_lightning_pretrain_8gpu_gb200_fp8mx_config() -> ConfigContainer
502516 cfg .model .hf_model_revision = _NEMOTRON_3_5_LIGHTNING_MODEL_REVISION
503517 cfg .tokenizer .tokenizer_model = _NEMOTRON_3_5_LIGHTNING_MODEL_ID
504518 cfg .tokenizer .hf_tokenizer_kwargs = {"revision" : _NEMOTRON_3_5_LIGHTNING_MODEL_REVISION }
519+ return cfg
520+
521+
522+ def nemotron_3_5_lightning_pretrain_8gpu_gb200_fp8mx_config () -> ConfigContainer :
523+ """Nemotron 3.5 Lightning pretrain: 8× GB200, MXFP8."""
524+ cfg = _build_nemotron_3_5_lightning_gb200_mxfp8 ()
525+ cfg .model .use_transformer_engine_op_fuser = True
526+ cfg .model .moe_mlp_glu_interleave_size = 32
527+ cfg .mixed_precision .fp8_dot_product_attention = True
505528 cfg .env_vars = {
506529 ** COMMON_PERF_ENV_VARS ,
507530 "CUDA_DEVICE_MAX_CONNECTIONS" : 32 ,
@@ -513,7 +536,9 @@ def nemotron_3_5_lightning_pretrain_8gpu_gb200_fp8mx_config() -> ConfigContainer
513536 "NUM_OF_TOKENS_PER_CHUNK_COMBINE_API" : 128 ,
514537 "NVLINK_DOMAIN_SIZE" : 72 ,
515538 "USE_MNNVL" : 1 ,
539+ "CUDNNFE_CLUSTER_OVERLAP_MARGIN" : 8 ,
516540 "NVTE_BWD_LAYERNORM_SM_MARGIN" : 20 ,
541+ "NVTE_CUTEDSL_FUSED_GROUPED_MLP" : 1 ,
517542 "NVTE_FWD_LAYERNORM_SM_MARGIN" : 20 ,
518543 "NVTE_NORM_BWD_USE_CUDNN" : 1 ,
519544 "NVTE_NORM_FWD_USE_CUDNN" : 1 ,
@@ -523,7 +548,7 @@ def nemotron_3_5_lightning_pretrain_8gpu_gb200_fp8mx_config() -> ConfigContainer
523548
524549def nemotron_3_5_lightning_pretrain_8gpu_gb200_fp8mx_fsdp_config () -> ConfigContainer :
525550 """Nemotron 3.5 Lightning pretrain: 8× GB200, MXFP8, Megatron FSDP."""
526- cfg = nemotron_3_5_lightning_pretrain_8gpu_gb200_fp8mx_config ()
551+ cfg = _build_nemotron_3_5_lightning_gb200_mxfp8 ()
527552
528553 # FSDP reduces the model-state footprint enough to use the larger measured
529554 # microbatch. Megatron FSDP registers module hooks that Transformer Engine
0 commit comments