Conversation
There was a problem hiding this comment.
Code Review
This pull request introduces kernel warmup mechanisms for hybrid GDN/Mamba and MRoPE models to prevent JIT compilation overhead and potential OOM issues during the first real inference requests. It adds dedicated warmup routines for prefill and decode paths, integrates these into the main kernel warmup pipeline, ensures robust cleanup of KV connector states on failure, and adds comprehensive unit tests. No review comments were provided, so there is no feedback to address.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f92cd20cbc
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
This pull request has merge conflicts that must be resolved before it can be |
290e9fa to
8707f60
Compare
|
This pull request has merge conflicts that must be resolved before it can be |
Warm the runtime GDN/Mamba, MRoPE, scheduler-output, single-request decode, and KV block zeroing variants used by hybrid models before the first request. Co-authored-by: OpenAI Codex <codex@openai.com> Co-authored-by: Claude <noreply@anthropic.com> Signed-off-by: lesj0610 <lesj0610@users.noreply.github.com>
Signed-off-by: lesj0610 <lesj0610@users.noreply.github.com>
Signed-off-by: lesj0610 <lesj0610@users.noreply.github.com>
8707f60 to
3dde6c6
Compare
Signed-off-by: lesj0610 <lesj0610@users.noreply.github.com>
Signed-off-by: lesj0610 <lesj0610@users.noreply.github.com>
Signed-off-by: lesj0610 <lesj0610@users.noreply.github.com>
This reverts commit f837c9d. Signed-off-by: lesj0610 <lesj0610@users.noreply.github.com>
Signed-off-by: lesj0610 <lesj0610@users.noreply.github.com>
Keep the direct GDN/Mamba/MRoPE model-internal warmup, but drop the V1 scheduler-output and single-request synthetic warmup path from kernel_warmup. Move the remaining KV connector failure coverage to the generic V1 warmup tests. Signed-off-by: lesj0610 <lesj0610@users.noreply.github.com>
Remove KV block zeroer warmup from the hybrid GDN/Mamba/MRoPE PR so zeroing remains owned by the dedicated KV zeroer warmup PR. The hybrid PR now covers only model-specific GDN/Mamba and MRoPE startup warmup. Signed-off-by: lesj0610 <lesj0610@users.noreply.github.com>
Signed-off-by: SeongJun Lee <lesj0610@gmail.com>
Signed-off-by: lesj0610 <lesj0610@users.noreply.github.com>
Signed-off-by: lesj0610 <lesj0610@users.noreply.github.com>
Signed-off-by: lesj0610 <lesj0610@users.noreply.github.com>
|
This pull request has merge conflicts that must be resolved before it can be |
LopezCastroRoberto
left a comment
There was a problem hiding this comment.
Hey @lesj0610
Similar thing to what I mentioned in another of your PRs. We're currently migrating all kernel warmups to a shared warmup contract. See #47451, RFC: #47456.
Would you mind migrating these warmups to conform to that shared contract? It would help keep the warmup infrastructure consistent and make future maintenance easier.
However, I think a sync with upstream is needed. Some of the kernels warmed up on this PR are already covered upstream, while some of them are not. Thanks!
Adding your PR to the list: #49349
…ontract-20260722 # Conflicts: # vllm/model_executor/warmup/kernel_warmup.py # vllm/model_executor/warmup/qwen_triton_warmup.py # vllm/model_executor/warmup/sparse_mla_triton_warmup.py Signed-off-by: lesj0610 <lesj0610@users.noreply.github.com>
Signed-off-by: lesj0610 <lesj0610@users.noreply.github.com>
Co-authored-by: OpenAI Codex <codex@openai.com> Signed-off-by: lesj0610 <lesj0610@users.noreply.github.com>
Co-authored-by: OpenAI Codex <codex@openai.com> Signed-off-by: lesj0610 <lesj0610@users.noreply.github.com>
|
This pull request has merge conflicts that must be resolved before it can be |
Co-authored-by: OpenAI Codex <codex@openai.com> Signed-off-by: lesj0610 <lesj0610@users.noreply.github.com>
|
This pull request has merge conflicts that must be resolved before it can be |
Preserve both hybrid GDN/Mamba/MRoPE and Kimi K3 JIT warmup hooks. Co-authored-by: OpenAI Codex <codex@openai.com> Signed-off-by: lesj0610 <lesj0610@users.noreply.github.com>
|
This pull request has merge conflicts that must be resolved before it can be |
Upstream's warmup infrastructure (vllm-project#50174) registers these kernels through its own provider registry, so the fork-side warmup hooks are redundant. Reverse-apply the deltas of the upstream warmup PRs (vllm-project#42193, vllm-project#42215, vllm-project#43642, vllm-project#46446) so every file they touched matches origin/main: - Drop the fused MoE, TurboQuant, hybrid GDN/Mamba/MRoPE and block-table warmup modules plus their tests and kernel_warmup wiring. - Restore triton_decode_attention, triton_turboquant_decode, fused_recurrent and fused_moe to upstream (removes the VllmJitKernel wrappers those PRs introduced). - Keep `import math` in mrope.py: it is used by the bounded M-RoPE cache work, not by the reverted warmup code.
Purpose
Hybrid Qwen-style GDN/Mamba/MRoPE models can trigger Triton compilation during the first inference request when startup warmup does not cover the exact runtime compile keys. This revision migrates the remaining warmups to the shared kernel-owned warmup contract and removes coverage that is already provided by current upstream
main.Changes
mainand remove duplicate warmups for zero-KV blocks, slot mapping, causal convolution, fused post-convolution, fused sigmoid update, and chunked GDN prefill.VllmJitKernelimplementations for packed recurrent GDN decode and MRoPE.CompileKeydefinitions.enable_jit_warmup; no dummy model execution or startup synchronization is added.Test Plan
GPU compile-only and direct numerical smoke tests were run on GPU 1 (RTX 3090).
Test Result
0.007812, within the existing test tolerance.The existing packed recurrent numerical pytest still fails for fp16/bf16 on both this branch and an unmodified latest-upstream worktree; fp32 passes. This is therefore not introduced by this revision.
AI assistance: Codex.