diff --git a/vllm/model_executor/layers/fused_moe/fused_moe.py b/vllm/model_executor/layers/fused_moe/fused_moe.py index 03ffc2f2..a365fc73 100644 --- a/vllm/model_executor/layers/fused_moe/fused_moe.py +++ b/vllm/model_executor/layers/fused_moe/fused_moe.py @@ -353,7 +353,16 @@ def get_default_config( 'GROUP_SIZE_M': 1 } numel = M * topk - if numel <= 64: + # CCCL principle from saxpy.cu: fused ops should minimize wasted padding. + # For BI-V100 decode: M=8 seqs × topk=8 experts = 64 active tokens. + # BLOCK_SIZE_M=32 → 50% padding waste (32-token tiles for 64 tokens = 2 tiles, ok) + # BLOCK_SIZE_M=16 → 0% waste for numel≤16, minimal waste for 16