From c96f0bc773ba0cc2e41f7678b2e1b8a1a891aff3 Mon Sep 17 00:00:00 2001 From: herotai214 <68222888+herotai214@users.noreply.github.com> Date: Tue, 28 Jul 2026 20:34:35 +0800 Subject: [PATCH] [Perf][GLM-Image] Skip redundant hidden state D2H (#5346) Signed-off-by: herotai214 --- tests/model_executor/models/glm_image/test_glm_image_ar.py | 4 ++++ vllm_omni/model_executor/models/glm_image/glm_image_ar.py | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/tests/model_executor/models/glm_image/test_glm_image_ar.py b/tests/model_executor/models/glm_image/test_glm_image_ar.py index 32a016b2a..5ccc9fc62 100644 --- a/tests/model_executor/models/glm_image/test_glm_image_ar.py +++ b/tests/model_executor/models/glm_image/test_glm_image_ar.py @@ -91,6 +91,10 @@ GlmImageRotaryEmbedding = _ar_mod.GlmImageRotaryEmbedding pytestmark = [pytest.mark.core_model, pytest.mark.cpu] +def test_glm_image_ar_omits_hidden_pooler_payload(): + assert GlmImageForConditionalGeneration.omni_pooler_payload_include_hidden is False + + # ============================================================================= # Helper: Minimal config for testing # ============================================================================= diff --git a/vllm_omni/model_executor/models/glm_image/glm_image_ar.py b/vllm_omni/model_executor/models/glm_image/glm_image_ar.py index 278e372d7..77aef398b 100644 --- a/vllm_omni/model_executor/models/glm_image/glm_image_ar.py +++ b/vllm_omni/model_executor/models/glm_image/glm_image_ar.py @@ -2414,6 +2414,11 @@ class GlmImageForConditionalGeneration(nn.Module, SupportsMultiModal, SupportsPP # linear increments during decode. precomputed_mrope_decode = True + # The downstream GLM-Image diffusion stage consumes generated token ids and + # optional VQ-VAE image ids, not AR hidden states. Avoid copying one hidden + # vector to host at every decode step. + omni_pooler_payload_include_hidden = False + packed_modules_mapping = { "qkv_proj": [ "q_proj",