---
id: pr-vllm-29691
repo: vllm-project/vllm
pr: 29691
title: '[Kernel]Support W4A8 Grouped GEMM on Hopper'
author: czhu-cohere
date: '2025-12-09'
url: https://github.com/vllm-project/vllm/pull/29691
source_category: upstream-code
architectures:
- sm100
- sm90
tags:
- fp8
- gemm
- kernel-fusion
- moe
- quantization
techniques:
- kernel-fusion
hardware_features:
- fp8
kernel_types:
- gemm
- moe
- quantization
languages:
- cuda-cpp
captured_at: '2026-04-27'
status: merged
merge_sha: f6227c22ab8976a24913122874c24624102da1b4
inclusion_reason: kernel file changes
changed_paths:
- CMakeLists.txt
- csrc/ops.h
- csrc/quantization/cutlass_w4a8/get_group_starts.cuh
- csrc/quantization/cutlass_w4a8/w4a8_grouped_mm_entry.cu
- csrc/quantization/cutlass_w4a8/w4a8_mm_entry.cu
- csrc/quantization/cutlass_w4a8/w4a8_utils.cu
- csrc/quantization/cutlass_w4a8/w4a8_utils.cuh
- csrc/quantization/w8a8/cutlass/moe/moe_data.cu
- csrc/quantization/w8a8/cutlass/scaled_mm_entry.cu
- csrc/torch_bindings.cpp
- tests/kernels/quantization/test_cutlass_w4a8.py
- tests/kernels/quantization/test_cutlass_w4a8_moe.py
- vllm/_custom_ops.py
- vllm/model_executor/layers/fused_moe/__init__.py
- vllm/model_executor/layers/fused_moe/config.py
- vllm/model_executor/layers/fused_moe/cutlass_moe.py
- vllm/model_executor/layers/fused_moe/modular_kernel.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/compressed_tensors/schemes/compressed_tensors_w4a8_fp8.py
- vllm/model_executor/layers/quantization/kernels/mixed_precision/cutlass.py
- vllm/model_executor/layers/quantization/utils/quant_utils.py
head_ref_oid: 48d2fbfb2de0f97a6b86f265e2c4cbddcd496f35
artifact_dir: evidence/pull-bundles/vllm/gh-29691
---
# [Kernel]Support W4A8 Grouped GEMM on Hopper

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

## Changed Paths

- `CMakeLists.txt`
- `csrc/ops.h`
- `csrc/quantization/cutlass_w4a8/get_group_starts.cuh`
- `csrc/quantization/cutlass_w4a8/w4a8_grouped_mm_entry.cu`
- `csrc/quantization/cutlass_w4a8/w4a8_mm_entry.cu`
- `csrc/quantization/cutlass_w4a8/w4a8_utils.cu`
- `csrc/quantization/cutlass_w4a8/w4a8_utils.cuh`
- `csrc/quantization/w8a8/cutlass/moe/moe_data.cu`
- `csrc/quantization/w8a8/cutlass/scaled_mm_entry.cu`
- `csrc/torch_bindings.cpp`
- `tests/kernels/quantization/test_cutlass_w4a8.py`
- `tests/kernels/quantization/test_cutlass_w4a8_moe.py`
- `vllm/_custom_ops.py`
- `vllm/model_executor/layers/fused_moe/__init__.py`
- `vllm/model_executor/layers/fused_moe/config.py`
- `vllm/model_executor/layers/fused_moe/cutlass_moe.py`
- `vllm/model_executor/layers/fused_moe/modular_kernel.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/compressed_tensors/schemes/compressed_tensors_w4a8_fp8.py`
- `vllm/model_executor/layers/quantization/kernels/mixed_precision/cutlass.py`
- `vllm/model_executor/layers/quantization/utils/quant_utils.py`

## Evidence Bundle

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