diff --git a/vllm/v1/worker/cpu/shm.py b/vllm/v1/worker/cpu/shm.py index 970e8a2d41..8ad80671fb 100644 --- a/vllm/v1/worker/cpu/shm.py +++ b/vllm/v1/worker/cpu/shm.py @@ -17,6 +17,12 @@ def noop(*args: Any, **kwargs: Any) -> None: pass +# Distinct no-op so empty_cache does not alias synchronize: Dynamo's +# handle_synchronize is keyed on that object and asserts on CPU-only hosts. +def empty_cache_noop(*args: Any, **kwargs: Any) -> None: + pass + + def fake_pin_memory(self: torch.Tensor, *args: Any, **kwargs: Any) -> torch.Tensor: return self @@ -58,7 +64,7 @@ torch.cuda.Stream = _StreamPlaceholder torch.cuda.set_stream = noop torch.cuda.current_stream = lambda *args, **kwargs: _StreamPlaceholder() torch.accelerator.synchronize = noop -torch.accelerator.empty_cache = noop +torch.accelerator.empty_cache = empty_cache_noop torch.Tensor.pin_memory = fake_pin_memory torch.Tensor.record_stream = noop torch.accelerator.get_memory_info = get_memory_info diff --git a/vllm/v1/worker/cpu_model_runner.py b/vllm/v1/worker/cpu_model_runner.py index e5800da98b..67cffa5845 100644 --- a/vllm/v1/worker/cpu_model_runner.py +++ b/vllm/v1/worker/cpu_model_runner.py @@ -240,5 +240,10 @@ def _set_torch_accelerator_to_noop() -> None: def noop(*args: Any, **kwargs: Any) -> None: pass + # Distinct no-op so empty_cache does not alias synchronize: Dynamo's + # handle_synchronize is keyed on that object and asserts on CPU-only hosts. + def empty_cache_noop(*args: Any, **kwargs: Any) -> None: + pass + torch.accelerator.synchronize = noop - torch.accelerator.empty_cache = noop + torch.accelerator.empty_cache = empty_cache_noop