---
id: pr-tensorrt-llm-10479
repo: NVIDIA/TensorRT-LLM
pr: 10479
title: '[None] [feat] Add densegemm backend for MoE'
author: zongfeijing
date: '2026-04-01'
url: https://github.com/NVIDIA/TensorRT-LLM/pull/10479
source_category: upstream-code
architectures:
- sm100
tags:
- arch_pipeline
- benchmark kernel
- benchmark_test
- compiler_runtime
- cute dsl
- gemm_quant
- moe_routing
- sm100
techniques:
- fine-grained-quantization
- kernel-fusion
- pipeline-stages
hardware_features:
- blackwell
- fp4
- nvfp4
kernel_types:
- compiler
- gemm
- moe
- runtime
languages:
- cuda-cpp
- cute-dsl
captured_at: '2026-05-16'
status: merged
merge_sha: 596f57a399bfc2125c24d7f578ea395c2ea88a8e
inclusion_reason: Inspect scale layout, accumulator type, tile/schedule choice, epilogue fusion, and partial-tile guards before deriving a candidate.
changed_paths:
- tensorrt_llm/_torch/custom_ops/cute_dsl_custom_ops.py
- tensorrt_llm/_torch/custom_ops/torch_custom_ops.py
- tensorrt_llm/_torch/cute_dsl_kernels/blackwell/moe_as_dense_gemm/__init__.py
- tensorrt_llm/_torch/cute_dsl_kernels/blackwell/moe_as_dense_gemm/fc1.py
- tensorrt_llm/_torch/cute_dsl_kernels/blackwell/moe_as_dense_gemm/fc2.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_densegemm.py
- tensorrt_llm/_torch/utils.py
- tensorrt_llm/llmapi/llm_args.py
- tests/integration/test_lists/test-db/l0_b200.yml
- tests/scripts/cute_dsl_kernels/moe_as_dense_gemm/run_moe_as_dense_gemm_fc1.py
- tests/scripts/cute_dsl_kernels/moe_as_dense_gemm/run_moe_as_dense_gemm_fc2.py
- tests/unittest/_torch/modules/moe/moe_test_utils.py
- tests/unittest/_torch/modules/moe/test_moe_backend.py
- tests/unittest/_torch/modules/moe/test_moe_module.py
- tests/unittest/_torch/thop/parallel/test_moe_densegemm.py
artifact_dir: evidence/pull-bundles/tensorrt-llm/gh-10479
head_ref_oid: e4c5a29883071d4bf9422e3acaa1dfcb2e2e6dfc
---
# [None] [feat] Add densegemm backend for MoE

- Repository: `NVIDIA/TensorRT-LLM`
- PR: [10479](https://github.com/NVIDIA/TensorRT-LLM/pull/10479)
- Decision: `Inspect scale layout, accumulator type, tile/schedule choice, epilogue fusion, and partial-tile guards before deriving a candidate.`
- Reason: Inspect scale layout, accumulator type, tile/schedule choice, epilogue fusion, and partial-tile guards before deriving a candidate.

## Changed Paths

- `tensorrt_llm/_torch/custom_ops/cute_dsl_custom_ops.py`
- `tensorrt_llm/_torch/custom_ops/torch_custom_ops.py`
- `tensorrt_llm/_torch/cute_dsl_kernels/blackwell/moe_as_dense_gemm/__init__.py`
- `tensorrt_llm/_torch/cute_dsl_kernels/blackwell/moe_as_dense_gemm/fc1.py`
- `tensorrt_llm/_torch/cute_dsl_kernels/blackwell/moe_as_dense_gemm/fc2.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_densegemm.py`
- `tensorrt_llm/_torch/utils.py`
- `tensorrt_llm/llmapi/llm_args.py`
- `tests/integration/test_lists/test-db/l0_b200.yml`
- `tests/scripts/cute_dsl_kernels/moe_as_dense_gemm/run_moe_as_dense_gemm_fc1.py`
- `tests/scripts/cute_dsl_kernels/moe_as_dense_gemm/run_moe_as_dense_gemm_fc2.py`
- `tests/unittest/_torch/modules/moe/moe_test_utils.py`
- `tests/unittest/_torch/modules/moe/test_moe_backend.py`
- `tests/unittest/_torch/modules/moe/test_moe_module.py`
- `tests/unittest/_torch/thop/parallel/test_moe_densegemm.py`

## Evidence Bundle

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