@@ -401,7 +401,7 @@ def nemotron_3_ultra_pretrain_256gpu_gb200_nvfp4_config() -> ConfigContainer:
401401
402402
403403def nemotron_3_nano_pretrain_8gpu_gb200_bf16_config () -> ConfigContainer :
404- """Nemotron 3 Nano pretrain: 8× GB200, BF16, NCCL EP ."""
404+ """Nemotron 3 Nano pretrain: 8× GB200, BF16."""
405405 cfg = nemotron_3_nano_pretrain_config ()
406406 _apply_nemotron_3_nano_perf_defaults (cfg )
407407 cfg .mixed_precision = _perf_precision ("bf16" )
@@ -425,10 +425,6 @@ def nemotron_3_nano_pretrain_8gpu_gb200_bf16_config() -> ConfigContainer:
425425
426426 _benchmark_common (cfg )
427427 cfg .model .moe_hybridep_num_sms = 16
428- _enable_ncclep (cfg )
429- # Device-side expert token counts: the legacy grouped MLP path syncs tokens_per_expert to the
430- # host every layer, which serializes the CPU behind the GPU when dispatch is fast.
431- cfg .model .moe_use_grouped_tensor = True
432428 # Keep process settings next to the recipe so users can see the exact benchmark environment.
433429 cfg .env_vars = {
434430 ** COMMON_PERF_ENV_VARS ,
@@ -440,8 +436,11 @@ def nemotron_3_nano_pretrain_8gpu_gb200_bf16_config() -> ConfigContainer:
440436 "TORCH_NCCL_AVOID_RECORD_STREAMS" : 1 ,
441437 # NCCL user-buffer and launch settings.
442438 "NCCL_NVLS_ENABLE" : 0 ,
443- # NCCL EP dispatcher mode.
444- "NCCL_EP_HT_EM_PULL_PUSH" : 1 ,
439+ # HybridEP topology for the target system.
440+ "NUM_OF_HYBRID_EP_RANKS_PER_NVLINK_DOMAIN" : 8 ,
441+ "NUM_OF_TOKENS_PER_CHUNK_COMBINE_API" : 128 ,
442+ "NVLINK_DOMAIN_SIZE" : 72 ,
443+ "USE_MNNVL" : 1 ,
445444 # Transformer Engine overlap settings for this model.
446445 "NVTE_BWD_LAYERNORM_SM_MARGIN" : 20 ,
447446 "NVTE_FWD_LAYERNORM_SM_MARGIN" : 20 ,
@@ -480,15 +479,11 @@ def _build_nemotron_3_nano_gb200_mxfp8() -> ConfigContainer:
480479
481480
482481def nemotron_3_nano_pretrain_8gpu_gb200_fp8mx_config () -> ConfigContainer :
483- """Nemotron 3 Nano pretrain: 8× GB200, MXFP8, NCCL EP ."""
482+ """Nemotron 3 Nano pretrain: 8× GB200, MXFP8."""
484483 cfg = _build_nemotron_3_nano_gb200_mxfp8 ()
485484 cfg .model .use_transformer_engine_op_fuser = True
486485 cfg .model .moe_mlp_glu_interleave_size = 32
487486 cfg .mixed_precision .fp8_dot_product_attention = True
488- _enable_ncclep (cfg )
489- # Device-side expert token counts: the legacy grouped MLP path syncs tokens_per_expert to the
490- # host every layer, which serializes the CPU behind the GPU when dispatch is fast.
491- cfg .model .moe_use_grouped_tensor = True
492487 # Keep process settings next to the recipe so users can see the exact benchmark environment.
493488 cfg .env_vars = {
494489 ** COMMON_PERF_ENV_VARS ,
@@ -500,8 +495,11 @@ def nemotron_3_nano_pretrain_8gpu_gb200_fp8mx_config() -> ConfigContainer:
500495 "TORCH_NCCL_AVOID_RECORD_STREAMS" : 1 ,
501496 # NCCL user-buffer and launch settings.
502497 "NCCL_NVLS_ENABLE" : 0 ,
503- # NCCL EP dispatcher mode.
504- "NCCL_EP_HT_EM_PULL_PUSH" : 1 ,
498+ # HybridEP topology for the target system.
499+ "NUM_OF_HYBRID_EP_RANKS_PER_NVLINK_DOMAIN" : 8 ,
500+ "NUM_OF_TOKENS_PER_CHUNK_COMBINE_API" : 128 ,
501+ "NVLINK_DOMAIN_SIZE" : 72 ,
502+ "USE_MNNVL" : 1 ,
505503 # Transformer Engine overlap settings for this model.
506504 "CUDNNFE_CLUSTER_OVERLAP_MARGIN" : 8 ,
507505 "NVTE_BWD_LAYERNORM_SM_MARGIN" : 20 ,
@@ -568,7 +566,7 @@ def nemotron_3_nano_pretrain_8gpu_gb200_nvfp4_config() -> ConfigContainer:
568566
569567
570568def nemotron_3_5_lightning_pretrain_8gpu_gb200_bf16_config () -> ConfigContainer :
571- """Nemotron 3.5 Lightning pretrain: 8× GB200, BF16, NCCL EP (inherited from Nemotron 3 Nano) ."""
569+ """Nemotron 3.5 Lightning pretrain: 8× GB200, BF16, NCCL EP."""
572570 cfg = nemotron_3_nano_pretrain_8gpu_gb200_bf16_config ()
573571 cfg .model .recompute_modules = []
574572 cfg .model .mtp_num_layers = 2
@@ -580,14 +578,18 @@ def nemotron_3_5_lightning_pretrain_8gpu_gb200_bf16_config() -> ConfigContainer:
580578 cfg .model .hf_model_revision = _NEMOTRON_3_5_LIGHTNING_MODEL_REVISION
581579 cfg .tokenizer .tokenizer_model = _NEMOTRON_3_5_LIGHTNING_MODEL_ID
582580 cfg .tokenizer .hf_tokenizer_kwargs = {"revision" : _NEMOTRON_3_5_LIGHTNING_MODEL_REVISION }
581+ _enable_ncclep (cfg )
582+ # Device-side expert token counts: the legacy grouped MLP path syncs tokens_per_expert to the
583+ # host every layer, which serializes the CPU behind the GPU when dispatch is fast.
584+ cfg .model .moe_use_grouped_tensor = True
583585 cfg .env_vars = {
584586 ** COMMON_PERF_ENV_VARS ,
585587 "CUDA_DEVICE_MAX_CONNECTIONS" : 32 ,
586588 "NCCL_GRAPH_REGISTER" : 0 ,
587589 "PYTORCH_CUDA_ALLOC_CONF" : "expandable_segments:True" ,
588590 "TORCH_NCCL_AVOID_RECORD_STREAMS" : 1 ,
589591 "NCCL_NVLS_ENABLE" : 0 ,
590- # NCCL EP dispatcher mode (inherited from the Nemotron 3 Nano BF16 recipe) .
592+ # NCCL EP dispatcher mode.
591593 "NCCL_EP_HT_EM_PULL_PUSH" : 1 ,
592594 "NVTE_BWD_LAYERNORM_SM_MARGIN" : 20 ,
593595 "NVTE_FWD_LAYERNORM_SM_MARGIN" : 20 ,
0 commit comments