跳转至

MoE

本页暂无中文版。以下为英文原文。

12 ops, 132 workloads.

One table per op, one row per workload. Ratio is the fastest other implementation's device time divided by ours, so green is faster than it, plain is level with it, red is slower. Times are in ms. How these numbers are taken.

FusedMoEFwd

hidden_states: [T, H]gating_output: [T, E], f32w_gate_up: [E, 2 * F, H]w_down: [E, H, F]

top_k=8renormalize=true

  • qwen3-235b-decodehidden_states: [512, 4096]gating_output: [512, 128], f32w_gate_up: [128, 3072, 4096]w_down: [128, 4096, 1536]dtype=bf16, f16
  • qwen3-235b-prefillhidden_states: [4096, 4096]gating_output: [4096, 128], f32w_gate_up: [128, 3072, 4096]w_down: [128, 4096, 1536]dtype=bf16
  • qwen3-30b-decode-b1hidden_states: [1, 2048]gating_output: [1, 128], f32w_gate_up: [128, 1536, 2048]w_down: [128, 2048, 768]dtype=bf16
  • qwen3-30b-decode-b32hidden_states: [32, 2048]gating_output: [32, 128], f32w_gate_up: [128, 1536, 2048]w_down: [128, 2048, 768]dtype=bf16

hidden_states: [T, H]gating_output: [T, E], f32w_gate_up: [E, 2 * F, H]w_down: [E, H, F]correction_bias: [E], f32

top_k=8scoring_func=sigmoidrenormalize=truedtype=bf16

  • ds-v3-grouped-decodehidden_states: [512, 7168]gating_output: [512, 256], f32w_gate_up: [256, 4096, 7168]w_down: [256, 7168, 2048]correction_bias: [256], f32num_expert_group=8topk_group=4routed_scaling_factor=2.5
  • ds-v3-grouped-prefillhidden_states: [4096, 7168]gating_output: [4096, 256], f32w_gate_up: [256, 4096, 7168]w_down: [256, 7168, 2048]correction_bias: [256], f32num_expert_group=8topk_group=4routed_scaling_factor=2.5
  • kimi-k2-decodehidden_states: [512, 7168]gating_output: [512, 256], f32w_gate_up: [256, 4096, 7168]w_down: [256, 7168, 2048]correction_bias: [256], f32routed_scaling_factor=2.827
  • kimi-k2-prefillhidden_states: [4096, 7168]gating_output: [4096, 256], f32w_gate_up: [256, 4096, 7168]w_down: [256, 7168, 2048]correction_bias: [256], f32routed_scaling_factor=2.827
Workload dtype Ratio Device time Alternatives Throughput SOL Bound
alt / ours ms name ms TFLOP/s of ceiling by
qwen3-235b-decodebf161.01×1.2042vllm
flashinfer-cutlass
1.2195
12.9682
12889%mem
f161.01×1.2004vllm
flashinfer-cutlass
1.2179
13.0539
12990%mem
qwen3-235b-prefillbf161.22×2.5018vllm
flashinfer-cutlass
3.0587
20.3113
49565%comp
qwen3-30b-decode-b1bf161.04×0.0396vllm
flashinfer-cutlass
0.0413
1.7471
1.9142%mem
qwen3-30b-decode-b32bf161.03×0.2656vllm
flashinfer-cutlass
0.2733
3.3502
9.1188%mem
ds-v3-grouped-decodebf161.01×3.7285vllm
flashinfer-cutlass
3.7556
41.2632
96.891%mem
ds-v3-grouped-prefillbf161.22×7.1078vllm
flashinfer-cutlass
8.6549
61.3657
40656%mem
kimi-k2-decodebf161.02×3.6029vllm
flashinfer-cutlass
3.6846
41.0826
10091%mem
kimi-k2-prefillbf161.21×6.9423vllm
flashinfer-cutlass
8.3939
60.6928
41655%mem

FusedMoESharedExpertFwd

hidden_states: [T, H]gating_output: [T, E], f32w_gate_up: [E, 2 * F, H]w_down: [E, H, F]correction_bias: [E], f32shared_w_gate_up: [2 * S, H]shared_w_down: [H, S]

top_k=8scoring_func=sigmoidrenormalize=true

  • kimi-k2-t1hidden_states: [1, 7168]gating_output: [1, 384], f32w_gate_up: [384, 4096, 7168]w_down: [384, 7168, 2048]correction_bias: [384], f32shared_w_gate_up: [36864, 7168]shared_w_down: [7168, 18432]routed_scaling_factor=2.827dtype=bf16
  • kimi-k2-t32hidden_states: [32, 7168]gating_output: [32, 384], f32w_gate_up: [384, 4096, 7168]w_down: [384, 7168, 2048]correction_bias: [384], f32shared_w_gate_up: [36864, 7168]shared_w_down: [7168, 18432]routed_scaling_factor=2.827dtype=bf16
  • kimi-k2-t64hidden_states: [64, 7168]gating_output: [64, 384], f32w_gate_up: [384, 4096, 7168]w_down: [384, 7168, 2048]correction_bias: [384], f32shared_w_gate_up: [36864, 7168]shared_w_down: [7168, 18432]routed_scaling_factor=2.827dtype=bf16
  • kimi-k2-t128hidden_states: [128, 7168]gating_output: [128, 384], f32w_gate_up: [384, 4096, 7168]w_down: [384, 7168, 2048]correction_bias: [384], f32shared_w_gate_up: [36864, 7168]shared_w_down: [7168, 18432]routed_scaling_factor=2.827dtype=bf16
  • kimi-k2-t512hidden_states: [512, 7168]gating_output: [512, 384], f32w_gate_up: [384, 4096, 7168]w_down: [384, 7168, 2048]correction_bias: [384], f32shared_w_gate_up: [36864, 7168]shared_w_down: [7168, 18432]routed_scaling_factor=2.827dtype=bf16
  • kimi-k2-t2048hidden_states: [2048, 7168]gating_output: [2048, 384], f32w_gate_up: [384, 4096, 7168]w_down: [384, 7168, 2048]correction_bias: [384], f32shared_w_gate_up: [36864, 7168]shared_w_down: [7168, 18432]routed_scaling_factor=2.827dtype=bf16
  • kimi-k2-t4096hidden_states: [4096, 7168]gating_output: [4096, 384], f32w_gate_up: [384, 4096, 7168]w_down: [384, 7168, 2048]correction_bias: [384], f32shared_w_gate_up: [36864, 7168]shared_w_down: [7168, 18432]routed_scaling_factor=2.827dtype=bf16
  • ds-v3-grouped-t1hidden_states: [1, 7168]gating_output: [1, 256], f32w_gate_up: [256, 4096, 7168]w_down: [256, 7168, 2048]correction_bias: [256], f32shared_w_gate_up: [4096, 7168]shared_w_down: [7168, 2048]num_expert_group=8topk_group=4routed_scaling_factor=2.5dtype=bf16
  • ds-v3-grouped-t32hidden_states: [32, 7168]gating_output: [32, 256], f32w_gate_up: [256, 4096, 7168]w_down: [256, 7168, 2048]correction_bias: [256], f32shared_w_gate_up: [4096, 7168]shared_w_down: [7168, 2048]num_expert_group=8topk_group=4routed_scaling_factor=2.5dtype=bf16, f16
  • ds-v3-grouped-t64hidden_states: [64, 7168]gating_output: [64, 256], f32w_gate_up: [256, 4096, 7168]w_down: [256, 7168, 2048]correction_bias: [256], f32shared_w_gate_up: [4096, 7168]shared_w_down: [7168, 2048]num_expert_group=8topk_group=4routed_scaling_factor=2.5dtype=bf16
  • ds-v3-grouped-t128hidden_states: [128, 7168]gating_output: [128, 256], f32w_gate_up: [256, 4096, 7168]w_down: [256, 7168, 2048]correction_bias: [256], f32shared_w_gate_up: [4096, 7168]shared_w_down: [7168, 2048]num_expert_group=8topk_group=4routed_scaling_factor=2.5dtype=bf16
  • ds-v3-grouped-t512hidden_states: [512, 7168]gating_output: [512, 256], f32w_gate_up: [256, 4096, 7168]w_down: [256, 7168, 2048]correction_bias: [256], f32shared_w_gate_up: [4096, 7168]shared_w_down: [7168, 2048]num_expert_group=8topk_group=4routed_scaling_factor=2.5dtype=bf16
  • ds-v3-grouped-t2048hidden_states: [2048, 7168]gating_output: [2048, 256], f32w_gate_up: [256, 4096, 7168]w_down: [256, 7168, 2048]correction_bias: [256], f32shared_w_gate_up: [4096, 7168]shared_w_down: [7168, 2048]num_expert_group=8topk_group=4routed_scaling_factor=2.5dtype=bf16
  • ds-v3-grouped-t4096hidden_states, shared_w_gate_up: [4096, 7168]gating_output: [4096, 256], f32w_gate_up: [256, 4096, 7168]w_down: [256, 7168, 2048]correction_bias: [256], f32shared_w_down: [7168, 2048]num_expert_group=8topk_group=4routed_scaling_factor=2.5dtype=bf16
  • glm45-t1hidden_states: [1, 5120]gating_output: [1, 160], f32w_gate_up: [160, 3072, 5120]w_down: [160, 5120, 1536]correction_bias: [160], f32shared_w_gate_up: [3072, 5120]shared_w_down: [5120, 1536]routed_scaling_factor=2.5dtype=bf16
  • glm45-t32hidden_states: [32, 5120]gating_output: [32, 160], f32w_gate_up: [160, 3072, 5120]w_down: [160, 5120, 1536]correction_bias: [160], f32shared_w_gate_up: [3072, 5120]shared_w_down: [5120, 1536]routed_scaling_factor=2.5dtype=bf16
  • glm45-t64hidden_states: [64, 5120]gating_output: [64, 160], f32w_gate_up: [160, 3072, 5120]w_down: [160, 5120, 1536]correction_bias: [160], f32shared_w_gate_up: [3072, 5120]shared_w_down: [5120, 1536]routed_scaling_factor=2.5dtype=bf16
  • glm45-t128hidden_states: [128, 5120]gating_output: [128, 160], f32w_gate_up: [160, 3072, 5120]w_down: [160, 5120, 1536]correction_bias: [160], f32shared_w_gate_up: [3072, 5120]shared_w_down: [5120, 1536]routed_scaling_factor=2.5dtype=bf16
  • glm45-t512hidden_states: [512, 5120]gating_output: [512, 160], f32w_gate_up: [160, 3072, 5120]w_down: [160, 5120, 1536]correction_bias: [160], f32shared_w_gate_up: [3072, 5120]shared_w_down: [5120, 1536]routed_scaling_factor=2.5dtype=bf16
  • glm45-t2048hidden_states: [2048, 5120]gating_output: [2048, 160], f32w_gate_up: [160, 3072, 5120]w_down: [160, 5120, 1536]correction_bias: [160], f32shared_w_gate_up: [3072, 5120]shared_w_down: [5120, 1536]routed_scaling_factor=2.5dtype=bf16
  • glm45-t4096hidden_states: [4096, 5120]gating_output: [4096, 160], f32w_gate_up: [160, 3072, 5120]w_down: [160, 5120, 1536]correction_bias: [160], f32shared_w_gate_up: [3072, 5120]shared_w_down: [5120, 1536]routed_scaling_factor=2.5dtype=bf16

hidden_states: [T, H]gating_output: [T, E], f32w_gate_up: [E, 2 * F, H]w_down: [E, H, F]

  • qwen3-235b-t512hidden_states: [512, 4096]gating_output: [512, 128], f32w_gate_up: [128, 3072, 4096]w_down: [128, 4096, 1536]top_k=8renormalize=truedtype=bf16
Workload dtype Ratio Device time Alternatives Throughput SOL Bound
alt / ours ms name ms TFLOP/s of ceiling by
kimi-k2-t1bf161.05×0.3858vllm
flashinfer-cutlass
0.4069
31.6349
3.8886%mem
kimi-k2-t32bf161.00×2.3044vllm
flashinfer-cutlass
2.3114
43.9815
20.898%mem
kimi-k2-t64bf161.00×2.9120vllm
flashinfer-cutlass
2.9263
47.9848
32.997%mem
kimi-k2-t128bf161.00×3.5305vllm
flashinfer-cutlass
3.5384
50.3655
54.395%mem
kimi-k2-t512bf161.01×5.0723vllm
flashinfer-cutlass
5.1333
56.6982
15186%mem
kimi-k2-t2048bf161.07×8.5828vllm
flashinfer-cutlass
9.1615
66.3708
35757%mem
kimi-k2-t4096bf161.12×12.8296vllm
flashinfer-cutlass
14.4330
83.3147
47863%comp
ds-v3-grouped-t1bf161.13×0.2106vllm
flashinfer-cutlass
0.2380
21.3874
3.7684%mem
ds-v3-grouped-t32bf161.00×2.1154vllm
flashinfer-cutlass
2.1242
33.7453
1299%mem
f161.00×2.1155vllm
flashinfer-cutlass
2.1258
33.7535
1299%mem
ds-v3-grouped-t64bf161.00×2.4982vllm
flashinfer-cutlass
2.4986
35.8025
20.399%mem
ds-v3-grouped-t128bf161.01×3.0030vllm
flashinfer-cutlass
3.0242
38.4954
33.896%mem
ds-v3-grouped-t512bf161.02×3.9543vllm
flashinfer-cutlass
4.0385
42.8967
10391%mem
ds-v3-grouped-t2048bf161.10×5.7451vllm
flashinfer-cutlass
6.3275
51.0606
28370%mem
ds-v3-grouped-t4096bf161.20×7.8860vllm
flashinfer-cutlass
9.4558
62.5880
41254%comp
glm45-t1bf161.11×0.1317vllm
flashinfer-cutlass
0.1459
7.4850
3.2372%mem
glm45-t32bf161.02×0.8389vllm
flashinfer-cutlass
0.8570
12.3194
16.295%mem
glm45-t64bf161.00×0.9949vllm
flashinfer-cutlass
0.9995
13.0568
27.393%mem
glm45-t128bf161.04×1.1947vllm
flashinfer-cutlass
1.2484
14.0787
45.592%mem
glm45-t512bf161.01×1.5990vllm
flashinfer-cutlass
1.6214
15.4943
13685%mem
glm45-t2048bf161.17×2.4754vllm
flashinfer-cutlass
2.9013
20.1323
35160%mem
glm45-t4096bf161.22×3.7208vllm
flashinfer-cutlass
4.5399
26.6657
46862%comp
qwen3-235b-t512bf161.02×1.1995vllm
flashinfer-cutlass
1.2177
12.9531
12990%mem

FusedTopKFwd

gating_output: [T, E]

top_k=8renormalize=true

  • kimi-k2-t32gating_output: [32, 384]scoring_func=sigmoiddtype=bf16
  • kimi-k2-t512gating_output: [512, 384]scoring_func=sigmoiddtype=bf16
  • kimi-k2-t4096gating_output: [4096, 384]scoring_func=sigmoiddtype=bf16
  • qwen3-235b-t32gating_output: [32, 128]dtype=bf16
  • qwen3-235b-t512gating_output: [512, 128]dtype=bf16, f16, f32
  • qwen3-235b-t4096gating_output: [4096, 128]dtype=bf16

gating_output: [T, E]correction_bias: [E], f32

top_k=8scoring_func=sigmoidrenormalize=true

  • kimi-k2-t512-biasgating_output: [512, 384]correction_bias: [384], f32dtype=bf16, f16, f32
  • ds-v3-grouped-t1gating_output: [1, 256]correction_bias: [256], f32num_expert_group=8topk_group=4routed_scaling_factor=2.5dtype=bf16
  • ds-v3-grouped-t32gating_output: [32, 256]correction_bias: [256], f32num_expert_group=8topk_group=4routed_scaling_factor=2.5dtype=bf16
  • ds-v3-grouped-t64gating_output: [64, 256]correction_bias: [256], f32num_expert_group=8topk_group=4routed_scaling_factor=2.5dtype=bf16, f16, f32
  • ds-v3-grouped-t4096gating_output: [4096, 256]correction_bias: [256], f32num_expert_group=8topk_group=4routed_scaling_factor=2.5dtype=bf16
Workload dtype Ratio Device time Alternatives Throughput SOL Bound
alt / ours ms name ms TFLOP/s of ceiling by
kimi-k2-t32bf163.02×0.00326vllm0.009860.04530%lat
kimi-k2-t512bf162.92×0.00362vllm0.01060.6553%lat
kimi-k2-t4096bf162.27×0.0106vllm0.02411.787%lat
qwen3-235b-t32bf162.98×0.00282vllm0.008380.01620%lat
qwen3-235b-t512bf163.00×0.00304vllm0.009120.241%lat
f162.98×0.00304vllm0.009060.241%lat
f321.82×0.00307vllm0.00560.2372%lat
qwen3-235b-t4096bf162.47×0.00659vllm0.01630.8854%lat
kimi-k2-t512-biasbf162.63×0.00419vllm0.01100.6122%lat
f162.62×0.00419vllm0.01100.6122%lat
f321.67×0.00432vllm0.00720.5944%lat
ds-v3-grouped-t1bf161.15×0.00355vllm0.00410.001170%lat
ds-v3-grouped-t32bf161.21×0.00355vllm0.004290.03750%lat
ds-v3-grouped-t64bf161.19×0.00365vllm0.004350.0730%lat
f161.20×0.00362vllm0.004350.07360%lat
f321.20×0.00362vllm0.004350.07360%lat
ds-v3-grouped-t4096bf161.49×0.0120vllm0.01801.424%lat

MoEPrePermuteFwd

hidden_states: [T, H]local_expert_ids: [T, K], i32

layout=contiguous(packing=tight,metadata_kind=physical_psum,alignment=1)

  • decode-t32hidden_states: [32, 128]local_expert_ids: [32, 2], i32num_local_experts=4dtype=f16, bf16
  • prefill-t512hidden_states: [512, 128]local_expert_ids: [512, 2], i32num_local_experts=4dtype=f16, bf16
  • ds-v3-ep8-t100hidden_states: [100, 7168]local_expert_ids: [100, 8], i32num_local_experts=32dtype=f16, bf16
  • qwen3-30b-ep8-b1hidden_states: [1, 2048]local_expert_ids: [1, 8], i32num_local_experts=16dtype=bf16
Workload dtype Ratio Device time Alternatives Throughput SOL Bound
alt / ours ms name ms TFLOP/s of ceiling by
decode-t32f163.61×0.00278vllm
torch-ref
0.0100
0.0251
·0%lat
bf163.68×0.00282vllm
torch-ref
0.0104
0.0260
·0%lat
prefill-t512f163.44×0.00358vllm
torch-ref
0.0123
0.0673
·2%lat
bf163.44×0.00358vllm
torch-ref
0.0123
0.0672
·2%lat
ds-v3-ep8-t100f162.41×0.00762vllm
torch-ref
0.0183
0.0660
·38%lat
bf162.41×0.00762vllm
torch-ref
0.0183
0.0660
·38%lat
qwen3-30b-ep8-b1bf163.46×0.00278vllm
torch-ref
0.00963
0.0234
·0%lat

MoEPermuteAlignFwd

topk_ids: [T, K]

dtype=i32

  • kimi-k2-t1topk_ids: [1, 8]num_experts=384
  • kimi-k2-t32topk_ids: [32, 8]num_experts=384
  • kimi-k2-t512topk_ids: [512, 8]num_experts=384
  • kimi-k2-t4096topk_ids: [4096, 8]num_experts=384
  • ds-v3-t1topk_ids: [1, 8]num_experts=256
  • ds-v3-t32topk_ids: [32, 8]num_experts=256
  • ds-v3-t512topk_ids: [512, 8]num_experts=256
  • ds-v3-t4096topk_ids: [4096, 8]num_experts=256
  • qwen3-235b-t1topk_ids: [1, 8]num_experts=128
  • qwen3-235b-t32topk_ids: [32, 8]num_experts=128
  • qwen3-235b-t512topk_ids: [512, 8]num_experts=128
  • qwen3-235b-t4096topk_ids: [4096, 8]num_experts=128
Workload dtype Ratio Device time Alternatives Throughput SOL Bound
alt / ours ms name ms TFLOP/s of ceiling by
kimi-k2-t1i321.22×0.00422vllm
triton
0.00515
0.0460
·1%lat
kimi-k2-t32i321.18×0.00493vllm
triton
0.00579
0.0477
·0%lat
kimi-k2-t512i321.43×0.00547vllm
triton
0.00781
0.0553
·1%lat
kimi-k2-t4096i322.82×0.00925vllm
triton
0.0260
0.0842
·1%lat
ds-v3-t1i321.16×0.00451vllm
triton
0.00525
0.0327
·0%lat
ds-v3-t32i321.15×0.00486vllm
triton
0.0056
0.0319
·0%lat
ds-v3-t512i321.48×0.00541vllm
triton
0.00798
0.0415
·0%lat
ds-v3-t4096i323.14×0.00899vllm
triton
0.0282
0.0752
·1%lat
qwen3-235b-t1i321.18×0.00438vllm
triton
0.00518
0.0165
·0%lat
qwen3-235b-t32i321.18×0.0047vllm
triton
0.00557
0.0172
·0%lat
qwen3-235b-t512i321.44×0.00518vllm
triton
0.00749
0.0293
·0%lat
qwen3-235b-t4096i323.13×0.00826vllm
triton
0.0259
0.0788
·1%lat

MoEPostPermuteFwd

expert_output: [P, H]topk_weights: [T, K], f32inverse_indices: [T * K], i32

layout=contiguous(packing=tight,metadata_kind=physical_psum,alignment=1)

  • decode-t32expert_output: [64, 128]topk_weights: [32, 2], f32inverse_indices: [64], i32dtype=f16, bf16, f16/f16, bf16/bf16
  • prefill-t512expert_output: [1024, 128]topk_weights: [512, 2], f32inverse_indices: [1024], i32dtype=f16, bf16
  • ds-v3-ep8-t100expert_output: [800, 7168]topk_weights: [100, 8], f32inverse_indices: [800], i32dtype=f16, bf16
  • qwen3-30b-ep8-b1expert_output: [8, 2048]topk_weights: [1, 8], f32inverse_indices: [8], i32dtype=bf16
Workload dtype Ratio Device time Alternatives Throughput SOL Bound
alt / ours ms name ms TFLOP/s of ceiling by
decode-t32f161.42×0.00176vllm
torch-ref
0.0025
0.0137
0.009310%lat
bf161.38×0.00179vllm
torch-ref
0.00248
0.0136
0.009150%lat
f16/f161.39×0.00179vllm
torch-ref
0.0025
0.0137
0.009140%lat
bf16/bf161.39×0.00179vllm
torch-ref
0.0025
0.0136
0.009140%lat
prefill-t512f161.29×0.00224vllm
torch-ref
0.00288
0.0177
0.1174%lat
bf161.29×0.00224vllm
torch-ref
0.00288
0.0177
0.1174%lat
ds-v3-ep8-t100f163.22×0.00608vllm
torch-ref
0.0196
0.0605
1.8947%lat
bf163.19×0.00614vllm
torch-ref
0.0196
0.0610
1.8747%lat
qwen3-30b-ep8-b1bf162.52×0.00211vllm
torch-ref
0.00531
0.0139
0.01550%lat

MoEGroupedGemmFwd

a: [P, K]b: [E, N, K]layout_metadata: [E], i32

layout=contiguous(packing=tight,metadata_kind=physical_psum,alignment=1)

  • ds-v3-decode-mlp-upa: [4096, 7168]b: [256, 4096, 7168]layout_metadata: [256], i32dtype=bf16, f16
  • ds-v3-prefill-mlp-upa: [32768, 7168]b: [256, 4096, 7168]layout_metadata: [256], i32dtype=bf16
  • ds-v3-decode-downa: [4096, 2048]b: [256, 7168, 2048]layout_metadata: [256], i32dtype=bf16, bf16/f32
  • ds-v3-prefill-downa: [32768, 2048]b: [256, 7168, 2048]layout_metadata: [256], i32dtype=bf16
  • qwen3-30b-ep8-decodea: [8, 2048]b: [16, 1536, 2048]layout_metadata: [16], i32dtype=bf16
  • qwen3-30b-ep8-routed256a: [256, 2048]b: [16, 1536, 2048]layout_metadata: [16], i32dtype=bf16

a: [P, K]b: [E, 2 * N, K]layout_metadata: [E], i32

activation=silu_and_mullayout=contiguous(packing=tight,metadata_kind=physical_psum,alignment=1)dtype=bf16

  • ds-v3-decode-swiglua: [4096, 7168]b: [256, 4096, 7168]layout_metadata: [256], i32
  • ds-v3-prefill-swiglua: [32768, 7168]b: [256, 4096, 7168]layout_metadata: [256], i32

a: [E, layout.max_m, K]b: [E, N, K]layout_metadata: [E], i32

  • ds-v3-ep8-maskeda: [32, 128, 7168]b: [32, 4096, 7168]layout_metadata: [32], i32dtype=bf16
Workload dtype Ratio Device time Alternatives Throughput SOL Bound
alt / ours ms name ms TFLOP/s of ceiling by
ds-v3-decode-mlp-upbf161.36×3.4318torch-grouped-mm4.678070.198%mem
f161.48×3.4407torch-grouped-mm5.077669.998%mem
ds-v3-prefill-mlp-upbf161.09×3.9855torch-grouped-mm4.355248388%mem
ds-v3-decode-downbf161.29×1.7814torch-grouped-mm2.296567.595%mem
bf16/f32—1.7978··66.995%mem
ds-v3-prefill-downbf161.18×2.0244torch-grouped-mm2.380147589%mem
qwen3-30b-ep8-decodebf161.35×0.0238torch-grouped-mm0.03212.1147%mem
qwen3-30b-ep8-routed256bf161.30×0.0348torch-grouped-mm0.045346.365%mem
ds-v3-decode-swiglubf161.38×3.4283torch-grouped-mm4.724570.298%mem
ds-v3-prefill-swiglubf161.19×3.9920torch-grouped-mm4.768548287%mem
ds-v3-ep8-maskedbf16—0.4851··37289%mem

MoEGroupedGemmFP8Fwd

a: [E, layout.max_m, K]a_scale: [E, layout.max_m, ceil_div(K, 128)], f32b: [E, N, K]b_scale: [E, ceil_div(N, 128), ceil_div(K, 128)], f32layout_metadata: [E], i32

dtype=fp8e4m3

  • ds-v3-e8-up-maskeda: [8, 128, 7168]a_scale: [8, 128, 56], f32b: [8, 4096, 7168]b_scale: [8, 32, 56], f32layout_metadata: [8], i32T=768
  • ds-v3-e8-down-maskeda: [8, 128, 2048]a_scale: [8, 128, 16], f32b: [8, 7168, 2048]b_scale: [8, 56, 16], f32layout_metadata: [8], i32T=768
  • ds-v3-dec-b64-upa: [32, 64, 7168]a_scale: [32, 64, 56], f32b: [32, 4096, 7168]b_scale: [32, 32, 56], f32layout_metadata: [32], i32T=64
  • ds-v3-dec-b64-downa: [32, 64, 2048]a_scale: [32, 64, 16], f32b: [32, 7168, 2048]b_scale: [32, 56, 16], f32layout_metadata: [32], i32T=64
  • ds-v3-dec-b256-upa: [32, 256, 7168]a_scale: [32, 256, 56], f32b: [32, 4096, 7168]b_scale: [32, 32, 56], f32layout_metadata: [32], i32T=256
  • ds-v3-dec-b256-downa: [32, 256, 2048]a_scale: [32, 256, 16], f32b: [32, 7168, 2048]b_scale: [32, 56, 16], f32layout_metadata: [32], i32T=256
  • qwen3-235b-dec-b64-upa: [16, 64, 4096]a_scale: [16, 64, 32], f32b: [16, 3072, 4096]b_scale: [16, 24, 32], f32layout_metadata: [16], i32T=64
  • qwen3-235b-dec-b64-downa: [16, 64, 1536]a_scale: [16, 64, 12], f32b: [16, 4096, 1536]b_scale: [16, 32, 12], f32layout_metadata: [16], i32T=64
  • qwen3-235b-dec-b256-upa: [16, 256, 4096]a_scale: [16, 256, 32], f32b: [16, 3072, 4096]b_scale: [16, 24, 32], f32layout_metadata: [16], i32T=256
  • qwen3-235b-dec-b256-downa: [16, 256, 1536]a_scale: [16, 256, 12], f32b: [16, 4096, 1536]b_scale: [16, 32, 12], f32layout_metadata: [16], i32T=256
  • kimi-k2-dec-b64-upa: [48, 64, 7168]a_scale: [48, 64, 56], f32b: [48, 4096, 7168]b_scale: [48, 32, 56], f32layout_metadata: [48], i32T=64
  • kimi-k2-dec-b64-downa: [48, 64, 2048]a_scale: [48, 64, 16], f32b: [48, 7168, 2048]b_scale: [48, 56, 16], f32layout_metadata: [48], i32T=64
  • kimi-k2-dec-b256-upa: [48, 256, 7168]a_scale: [48, 256, 56], f32b: [48, 4096, 7168]b_scale: [48, 32, 56], f32layout_metadata: [48], i32T=256
  • kimi-k2-dec-b256-downa: [48, 256, 2048]a_scale: [48, 256, 16], f32b: [48, 7168, 2048]b_scale: [48, 56, 16], f32layout_metadata: [48], i32T=256
Workload dtype Ratio Device time Alternatives Throughput SOL Bound
alt / ours ms name ms TFLOP/s of ceiling by
ds-v3-e8-up-maskedfp8e4m30.98×0.0743deepgemm0.072860774%mem
ds-v3-e8-down-maskedfp8e4m31.00×0.0424deepgemm0.042453268%mem
ds-v3-dec-b64-upfp8e4m31.02×0.2266deepgemm0.231816.681%mem
ds-v3-dec-b64-downfp8e4m31.04×0.1157deepgemm0.120916.279%mem
ds-v3-dec-b256-upfp8e4m31.01×0.2420deepgemm0.244462.187%mem
ds-v3-dec-b256-downfp8e4m31.02×0.1309deepgemm0.133857.480%mem
qwen3-235b-dec-b64-upfp8e4m31.02×0.0598deepgemm0.060926.975%mem
qwen3-235b-dec-b64-downfp8e4m31.05×0.0351deepgemm0.036822.964%mem
qwen3-235b-dec-b256-upfp8e4m31.01×0.0605deepgemm0.061210675%mem
qwen3-235b-dec-b256-downfp8e4m31.03×0.0358deepgemm0.03709064%mem
kimi-k2-dec-b64-upfp8e4m31.02×0.2638deepgemm0.268314.287%mem
kimi-k2-dec-b64-downfp8e4m31.04×0.1430deepgemm0.149313.180%mem
kimi-k2-dec-b256-upfp8e4m31.01×0.3545deepgemm0.356842.489%mem
kimi-k2-dec-b256-downfp8e4m31.01×0.1892deepgemm0.190639.783%mem

MoEExpertMLPFwd

expert_input: [P, H]w_gate_up: [E, 2 * F, H]w_down: [E, H, F]layout_metadata: [E], i32

layout=contiguous(packing=tight,metadata_kind=physical_psum,alignment=1)dtype=f16, bf16

  • qwen3-235b-decodeexpert_input: [4096, 4096]w_gate_up: [128, 3072, 4096]w_down: [128, 4096, 1536]layout_metadata: [128], i32
  • qwen3-235b-prefillexpert_input: [32768, 4096]w_gate_up: [128, 3072, 4096]w_down: [128, 4096, 1536]layout_metadata: [128], i32
  • ds-v3-decodeexpert_input: [4096, 7168]w_gate_up: [256, 4096, 7168]w_down: [256, 7168, 2048]layout_metadata: [256], i32
  • ds-v3-prefillexpert_input: [32768, 7168]w_gate_up: [256, 4096, 7168]w_down: [256, 7168, 2048]layout_metadata: [256], i32
Workload dtype Ratio Device time Alternatives Throughput SOL Bound
alt / ours ms name ms TFLOP/s of ceiling by
qwen3-235b-decodef162.11×1.1702torch-grouped-mm
flashinfer-segment-mlp
2.4680
2.8404
13293%mem
bf161.43×1.1708torch-grouped-mm
flashinfer-segment-mlp
1.6755
2.8402
13293%mem
qwen3-235b-prefillf161.53×2.0191flashinfer-segment-mlp
torch-grouped-mm
3.0815
3.2543
61384%comp
bf161.10×2.0104torch-grouped-mm
flashinfer-segment-mlp
2.2076
3.0765
61581%comp
ds-v3-decodef161.50×5.2062torch-grouped-mm
flashinfer-segment-mlp
7.8231
11.8226
69.397%mem
bf161.35×5.2066torch-grouped-mm
flashinfer-segment-mlp
7.0159
11.8359
69.397%mem
ds-v3-prefillf161.53×6.0469torch-grouped-mm
flashinfer-segment-mlp
9.2235
12.9855
47786%mem
bf161.19×6.0220torch-grouped-mm
flashinfer-segment-mlp
7.1685
13.0060
47987%mem

FusedMoEExpertsFwd

output, hidden_states: [T, H]w_gate_up: [E, 2 * F, H]w_down: [E, H, F]topk_weights: [T, K], f32topk_ids: [T, K], i32

dtype=f16, bf16

  • qwen3-235b-decodeoutput, hidden_states: [512, 4096]w_gate_up: [128, 3072, 4096]w_down: [128, 4096, 1536]topk_weights: [512, 8], f32topk_ids: [512, 8], i32
  • qwen3-235b-prefilloutput, hidden_states: [4096, 4096]w_gate_up: [128, 3072, 4096]w_down: [128, 4096, 1536]topk_weights: [4096, 8], f32topk_ids: [4096, 8], i32
  • ds-v3-decodeoutput, hidden_states: [512, 7168]w_gate_up: [256, 4096, 7168]w_down: [256, 7168, 2048]topk_weights: [512, 8], f32topk_ids: [512, 8], i32
  • ds-v3-prefilloutput, hidden_states: [4096, 7168]w_gate_up: [256, 4096, 7168]w_down: [256, 7168, 2048]topk_weights: [4096, 8], f32topk_ids: [4096, 8], i32
Workload dtype Ratio Device time Alternatives Throughput SOL Bound
alt / ours ms name ms TFLOP/s of ceiling by
qwen3-235b-decodef161.01×1.1975vllm-triton
flashinfer-cutlass
1.2120
13.0702
12990%mem
bf161.01×1.1971vllm-triton
flashinfer-cutlass
1.2131
13.1021
12990%mem
qwen3-235b-prefillf161.24×2.5387vllm-triton
flashinfer-cutlass
3.1515
20.5776
48767%comp
bf161.24×2.5035vllm-triton
flashinfer-cutlass
3.1130
20.5923
49465%comp
ds-v3-decodef161.01×5.2572vllm-triton
flashinfer-cutlass
5.3102
50.9557
68.695%mem
bf161.01×5.2509vllm-triton
flashinfer-cutlass
5.3117
51.0572
68.795%mem
ds-v3-prefillf161.16×7.8773vllm-triton
flashinfer-cutlass
9.1509
62.2428
36764%mem
bf161.16×7.6333vllm-triton
flashinfer-cutlass
8.8278
62.3009
37866%mem

IndexedExpertMLPFwd

output, hidden_states: [T, H]w_gate_up: [E, 2 * F, H]w_down: [E, H, F]topk_weights: [T, K], f32topk_ids: [T, K], i32

dtype=f16, bf16

  • ds-v3-t1output, hidden_states: [1, 7168]w_gate_up: [256, 4096, 7168]w_down: [256, 7168, 2048]topk_weights: [1, 8], f32topk_ids: [1, 8], i32
  • ds-v3-t32output, hidden_states: [32, 7168]w_gate_up: [256, 4096, 7168]w_down: [256, 7168, 2048]topk_weights: [32, 8], f32topk_ids: [32, 8], i32
  • ds-v3-t64output, hidden_states: [64, 7168]w_gate_up: [256, 4096, 7168]w_down: [256, 7168, 2048]topk_weights: [64, 8], f32topk_ids: [64, 8], i32
  • qwen3-235b-t32output, hidden_states: [32, 4096]w_gate_up: [128, 3072, 4096]w_down: [128, 4096, 1536]topk_weights: [32, 8], f32topk_ids: [32, 8], i32
Workload dtype Ratio Device time Alternatives Throughput SOL Bound
alt / ours ms name ms TFLOP/s of ceiling by
ds-v3-t1f161.13×0.1784vllm-triton
staged
flashinfer-cutlass
0.2010
0.2231
21.3177
3.9588%mem
bf161.13×0.1785vllm-triton
staged
flashinfer-cutlass
0.2009
0.2234
21.3185
3.9588%mem
ds-v3-t32f161.00×3.0657vllm-triton
staged
flashinfer-cutlass
3.0711
3.1773
39.8752
7.36101%mem
bf161.00×3.0668vllm-triton
staged
flashinfer-cutlass
3.0707
3.1803
40.0186
7.35101%mem
ds-v3-t64f161.01×4.2356vllm-triton
staged
flashinfer-cutlass
4.2648
4.3833
46.7907
10.7102%mem
bf161.01×4.2376vllm-triton
staged
flashinfer-cutlass
4.2639
4.3793
46.7030
10.6102%mem
qwen3-235b-t32f161.00×0.9740vllm-triton
staged
flashinfer-cutlass
0.9780
1.0137
12.5703
9.9398%mem
bf161.00×0.9745vllm-triton
staged
flashinfer-cutlass
0.9772
1.0145
12.5612
9.9298%mem

SharedExpertMLPFwd

hidden_states: [T, H]w_gate_up: [2 * S, H]w_down: [H, S]

  • kimi-k2-t1hidden_states: [1, 7168]w_gate_up: [36864, 7168]w_down: [7168, 18432]dtype=bf16
  • kimi-k2-t512hidden_states: [512, 7168]w_gate_up: [36864, 7168]w_down: [7168, 18432]dtype=bf16
  • ds-v3-t32hidden_states: [32, 7168]w_gate_up: [4096, 7168]w_down: [7168, 2048]dtype=bf16, f16
  • ds-v3-t4096hidden_states, w_gate_up: [4096, 7168]w_down: [7168, 2048]dtype=bf16
  • glm45-t32hidden_states: [32, 5120]w_gate_up: [3072, 5120]w_down: [5120, 1536]dtype=bf16
Workload dtype Ratio Device time Alternatives Throughput SOL Bound
alt / ours ms name ms TFLOP/s of ceiling by
kimi-k2-t1bf161.01×0.2062torch-cublas
quack
0.2092
0.3028
3.8485%mem
kimi-k2-t512bf160.93×0.6036quack
torch-cublas
0.5608
0.6338
67288%comp
ds-v3-t32bf161.28×0.0333torch-cublas
quack
0.0426
0.0627
84.759%mem
f161.30×0.0333torch-cublas
quack
0.0433
0.0629
84.759%mem
ds-v3-t4096bf161.01×0.5127quack
torch-cublas
0.5156
0.5614
70493%comp
glm45-t32bf161.39×0.0221torch-cublas
quack
0.0308
0.0460
68.248%mem