Fix a bug in 1D input shape - #5
Merged
Merged
Conversation
v1nc3nt27
pushed a commit
to v1nc3nt27/vllm
that referenced
this pull request
Sep 12, 2023
More improvements awq
xiangyuT
added a commit
to xiangyuT/vllm
that referenced
this pull request
Oct 24, 2023
* finish changing scheduler * finish merge * fix model * Fix (vllm-project#5) * fix problems * fix * delete unused params * remove redundant comments --------- Co-authored-by: Xiangyu Tian <109123695+xiangyuT@users.noreply.github.com>
hongxiayang
pushed a commit
to hongxiayang/vllm
that referenced
this pull request
Feb 13, 2024
luo-cheng2021
pushed a commit
to luo-cheng2021/vllm
that referenced
this pull request
Mar 14, 2024
Align optimum-intel based model signature with vLLM signature
luo-cheng2021
pushed a commit
to luo-cheng2021/vllm
that referenced
this pull request
Mar 25, 2024
…imum Install optimum-intel from latest main
mzusman
added a commit
to mzusman/vllm
that referenced
this pull request
Apr 16, 2024
* Drop indecies when finish * min 1 attention layer * CG is working on forward pass passing * Remove comments * cosmetics - rename indecies -> indices, organize some whitespaces * Add some TODOs * Adding mamba cache for cg * Remove useless vars from input_metadata * Remove unused import * Set the seqlen offset to boolean * Return only hidden state * Return only hidden states * Add padding to match forward pass bs * Is prompt instead of seqlen offset * Remove mamba cache class (not used) * Another remove * Remove * Use mamba4gc * Fix mamba forward, run update only on non prompt * Use 1 index after the maximal index * Remove import * Remove import * typo * typo * place holder * Padding and empty token takes it from the first empty place * reformat * Apply suggestions from code review Whitespaces --------- Co-authored-by: Mor Zusman <morz@ai21.com> Co-authored-by: Tomer Asida <tomera@ai21.com> Co-authored-by: tomeras91 <57313761+tomeras91@users.noreply.github.com>
linxihui
added a commit
to linxihui/vllm
that referenced
this pull request
May 14, 2024
…3small [Model][Kernels] Support Phi3small architecture, blocksparse attnention prefilling kernel, CUDA+Triton paged attn kernels
Starmys
pushed a commit
to Starmys/vllm
that referenced
this pull request
May 20, 2024
Faster v2 hopper fused moe kernel configs
This was referenced Jul 5, 2024
Closed
zeroorhero
pushed a commit
to zeroorhero/vllm
that referenced
this pull request
Sep 23, 2024
Kuntai disagg refactor
1 task
starpit
added a commit
to starpit/vllm
that referenced
this pull request
May 26, 2026
…3 + walker nuke + bug-class-vllm-project#1 ratchet Establishes the typed `MegaTape<S>` lowering pipeline in a new `ferrite-mega-ir` crate and migrates the megakernel codegen off the walker-based `emit_op` design onto a typed IR that the proc-macro constructs at expansion time. Per-op substrate witnesses move runtime checks (page-slot bounds, lifecycle, mbarrier phase math, scratch overlap, scratch budget, warp roles) toward construction- time invariants — the plan's six bug classes. Sprint 0+1a+1b — substrate vocabulary + crate extraction: - `ferrite-mega-ir` crate carved out of the macro crate so the IR is a real type-level artifact, not a TokenStream stub. - Sealed substrate witnesses: `Page<ID, S, State>` with lifecycle states (`Empty`/`Filled`/`Produced`), `ScratchRegion<OFFSET, BYTES, Scope>`, `MbarrierPhase<P>`, `WarpRoleTag<R>`, `IsValidSlot`, `Disjoint`, `WithinBudget`, `ArriveCountToPhase`. - MegaIR decoupled from `W` (the per-canonical Weights type) so the IR can be constructed without a model in scope. Sprint 2 — gate-up + qkv-rope + downproj migrations: - silu_upgate, gelu_upgate, down_proj_residual, fused_qkv_rope_cache lower through the typed IR. Each variant's `emit_*` function takes a typed node and renders CUDA via `ferrite_mega_ir::emit`, replacing the walker's per-variant bespoke `emit_op` arm. Sprint 3 — fused_add_rms_norm + embed migrations. Walker nuke: - 19 per-variant `emit_X` walker fns deleted; the typed pipeline is now the only path. `EmitCtx` + `WalkerLines` + the `emit_op_from_typed` bridge are gone — `ferrite_mega_ir::emit` is the single render surface. - `BaseStage::new(n, op_page_count, num_pages)` validates page budget at IR construction (bug class vllm-project#1). Tautological in the proc-macro today (base_stage always 0), but the typed gate is load-bearing for Phase 4 cross-op pipelining where non-zero `base_stage` will fail at construction instead of corrupting emitted CUDA at runtime. Squashes 123 in-progress commits (Sprints 0+1+2+3 iters, walker deletion, BaseStage ratchet) into one landing commit. Backup of the original history at `backup/worktree-ff-mega-codegen-pre-squash`. Plan: `MEGA_IR_PLAN.md` — Sprint A done (RmsNorm), Sprint B done (FusedQkvRopeCache), Sprint C in progress (FusedAddRmsNorm + SiluUpgate + GeluUpgate + DownProjResidual landed; remaining Sprint D ops pending). Bug class vllm-project#1 caught by typed gate; bug classes vllm-project#2/vllm-project#3/vllm-project#4 are NIGHTLY TODOs (need per- variant const generics on MegaOp values, blocked on stable-Rust limits noted in `BaseStage` type-level docs); bug class vllm-project#5 (scratch budget overrun summed across the tape) is the next ratchet. Signed-off-by: Nick Mitchell <nickm@us.ibm.com>
starpit
added a commit
to starpit/vllm
that referenced
this pull request
May 26, 2026
Per MEGA_IR_PLAN.md §10: substrate-aware lowering for the second Instruction variant. Bug classes targeted: vllm-project#1 (page bounds), vllm-project#2 (lifecycle: in / qkv-weight / cos-sin / q-out / k-out / v-out across loader → consumer → storer), vllm-project#3 (per-iter mbarrier phase math), vllm-project#4 (scratch overlap inside the per-tok loop), vllm-project#5 (within-budget scratch), vllm-project#6 (warp-role pairing). substrate.rs: - New `RopeScope` (sealed `IsScratchScope` + `IsScratchScopePub`) for the per-token Q/K rotation tiles. Sibling regions in this scope are required to be `disjoint_with`-discharged. - New `IterCount(u32)` newtype with `iters > 0` invariant — used to bump the cumulative arrive count by `iters * arrives_per_iter` (per-iter math is variant-internal: with arrives_per_iter == 1, the kernel's `phase ^= 1` toggle is correct iff the boundary phase matches the cumulative count parity at op start, which is what the lowering validates via MbarrierPhase::assert_matches). nodes.rs: - New `RotaryRef` helper newtype (non-empty path). Lets the typed node distinguish global rotary from per-layer-local rotary (`wm.rotary` vs `wm.rotary_local`) per the typed-fanout walker's injection. - New `MegaNode::FusedQkvRopeCache` variant. Substrate-proof fields: 6 PageIds (lifecycle-witnessed), 2 disjoint ScratchRegion<RopeScope> (Q/K rotation tiles), consumer_phase + storer_phase + iters, four WarpRoleTag<R>. Helper fields alongside: layer / qkv_weight / rotary / biased / interleaved. lower.rs: - `MegaTapeBuilder::push_fused_qkv_rope_cache` walks every page through Empty → Filled → Produced → Empty (typestate-burned), packs Q/K rotation tiles back-to-back in scratch, validates phase parity at the op boundary, releases pages, and bumps the cumulative arrive count by `iters` (per-iter math falls out of `(C+t)&1 == (C&1)^(t&1)`). - `lower()` arm dispatches `Instruction::FusedQkvRopeCache` with a per-tape `SlotAllocator` that picks 5 non-aliasing output / weight page ids modulo `num_pages`. Real pipeline-aware allocation lands in Sprint D. - `OpInput::iters: u32` added (default 1 via `OpInput::new`). weight_paths arity for Rope is required to be 2 (qkv-packed, rotary). New `LowerError::WrongWeightArity` and `LowerError::SubstrateBudgetTooSmall` variants. tape.rs: - `impl Debug for MegaTape` (size + substrate budget summary), so test panics can format `Result<MegaTape, LowerError>`. 9 new tests in `lower::tests` covering: well-formed Rope round-trip; arrive-count phase advance across an op chain (5-iter odd flips parity, 4-iter even keeps it); Q/K scratch overlap rejection; within-op page aliasing rejection; iters=0 rejection; empty-rotary-path rejection; lower() round-trip; weight-paths arity error. Existing RmsNorm tests updated for irrefutable-pattern → `let-else` since `MegaNode` now has 2 variants. 30 tests pass on H100 pod (was 21). `cargo clippy -p ferrite-mega-ir --all-features -- -D warnings` clean. No emit yet — Sprint A — D land the typed lowering for every variant first, syntactic emit after. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> Signed-off-by: Nick Mitchell <nickm@us.ibm.com>
starpit
added a commit
to starpit/vllm
that referenced
this pull request
May 26, 2026
…ilu,Gelu}Mul Per MEGA_IR_PLAN.md §10: substrate-aware lowering for the residual fold (`Instruction::Add` — what the plan calls "DownProjResidual"), the fused add+norm (pre-attention / pre-MLP layer entry), and the gate-up MLP fusion in both Silu and Gelu activation forms. Bug classes vllm-project#1–vllm-project#6 all exercised between the four variants. substrate.rs: - New `MlpScope` (sealed `IsScratchScope` + `IsScratchScopePub`) for the gate-up fusion's per-token-iter gate / up activation tiles. Sibling regions in this scope MUST be `disjoint_with`- discharged at lowering time (Sprint C's bug class vllm-project#4 site). nodes.rs: - New `MegaNode::Add`: 2 PageIds (delta + residual, lifecycle-walked), consumer/storer phase, 4 warp-role tags. No weight, no scratch — element-wise residual fold lives entirely in registers. - New `MegaNode::FusedAddRmsNorm`: 3 PageIds (delta + residual + weight) lifecycle-walked, partial_sums in `RmsNormScope` (sibling regions on a future RmsNorm op `disjoint_with`-discharged), phase parity, 4 role tags, layer + weight helpers. - New `MegaNode::FusedGateUpActivateMul` (single variant covering both `FusedGateUpSiluMul` and `FusedGateUpGeluMul` instructions — same substrate shape, distinguished by `activation: GateUpActivation { Silu | Gelu }`): 3 PageIds (in + packed gate-up weight + out), 2 disjoint `MlpScope` tiles (gate_buf, up_buf), boundary phase parity, IterCount, 4 role tags, layer + weight + activation helpers. lower.rs: - `MegaTapeBuilder::push_add`, `push_fused_add_rms_norm`, `push_fused_gate_up_activate_mul` — substrate-proof discharge per call: page allocation + bounds (vllm-project#1), lifecycle walks Empty → Filled → Produced → Empty (vllm-project#2), scratch (vllm-project#4 disjointness + vllm-project#5 within-budget), boundary phase parity (vllm-project#3 — per-iter math for the gate-up multi-iter shape falls out of `(C+t)&1 == (C&1)^(t&1)`), warp-role pinning (vllm-project#6). - `lower()` arms for `Instruction::Add`, `FusedAddRmsNorm`, `FusedGateUpSiluMul`, `FusedGateUpGeluMul`. - New `pick_distinct_slot` helper: picks the next free page id that doesn't collide with caller-supplied input/output slots. Used by Sprint C arms when the Instruction only supplies in/out and the lowering needs to synthesize a non-aliasing weight slot. 13 new tests in `lower::tests` covering: well-formed Add round-trip; self-aliasing rejection; arrive-count phase advance across two Adds; FusedAddRmsNorm well-formed shape; delta/residual aliasing rejection; gate-up Silu and Gelu lowering; gate/up scratch overlap rejection; Instruction-side round-trip for each variant; multi-op chain threading phase advance through Add → FusedAddRmsNorm → FusedGateUp (verifies the cumulative arrive count carries the correct parity at each boundary, including across the multi-iter gate-up bump). `lower_unmigrated_variant_returns_not_yet_lifted` test repointed at `Gemm` (Sprint D scope) since `Add` now lowers. 43 tests pass on H100 pod (was 30); `cargo clippy -p ferrite-mega-ir --all-features -- -D warnings` clean. No emit yet. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> Signed-off-by: Nick Mitchell <nickm@us.ibm.com>
starpit
added a commit
to starpit/vllm
that referenced
this pull request
May 26, 2026
… canonicals lift cleanly
Wire the next-biggest unblocker. After this every bf16 llama-3.2-1B
canonical emits a compile-time-substrate-proof-bearing
`build_mega_tape_*()` fn. The user-build monomorphization fires
every `const { assert!(...) }` block in mega_ir::nodes for the
const args the proc-macro computed.
ferrite-mega-ir/nodes.rs:
- New `FusedCublasGemmAdd` MegaNode variant. Substrate shape:
3 pages (in / weight / residual=output where the gemm result
is folded back in place), `GemmScope` B-tile, multi-iter,
layer + matmul shape. Constructor's `const {}` block proves:
page bounds (vllm-project#1), pairwise non-alias (vllm-project#2 within-op),
scratch within-budget (vllm-project#5), iters > 0, n/k > 0,
consumer/storer phase parity (vllm-project#3).
ferrite-mega-ir/lower.rs:
- New `MegaTapeBuilder::push_fused_cublas_gemm_add::<...>`
builder method. 13 const generics (3 page ids + 2 scratch +
2 phases + iters + layer + n + k + num_layers + arrives).
ferrite-forward-macro/codegen.rs:
- Dispatch arm for `Instruction::FusedCublasGemmAdd(in_slot,
residual_slot, layer, n, k)` synthesizes a non-aliasing
weight slot, packs the B-tile across all of `SCRATCH_BYTES`,
and emits the literal-const-arg builder call.
Per-canonical status (llama-3.2-1B):
- bf16 m=1 sk=128 / m=1 sk=192 / m=8 sk=128 / m=8 sk=256 /
m=8 sk=512 / m=512 sk=256: **emits build_mega_tape_*** ✓ (6/6)
- awq-gemm / ct-int4-sym: dispatch needed for MarlinFusedQkvRope*
- bnb-nf4-dq: dispatch needed for Bnb4FusedQkvRope*
- fp8-* / ggml: dispatch needed for Fp8/GgmlFusedQkvRope*
`phase-c step 1 — 6 canonical(s) emitted, 0 skipped` for the bf16
variant of llama-3.2-1B. The 8 quantization-flavored variants
need their respective Marlin / Bnb4 / Fp8 / Ggml QKV-rope
cache MegaNode variants (Sprint E continuation).
End-to-end on H100 pod:
- cargo test -p ferrite-mega-ir: 32 lib + 1 compile-fail driver green.
- FERRITE_MEGA=1 FERRITE_MODELS=llama-3.2-1b cargo build -p
vllm-cli --features cuda --release: clean. Every emitted
build_mega_tape_*() fn user-builds, every const-generic push
monomorphizes, every const {} substrate-proof block discharges.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Signed-off-by: Nick Mitchell <nickm@us.ibm.com>
zomss
pushed a commit
to zomss/self-spec-moe
that referenced
this pull request
Jul 3, 2026
…dation mode) + bisect knobs Implements the free-running draft's core move, env-gated default-off (VLLM_SELF_SPEC_AHEAD_CHAIN): after each propose, run_ahead_chain() CONTINUES the real chain K+1 steps on the side stream during the verify (input = its own last token; first ahead token = the bonus guess), with real position/metadata updates and real KV writes. VALIDATION mode: outputs feed a per-request hit-rate counter (hit = all-K accepted AND bonus == guess, the free-running prior ~beta^(K+1)) and are then discarded -- the normal propose still runs, so the served output is byte-identical while the overlap machinery runs for real. Supporting changes: - scheduler: num_lookahead_tokens K -> 2K+2 under the flag, so ahead KV writes (up to committed+2K+2) always land in the request's own allocated blocks. - metadata privatization: the ahead loop runs on a shallow-copied CommonAttentionMetadata with CLONED seq_lens + block_table_tensor. The lockstep chain safely mutates runner-owned views because everything is serial; free-running, those in-place advances race the runner's next-step prep + the verify (torn values -> FA3 reads garbage pages). First free-running-specific isolation rule (OV1 rule vllm-project#5). - runner boot-retry: EADDRINUSE races on this shared box (other users' engines grab ports) could wedge a worker 600 s on a dead port; the runner now detects failed boots early, kills, and retries up to 3x. Debug state (bisection so far, crash = sticky CUDA illegal memory access): - serialized ahead chain, KV on: CLEAN, accept 2.91 (loop intrinsically OK, incl. extended-lookahead KV writes) - serialized, KV suppressed: CLEAN - concurrent, full: CRASHES - concurrent, KV suppressed: CRASHES -> live KV writes exonerated Remaining suspects: live metadata update/build vs verify, LM-head sampling vs verify, live-input piece replay vs verify. Bisect knobs: W7_AHEAD_STEPS, W7_AHEAD_NO_KV, W7_AHEAD_NO_SAMPLE, W7_SHADOW_MAIN_STREAM. CUDA_LAUNCH_BLOCKING is unusable here (breaks multi-rank NCCL init). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
5 tasks
1 task
shikamd123
added a commit
to shikamd123/vllm
that referenced
this pull request
Jul 20, 2026
…-agnostic wave wake - Remove in-core DP-rank routing from async_llm.py (drop the ROCm auto-route block, _pick_dp_rank_for_request / _ensure_disagg_transfer_id helpers, and the hashlib/current_platform imports). Rank pinning is delegated to the llm-d sidecar/router, per njhill/NickLucche. Delete the now-obsolete tests/v1/engine/test_dp_rank_routing.py. - Reframe the DP first-wave wake in core.py from a current_platform.is_rocm() gate to the external-LB DP mode (data_parallel_external_lb). In external LB the router addresses engines directly, so the coordinator is not in the per-request wake path; internal/hybrid LB stays bit-identical to upstream. Add a debug trace at the wake point (njhill vllm-project#5). - Revert VLLM_ENGINE_HANDSHAKE_TIMEOUT_MINUTES; restore the constant HANDSHAKE_TIMEOUT_MINS = 5 (njhill vllm-project#6). - Guard against division by zero on data_parallel_size_local in moriio_common.py port allocation (Doug vllm-project#10). - Fill the AITER root-cause/fix link (ROCm/aiter#3658) in the sampler warm-up skip TODO. - Pin the decode leg to the prefill DP rank via the X-data-parallel-rank header in the moriio toy proxy example. Signed-off-by: Shiksha Patel <shikpate@amd.com>
shikamd123
added a commit
to shikamd123/vllm
that referenced
this pull request
Jul 29, 2026
…-agnostic wave wake - Remove in-core DP-rank routing from async_llm.py (drop the ROCm auto-route block, _pick_dp_rank_for_request / _ensure_disagg_transfer_id helpers, and the hashlib/current_platform imports). Rank pinning is delegated to the llm-d sidecar/router, per njhill/NickLucche. Delete the now-obsolete tests/v1/engine/test_dp_rank_routing.py. - Reframe the DP first-wave wake in core.py from a current_platform.is_rocm() gate to the external-LB DP mode (data_parallel_external_lb). In external LB the router addresses engines directly, so the coordinator is not in the per-request wake path; internal/hybrid LB stays bit-identical to upstream. Add a debug trace at the wake point (njhill vllm-project#5). - Revert VLLM_ENGINE_HANDSHAKE_TIMEOUT_MINUTES; restore the constant HANDSHAKE_TIMEOUT_MINS = 5 (njhill vllm-project#6). - Guard against division by zero on data_parallel_size_local in moriio_common.py port allocation (Doug vllm-project#10). - Fill the AITER root-cause/fix link (ROCm/aiter#3658) in the sampler warm-up skip TODO. - Pin the decode leg to the prefill DP rank via the X-data-parallel-rank header in the moriio toy proxy example. Signed-off-by: Shiksha Patel <shikpate@amd.com>
raviguptaamd
pushed a commit
to raviguptaamd/vllm
that referenced
this pull request
Aug 1, 2026
…-agnostic wave wake - Remove in-core DP-rank routing from async_llm.py (drop the ROCm auto-route block, _pick_dp_rank_for_request / _ensure_disagg_transfer_id helpers, and the hashlib/current_platform imports). Rank pinning is delegated to the llm-d sidecar/router, per njhill/NickLucche. Delete the now-obsolete tests/v1/engine/test_dp_rank_routing.py. - Reframe the DP first-wave wake in core.py from a current_platform.is_rocm() gate to the external-LB DP mode (data_parallel_external_lb). In external LB the router addresses engines directly, so the coordinator is not in the per-request wake path; internal/hybrid LB stays bit-identical to upstream. Add a debug trace at the wake point (njhill vllm-project#5). - Revert VLLM_ENGINE_HANDSHAKE_TIMEOUT_MINUTES; restore the constant HANDSHAKE_TIMEOUT_MINS = 5 (njhill vllm-project#6). - Guard against division by zero on data_parallel_size_local in moriio_common.py port allocation (Doug vllm-project#10). - Fill the AITER root-cause/fix link (ROCm/aiter#3658) in the sampler warm-up skip TODO. - Pin the decode leg to the prefill DP rank via the X-data-parallel-rank header in the moriio toy proxy example. Signed-off-by: Shiksha Patel <shikpate@amd.com>
chenyi995
pushed a commit
to chenyi995/vllm-multi-agent
that referenced
this pull request
Aug 4, 2026
Ten changes, each forced by a measurement rather than a preference: - sanity vllm-project#1's threshold moves from absolute error to cosine. K carries attention-sink outliers (|k| up to 314 against a mean of 2.35), so 1e-2 absolute sits below vLLM's own numerical noise and is unreachable. - tau is calibrated per layer, not globally: the recomputation noise floor spans 0.99999 at layer 0 down to 0.964 at layer 26. - tau must be calibrated under a *partial* prefix hit. A full re-prefill reproduces bit for bit, which would falsely report zero noise. - The sensitivity sweep drops 0.90/0.95: different-content K pairs already score 0.90-0.96, so those thresholds sit inside the false-positive baseline. - The ample tier is defined per workflow. One workflow needs 80k-135k tokens and ten of them exceed every card we have. - Limited capacity uses mean(W), floored so the pool can still hold the longest single call; a smaller pool deadlocks the scheduler silently. - Storage re-estimated from 90 GB to 444 GB; the original figure mistook a configuration's working set for a workflow's. - max_tokens=1024 and gpu_memory_utilization=0.95 keep both capacity tiers on one card type, which removes a GPU architecture from inside the Q3 join. - 4/8 tiers skip the dump and reuse the 16 tier's tensors. - sanity vllm-project#5 is rewritten: the prefix-hit-ratio probe stopped discriminating once the proposers took distinct system prompts. Adds the Athena execution plan: the cluster ships only cu130 wheels for this base commit while the nodes run 535/550 drivers, so vLLM has to be built from source against a locally installed CUDA 12.9. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
wenhow
pushed a commit
to wenhow/vllm
that referenced
this pull request
Aug 5, 2026
…) (vllm-project#5996) ### What this PR does / why we need it? **Scope of Changes**: | File Path | | :--- | | `.../distributed/kv_transfer/kv_pool/ascend_store/ascend_store_connector.py` | | `vllm_ascend/distributed/kv_transfer/kv_pool/ascend_store/backend/backend.py` | | ` .../distributed/kv_transfer/kv_pool/ascend_store/backend/memcache_backend.py` | | ` .../distributed/kv_transfer/kv_pool/ascend_store/backend/mooncake_backend.py` | | ` vllm_ascend/distributed/kv_transfer/kv_pool/ascend_store/config_data.py` | | ` vllm_ascend/distributed/kv_transfer/kv_pool/ascend_store/kv_transfer.py` | | ` vllm_ascend/distributed/kv_transfer/kv_pool/ascend_store/pool_scheduler.py` | | ` vllm_ascend/distributed/kv_transfer/kv_pool/ascend_store/pool_worker.py` | | ` .../distributed/kv_transfer/kv_pool/cpu_offload/cpu_kv_cache_manager.py` | | ` .../distributed/kv_transfer/kv_pool/cpu_offload/cpu_offload_connector.py` | | ` vllm_ascend/distributed/kv_transfer/kv_pool/cpu_offload/metadata.py` | | ` vllm_ascend/distributed/kv_transfer/kv_pool/ucm_connector.py` | | ` vllm_ascend/distributed/kv_transfer/utils/mooncake_transfer_engine.py` | | ` vllm_ascend/distributed/kv_transfer/utils/utils.py` | | ` vllm_ascend/kv_offload/cpu_npu.py` | | ` vllm_ascend/kv_offload/npu.py` | | ` vllm_ascend/lora/lora_ops.py` | | ` vllm_ascend/lora/punica_npu.py` | | ` vllm_ascend/lora/utils.py` | ### Does this PR introduce _any_ user-facing change? ### How was this patch tested? - vLLM version: v0.13.0 - vLLM main: vllm-project@2c24bc6 --------- Signed-off-by: MrZ20 <2609716663@qq.com> Signed-off-by: SILONG ZENG <2609716663@qq.com>
wenhow
pushed a commit
to wenhow/vllm
that referenced
this pull request
Aug 5, 2026
…lm-project#6747) ### What this PR does / why we need it? | File Path | | :--- | | `tests/e2e/singlecard/compile/backend.py` | | `tests/e2e/singlecard/compile/test_graphex_norm_quant_fusion.py` | | `tests/e2e/singlecard/compile/test_graphex_qknorm_rope_fusion.py` | | `tests/e2e/singlecard/compile/test_norm_quant_fusion.py` | | `tests/e2e/singlecard/model_runner_v2/test_basic.py` | | `tests/e2e/singlecard/test_aclgraph_accuracy.py` | | `tests/e2e/singlecard/test_aclgraph_batch_invariant.py` | | `tests/e2e/singlecard/test_aclgraph_mem.py` | | `tests/e2e/singlecard/test_async_scheduling.py` | | `tests/e2e/singlecard/test_auto_fit_max_mode_len.py` | | `tests/e2e/singlecard/test_batch_invariant.py` | | `tests/e2e/singlecard/test_camem.py` | | `tests/e2e/singlecard/test_completion_with_prompt_embeds.py` | | `tests/e2e/singlecard/test_cpu_offloading.py` | | `tests/e2e/singlecard/test_guided_decoding.py` | | `tests/e2e/singlecard/test_ilama_lora.py` | | `tests/e2e/singlecard/test_llama32_lora.py` | | `tests/e2e/singlecard/test_models.py` | | `tests/e2e/singlecard/test_multistream_overlap_shared_expert.py` | | `tests/e2e/singlecard/test_quantization.py` | | `tests/e2e/singlecard/test_qwen3_multi_loras.py` | | `tests/e2e/singlecard/test_sampler.py` | | `tests/e2e/singlecard/test_vlm.py` | | `tests/e2e/singlecard/test_xlite.py` | | `tests/e2e/singlecard/utils.py` | ### Does this PR introduce _any_ user-facing change? ### How was this patch tested? - vLLM version: v0.15.0 - vLLM main: vllm-project@9562912 --------- Signed-off-by: MrZ20 <2609716663@qq.com>
malaiwah
added a commit
to malaiwah/vllm-voipmonitor
that referenced
this pull request
Aug 12, 2026
Implemented and measured on RTX 5090 with real EXL3 Viterbi trellis: - vllm-project#6 Hessian-weighted scale: no gain (synthetic Hessian too uniform) - vllm-project#2 Adaptive lattice: no gain (Lloyd-Max already optimal for Gaussian) - vllm-project#3 Low-rank subspace: no gain (Hadamard makes residuals full-rank) - vllm-project#5 Sparse residual: significant — K3+sparse_only0.5% beats K3 at 3.2 bits - vllm-project#7 Multi-codebook (AQLM): fails (codebooks can't capture i.i.d. Gaussian) - #1 Matryoshka approx: no gain (single step insufficient) Pareto frontier: K4 standalone still optimal at 4 bits. Residual approaches win at non-standard bit widths (3.2, 5, 5.2, 7 bits). Sparse+Lloyd-Max combo gives 95.3% gap at 4.04 bits vs 94.8% at 4.0 bits. Co-authored-by: Claude <noreply@anthropic.com>
D-G-Dimitrov
pushed a commit
to D-G-Dimitrov/vllm
that referenced
this pull request
Aug 12, 2026
The fused tilelang prenorm kernels re-read `fn` from every token tile, which
makes them L2-bound at prefill shapes (the best swept config (8, 6) runs
442 us at T=2048, ~155 GB/s). The operation is just a [T, 16384] bf16 x
[24, 16384] GEMM plus a per-row fp32 sqrsum, and unlike the fused kernel the
two-pass split reads x exactly twice: cuBLAS takes the GEMM (bf16 out, fp32
accumulate, upcast into the fp32 buffer -- torch.mm will not emit fp32 from
bf16 in) and a new one-pass Triton reduction (_row_sqrsum_kernel) takes the
sqrsum. The bf16 `fn` copy is cached on the weight tensor itself.
Measured (harness `--kernel prenorm-gemm`, new cublas arm), vs tilelang
(8, 6): 17.4 vs 26.2 us at T=64, 17.5 vs 26.9 at 128, 23.0 vs 82.6 at 512,
35.1 vs 201.6 at 1024, 85.0 vs 442.2 at T=2048 -- 5.2x at the prefill chunk
shape, beating the >= 3x acceptance and the 95-130 us projection. Timing the
production router end-to-end reproduces the direct-kernel numbers (6.7 /
16.7 / 85.1 us at T = 1 / 32 / 2048). The named risk (cuBLAS picking a
degenerate tile at N=24) did not materialize: 808 GB/s on minimal bytes =
~1.6 TB/s on actual traffic, at the lm_head anchor rate. The route runs
under do_bench_cudagraph in the harness, so cudagraph capture is exercised.
Routing: the small-T one-CTA-per-token kernel keeps T < 32 (7.0 vs 10.5 us
at T=1; T=32 is a dead heat at 16.8 vs 16.7), so _PRENORM_SMALL_T moves
64 -> 32 -- the re-measured crossover against the new backend. The block_m
(8, 6) route stays in-tree behind _PRENORM_USE_CUBLAS as the escape, still
tested and benched. Decode at batch 1 is untouched.
Numerics: `fn` is rounded to bf16 (~3 mantissa bits below the fp32
reference) and the GEMM result is rounded to bf16 before the upcast. The
parity test now pins this directly on `out` at rel 5e-3 against the tensor
scale for every routed T -- the downstream mhc_pre tolerance alone cannot
distinguish bf16-fn rounding from a broken kernel -- while T < 32 keeps the
strict fp32 tolerance (atol 1e-5, rtol 1e-4). New boundary cases at
T in {31, 32}; suite 59 -> 65, all passing, including the fuse_norm
downstream cases which now exercise the cuBLAS route at T=128.
Expected end-to-end: the prenorm GEMM is 16.5% of 32k prefill / 12.7% at
128k, so ~9-13% TTFT at 32k from a 5.2x kernel win. Server confirmation
belongs to batch run vllm-project#5.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: haosdent <haosdent@gmail.com>
remichu-ai
added a commit
to remichu-ai/vllm
that referenced
this pull request
Aug 19, 2026
serve.sh -v 2 boots the production configuration; handoff failure vllm-project#5 was MTP=3-specific, not the PCIe all-reduce. The traceback frame that pointed at custom_all_reduce was a graph-capture sync point, and dmesg carries the matching Xid 31 MMU faults on that run's PP0 pids. It does not pass the definition of done. Above ~7.7k prompt tokens the output stays fluent but misreads its own context; V1 is 3/3 clean on the identical probe, so this is a V2 regression rather than the driver, the GPU 6 Xid suspicion, or the 08-06/07 production corruption. VLLM_DCP_GLOBAL_TOPK=1 is recorded as a negative result. Also documents failure vllm-project#4 as a weighted-DCP-unaware block-size bug with a fix in the worktree, not a V2 limitation. Co-authored-by: Claude Opus 5 Signed-off-by: remichu <trantrungduc91@gmail.com>
Closed
1 task
SoniCoder
pushed a commit
to shizuha-labs/vllm
that referenced
this pull request
Aug 24, 2026
…s to fp8-lane deepseek_v4 parser' (vllm-project#5) from fix/ctx645-dsv4-parser-backport into build/vllm-0.25.1-dsv4-sm121-stock
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR fixes a miscalculation of the input shape when iteration-level scheduling is used.