Skip to content

docs: document FlashInfer sampler JIT workaround in install guides#10954

Merged
rmccorm4 merged 6 commits into
ai-dynamo:mainfrom
carlory:docs/building-from-source-flashinfer-sampler
Jul 3, 2026
Merged

docs: document FlashInfer sampler JIT workaround in install guides#10954
rmccorm4 merged 6 commits into
ai-dynamo:mainfrom
carlory:docs/building-from-source-flashinfer-sampler

Conversation

@carlory

@carlory carlory commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a Troubleshooting entry for the FlashInfer sampler JIT failure that aborts a vLLM worker at engine init on CUDA 13 source/PyPI installs, plus a small correctness fix to the install procedure.

  • docs/getting-started/building-from-source.md (+ zh-CN): step 7 now installs a backend extra (.[vllm] / [sglang] / [trtllm]) — the base uv pip install -e . only provides the runtime and frontend, so a worker cannot run without one. Adds the FlashInfer sampler Troubleshooting entry.
  • docs/getting-started/local-installation.md (+ zh-CN): adds the same FlashInfer sampler Troubleshooting entry (its ai-dynamo[vllm] PyPI path hits the same failure on CUDA 13).

Failure and root cause: the CUDA pip wheels resolved for a CUDA 13 install are version-skewed — torch pins the runtime headers to 13.0 while vLLM's tilelang pulls nvidia-cuda-nvcc 13.2. FlashInfer compiles its sampler kernel with nvcc against those headers, and CCCL's compatibility check rejects the mismatch, so vLLM aborts during engine init. Workaround: VLLM_USE_FLASHINFER_SAMPLER=0. Tracked upstream at flashinfer#3493; full root-cause analysis in #10952.

Closes #10952.

Validation

  • Reproduced the failure locally and verified the workaround end-to-end: a native dynamo.frontend + dynamo.vllm (Qwen3-0.6B) run on CUDA 13 returns /v1/chat/completions with VLLM_USE_FLASHINFER_SAMPLER=0 set. Without the flag, the worker aborts at engine init with cuda/std/__cccl/cuda_toolkit.h: ... "CUDA compiler and CUDA toolkit headers are incompatible".
  • Version skew confirmed from installed wheel metadata: nvidia-cuda-nvcc==13.2.78 vs nvidia-cuda-runtime==13.0.96.
  • Content-only edits to existing pages (no nav/title/move); frontmatter + SPDX intact, no body H1, code fences tagged, links resolve. fern check / fern docs broken-links run in CI (fern CLI unavailable locally).
  • Considered and dropped a second Troubleshooting entry for NIXL libcudart ... not found after testing: a basic aggregated vLLM run starts and serves correctly without LD_LIBRARY_PATH, so it isn't needed in these getting-started guides (it only affects disaggregated KV transfer).

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
    • Updated installation instructions to recommend backend-specific extras for setting up inference workers, instead of a single generic install command.
    • Added a note clarifying that the base install includes only the runtime/frontend, and backend extras are required for workers.
    • Expanded troubleshooting with a new vLLM startup issue for CUDA 13 environments, including a sample error and a workaround using VLLM_USE_FLASHINFER_SAMPLER=0.

The base `uv pip install -e .` only installs the runtime and frontend;
building-from-source step 7 now installs a backend extra
([vllm]/[sglang]/[trtllm]) so a worker can run.

Add a Troubleshooting entry to both install guides (Building from Source
and Local Installation, EN + zh-CN) for the FlashInfer sampler JIT failure
on CUDA 13: the resolved wheels are version-skewed (torch 13.0 runtime
headers vs vLLM tilelang 13.2 nvidia-cuda-nvcc), so the sampler kernel
cannot JIT-compile and vLLM aborts at engine init. Workaround:
VLLM_USE_FLASHINFER_SAMPLER=0. Upstream flashinfer#3493.

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: carlory <baofa.fan@daocloud.io>
@copy-pr-bot

copy-pr-bot Bot commented Jun 25, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@carlory carlory temporarily deployed to external_collaborator June 25, 2026 10:44 — with GitHub Actions Inactive
@github-actions

github-actions Bot commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot added docs external-contribution Pull request is from an external contributor documentation Improvements or additions to documentation labels Jun 25, 2026
@carlory carlory marked this pull request as ready for review June 25, 2026 10:49
@carlory carlory requested a review from a team as a code owner June 25, 2026 10:49

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Open in Devin Review

@coderabbitai

coderabbitai Bot commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: e64635e6-a695-4852-b4d4-b9f65b7a4465

📥 Commits

Reviewing files that changed from the base of the PR and between 4f437cc and 60a5a4b.

📒 Files selected for processing (4)
  • docs/getting-started/building-from-source.md
  • docs/getting-started/building-from-source.zh-CN.md
  • docs/getting-started/local-installation.md
  • docs/getting-started/local-installation.zh-CN.md

Walkthrough

The source-build and local-installation guides now require backend extras for wheel installation and add a troubleshooting note for vLLM worker startup failures on CUDA 13 FlashInfer sampler JIT errors, including the VLLM_USE_FLASHINFER_SAMPLER=0 workaround.

Changes

Source install guidance

Layer / File(s) Summary
Backend extra install instructions
docs/getting-started/building-from-source*.md
The wheel-install step now uses backend extras such as [vllm], [sglang], or [trtllm], and the note states that the base install covers only runtime/frontend.
vLLM FlashInfer troubleshooting
docs/getting-started/building-from-source*.md, docs/getting-started/local-installation*.md
The troubleshooting sections add a CUDA 13 vLLM worker startup failure entry with the FlashInfer sampler JIT error pattern and the VLLM_USE_FLASHINFER_SAMPLER=0 workaround.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately reflects the main docs change: documenting the FlashInfer sampler JIT workaround in install guides.
Description check ✅ Passed The PR description covers the change summary, validation, and linked issue, with only template headings and reviewer-start guidance missing.
Linked Issues check ✅ Passed The docs now cover the CUDA 13 FlashInfer sampler failure in both install paths and document the VLLM_USE_FLASHINFER_SAMPLER=0 workaround for #10952.
Out of Scope Changes check ✅ Passed The changes stay within documentation for installation troubleshooting and do not introduce unrelated code or behavioral changes.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Comment @coderabbitai help to get the list of available commands.

Comment thread docs/getting-started/building-from-source.md Outdated
Comment thread docs/getting-started/building-from-source.zh-CN.md Outdated
Comment thread docs/getting-started/building-from-source.md Outdated
- Step 7: drop [trtllm] from the `uv pip install` alternative; TensorRT-LLM
  cannot be installed with uv (it needs pip + the NVIDIA package index). Add a
  combined note pointing to Local Installation / the TRT-LLM backend guide.
- Apply rmccorm4's note rewording ("will install the relevant framework
  dependencies" instead of "is required").
- Mirrored in the zh-CN translation.

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: carlory <baofa.fan@daocloud.io>
@carlory carlory temporarily deployed to external_collaborator June 26, 2026 03:06 — with GitHub Actions Inactive
@julienmancuso

Copy link
Copy Markdown
Contributor

/ok to test 6892cea

@julienmancuso julienmancuso requested a review from rmccorm4 July 1, 2026 17:08

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Devin Review found 1 new potential issue.

Open in Devin Review

Comment thread docs/getting-started/building-from-source.zh-CN.md
Comment thread docs/getting-started/building-from-source.md Outdated
Comment thread docs/getting-started/building-from-source.md Outdated
Comment thread docs/getting-started/building-from-source.zh-CN.md Outdated
@rmccorm4 rmccorm4 temporarily deployed to external_collaborator July 2, 2026 07:20 — with GitHub Actions Inactive
@rmccorm4

rmccorm4 commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Pulled in latest changes to docs that remove uv pip install path documentation for TRTLLM: #11066

@rmccorm4 rmccorm4 self-assigned this Jul 2, 2026
Co-authored-by: Ryan McCormick <mccormick.codes@gmail.com>
Signed-off-by: 杨朱 · Kiki <baofa.fan@daocloud.io>
@carlory carlory temporarily deployed to external_collaborator July 3, 2026 05:50 — with GitHub Actions Inactive
Co-authored-by: Ryan McCormick <mccormick.codes@gmail.com>
Signed-off-by: 杨朱 · Kiki <baofa.fan@daocloud.io>
@carlory carlory temporarily deployed to external_collaborator July 3, 2026 05:50 — with GitHub Actions Inactive
…ation

Apply the same §7 install changes already made to the English page to the
Simplified Chinese translation: drop `[trtllm]` from the `uv pip install`
backend-extra list and point TensorRT-LLM users to the `tensorrtllm-runtime`
container instead of the stale pip/NVIDIA-index path.

Addresses rmccorm4's review thread asking for zh-CN parity with the English
suggestions on PR ai-dynamo#10954.

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: carlory <baofa.fan@daocloud.io>
@carlory carlory temporarily deployed to external_collaborator July 3, 2026 06:06 — with GitHub Actions Inactive
@rmccorm4 rmccorm4 enabled auto-merge (squash) July 3, 2026 06:55
@rmccorm4

rmccorm4 commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

/ok to test 0ba262c

@rmccorm4 rmccorm4 merged commit 302f4d5 into ai-dynamo:main Jul 3, 2026
79 checks passed
@carlory carlory deleted the docs/building-from-source-flashinfer-sampler branch July 3, 2026 08:06
dagil-nvidia added a commit that referenced this pull request Jul 3, 2026
Regenerate the translation mirror from latest main so the #10954 zh
edits land fully, and restore the quickstart Card locale hrefs.

Signed-off-by: Dan Gil <dagil@nvidia.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs documentation Improvements or additions to documentation external-contribution Pull request is from an external contributor size/M

Projects

None yet

Development

Successfully merging this pull request may close these issues.

From-source vLLM run aborts at engine init: FlashInfer sampler JIT fails on CUDA 13 wheel version skew

3 participants