---
id: pr-vllm-36022
repo: vllm-project/vllm
pr: 36022
title: '[Kernel] Add FlashInfer MoE A2A Kernel'
author: leo-cf-tian
date: '2026-03-16'
url: https://github.com/vllm-project/vllm/pull/36022
source_category: upstream-code
architectures:
- sm100
tags:
- gemm
- kernel-fusion
- moe
techniques:
- kernel-fusion
hardware_features: []
kernel_types:
- gemm
- moe
languages:
- cuda-cpp
captured_at: '2026-04-27'
status: merged
merge_sha: 2754231ba3a72f41e62922d1552c33e8f3f6a9d1
inclusion_reason: kernel file changes
changed_paths:
- docs/design/moe_kernel_features.md
- docs/serving/expert_parallel_deployment.md
- tests/kernels/moe/modular_kernel_tools/mk_objects.py
- vllm/config/parallel.py
- vllm/distributed/device_communicators/all2all.py
- vllm/distributed/device_communicators/cuda_communicator.py
- vllm/distributed/device_communicators/mnnvl_compat.py
- vllm/model_executor/layers/fused_moe/all2all_utils.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/flashinfer_nvlink_one_sided_prepare_finalize.py
- vllm/model_executor/layers/fused_moe/flashinfer_nvlink_two_sided_prepare_finalize.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/rocm_aiter_fused_moe.py
- vllm/model_executor/layers/fused_moe/runner/default_moe_runner.py
- vllm/utils/flashinfer.py
head_ref_oid: d7930ed4baf6f149783d0717c722fab498bf85c5
artifact_dir: evidence/pull-bundles/vllm/gh-36022
---
# [Kernel] Add FlashInfer MoE A2A Kernel

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

## Changed Paths

- `docs/design/moe_kernel_features.md`
- `docs/serving/expert_parallel_deployment.md`
- `tests/kernels/moe/modular_kernel_tools/mk_objects.py`
- `vllm/config/parallel.py`
- `vllm/distributed/device_communicators/all2all.py`
- `vllm/distributed/device_communicators/cuda_communicator.py`
- `vllm/distributed/device_communicators/mnnvl_compat.py`
- `vllm/model_executor/layers/fused_moe/all2all_utils.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/flashinfer_nvlink_one_sided_prepare_finalize.py`
- `vllm/model_executor/layers/fused_moe/flashinfer_nvlink_two_sided_prepare_finalize.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/rocm_aiter_fused_moe.py`
- `vllm/model_executor/layers/fused_moe/runner/default_moe_runner.py`
- `vllm/utils/flashinfer.py`

## Evidence Bundle

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