Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions vllm_fl/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,11 @@ def register():
from vllm_fl.patches.glm_moe_dsa import apply_platform_patches as glm5_platform
glm5_platform()

# Qwen3.6 hybrid (GDN) + Prefill Context Parallel. Self-gates on
# prefill_context_parallel_size > 1, so this is a no-op without PCP.
from vllm_fl.patches.qwen36_pcp import apply_platform_patches as qwen36_pcp_platform
qwen36_pcp_platform()

# Note: FlagCX connector registration is deferred to register_model()
# to avoid circular imports during VllmConfig.__post_init__ in spawned
# subprocesses.
Expand Down Expand Up @@ -155,6 +160,18 @@ def register_model():
except Exception as e:
logger.error(f"Register GlmMoeDsa model error: {str(e)}")

#feat/pcp-qwen36-hybrid
# Re-apply Qwen3.6 PCP patches here (general-plugins hook, runs in every
# worker via load_general_plugins() during init_worker, before the PCP
# attention-compat guard). The copy in register() fires during early
# platform detection when vllm.v1.* attention/model-runner classes are not
# yet importable, so those patches silently hit `except ImportError` and
# skip -> FlashAttentionImpl.supports_pcp never gets set. This late,
# idempotent call runs after vLLM is fully imported so the patches actually
# take effect.
from vllm_fl.patches.qwen36_pcp import apply_platform_patches as qwen36_pcp_platform
qwen36_pcp_platform()

# Register DeepseekV4 model
try:
ModelRegistry.register_model(
Expand All @@ -173,3 +190,4 @@ def register_model():
)
except Exception as e:
logger.error(f"Register DeepseekV4 model error: {str(e)}")
main
Loading
Loading