ITADN

Suboptimal config from autotuning

#1640Opengmagogsfm 创建于 2026-03-10
enhancementautotuningperformanceuser support
G
gmagogsfmcommented
In vLLM-Helion, we hit a few cases of Helion autotuning hit suboptimal configs perform worse than baseline that require manual tweaking, would love some help in investigating why default autotuning didn't work out well enough Kernel implementation: https://github.com/vllm-project/vllm/blob/2a68464c5bf1a26821afe76cf49dc53f75b87e98/vllm/kernels/helion/ops/silu_mul_fp8.py#L26 Shapes/Config that underperform: Clustered for intermediate size of 2048 and 4096, num_tokens less than 128, GPU is H200. Input generator: https://github.com/vllm-project/vllm/blob/2a68464c5bf1a26821afe76cf49dc53f75b87e98/vllm/kernels/helion/ops/silu_mul_fp8.py#L58 It looks like the autotuner likely got stuck in a local minimum — with very small block sizes, the Triton compiler could optimize each tiny block well, but the global launch overhead swamped any per-block gains. The heuristic approach of targeting ~128 blocks ensured each block had enough work to amortize launch costs. Commit with my manual tweaks to improve performance: https://github.com/vllm-project/vllm/pull/36062/changes/236509f6ea20b60316af1ae6c44e8a16620aedb5 @ethche
2 条评论