---
id: pr-flashinfer-2099
repo: flashinfer-ai/flashinfer
pr: 2099
title: '[DSV3] Optimized routing kernels dsv3'
author: nv-yunzheq
date: '2025-11-19'
url: https://github.com/flashinfer-ai/flashinfer/pull/2099
source_category: upstream-code
architectures:
- sm100
tags:
- benchmark_test
- moe_routing
- topk
techniques:
- kernel-fusion
hardware_features: []
kernel_types:
- moe
languages:
- cuda-cpp
captured_at: '2026-05-16'
status: merged
merge_sha: 3a234053930f869676488b551d41af8c6a705e2a
inclusion_reason: Separate routing, permutation, top-k, and expert GEMM costs; keep tail-token and expert-layout tests attached to the idea.
changed_paths:
- csrc/fused_moe/moeTopKFuncs.cuh
- csrc/fused_moe/noAuxTcKernels.cu
- flashinfer/dsv3_ops/__init__.py
- flashinfer/fused_moe/__init__.py
- flashinfer/fused_moe/fused_routing_dsv3.py
- flashinfer/jit/__init__.py
- flashinfer/jit/dsv3_optimizations.py
- include/flashinfer/trtllm/fused_moe/noAuxTcKernels.h
- tests/model_optimizations/test_dsv3_fused_routing.py
artifact_dir: evidence/pull-bundles/flashinfer/gh-2099
head_ref_oid: f45018b1a674b98d96fa8293a3cf45b3761e99e4
---
# [DSV3] Optimized routing kernels dsv3

- Repository: `flashinfer-ai/flashinfer`
- PR: [2099](https://github.com/flashinfer-ai/flashinfer/pull/2099)
- Decision: `Separate routing, permutation, top-k, and expert GEMM costs; keep tail-token and expert-layout tests attached to the idea.`
- Reason: Separate routing, permutation, top-k, and expert GEMM costs; keep tail-token and expert-layout tests attached to the idea.

## Changed Paths

- `csrc/fused_moe/moeTopKFuncs.cuh`
- `csrc/fused_moe/noAuxTcKernels.cu`
- `flashinfer/dsv3_ops/__init__.py`
- `flashinfer/fused_moe/__init__.py`
- `flashinfer/fused_moe/fused_routing_dsv3.py`
- `flashinfer/jit/__init__.py`
- `flashinfer/jit/dsv3_optimizations.py`
- `include/flashinfer/trtllm/fused_moe/noAuxTcKernels.h`
- `tests/model_optimizations/test_dsv3_fused_routing.py`

## Evidence Bundle

`evidence/pull-bundles/flashinfer/gh-2099`
