Skip to content

docs/npu: FastFlowLM's own containers served as published — the measured rows (Refs #1786) - #2148

Merged
bong-water-water-bong merged 1 commit into
mainfrom
cl-flm/1786-docs-rows
Nov 11, 2026
Merged

bong-water-water-bong merged 1 commit into
mainfrom
cl-flm/1786-docs-rows

Conversation

@bong-water-water-bong

Copy link
Copy Markdown
Collaborator

Refs #1786 (backlog). Docs only: docs/npu.md gains one subsection, "FastFlowLM's own containers, served as published: measured rows", after the existing census tables. No code changes.

Why

#1786 asks that results be written where they can be read later, not only in comments. The existing section records which families the registry does not map; it has no place for the other question, which the last day answered for eleven packs: does FastFlowLM's own model.q4nx, with nothing converted, load and answer on --device npu.

What it records

Every number is from this box under npu-hold; each row's ticket and artifacts are in the #1786, #1785 and #1787 comments it summarises. Where two figures are not comparable (the two Qwen3-4B rates were taken in different tickets at different loads) the text says so instead of leaving the table to imply a model difference.

Checks

tools/copyright.py --check rc 0. Nothing is built from this file. I checked each figure in the new text against the run output it came from; the two I had to look twice at are the Qwen3.5-2B decode range (2.7 to 3.4 tok/s across the #2075 and row tickets) and "six faults" (the six PRs listed above).

🤖 Generated with Claude Code

…ed rows (Refs #1786)

Eleven packs with a row from the dev box: six on the fused route with
nothing edited, six on the per-op route (one pack on both), one decision
pack; the same-pack pair against FLM's runtime; what each route needs;
the open fault on the fused route; and what the rows do not establish.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
@bong-water-water-bong

Copy link
Copy Markdown
Collaborator Author

ready for review at 72b0c08

@bong-water-water-bong bong-water-water-bong left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

VERDICT at 72b0c08: READY

Reviewed head 72b0c08 (refs #1786). Docs only: docs/npu.md +62, nothing else. This is the first verdict.

  • git merge-tree onto main: no conflicts. tools/copyright.py --check: rc 0. CI build succeeded (waited for it before posting).
  • The six faults it names are all merged: #2064, #2067, #2098, #2118, #2121 and #2144 (merged=true each).
  • Spot-checked figures against the comments they summarise:
    • FastFlowLM's own runtime vs ours on Qwen3-1.7B-NPU2, "45.7 tok/s against 39.3 … (0.59 s and 0.57 s)", matches #1787: "45.7 against 39.3 tok/s … ours slightly ahead (0.57 s against 0.59 s)". The pair is in the sentence's own order, theirs then ours.
    • The per-op contrast "3.0 tok/s here and 39.0 on the fused route" matches #1786's row #19 correction ("My 3.0 tok/s above was the slow route") and that row's 39.0.
  • The #2135 paragraph describes that issue as it stands. I have it claimed, with a fix in progress, so the sentence will want "fixed by #…" once that lands.

Nit: the fused Qwen3-1.7B-NPU2 row gives 39.0 tok/s. The same row in #1786 also lists 44.5 / 43.5 / 43.7, and its prose says "39–44 tok/s". Choosing the low end is the conservative reading, but the table does not say which of those figures its single number is (a cold run, a loaded ticket?). A word in the column header or a footnote would stop the next reader re-deriving it.

@github-actions

Copy link
Copy Markdown

PR Reviewer Guide 🔍

Here are some key observations to aid the review process:

🎫 Ticket compliance analysis 🔶

1786 - Partially compliant

Compliant requirements:

  • Every FastFlowLM/*-NPU2 model source imports and serves on --device npu
  • Each repo must import with zero gaps and pass self-check
  • Each repo must serve on --device npu
  • Each repo must answer a known-answer prompt with the model's own chat template, 3 identical requests returning identical text
  • Decode tok/s and time-to-first-token must be measured under npu-hold

Non-compliant requirements:

  • The row names the kernel set and the engine commit that produced it (this is not explicitly verified in the PR, but implied by the data)

Requires further human verification:

  • Verification that the kernel set and engine commit are correctly identified for each model (this requires checking the actual hardware logs or build artifacts)

1787 - Partially compliant

Compliant requirements:

  • Side-by-side measurement of FastFlowLM 1.0.12's HRX-targeted build against ours on the same models
  • Interleaved A B B A pattern with their build and ours
  • Decode tok/s and time to first token for each
  • Every family their build serves that we do not becomes a row

Non-compliant requirements:

  • The result is written where the scoreboard is recomputed from, not in a comment (this is not directly addressed in the PR)

Requires further human verification:

  • Verification that the scoreboard is recomputed from the correct location (this requires checking the actual scoreboard setup)

2135 - Partially compliant

Compliant requirements:

  • The PR documents the issue and its impact on specific packs

Non-compliant requirements:

  • The actual fix is not implemented in this PR (as noted in the PR description)

Requires further human verification:

  • Verification that the fix is actually implemented in a subsequent PR (this is not part of this PR)
⏱️ Estimated effort to review: 2 🔵🔵⚪⚪⚪
🧪 No relevant tests
🔒 No security concerns identified
⚡ Recommended focus areas for review

Documentation Clarity

The documentation does not explicitly state how the kernel set and engine commit are identified for each model, even though it's implied by the data. This could lead to confusion for readers trying to reproduce the measurements.

Serving these packs as published is what found six engine faults, each fixed with the pack as its evidence:
Missing Verification of Engine Commit

While the documentation mentions that each row names the kernel set and engine commit, there is no verification that this information is accurate or complete in the PR. This could be a problem for reproducibility.

Serving these packs as published is what found six engine faults, each fixed with the pack as its evidence:

@bong-water-water-bong
bong-water-water-bong merged commit 3a1a22a into main Nov 11, 2026
9 checks passed
@bong-water-water-bong
bong-water-water-bong deleted the cl-flm/1786-docs-rows branch November 11, 2026 08:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant