diff --git a/vllm/model_executor/warmup/kernel_warmup.py b/vllm/model_executor/warmup/kernel_warmup.py index e4f575d412..c3725064a6 100644 --- a/vllm/model_executor/warmup/kernel_warmup.py +++ b/vllm/model_executor/warmup/kernel_warmup.py @@ -106,6 +106,12 @@ def kernel_warmup(worker: "Worker"): ) +# TODO: remove once FlashInfer upstream fixes the persistent file cache +# to resolve collisions like `use_8x4_sf_layout=True/False`, which causes +# invalid tactics to be chosen +_FLASHINFER_USE_PERSISTENT_CACHE = False + + def flashinfer_autotune(runner: "GPUModelRunner") -> None: """ Autotune FlashInfer operations. @@ -122,6 +128,16 @@ def flashinfer_autotune(runner: "GPUModelRunner") -> None: import vllm.utils.flashinfer as fi_utils from vllm.distributed.parallel_state import get_world_group + if not _FLASHINFER_USE_PERSISTENT_CACHE: + with torch.inference_mode(), fi_utils.autotune(): + runner._dummy_run( + num_tokens=runner.scheduler_config.max_num_batched_tokens, + skip_eplb=True, + is_profile=True, + ) + get_world_group().barrier() + return + world = get_world_group() is_leader = world.rank_in_group == 0