From 6705330924faedb230314d58d2afa0261be21601 Mon Sep 17 00:00:00 2001 From: MOVZX Date: Wed, 23 Sep 2026 07:16:45 -0400 Subject: [PATCH] [PLE] The pull wait/copy op is a graph splitting op With the wait/copy inside a compiled piece, Inductor's post-grad auto-functionalization decomposition failed on the stage-0 ranks. Co-Authored-By: Hinata Signed-off-by: MOVZX --- vllm/config/compilation.py | 6 ++++++ vllm/v1/e2_guards.py | 1 + 2 files changed, 7 insertions(+) diff --git a/vllm/config/compilation.py b/vllm/config/compilation.py index 4e87161ed9..e5b0f16d0d 100644 --- a/vllm/config/compilation.py +++ b/vllm/config/compilation.py @@ -775,6 +775,12 @@ class CompilationConfig: "vllm::qwen4_exp_ple_finalize_prefetch", "vllm::qwen4_exp_ple_short_conv", "vllm::qwen4_exp_qsa_with_output", + # Fork (pull transport with the compile-profile guard, found on the reference host): the PLE pull transport's wait+DMA + # mutates a module-owned buffer; inside an Inductor graph it failed + # post-grad with "auto_functionalized was not removed" on the stage-0 + # ranks. As a split point it runs between pieces, like attention. + "vllm::ple_offload_wait_copy", + "vllm::ple_offload_wait", "vllm::linear_attention", "vllm::qwen_gdn_attention_core", "vllm::qwen_gdn_attention_core_fused_norm_packed", diff --git a/vllm/v1/e2_guards.py b/vllm/v1/e2_guards.py index 1917885117..5f0ed88ad4 100644 --- a/vllm/v1/e2_guards.py +++ b/vllm/v1/e2_guards.py @@ -61,6 +61,7 @@ REQUIRED_SPLITTING_OPS = ( "vllm::qwen4_exp_ple_finalize_prefetch", "vllm::qwen_gdn_attention_core", "vllm::qwen_gdn_attention_core_fused_norm_packed", + "vllm::ple_offload_wait_copy", ) #: Upstream v0.30.0 auto-enabled breakable cudagraphs for these; this tree