---
id: pr-vllm-14568
repo: vllm-project/vllm
pr: 14568
title: permute/unpermute kernel for moe optimization
author: CalebDu
date: '2025-05-02'
url: https://github.com/vllm-project/vllm/pull/14568
source_category: upstream-code
architectures:
- sm100
tags:
- fp8
- gemm
- grouped-gemm
- kernel-fusion
- moe
- quantization
techniques:
- kernel-fusion
hardware_features:
- fp8
kernel_types:
- gemm
- grouped-gemm
- moe
- quantization
languages:
- cuda-cpp
captured_at: '2026-04-27'
status: merged
merge_sha: 3e887d2e0c1fcd65efbfe02db8a824c761fe4d41
inclusion_reason: kernel file changes
changed_paths:
- CMakeLists.txt
- benchmarks/kernels/benchmark_grouped_gemm_cutlass.py
- benchmarks/kernels/benchmark_moe.py
- benchmarks/kernels/benchmark_moe_permute_unpermute.py
- csrc/moe/moe_permute_unpermute_op.cu
- csrc/moe/permute_unpermute_kernels/dispatch.h
- csrc/moe/permute_unpermute_kernels/moe_permute_unpermute_kernel.cu
- csrc/moe/permute_unpermute_kernels/moe_permute_unpermute_kernel.h
- csrc/moe/permute_unpermute_kernels/moe_permute_unpermute_kernel.inl
- csrc/moe/torch_bindings.cpp
- tests/kernels/moe/test_moe.py
- tests/kernels/moe/test_moe_permute_unpermute.py
- tests/kernels/quantization/test_awq_marlin.py
- tests/kernels/quantization/test_block_fp8.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/layer.py
- vllm/model_executor/layers/fused_moe/moe_permute_unpermute.py
- vllm/model_executor/models/arctic.py
head_ref_oid: b29bacff7e256583a22e7c320c8923f6deff517c
artifact_dir: evidence/pull-bundles/vllm/gh-14568
---
# permute/unpermute kernel for moe optimization

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

## Changed Paths

- `CMakeLists.txt`
- `benchmarks/kernels/benchmark_grouped_gemm_cutlass.py`
- `benchmarks/kernels/benchmark_moe.py`
- `benchmarks/kernels/benchmark_moe_permute_unpermute.py`
- `csrc/moe/moe_permute_unpermute_op.cu`
- `csrc/moe/permute_unpermute_kernels/dispatch.h`
- `csrc/moe/permute_unpermute_kernels/moe_permute_unpermute_kernel.cu`
- `csrc/moe/permute_unpermute_kernels/moe_permute_unpermute_kernel.h`
- `csrc/moe/permute_unpermute_kernels/moe_permute_unpermute_kernel.inl`
- `csrc/moe/torch_bindings.cpp`
- `tests/kernels/moe/test_moe.py`
- `tests/kernels/moe/test_moe_permute_unpermute.py`
- `tests/kernels/quantization/test_awq_marlin.py`
- `tests/kernels/quantization/test_block_fp8.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/layer.py`
- `vllm/model_executor/layers/fused_moe/moe_permute_unpermute.py`
- `vllm/model_executor/models/arctic.py`

## Evidence Bundle

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