Skip to content

[Dependency] Upgrade FlashInfer to 0.7.1 - #60948

Merged
khluu merged 7 commits into
vllm-project:mainfrom
wzhao18:wzhao/fi-0.7.1
Oct 14, 2026
Merged

khluu merged 7 commits into
vllm-project:mainfrom
wzhao18:wzhao/fi-0.7.1

Conversation

@wzhao18

@wzhao18 wzhao18 commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor

Overview

Upgrade FlashInfer from 0.7.0.post1 to 0.7.1 for standard CUDA and Rubin builds. Explicitly select the CuTe DSL KDA prefill backend to avoid the inference-tensor crash observed in the B200 Kimi K3 CI job.

Claims

  • Update the shared flashinfer-python pin to 0.7.1, retaining upstream's common flashinfer download-kernels installation flow for CUDA and Rubin.
  • Keep KDA prefill on FlashInfer with inference mode enabled. No FlashInfer modifications, metadata copies, or test changes are required.

Validation

On an allocated NVIDIA GB300 node with FlashInfer 0.7.1, PyTorch 2.13.0+cu130, and nvidia-cutlass-dsl 4.8.0, using an isolated checkout and the existing environment:

  • Reproduced all three original KDA failures before the fix; all three passed afterward (prefill correctness, near-collinear keys, and cross-stream breakable CUDA graph).
  • pytest -v tests/models/kimi_k3 --ignore=tests/models/kimi_k3/test_prefix_cache.py tests/kernels/attention/test_kimi_k3_mla_fused_epilogue.py — 260 passed, 154 skipped. This is the B200 Kimi K3 CI test selection, executed on GB300. Tests used the environment's .venv/bin/python -m pytest.
  • .venv/bin/python -m pre_commit run --files requirements/cuda.txt vllm/models/kimi_k3/nvidia/kda.py — passed after rebasing.
  • git diff --check — passed.

GPU tests were run before the final rebase; the rebase did not change Kimi implementation or test files. B200 execution, full model accuracy evaluations, and standard/Rubin container builds have not been performed for this revision. The earlier MI250 EAGLE3 acceptance failure remains unresolved and should be reassessed in CI; it is not established to be an existing main failure.

Details

FlashInfer's automatic small-BH prefill path caches packed sequence metadata using cu_seqlens._version. Inference tensors have no version counter, so this raises before kernel launch. Explicit backend="cute-dsl" avoids that path without changing PyTorch inference mode.

This bypasses the small-BH optimization. GB300 CUPTI microbenchmarks (BF16, D128, bounded gate, cold L2, eager GPU timing; median of three blocks of 20 samples) measured:

Heads / tokens FlashKDA (us) FlashInfer auto (us) Explicit CuTe DSL (us)
12 / 128 45.7 31.3 23.6
12 / 2,048 118.6 71.5 80.4
12 / 8,192 355.4 214.1 270.1
96 / 8,192 863.7 459.5 459.1

Auto was measured with ordinary metadata tensors to avoid the crash. Explicit CuTe DSL was faster than FlashKDA for these cases, but 12–26% slower than working auto selection for the two longer H12 cases. These are microbenchmarks, not end-to-end serving measurements. Output and final-state correctness were checked before timing.

Rebased onto upstream main 838526c7e5. Upstream removed separate cubin/JIT-cache pins in favor of flashinfer download-kernels; this PR preserves that change. Rubin continues to use the shared FlashInfer pin.

The initial duplicate-work search found no other open PR implementing this version upgrade; this updates the existing PR rather than opening a duplicate. No associated issue. AI assistance (Codex) was used for implementation, investigation, and validation.


Pull Request Checklist
  • I used vLLM's /pr-checklist skill.
  • AI assistance was used during the creation of this PR.
  • Design Fit: Uses shared installation and an existing public backend option.
  • Testing and Validation: Regression and full Kimi CI selection passed on GB300; B200 CI, model evaluations, and container builds remain outstanding.
  • Code Quality and Style: One version-pin change and a two-line backend selection; lint passed.
  • Pull Request Contents: Includes root cause, validation, performance tradeoffs, and limitations.

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

@mergify mergify Bot added the ci/build label Oct 10, 2026
@wzhao18 wzhao18 added the ready-run-all-tests Trigger CI with all tests for wide-ranging PRs label Oct 10, 2026
@wzhao18

wzhao18 commented Oct 10, 2026

Copy link
Copy Markdown
Contributor Author

/ci run nightly

@github-actions

Copy link
Copy Markdown

✅ Triggered Buildkite CI #93957 for commit da3cf3ad3e1d.

@mergify

mergify Bot commented Oct 10, 2026

Copy link
Copy Markdown
Contributor

This pull request has merge conflicts that must be resolved before it can be
merged. Please rebase the PR, @wzhao18.

https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

@mergify mergify Bot added the needs-rebase label Oct 10, 2026
@lesj0610

Copy link
Copy Markdown
Contributor

@wzhao18 Could you rebase this onto main? My PR #46558 needs FlashInfer 0.7.1 for mm-prefix attention, so I’m waiting on this update. Thanks!

Update the shared Python pin for standard CUDA and Rubin builds, preserving the common download-kernels installation flow.

Co-authored-by: Codex <noreply@openai.com>

Signed-off-by: wzhao18 <wzhao18.sz@gmail.com>
Avoid the automatic small-BH path, whose packed metadata cache reads version counters unavailable on inference tensors.

Co-authored-by: Codex <noreply@openai.com>

Signed-off-by: wzhao18 <wzhao18.sz@gmail.com>
@wzhao18

wzhao18 commented Oct 10, 2026

Copy link
Copy Markdown
Contributor Author

/ci run nightly

@github-actions

Copy link
Copy Markdown

✅ Triggered Buildkite CI #94016 for commit 58d59227e762.

Co-authored-by: Codex <noreply@openai.com>

Signed-off-by: wzhao18 <wzhao18.sz@gmail.com>
@wzhao18

wzhao18 commented Oct 10, 2026

Copy link
Copy Markdown
Contributor Author

/ci run nightly

@github-actions

Copy link
Copy Markdown

✅ Triggered Buildkite CI #94017 for commit b0aa85fbec98.

@wzhao18

wzhao18 commented Oct 10, 2026

Copy link
Copy Markdown
Contributor Author

/ci retry

@github-actions

Copy link
Copy Markdown

✅ Queued 6 failed job(s) for retry in Buildkite CI #94017.

@wzhao18

wzhao18 commented Oct 10, 2026

Copy link
Copy Markdown
Contributor Author

/ci retry

@github-actions

Copy link
Copy Markdown

✅ Queued 6 failed job(s) for retry in Buildkite CI #94017.

@wzhao18

wzhao18 commented Oct 10, 2026

Copy link
Copy Markdown
Contributor Author

@zyongye @jeejeelee The lm-eval-humming tests are failing in main as well. nvidia-dgx-spark-flashinfer-nvfp4-xqa is failing due to huggingface gated models. arm-cpu-test-shard-2 does not seem related. So the CI looks good. Feel free to consider merging.

@wzhao18

wzhao18 commented Oct 13, 2026

Copy link
Copy Markdown
Contributor Author

/ci run nightly

@github-actions

Copy link
Copy Markdown

✅ Triggered Buildkite CI #94519 for commit 9fa69d03b2b6.

@wzhao18

wzhao18 commented Oct 13, 2026

Copy link
Copy Markdown
Contributor Author

/ci retry

@github-actions

Copy link
Copy Markdown

✅ Queued 12 failed job(s) for retry in Buildkite CI #94519.

@wzhao18

wzhao18 commented Oct 13, 2026

Copy link
Copy Markdown
Contributor Author

/ci retry

@github-actions

Copy link
Copy Markdown

✅ Queued 5 failed job(s) for retry in Buildkite CI #94519.

@wzhao18

wzhao18 commented Oct 13, 2026

Copy link
Copy Markdown
Contributor Author

/ci retry

@github-actions

Copy link
Copy Markdown

✅ Queued 10 failed job(s) for retry in Buildkite CI #94519.

@wzhao18

wzhao18 commented Oct 13, 2026

Copy link
Copy Markdown
Contributor Author

CI failure triage: nightly #94519

None of the confirmed failures come from the FlashInfer 0.7.1 bump. Only Snapshot E2E is still unconfirmed.

Job Error Cause
(B200) LM Eval Humming Default TEMPORARY
(B200) LM Eval Humming Activation FP8/INT8 TEMPORARY
(H100) LM Eval Humming Default TEMPORARY Shard 1
(H100) LM Eval Humming Activation FP8/INT8 TEMPORARY
assert scale.size(0) == (num_experts or 1) in humming schema Already failing on main (#56997); fixed by #61412
(H100) DeepEP FP8 MoE Kernels Cannot re-initialize CUDA in forked subprocess Regression on main from #59482 (DeepGEMM stable ABI); passed on this PR before merging main
(H100) Fault Tolerance E2E EP all2all / gloo recv timeout after fault injection Regression on main from #59482; fails on main since f5fefbf
(DGX) Spark FlashInfer NVFP4 XQA HF 401 on gated meta-llama/Meta-Llama-3-8B CI setup: missing HF token; also fails on main
Arm CPU Test Shard 2 Boolean value of Tensor ... ambiguous in cpu_triton_utils.py Already failing on main
(B200) FusedMoE Layer Kernels Job timeout Flaky; also times out on main
(B200) MoE Refactor Integration TEMPORARY Shard 1 DSv4-Flash mega-moe server failed to start Flaky; also fails on main-based PR CI without this change
(H200) Initialized Snapshot E2E SnapshotRestoreError on restore New failure, cause unconfirmed; main hasn't run it since #59482
(B200) Distributed MooncakeConnector PD accuracy
(B200) LM Eval PCP
(B200) LM Eval Spec Decode
(B200) Qwen3.8-Flash-Next-FP8 Accuracy Eval
(4xB200) Kimi K3 Prefix Cache Shard 1
(4xB200) Kimi K3 Prefix Cache Shard 2
Exit -1, no agent assigned No agent picked them up

@wzhao18

wzhao18 commented Oct 13, 2026

Copy link
Copy Markdown
Contributor Author

/ci retry

@github-actions

Copy link
Copy Markdown

✅ Queued 4 failed job(s) for retry in Buildkite CI #94519.

@khluu

khluu commented Oct 14, 2026

Copy link
Copy Markdown
Member

/ci retry

@github-actions

Copy link
Copy Markdown

✅ The previous CI build is still running: https://buildkite.com/vllm/ci/builds/94519

@khluu

khluu commented Oct 14, 2026

Copy link
Copy Markdown
Member

retrying to see if Initialized snapshot can pass, since we don't have much data about it on main

@wzhao18

wzhao18 commented Oct 14, 2026

Copy link
Copy Markdown
Contributor Author

/ci run

@github-actions

Copy link
Copy Markdown

✅ Triggered Buildkite CI #94647 for commit b05725f6a629.

@wzhao18

wzhao18 commented Oct 14, 2026

Copy link
Copy Markdown
Contributor Author

@khluu Ready for merge?

@khluu
khluu merged commit 4975fda into vllm-project:main Oct 14, 2026
626 of 635 checks passed
AndreasKaratzas pushed a commit to AndreasKaratzas/vllm that referenced this pull request Oct 16, 2026
Signed-off-by: wzhao18 <wzhao18.sz@gmail.com>
Co-authored-by: Jee Jee Li <pandaleefree@gmail.com>

Signed-off-by: Andreas Karatzas <AndreasKaratzas@users.noreply.github.com>
michael-gpu pushed a commit to practical-inference/vllm-ampere-extended that referenced this pull request Oct 20, 2026
Signed-off-by: wzhao18 <wzhao18.sz@gmail.com>
Co-authored-by: Jee Jee Li <pandaleefree@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci/build k3 kimi ready-run-all-tests Trigger CI with all tests for wide-ranging PRs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants