[TRTLLM-14609][chore] Remove ENABLE_CONFIGURABLE_MOE escape hatch and remaining MoE legacy relics - #17009
[TRTLLM-14609][chore] Remove ENABLE_CONFIGURABLE_MOE escape hatch and remaining MoE legacy relics#17009xxi-nv wants to merge 1 commit into
Conversation
… remaining MoE legacy relics Final cleanup after the per-backend legacy MoE path removals (NVIDIA#16861-NVIDIA#16865). ConfigurableMoE has been the only execution path for the wrapped backends for months, so the env escape hatch and the state it kept alive are now dead. - create_moe: drop the ENABLE_CONFIGURABLE_MOE gate and the unreachable fallback-warning branch (CutlassFusedMoE is in the wrapped tuple, so that sub-branch could never run). WideEPMoE / TritonFusedMoE / VanillaMoE keep create_moe_backend. - CutlassFusedMoE, TRTLLMGenFusedMoE: drop the never-read alltoall state (alltoall_method_type, alltoall_workspace, alltoall_prepare_workspace, use_low_precision_combine, moe_a2a) and the enable_alltoall override that was always False; MoE.enable_alltoall already returns False. - Remove the vestigial without_comm parameter: no backend has read it since the comm construction blocks were deleted. - TRTLLMOpBackend: drop the unused MoeAlltoAll handle. The Python MoeAlltoAll class stays; AutoDeploy fused-MoE custom ops still construct it. - Drop the now-nonexistent env var from the disaggregated perf configs and test docstrings. Signed-off-by: xxi <xxi@nvidia.com>
|
/bot run |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (16)
💤 Files with no reviewable changes (6)
WalkthroughThe MoE factory now selects ChangesConfigurable MoE backend cleanup
Estimated code review effort: 4 (Complex) | ~45 minutes Sequence Diagram(s)sequenceDiagram
participant MoEFactory
participant ConfigurableMoE
participant MoEBackend
MoEFactory->>ConfigurableMoE: select supported backend
ConfigurableMoE->>MoEBackend: create with init_load_balancer=False
MoEBackend-->>ConfigurableMoE: return initialized backend
ConfigurableMoE-->>MoEFactory: return configured MoE module
Possibly related PRs
Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
PR_Github #62529 [ run ] triggered by Bot. Commit: |
|
PR_Github #62529 [ run ] completed with state
|
|
/bot run --disable-fail-fast |
|
PR_Github #62637 [ run ] triggered by Bot. Commit: |
|
PR_Github #62637 [ run ] completed with state
|
|
/bot run --disable-fail-fast |
|
PR_Github #62736 [ run ] triggered by Bot. Commit: |
|
PR_Github #62736 [ run ] completed with state
|
|
/bot run --disable-fail-fast |
|
PR_Github #62758 [ run ] triggered by Bot. Commit: |
Summary
Final cleanup after the per-backend legacy MoE path removals (#16861-#16865).
ConfigurableMoEhas been the only execution path for the wrapped backends for months, so theENABLE_CONFIGURABLE_MOEescape hatch and the state it kept alive are dead code. This PR removes them.Description
create_moe: drop theENABLE_CONFIGURABLE_MOEgate and the unreachable fallback-warning branch (CutlassFusedMoEis in the wrapped tuple, so that sub-branch could never run).WideEPMoE/TritonFusedMoE/VanillaMoEkeep usingcreate_moe_backend.CutlassFusedMoE,TRTLLMGenFusedMoE: drop the never-read alltoall state (alltoall_method_type,alltoall_workspace,alltoall_prepare_workspace,use_low_precision_combine,moe_a2a) and theenable_alltoalloverride that always returnedFalse—MoE.enable_alltoallalready returnsFalse.without_comm: remove the vestigial parameter. No backend has read it since the comm-construction blocks were deleted; communication is owned by theConfigurableMoEwrapper.TRTLLMOpBackend: drop the unusedMoeAlltoAllhandle. The PythonMoeAlltoAllclass itself stays — AutoDeploy fused-MoE custom ops still construct it, somoe_alltoall.pyis not removable.No public API or user-facing behavior change: every removed symbol was either unread or a constant.
Test Coverage
tests/unittest/_torch/modules/moe/test_moe_module.py— full file, no-kfilter, on GB200 (OCI,100-realbuild at this commit):test_configurable_moe_single_gpu+test_trtllm_gen_fp32_routing_biastest_configurable_moe_multi_gpu+test_configurable_moe_multi_gpu_eplb(5 ranks)The single-GPU numbers are byte-for-byte identical to a baseline run of the same command on the parent commit (
main), executed against the same compiled binaries — this diff is Python-only, so the C++/CUDA artifacts are shared between the two runs.PR Checklist
[TRTLLM-14609][chore]prefixDev Engineer Review
ENABLE_CONFIGURABLE_MOEgate and legacy fallback path; supported backends now consistently useConfigurableMoE.without_commparameter and unused all-to-all state from MoE implementations and backend wiring.MoeAlltoAllcustom op while removing the unused TRTLLM backend handle.QA Engineer Review
tests/unittest/_torch/lora/test_moe_lora_model_path.py.test_configurable_moe_forward_impl_forwards_lora_params_to_scheduler; no test logic was changed.Verdict: sufficient