---
id: pr-vllm-13972
repo: vllm-project/vllm
pr: 13972
title: '[Kernel] CUTLASS grouped gemm fp8 MoE kernel'
author: ElizaWszola
date: '2025-03-27'
url: https://github.com/vllm-project/vllm/pull/13972
source_category: upstream-code
architectures:
- sm100
tags:
- epilogue-fusion
- fp8
- gemm
- grouped-gemm
- kernel-fusion
- moe
- quantization
techniques:
- epilogue-fusion
- kernel-fusion
hardware_features:
- fp8
kernel_types:
- gemm
- grouped-gemm
- moe
- quantization
languages:
- cuda-cpp
captured_at: '2026-04-27'
status: merged
merge_sha: 9239bf718e5ebb5ab871ac8ed09fb80ed02fa82b
inclusion_reason: kernel file changes
changed_paths:
- CMakeLists.txt
- benchmarks/kernels/benchmark_grouped_gemm_cutlass.py
- benchmarks/kernels/benchmark_shapes.py
- csrc/cutlass_extensions/common.hpp
- csrc/cutlass_extensions/epilogue/broadcast_load_epilogue_array_c3x.hpp
- csrc/cutlass_extensions/epilogue/scaled_mm_epilogues_c3x.hpp
- csrc/ops.h
- csrc/quantization/cutlass_w8a8/moe/get_group_starts.cuh
- csrc/quantization/cutlass_w8a8/moe/grouped_mm_c3x.cu
- csrc/quantization/cutlass_w8a8/moe/grouped_mm_c3x.cuh
- csrc/quantization/cutlass_w8a8/moe/moe_data.cu
- csrc/quantization/cutlass_w8a8/scaled_mm_entry.cu
- csrc/torch_bindings.cpp
- tests/kernels/test_cutlass.py
- tests/kernels/test_cutlass_moe.py
- vllm/_custom_ops.py
- vllm/model_executor/layers/fused_moe/__init__.py
- vllm/model_executor/layers/fused_moe/fused_moe.py
- vllm/model_executor/layers/quantization/compressed_tensors/compressed_tensors.py
- vllm/model_executor/layers/quantization/compressed_tensors/compressed_tensors_moe.py
- vllm/model_executor/layers/quantization/utils/w8a8_utils.py
- vllm/utils.py
head_ref_oid: 83ee170c9c6a51e25d09c5ff4b8c578370675050
artifact_dir: evidence/pull-bundles/vllm/gh-13972
---
# [Kernel] CUTLASS grouped gemm fp8 MoE kernel

- Repository: `vllm-project/vllm`
- PR: [13972](https://github.com/vllm-project/vllm/pull/13972)
- Decision: `kernel file changes`
- Reason: kernel file changes

## Changed Paths

- `CMakeLists.txt`
- `benchmarks/kernels/benchmark_grouped_gemm_cutlass.py`
- `benchmarks/kernels/benchmark_shapes.py`
- `csrc/cutlass_extensions/common.hpp`
- `csrc/cutlass_extensions/epilogue/broadcast_load_epilogue_array_c3x.hpp`
- `csrc/cutlass_extensions/epilogue/scaled_mm_epilogues_c3x.hpp`
- `csrc/ops.h`
- `csrc/quantization/cutlass_w8a8/moe/get_group_starts.cuh`
- `csrc/quantization/cutlass_w8a8/moe/grouped_mm_c3x.cu`
- `csrc/quantization/cutlass_w8a8/moe/grouped_mm_c3x.cuh`
- `csrc/quantization/cutlass_w8a8/moe/moe_data.cu`
- `csrc/quantization/cutlass_w8a8/scaled_mm_entry.cu`
- `csrc/torch_bindings.cpp`
- `tests/kernels/test_cutlass.py`
- `tests/kernels/test_cutlass_moe.py`
- `vllm/_custom_ops.py`
- `vllm/model_executor/layers/fused_moe/__init__.py`
- `vllm/model_executor/layers/fused_moe/fused_moe.py`
- `vllm/model_executor/layers/quantization/compressed_tensors/compressed_tensors.py`
- `vllm/model_executor/layers/quantization/compressed_tensors/compressed_tensors_moe.py`
- `vllm/model_executor/layers/quantization/utils/w8a8_utils.py`
- `vllm/utils.py`

## Evidence Bundle

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