---
id: pr-tensorrt-llm-9486
repo: NVIDIA/TensorRT-LLM
pr: 9486
title: '[TRTLLM-8958][feat] and [TRTLLM-8960]: create ConfigurableMoE and support TRTLLMGenFusedMoE as backend'
author: xxi-nv
date: '2025-12-01'
url: https://github.com/NVIDIA/TensorRT-LLM/pull/9486
source_category: upstream-code
architectures:
- sm100
tags:
- benchmark_test
- gemm_quant
- memory_primitives
- moe_routing
- scheduler_autotune
- userbuffers
techniques:
- autotuning
- fine-grained-quantization
- kernel-fusion
- tile-scheduling
hardware_features: []
kernel_types:
- gemm
- memory
- moe
- scheduler
languages:
- cute-dsl
captured_at: '2026-05-16'
status: merged
merge_sha: c12e67bb66fe62dd2cc513208cc814b46e839638
inclusion_reason: 'Transfer primitive policy carefully: coalescing, shared-memory staging, partial tiles, and determinism are part of the contract.'
changed_paths:
- tensorrt_llm/_torch/model_config.py
- tensorrt_llm/_torch/models/modeling_deepseekv3.py
- tensorrt_llm/_torch/models/modeling_gpt_oss.py
- tensorrt_llm/_torch/models/modeling_hunyuan_moe.py
- tensorrt_llm/_torch/models/modeling_utils.py
- tensorrt_llm/_torch/modules/fused_moe/communication/__init__.py
- tensorrt_llm/_torch/modules/fused_moe/communication/allgather_reducescatter.py
- tensorrt_llm/_torch/modules/fused_moe/communication/base.py
- tensorrt_llm/_torch/modules/fused_moe/communication/communication_factory.py
- tensorrt_llm/_torch/modules/fused_moe/communication/deep_ep.py
- tensorrt_llm/_torch/modules/fused_moe/communication/deep_ep_low_latency.py
- tensorrt_llm/_torch/modules/fused_moe/communication/nvlink_one_sided.py
- tensorrt_llm/_torch/modules/fused_moe/communication/nvlink_two_sided.py
- tensorrt_llm/_torch/modules/fused_moe/configurable_moe.py
- tensorrt_llm/_torch/modules/fused_moe/create_moe.py
- tensorrt_llm/_torch/modules/fused_moe/fused_moe_cutlass.py
- tests/unittest/_torch/modeling/test_modeling_nemotron_h.py
- tests/unittest/_torch/modules/test_fused_moe.py
artifact_dir: evidence/pull-bundles/tensorrt-llm/gh-9486
head_ref_oid: 17666b97464e771f3af5d5f8718288b32bece729
---
# [TRTLLM-8958][feat] and [TRTLLM-8960]: create ConfigurableMoE and support TRTLLMGenFusedMoE as backend

- Repository: `NVIDIA/TensorRT-LLM`
- PR: [9486](https://github.com/NVIDIA/TensorRT-LLM/pull/9486)
- Decision: `Transfer primitive policy carefully: coalescing, shared-memory staging, partial tiles, and determinism are part of the contract.`
- Reason: Transfer primitive policy carefully: coalescing, shared-memory staging, partial tiles, and determinism are part of the contract.

## Changed Paths

- `tensorrt_llm/_torch/model_config.py`
- `tensorrt_llm/_torch/models/modeling_deepseekv3.py`
- `tensorrt_llm/_torch/models/modeling_gpt_oss.py`
- `tensorrt_llm/_torch/models/modeling_hunyuan_moe.py`
- `tensorrt_llm/_torch/models/modeling_utils.py`
- `tensorrt_llm/_torch/modules/fused_moe/communication/__init__.py`
- `tensorrt_llm/_torch/modules/fused_moe/communication/allgather_reducescatter.py`
- `tensorrt_llm/_torch/modules/fused_moe/communication/base.py`
- `tensorrt_llm/_torch/modules/fused_moe/communication/communication_factory.py`
- `tensorrt_llm/_torch/modules/fused_moe/communication/deep_ep.py`
- `tensorrt_llm/_torch/modules/fused_moe/communication/deep_ep_low_latency.py`
- `tensorrt_llm/_torch/modules/fused_moe/communication/nvlink_one_sided.py`
- `tensorrt_llm/_torch/modules/fused_moe/communication/nvlink_two_sided.py`
- `tensorrt_llm/_torch/modules/fused_moe/configurable_moe.py`
- `tensorrt_llm/_torch/modules/fused_moe/create_moe.py`
- `tensorrt_llm/_torch/modules/fused_moe/fused_moe_cutlass.py`
- `tests/unittest/_torch/modeling/test_modeling_nemotron_h.py`
- `tests/unittest/_torch/modules/test_fused_moe.py`

## Evidence Bundle

`evidence/pull-bundles/tensorrt-llm/gh-9486`
