---
id: pr-vllm-24722
repo: vllm-project/vllm
pr: 24722
title: '[Kernel][Quantization] add w4a8 support for marlin kernel'
author: jinzhen-lin
date: '2025-11-29'
url: https://github.com/vllm-project/vllm/pull/24722
source_category: upstream-code
architectures:
- sm100
tags:
- fp4
- fp8
- gemm
- kernel-fusion
- moe
- quantization
techniques:
- kernel-fusion
hardware_features:
- fp4
- fp8
kernel_types:
- gemm
- moe
- quantization
languages:
- cuda-cpp
captured_at: '2026-04-27'
status: merged
merge_sha: 1656ad37045579999a5a9ef3b940f945cd92bb4e
inclusion_reason: kernel file changes
changed_paths:
- CMakeLists.txt
- benchmarks/kernels/benchmark_machete.py
- benchmarks/kernels/benchmark_marlin.py
- csrc/moe/marlin_moe_wna16/.gitignore
- csrc/moe/marlin_moe_wna16/generate_kernels.py
- csrc/moe/marlin_moe_wna16/kernel.h
- csrc/moe/marlin_moe_wna16/marlin_template.h
- csrc/moe/marlin_moe_wna16/ops.cu
- csrc/moe/torch_bindings.cpp
- csrc/quantization/gptq_allspark/allspark_qgemm_w8a16.cu
- csrc/quantization/gptq_allspark/allspark_utils.cuh
- csrc/quantization/gptq_marlin/.gitignore
- csrc/quantization/gptq_marlin/awq_marlin_repack.cu
- csrc/quantization/gptq_marlin/dequant.h
- csrc/quantization/gptq_marlin/generate_kernels.py
- csrc/quantization/gptq_marlin/gptq_marlin.cu
- csrc/quantization/gptq_marlin/gptq_marlin_repack.cu
- csrc/quantization/gptq_marlin/kernel.h
- csrc/quantization/gptq_marlin/marlin.cuh
- csrc/quantization/gptq_marlin/marlin_dtypes.cuh
- csrc/quantization/gptq_marlin/marlin_int4_fp8_preprocess.cu
- csrc/quantization/gptq_marlin/marlin_template.h
- csrc/torch_bindings.cpp
- docs/design/moe_kernel_features.md
- tests/kernels/moe/test_moe.py
- tests/kernels/quantization/test_marlin_gemm.py
- tests/kernels/utils.py
- vllm/_custom_ops.py
- vllm/envs.py
- vllm/model_executor/layers/fused_moe/fused_marlin_moe.py
- vllm/model_executor/layers/quantization/auto_round.py
- vllm/model_executor/layers/quantization/awq.py
- vllm/model_executor/layers/quantization/awq_marlin.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_wNa16.py
- vllm/model_executor/layers/quantization/fp8.py
- vllm/model_executor/layers/quantization/gptq_marlin.py
- vllm/model_executor/layers/quantization/hqq_marlin.py
- vllm/model_executor/layers/quantization/kernels/mixed_precision/marlin.py
- vllm/model_executor/layers/quantization/modelopt.py
- vllm/model_executor/layers/quantization/mxfp4.py
- vllm/model_executor/layers/quantization/utils/marlin_utils.py
- vllm/model_executor/layers/quantization/utils/marlin_utils_fp4.py
- vllm/model_executor/layers/quantization/utils/marlin_utils_fp8.py
- vllm/model_executor/layers/quantization/utils/marlin_utils_test.py
head_ref_oid: b11cc08f181d61375099783a86f3d034f5fe98a0
artifact_dir: evidence/pull-bundles/vllm/gh-24722
---
# [Kernel][Quantization] add w4a8 support for marlin kernel

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

## Changed Paths

- `CMakeLists.txt`
- `benchmarks/kernels/benchmark_machete.py`
- `benchmarks/kernels/benchmark_marlin.py`
- `csrc/moe/marlin_moe_wna16/.gitignore`
- `csrc/moe/marlin_moe_wna16/generate_kernels.py`
- `csrc/moe/marlin_moe_wna16/kernel.h`
- `csrc/moe/marlin_moe_wna16/marlin_template.h`
- `csrc/moe/marlin_moe_wna16/ops.cu`
- `csrc/moe/torch_bindings.cpp`
- `csrc/quantization/gptq_allspark/allspark_qgemm_w8a16.cu`
- `csrc/quantization/gptq_allspark/allspark_utils.cuh`
- `csrc/quantization/gptq_marlin/.gitignore`
- `csrc/quantization/gptq_marlin/awq_marlin_repack.cu`
- `csrc/quantization/gptq_marlin/dequant.h`
- `csrc/quantization/gptq_marlin/generate_kernels.py`
- `csrc/quantization/gptq_marlin/gptq_marlin.cu`
- `csrc/quantization/gptq_marlin/gptq_marlin_repack.cu`
- `csrc/quantization/gptq_marlin/kernel.h`
- `csrc/quantization/gptq_marlin/marlin.cuh`
- `csrc/quantization/gptq_marlin/marlin_dtypes.cuh`
- `csrc/quantization/gptq_marlin/marlin_int4_fp8_preprocess.cu`
- `csrc/quantization/gptq_marlin/marlin_template.h`
- `csrc/torch_bindings.cpp`
- `docs/design/moe_kernel_features.md`
- `tests/kernels/moe/test_moe.py`
- `tests/kernels/quantization/test_marlin_gemm.py`
- `tests/kernels/utils.py`
- `vllm/_custom_ops.py`
- `vllm/envs.py`
- `vllm/model_executor/layers/fused_moe/fused_marlin_moe.py`
- `vllm/model_executor/layers/quantization/auto_round.py`
- `vllm/model_executor/layers/quantization/awq.py`
- `vllm/model_executor/layers/quantization/awq_marlin.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_wNa16.py`
- `vllm/model_executor/layers/quantization/fp8.py`
- `vllm/model_executor/layers/quantization/gptq_marlin.py`
- `vllm/model_executor/layers/quantization/hqq_marlin.py`
- `vllm/model_executor/layers/quantization/kernels/mixed_precision/marlin.py`
- `vllm/model_executor/layers/quantization/modelopt.py`
- `vllm/model_executor/layers/quantization/mxfp4.py`
- `vllm/model_executor/layers/quantization/utils/marlin_utils.py`
- `vllm/model_executor/layers/quantization/utils/marlin_utils_fp4.py`
- `vllm/model_executor/layers/quantization/utils/marlin_utils_fp8.py`
- `vllm/model_executor/layers/quantization/utils/marlin_utils_test.py`

## Evidence Bundle

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