From bdd8981dab8d8c6ae88a3f605d04ec5243088e5a Mon Sep 17 00:00:00 2001 From: Zhengxu Chen Date: Tue, 10 Mar 2026 12:34:35 -0400 Subject: [PATCH] [compile] Apply stored functorch config while finalizing loaded artifacts. (#36582) Signed-off-by: zhxchen17 --- vllm/compilation/caching.py | 8 ++++++- vllm/compilation/piecewise_backend.py | 32 +++++++-------------------- 2 files changed, 15 insertions(+), 25 deletions(-) diff --git a/vllm/compilation/caching.py b/vllm/compilation/caching.py index 70fbaabb4..00fb95921 100644 --- a/vllm/compilation/caching.py +++ b/vllm/compilation/caching.py @@ -369,8 +369,14 @@ class VllmSerializableFunction(SerializableCallable): # type: ignore[misc] from vllm.compilation.backends import VllmBackend + saved_aot_autograd_config = self.aot_autograd_config + if saved_aot_autograd_config is not None: + functorch_ctx = torch._functorch.config.patch(saved_aot_autograd_config) + else: + functorch_ctx = contextlib.nullcontext() + vllm_backend = VllmBackend(vllm_config, self.prefix, self.is_encoder) - with tracing(TracingContext(self._fake_mode)): + with tracing(TracingContext(self._fake_mode)), functorch_ctx: result = vllm_backend(self.graph_module, list(self.example_inputs)) self.optimized_call = result.optimized_call self.vllm_backend = vllm_backend diff --git a/vllm/compilation/piecewise_backend.py b/vllm/compilation/piecewise_backend.py index ef2b89575..5aeb51a7a 100644 --- a/vllm/compilation/piecewise_backend.py +++ b/vllm/compilation/piecewise_backend.py @@ -258,31 +258,15 @@ class PiecewiseBackend: else: args_list = get_fake_args_from_graph(self.graph) - # TODO(https://github.com/vllm-project/vllm/issues/35766) - # Can we remove strict_autograd_cache and - # force_non_lazy_backward_lowering overrides? - # I added them explicitly because this is what they are - # set to before the refactor - # (https://github.com/vllm-project/vllm/pull/35472). - # They affect the aotautograd cache key computation - # but they shouldn't have any effect on the actual - # compilation. - config_patches = dict( - bundled_autograd_cache=True, - strict_autograd_cache=False, + range_entry.runnable = self.vllm_backend.compiler_manager.compile( + self.graph, + args_list, + self.vllm_backend.inductor_config, + self.compilation_config, + compile_range=range_entry.compile_range, + graph_index=self.piecewise_compile_index, + num_graphs=self.total_piecewise_compiles, ) - if hasattr(torch._functorch.config, "force_non_lazy_backward_lowering"): - config_patches["force_non_lazy_backward_lowering"] = False - with torch._functorch.config.patch(**config_patches): - range_entry.runnable = self.vllm_backend.compiler_manager.compile( - self.graph, - args_list, - self.vllm_backend.inductor_config, - self.compilation_config, - compile_range=range_entry.compile_range, - graph_index=self.piecewise_compile_index, - num_graphs=self.total_piecewise_compiles, - ) range_entry.compiled = True