---
id: pr-vllm-32564
repo: vllm-project/vllm
pr: 32564
title: '[MoE Refactor] Create MK for TRTLLM Kernels'
author: robertgshaw2-redhat
date: '2026-03-03'
url: https://github.com/vllm-project/vllm/pull/32564
source_category: upstream-code
architectures:
- sm100
tags: []
techniques: []
hardware_features: []
kernel_types: []
languages: []
captured_at: '2026-05-16'
status: merged
merge_sha: 97995f6376fd3dae7a67624055ddf038233e181e
inclusion_reason: defer
changed_paths:
- .buildkite/test_areas/kernels.yaml
- benchmarks/kernels/benchmark_cutlass_moe_fp8.py
- benchmarks/kernels/benchmark_cutlass_moe_nvfp4.py
- benchmarks/kernels/benchmark_grouped_gemm_cutlass.py
- benchmarks/kernels/benchmark_moe.py
- docs/design/dbo.md
- docs/design/fused_moe_modular_kernel.md
- docs/design/moe_kernel_features.md
- tests/evals/gsm8k/configs/moe-refactor/config-h100.txt
- tests/kernels/moe/modular_kernel_tools/cli_args.py
- tests/kernels/moe/modular_kernel_tools/common.py
- tests/kernels/moe/modular_kernel_tools/mk_objects.py
- tests/kernels/moe/modular_kernel_tools/profile_modular_kernel.py
- tests/kernels/moe/test_batched_deepgemm.py
- tests/kernels/moe/test_block_fp8.py
- tests/kernels/moe/test_cutlass_moe.py
- tests/kernels/moe/test_deepep_deepgemm_moe.py
- tests/kernels/moe/test_deepep_moe.py
- tests/kernels/moe/test_deepgemm.py
- tests/kernels/moe/test_flashinfer.py
- tests/kernels/moe/test_flashinfer_moe.py
- tests/kernels/moe/test_marlin_vs_trtllm_mxint4.py
- tests/kernels/moe/test_modular_kernel_combinations.py
- tests/kernels/moe/test_modular_oai_triton_moe.py
- tests/kernels/moe/test_moe.py
- tests/kernels/moe/test_nvfp4_moe.py
- tests/kernels/moe/utils.py
- tests/quantization/test_blackwell_moe.py
- vllm/lora/layers/fused_moe.py
- vllm/model_executor/layers/fused_moe/__init__.py
- vllm/model_executor/layers/fused_moe/all2all_utils.py
- vllm/model_executor/layers/fused_moe/batched_deep_gemm_moe.py
- vllm/model_executor/layers/fused_moe/config.py
- vllm/model_executor/layers/fused_moe/cutlass_moe.py
- vllm/model_executor/layers/fused_moe/deep_gemm_moe.py
- vllm/model_executor/layers/fused_moe/deepep_ht_prepare_finalize.py
- vllm/model_executor/layers/fused_moe/deepep_ll_prepare_finalize.py
- vllm/model_executor/layers/fused_moe/experts/__init__.py
- vllm/model_executor/layers/fused_moe/experts/trtllm_fp8_moe.py
- vllm/model_executor/layers/fused_moe/experts/trtllm_nvfp4_moe.py
- vllm/model_executor/layers/fused_moe/fallback.py
- vllm/model_executor/layers/fused_moe/flashinfer_a2a_prepare_finalize.py
- vllm/model_executor/layers/fused_moe/flashinfer_cutedsl_moe.py
- vllm/model_executor/layers/fused_moe/flashinfer_cutlass_moe.py
- vllm/model_executor/layers/fused_moe/flashinfer_trtllm_moe.py
- vllm/model_executor/layers/fused_moe/fused_batched_moe.py
- vllm/model_executor/layers/fused_moe/fused_marlin_moe.py
- vllm/model_executor/layers/fused_moe/fused_moe.py
- vllm/model_executor/layers/fused_moe/fused_moe_method_base.py
- vllm/model_executor/layers/fused_moe/fused_moe_modular_method.py
- vllm/model_executor/layers/fused_moe/gpt_oss_triton_kernels_moe.py
- vllm/model_executor/layers/fused_moe/modular_kernel.py
- vllm/model_executor/layers/fused_moe/mori_prepare_finalize.py
- vllm/model_executor/layers/fused_moe/oracle/fp8.py
- vllm/model_executor/layers/fused_moe/oracle/nvfp4.py
- vllm/model_executor/layers/fused_moe/oracle/unquantized.py
- vllm/model_executor/layers/fused_moe/prepare_finalize.py
- vllm/model_executor/layers/fused_moe/prepare_finalize/__init__.py
- vllm/model_executor/layers/fused_moe/prepare_finalize/naive_dp_ep.py
- vllm/model_executor/layers/fused_moe/prepare_finalize/no_dp_ep.py
- vllm/model_executor/layers/fused_moe/rocm_aiter_fused_moe.py
- vllm/model_executor/layers/fused_moe/router/base_router.py
- vllm/model_executor/layers/fused_moe/runner/default_moe_runner.py
- vllm/model_executor/layers/fused_moe/topk_weight_and_reduce.py
- vllm/model_executor/layers/fused_moe/triton_cutlass_moe.py
- vllm/model_executor/layers/fused_moe/triton_deep_gemm_moe.py
- vllm/model_executor/layers/fused_moe/trtllm_moe.py
- vllm/model_executor/layers/fused_moe/unquantized_fused_moe_method.py
- vllm/model_executor/layers/fused_moe/xpu_fused_moe.py
- vllm/model_executor/layers/quantization/compressed_tensors/compressed_tensors_moe.py
- vllm/model_executor/layers/quantization/fp8.py
- vllm/model_executor/layers/quantization/modelopt.py
- vllm/model_executor/layers/quantization/mxfp4.py
- vllm/model_executor/layers/quantization/utils/flashinfer_fp4_moe.py
- vllm/model_executor/layers/quantization/utils/flashinfer_utils.py
- vllm/model_executor/warmup/deep_gemm_warmup.py
- vllm/model_executor/warmup/kernel_warmup.py
- vllm/utils/flashinfer.py
artifact_dir: evidence/pull-bundles/vllm/gh-32564
head_ref_oid: e26de5a85b29286d29ac80f6afbffa26650f78cd
---
# [MoE Refactor] Create MK for TRTLLM Kernels

- Repository: `vllm-project/vllm`
- PR: [32564](https://github.com/vllm-project/vllm/pull/32564)
- Decision: `defer`
- Reason: defer

## Changed Paths

- `.buildkite/test_areas/kernels.yaml`
- `benchmarks/kernels/benchmark_cutlass_moe_fp8.py`
- `benchmarks/kernels/benchmark_cutlass_moe_nvfp4.py`
- `benchmarks/kernels/benchmark_grouped_gemm_cutlass.py`
- `benchmarks/kernels/benchmark_moe.py`
- `docs/design/dbo.md`
- `docs/design/fused_moe_modular_kernel.md`
- `docs/design/moe_kernel_features.md`
- `tests/evals/gsm8k/configs/moe-refactor/config-h100.txt`
- `tests/kernels/moe/modular_kernel_tools/cli_args.py`
- `tests/kernels/moe/modular_kernel_tools/common.py`
- `tests/kernels/moe/modular_kernel_tools/mk_objects.py`
- `tests/kernels/moe/modular_kernel_tools/profile_modular_kernel.py`
- `tests/kernels/moe/test_batched_deepgemm.py`
- `tests/kernels/moe/test_block_fp8.py`
- `tests/kernels/moe/test_cutlass_moe.py`
- `tests/kernels/moe/test_deepep_deepgemm_moe.py`
- `tests/kernels/moe/test_deepep_moe.py`
- `tests/kernels/moe/test_deepgemm.py`
- `tests/kernels/moe/test_flashinfer.py`
- `tests/kernels/moe/test_flashinfer_moe.py`
- `tests/kernels/moe/test_marlin_vs_trtllm_mxint4.py`
- `tests/kernels/moe/test_modular_kernel_combinations.py`
- `tests/kernels/moe/test_modular_oai_triton_moe.py`
- `tests/kernels/moe/test_moe.py`
- `tests/kernels/moe/test_nvfp4_moe.py`
- `tests/kernels/moe/utils.py`
- `tests/quantization/test_blackwell_moe.py`
- `vllm/lora/layers/fused_moe.py`
- `vllm/model_executor/layers/fused_moe/__init__.py`
- `vllm/model_executor/layers/fused_moe/all2all_utils.py`
- `vllm/model_executor/layers/fused_moe/batched_deep_gemm_moe.py`
- `vllm/model_executor/layers/fused_moe/config.py`
- `vllm/model_executor/layers/fused_moe/cutlass_moe.py`
- `vllm/model_executor/layers/fused_moe/deep_gemm_moe.py`
- `vllm/model_executor/layers/fused_moe/deepep_ht_prepare_finalize.py`
- `vllm/model_executor/layers/fused_moe/deepep_ll_prepare_finalize.py`
- `vllm/model_executor/layers/fused_moe/experts/__init__.py`
- `vllm/model_executor/layers/fused_moe/experts/trtllm_fp8_moe.py`
- `vllm/model_executor/layers/fused_moe/experts/trtllm_nvfp4_moe.py`
- `vllm/model_executor/layers/fused_moe/fallback.py`
- `vllm/model_executor/layers/fused_moe/flashinfer_a2a_prepare_finalize.py`
- `vllm/model_executor/layers/fused_moe/flashinfer_cutedsl_moe.py`
- `vllm/model_executor/layers/fused_moe/flashinfer_cutlass_moe.py`
- `vllm/model_executor/layers/fused_moe/flashinfer_trtllm_moe.py`
- `vllm/model_executor/layers/fused_moe/fused_batched_moe.py`
- `vllm/model_executor/layers/fused_moe/fused_marlin_moe.py`
- `vllm/model_executor/layers/fused_moe/fused_moe.py`
- `vllm/model_executor/layers/fused_moe/fused_moe_method_base.py`
- `vllm/model_executor/layers/fused_moe/fused_moe_modular_method.py`
- `vllm/model_executor/layers/fused_moe/gpt_oss_triton_kernels_moe.py`
- `vllm/model_executor/layers/fused_moe/modular_kernel.py`
- `vllm/model_executor/layers/fused_moe/mori_prepare_finalize.py`
- `vllm/model_executor/layers/fused_moe/oracle/fp8.py`
- `vllm/model_executor/layers/fused_moe/oracle/nvfp4.py`
- `vllm/model_executor/layers/fused_moe/oracle/unquantized.py`
- `vllm/model_executor/layers/fused_moe/prepare_finalize.py`
- `vllm/model_executor/layers/fused_moe/prepare_finalize/__init__.py`
- `vllm/model_executor/layers/fused_moe/prepare_finalize/naive_dp_ep.py`
- `vllm/model_executor/layers/fused_moe/prepare_finalize/no_dp_ep.py`
- `vllm/model_executor/layers/fused_moe/rocm_aiter_fused_moe.py`
- `vllm/model_executor/layers/fused_moe/router/base_router.py`
- `vllm/model_executor/layers/fused_moe/runner/default_moe_runner.py`
- `vllm/model_executor/layers/fused_moe/topk_weight_and_reduce.py`
- `vllm/model_executor/layers/fused_moe/triton_cutlass_moe.py`
- `vllm/model_executor/layers/fused_moe/triton_deep_gemm_moe.py`
- `vllm/model_executor/layers/fused_moe/trtllm_moe.py`
- `vllm/model_executor/layers/fused_moe/unquantized_fused_moe_method.py`
- `vllm/model_executor/layers/fused_moe/xpu_fused_moe.py`
- `vllm/model_executor/layers/quantization/compressed_tensors/compressed_tensors_moe.py`
- `vllm/model_executor/layers/quantization/fp8.py`
- `vllm/model_executor/layers/quantization/modelopt.py`
- `vllm/model_executor/layers/quantization/mxfp4.py`
- `vllm/model_executor/layers/quantization/utils/flashinfer_fp4_moe.py`
- `vllm/model_executor/layers/quantization/utils/flashinfer_utils.py`
- `vllm/model_executor/warmup/deep_gemm_warmup.py`
- `vllm/model_executor/warmup/kernel_warmup.py`
- `vllm/utils/flashinfer.py`

## Evidence Bundle

`evidence/pull-bundles/vllm/gh-32564`
