Skip to content

[26.10] [DOC] FlashInfer: documentation updates for release - #389

Open
anisha-amd wants to merge 25 commits into
release/0.6.18+amd.2from
docs/26.10
Open

anisha-amd wants to merge 25 commits into
release/0.6.18+amd.2from
docs/26.10

Conversation

@anisha-amd

Copy link
Copy Markdown

Documentation updates for release.

@anisha-amd anisha-amd added the documentation Improvements or additions to documentation label Oct 20, 2026
@demandal25
demandal25 requested review from demandal25 and a balanced review from Copilot October 20, 2026 17:35

Copilot AI 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.

🟡 Changes recommended

Installation guidance, runtime controls, and capability claims conflict with the supported implementation.

11 open issues
What changed in this PR

Adds ROCm-focused FlashInfer documentation for the 26.10 release.

Changes:

  • Documents installation, examples, capabilities, and environment variables.
  • Adds site navigation, licensing, and Sphinx/Read the Docs configuration.
File Description
amd-docs/​what-is-flashinfer.rst Overview and kernel support matrix.
amd-docs/​sphinx/​requirements.txt Documentation dependencies.
amd-docs/​sphinx/​_toc.yml.in Site navigation.
amd-docs/​reference/​environment-variables.rst Runtime settings and helpers.
amd-docs/​install/​flashinfer-install.rst Installation requirements and commands.
amd-docs/​index.rst Documentation landing page.
amd-docs/​examples/​flashinfer-examples.rst AITER prefill example.
amd-docs/​conf.py Sphinx theme and release metadata.
amd-docs/​about/​license.rst License inclusion.
amd-docs/​.readthedocs.yaml Documentation build configuration.

Review effort: Balanced

Comment thread amd-docs/install/flashinfer-install.rst Resolved
Comment thread amd-docs/install/flashinfer-install.rst Resolved
Comment thread amd-docs/install/flashinfer-install.rst Resolved
Comment thread amd-docs/install/flashinfer-install.rst Resolved
Comment thread amd-docs/what-is-flashinfer.rst Resolved
Comment thread amd-docs/what-is-flashinfer.rst Resolved
Comment thread amd-docs/what-is-flashinfer.rst Resolved
anisha-amd and others added 11 commits October 20, 2026 17:10
…only AITER claim'

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: anisha-amd <anisha.sankar@amd.com>
…from AITER reinstallation'

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: anisha-amd <anisha.sankar@amd.com>
… index'

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: anisha-amd <anisha.sankar@amd.com>
…ant directory variable'

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: anisha-amd <anisha.sankar@amd.com>
…e fallback claim'

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: anisha-amd <anisha.sankar@amd.com>
…mbly environment variables'

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: anisha-amd <anisha.sankar@amd.com>
…ctions to supported APIs'

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: anisha-amd <anisha.sankar@amd.com>
…he claims'

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: anisha-amd <anisha.sankar@amd.com>
…pport'

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: anisha-amd <anisha.sankar@amd.com>
Clears the pre-commit failures on #389: trailing-whitespace in four
amd-docs files and ruff-format on conf.py. No content change.

Co-Authored-By: Claude <noreply@anthropic.com>
…-up-tag

Bring release/0.6.18+amd.1 up to the v0.6.18+amd.1 tag
@demandal25 demandal25 closed this Oct 21, 2026
@demandal25 demandal25 reopened this Oct 21, 2026

Copilot AI 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.

Comment thread amd-docs/what-is-flashinfer.rst Resolved
Comment thread amd-docs/install/flashinfer-install.rst Resolved
Comment thread amd-docs/install/flashinfer-install.rst Resolved
Comment thread amd-docs/install/flashinfer-install.rst Resolved
Comment thread amd-docs/what-is-flashinfer.rst Resolved
Comment thread amd-docs/what-is-flashinfer.rst Resolved
anisha-amd and others added 4 commits October 21, 2026 13:27
Co-authored-by: yugang-amd <yugang.wang@amd.com>
Signed-off-by: anisha-amd <anisha.sankar@amd.com>
Drop the AITER install section. The development image builds AITER from the
pinned v0.1.21.post2 tag, so neither recipe applies, and the pip one named a
0.1.20 wheel that the shim's AITER_MIN_VERSION = "0.1.21" floor rejects.

Narrow FLASHINFER_AITER_STRICT. plan() gates the probe on routes_natively and
_aiter_paged_route_page_sizes() is `native & {1024}` for fp16/bf16, so every
other page size takes flat-gather whether or not strict is set.

Add AITER's fp8 paged route (head dim 128 or 256) to the batch-prefill row,
per the batch_prefill/aiter capability note in arch_caps.py.

Co-Authored-By: Claude <noreply@anthropic.com>
Add MI350X to the GPU lists. gfx950 is MI350X and MI355X, which the
environment-variables page already said in two places while the support matrix
and the prerequisites named only MI355X.

Correct FLASHINFER_TRACE_APPLY. flashinfer/__init__.py gates on
`not in ("0", "", "false", "False")`, so "off", "no" and "FALSE" all enable
kernel substitution rather than being warned about and ignored.

Drop --ipc=host from the docker run. It shares the host IPC namespace, which
makes --shm-size a no-op; the README and CONTRIBUTING recipes set --shm-size
without it.

Co-Authored-By: Claude <noreply@anthropic.com>
demandal25
demandal25 previously approved these changes Oct 22, 2026
@demandal25
demandal25 changed the base branch from release/0.6.18+amd.1 to release/0.6.18+amd.2 October 26, 2026 21:16
@demandal25
demandal25 dismissed their stale review October 26, 2026 21:16

The base branch was changed.

@github-actions

github-actions Bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Security scan found no critical or high findings on lines changed by this pull request

View the security scan run for complete reports.

“New” means the finding is located in a changed file on an added or modified line; it is not a base-versus-head findings delta.

@demandal25
demandal25 self-requested a review October 28, 2026 16:24
demandal25
demandal25 previously approved these changes Oct 28, 2026
Six claims in amd-docs/what-is-flashinfer.rst disagreed with the generated
matrix in README.md, which is emitted from flashinfer/rocm/arch_caps.py.

The lead paragraph said operations run on AITER wherever it is supported. That
is false for five of the eight routed ops: rmsnorm, fused_add_rmsnorm,
silu_and_mul, rope and append_paged_kv_cache always resolve to the in-tree
kernel, with AITER opt-in.

Batch decode and append paged KV cache advertised an fp8 KV cache without
naming a backend. AITER's PA v1 raises on anything but fp16/bf16
(flashinfer/rocm/decode.py:539-543) and the AITER append path is fp16/bf16 too,
so fp8 is the HIP kernel in both rows.

Cascade's default was listed as HIP. HIP supplies only the merge kernels; each
level runs through the ordinary prefill and decode entry points at
backend="auto" and can reach AITER, which no cascade wrapper exposes a
backend= to override.

POD omitted that an fp8 KV cache is refused (docs/rocm/backends.md:865), while
every neighbouring attention row advertises fp8.

Fused MoE omitted that weights must be pre-shuffled with shuffle_moe_weight
(flashinfer/rocm/fused_moe.py:10,218). Unshuffled weights are not rejected,
they are large relative error, so this is the one omission that costs a wrong
answer rather than an exception.

No rows were added or removed: all 19 ops in the generated matrix already map
onto the 16 existing rows. Per-backend constraints stay out of the table --
the closing paragraph now names the categories (dtypes, layouts, page sizes,
fp8 spellings, when auto declines AITER) and points at the README, which is
generated and pre-commit checked, rather than restating them here where they
would drift.

Two fixes outside the table. The install page's docker run was missing
--group-add for the host's render GID, so the documented command yields a
container that cannot open a GPU: the image ends on USER $USERNAME
(docker/Dockerfile.rocm:215), and --privileged gives a non-root uid no
effective CAP_DAC_OVERRIDE, so the DAC check on the 0660 root:render node still
runs. Measured on a gfx942 host, flags otherwise identical: without
--group-add the open fails EACCES; with the host's numeric render GID it passes
and fails EPERM from the DRM driver instead, which only a successful open can
reach. The examples page said backend="aiter" selects AITER for any operation;
single_decode_with_kv_cache, aiter_fused_moe and the cascade wrappers accept no
backend argument.

Co-Authored-By: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants