Skip to content

[AutoDeploy] Nemo SuperV3: Enable multistream MoE #10345

Description

@galagam

Nemotron Super V3 crashes when multisteam MoE transformation is enabled.
Enable and check impact on perf.

  multi_stream_moe:
    stage: compile
    enabled: true # 251230 fails

Trace:

[12/30/2025-06:30:13] [TRT-LLM AUTO-DEPLOY] [RANK 1] [I] [stage=compile, transform=fuse_causal_conv_activation] enabled=True, num_matches=40, is_clean=True, has_valid_shapes=False
[12/30/2025-06:30:13] [TRT-LLM AUTO-DEPLOY] [RANK 1] [I] [stage=compile, transform=fuse_causal_conv_activation] elapsed time: total=0.141s, pre_cleanup=0.000s, apply=0.070s, post_cleanup=0.071s
[12/30/2025-06:30:13] [TRT-LLM] [RANK 1] [E] Failed to initialize executor on rank 1: Target input node not found for node trtllm_moe_fused
[12/30/2025-06:30:13] [TRT-LLM] [RANK 1] [E] Traceback (most recent call last):
  File "/home/scratch.ghubaraagam_sw_2/TensorRT-LLM_github/tensorrt_llm/executor/worker.py", line 264, in worker_main
    worker: GenerationExecutorWorker = worker_cls(
                                       ^^^^^^^^^^^
  File "/home/scratch.ghubaraagam_sw_2/TensorRT-LLM_github/tensorrt_llm/executor/worker.py", line 60, in __init__
    self.setup_engine()
  File "/home/scratch.ghubaraagam_sw_2/TensorRT-LLM_github/tensorrt_llm/executor/base_worker.py", line 257, in setup_engine
    self.engine = _create_py_executor(
                  ^^^^^^^^^^^^^^^^^^^^
  File "/home/scratch.ghubaraagam_sw_2/TensorRT-LLM_github/tensorrt_llm/executor/base_worker.py", line 228, in _create_py_executor
    _executor = create_executor(**args)
                ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/scratch.ghubaraagam_sw_2/TensorRT-LLM_github/tensorrt_llm/_torch/auto_deploy/shim/ad_executor.py", line 1026, in create_autodeploy_executor
    engine = ADEngine.build_from_config(ad_config=ad_config, mapping=dist_mapping)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/scratch.ghubaraagam_sw_2/TensorRT-LLM_github/tensorrt_llm/_torch/auto_deploy/shim/ad_executor.py", line 449, in build_from_config
    return cls(
           ^^^^
  File "/usr/local/lib/python3.12/dist-packages/torch/utils/_contextlib.py", line 120, in decorate_context
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/scratch.ghubaraagam_sw_2/TensorRT-LLM_github/tensorrt_llm/_torch/auto_deploy/shim/ad_executor.py", line 519, in __init__
    self.model = get_inference_model(self.cache_seq_interface)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/scratch.ghubaraagam_sw_2/TensorRT-LLM_github/tensorrt_llm/_torch/auto_deploy/transform/optimizer.py", line 71, in __call__
    mod = transform(mod, cm, self.factory, self.shared_config)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/scratch.ghubaraagam_sw_2/TensorRT-LLM_github/tensorrt_llm/_torch/auto_deploy/transform/interface.py", line 213, in _wrapper
    return call_fn(self, gm, cm, factory, shared_config)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/scratch.ghubaraagam_sw_2/TensorRT-LLM_github/tensorrt_llm/_torch/auto_deploy/transform/interface.py", line 359, in __call__
    mod, info_apply = self._apply_per_gm_or_whole_model(mod, cm, factory, shared_config)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/scratch.ghubaraagam_sw_2/TensorRT-LLM_github/tensorrt_llm/_torch/auto_deploy/transform/interface.py", line 418, in _apply_per_gm_or_whole_model
    graph_sub, info_apply = self._apply(graph_sub, cm, factory, shared_config)
                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/scratch.ghubaraagam_sw_2/TensorRT-LLM_github/tensorrt_llm/_torch/auto_deploy/transform/library/multi_stream_moe.py", line 312, in _apply
    gm, num_matches = _execute_op_in_aux_stream(gm, op_dict)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/scratch.ghubaraagam_sw_2/TensorRT-LLM_github/tensorrt_llm/_torch/auto_deploy/transform/library/multi_stream_moe.py", line 270, in _execute_op_in_aux_stream
    assert target_input_node is not None, f"Target input node not found for node {n}"
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: Target input node not found for node trtllm_moe_fused

Metadata

Metadata

Assignees

Labels

AutoDeploy<NV> AutoDeploy Backend

Type

No type

Projects

Status
Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions