Skip to content

knowledge: Drama-3 decode graphs on Ascend 910B1 - #132

Merged
Dong1017 merged 6 commits into
InferMatrixLab:mainfrom
amy-why-3459:knowledge/drama3-ascend-decode-graphs
Nov 5, 2026
Merged

Dong1017 merged 6 commits into
InferMatrixLab:mainfrom
amy-why-3459:knowledge/drama3-ascend-decode-graphs

Conversation

@amy-why-3459

Copy link
Copy Markdown
Collaborator

What this adds

Knowledge and campaign evidence for Drama-3 (fish_omni) on two Ascend
910B1 cards, from the same tuning pass behind vllm-omni#9308.

  • docs/drama3-ascend-910b1.md — RunSpec, kept/rejected changes with their
    numbers, the per-phase decode breakdown, and the operating notes that cost
    the most time on this stack.
  • evidence/drama3-ascend-20261023/ — plan (frozen protocol, success/stop
    rules), results summary, patch pointer, validator instructions.

Result

One change is measured and kept: replay Drama-3 stage-0 decode as FULL ACL
graphs. At one stream it moves frames/s 17.31 -> 22.4-22.91 and RTF mean
1.237 -> 0.947-0.962, TTFA p50 0.91 s -> 0.78-0.80 s. Batching on the same
build reaches 133 frames/s at 16 streams, 137 at 32 and 305 at 64.

The requested targets (RTF < 0.1 at C1, < 1 at C64) are not met: C1 sits
near 0.95 and C64 between 2 and 5 depending on host load. The document says
so explicitly and gives the accounting (40 MoE layers + 13 tower layers per
frame; each rank holds ~32 GiB of bf16-expanded experts; RTF 0.1 allows
4.65 ms per frame).

Change is marked reviewable, not claimed.

Rejected, with numbers

  • Binding fla_npu's causal_conv1d_update into the GDN update: no
    measurable effect, and FULL capture works without it despite the
    vLLM-Ascend warning. Left out of the vllm-omni change.
  • Native block-FP8 experts on A2: not available (the MXFP8 MoE method is
    950-only), so no experiment was run.

Verdict

INCONCLUSIVE per the RSI evidence rules: target gates unmet, kept change
locally verified with retained raw logs. Baseline/candidate SHAs are left as
placeholders (<baseline-sha-from-acceptance-issue>) rather than pinned in
the doc.

🤖 Generated with Claude Code

Records the fish_omni (Drama-3) tuning pass on two Ascend 910B1 cards:
the decode FULL-graph change that cuts single-stream RTF from 1.24 to
0.95, the two candidate changes that were rejected with their numbers,
the per-phase decode breakdown, and the bandwidth argument for why the
RTF < 0.1 target is not reachable on this device.

Also records the environment traps that cost the most time: the CANN
9.1.0 custom-op vendor registration, fla_npu rewriting
ASCEND_CUSTOM_OPP_PATH through its .pth, and /health answering before
stage 0 is warm.

Verdict is INCONCLUSIVE: the target bars are recorded as unmet.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

@Dong1017 Dong1017 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Reviewed 951b218b2f708e424a5453dd01da3fbe15077d91 against 28ddd06a48128c187f093763c7f52ffdfd04a5f0. Not merge-ready: three scoped corrections are inline. The negative/INCONCLUSIVE outcome and unmet performance targets are not themselves defects.

Provenance also needs precise wording: plan revisions are placeholders, the patch names a mutable branch, and raw logs/benchmark are external. Preserve the reported measurements, but label them author-reported rather than independently reproducible validation until exact revision/evidence references are retained. A field saying locally verified does not make those artifacts reviewable.

Ready 40000820124 has both full-check test jobs failing; both wheel jobs and current model policy pass. The inventory mismatch below follows directly from checked-in validator/test contracts; I did not obtain readable failure logs and do not claim it is the only CI failure. Static inspection only, no code/model/device execution or campaign acceptance.

graphs), two candidate changes were rejected. RTF targets are recorded as
unmet. Details, RunSpec and operating notes: [docs/drama3-ascend-910b1.md](../../docs/drama3-ascend-910b1.md).

- [plan/plan.json](plan/plan.json) — frozen protocol and success/stop rules

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

P2 — Register the added evidence directory in the existing inventory.

This adds a ninth bundle without changing tools/evidence_inventory.json. validate_inventory() rejects a directory/inventory mismatch and test_checked_in_inventory still expects eight. Classify this bundle at its actual evidence level, record unavailable external artifacts explicitly, and update the count expectation. Do not manufacture freeze hashes to make the check pass. This is an integration failure independent of whether the experiment met its performance target.

Comment thread docs/drama3-ascend-910b1.md Outdated
Why C1 = 0.1 is not reachable here: one frame is 40 MoE layers plus 13 tower
layers, and 21.5 frames/s at RTF 0.1 gives 4.65 ms per frame. Both ranks
hold roughly 32 GiB of expanded bf16 expert weights, so a single frame's
expert read alone is on the order of a ten-thousandth of a second per GB at

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

P2 — Resident MoE weights do not establish the claimed bandwidth floor.

This derives physical infeasibility from resident expert-weight capacity, but the model description says 8 of 256 experts are active. Resident footprint is not the bytes read per generated frame. Consequently the paragraph does not establish that the 4.65 ms budget is physically impossible and could prematurely exclude viable optimization paths. Smallest fix: state the target was not reached in this measured configuration. Retain a lower-bound claim only with active-byte traffic, applicable bandwidth and an explicit calculation; no new hardware run is required simply to remove the unsupported conclusion.

Upstream change: vLLM-Omni PR "Replay Drama 3 decode steps as FULL graphs"
(branch `perf/ascend-drama3-full-decode-graphs`, based on `c829af4`). The
Drama-3 NPU runner path it builds on is
[vllm-omni#9106](https://github.com/vllm-project/vllm-omni/pull/9106) (merged).

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

P2 — Replace the user-specific absolute artifact location.

This line and results/summary.json:17 expose an actual user-specific filesystem location, contrary to docs/privacy-security.md. Replace it with a clearly labelled <ARTIFACT_ROOT> placeholder or non-sensitive evidence reference and keep the external/unavailable-artifact limitation explicit. The private value need not be repeated in the correction or review.

cursoragent and others added 5 commits November 4, 2026 08:50
Bring this PR branch up to current main before registering the new
evidence directory. Current main inventories 21 bundles and expects
that count in test_checked_in_inventory; the Drama-3 directory has to
be classified against that set. Merge commit only; history is not
rebased.

Signed-off-by: Cursor Agent <cursoragent@cursor.com>
Agent-assisted-by: Cursor Grok 4.7 (implementation)
Co-authored-by: amy-why-3459 <amy-why-3459@users.noreply.github.com>
The Ascend note and results/summary.json named a user-specific
filesystem location. Point both at a labelled <ARTIFACT_ROOT>
placeholder and state that the raw logs and sweep JSON are external
and unavailable in this checkout.

Addresses InferMatrixLab#132 (comment)

Agent-assisted-by: Cursor Grok 4.7 (implementation)
Signed-off-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: amy-why-3459 <amy-why-3459@users.noreply.github.com>
Resident expert-weight capacity is not the bytes read per generated
frame when 8 of 256 experts are active, so it does not show that the
4.65 ms/frame budget is physically impossible. State that the C1 RTF
< 0.1 target was not reached in this measured configuration, and do
not add a lower bound without active-byte traffic, applicable
bandwidth, and an explicit calculation.

Addresses InferMatrixLab#132 (comment)

Agent-assisted-by: Cursor Grok 4.7 (implementation)
Signed-off-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: amy-why-3459 <amy-why-3459@users.noreply.github.com>
Plan revisions stay placeholders, the patch pointer names a mutable
branch, and raw logs and benchmark outputs stay external. Keep the
reported numbers, and stop treating a locally verified field as review
of artifacts that are not in this checkout.

Addresses InferMatrixLab#132 (review)

Agent-assisted-by: Cursor Grok 4.7 (implementation)
Signed-off-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: amy-why-3459 <amy-why-3459@users.noreply.github.com>
The new campaign directory was absent from the inventory, so
validate_inventory() reported a directory mismatch and Ready CI
full-check failed test_checked_in_inventory. Classify the bundle as a
campaign with no freeze manifest, record the external logs, benchmark
outputs, and unvendored patch as unavailable, and expect 22 bundles on
current main (21 before this directory). Checked hashes stay 430. No
freeze hashes were added.

Addresses InferMatrixLab#132 (comment)

Agent-assisted-by: Cursor Grok 4.7 (implementation)
Signed-off-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: amy-why-3459 <amy-why-3459@users.noreply.github.com>

Copy link
Copy Markdown
Collaborator Author

Addressed the open review items (head now 89caf20):

  • Merged current main (d0043b3) so the inventory registration targets the current 21-bundle set.
  • discussion_r4365414684: registered drama3-ascend-20261023 as a campaign bundle with raw logs / sweeps / un-checked-in patch listed under external as unavailable in this checkout; bundle count 21 → 22, no new freeze hashes (89caf20). This was the cause of the Ready CI full-check failure on 3.10/3.11.
  • discussion_r4365414686: removed the unsupported "bandwidth floor makes the 4.65 ms budget impossible" conclusion; now states only that this measured configuration did not reach C1 RTF < 0.1 and that resident expert capacity is not per-frame bytes read (b5b5e32).
  • discussion_r4365414688: replaced local absolute paths in docs and results/summary.json with <ARTIFACT_ROOT> and noted those artifacts are outside the repo (b9f846a).
  • Review body (provenance): measurements are now labelled author-reported, not independently reproducible; removed verification_locally_verified: true (505b764).

Locally: validate_evidence.py clean (22 bundles, 430 hashes), ruff passes, pytest tests/test_evidence_inventory.py tests/test_frozen_bytes.py passes.

@Dong1017 Dong1017 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Scoped source-only LGTM for the archival corrections at 89caf208dc99b3743aaee877a6ee361b9fb12d47. The three findings from my earlier review are addressed:

  • Inventory registration: the campaign is registered with an empty freeze-manifest list and explicit unavailable external artifacts; the inventory regression now expects 22 bundles. No freeze hashes were invented.
  • Unsupported bandwidth floor: the guide now states that the measured configuration missed the target and explicitly distinguishes resident expert capacity from active bytes read. It no longer claims physical impossibility.
  • Private artifact location: the inspected documentation and summary use <ARTIFACT_ROOT> and preserve the external/unavailable limitation. The broader provenance wording now identifies measurements as author-reported, with placeholder revisions and a mutable candidate branch rather than independently reproducible validation.

The head and discussion were refreshed before posting. All six current-head Ready jobs pass, as does knowledge policy. The inspected Python 3.11 log reports Ruff success, 3,544 passed / 13 skipped / 284 subtests, on tested merge 2f6fa94 into main 663f3b32.

This clears those source/inventory corrections only. The retained campaign stays INCONCLUSIVE with unmet targets; external raw artifacts, immutable experimental revisions and historical device/performance claims remain unverified. Static source review and existing hosted logs only; I did not rerun code, inspect unavailable originals or perform device experiments. This COMMENT is not formal APPROVE, merge authorization or broader campaign acceptance.

@amy-why-3459

Copy link
Copy Markdown
Collaborator Author

@Dong1017 @zengchuang-hw PTAL

@zengchuang-hw zengchuang-hw 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.

LGTM

PR review verdict — PASS

Full source/archive review of 663f3b32..89caf208, head 89caf208dc99b3743aaee877a6ee361b9fb12d47, following the PTAL and Dong's earlier review. Assessed integration with current main 01c73521ced6ca760cdfa42c9b937fe985a20d64: merge-tree is clean, with the same eight-file change. Conclusion: no remaining blocking finding for this archival source/inventory contribution.

本轮已解决

  • The inventory entry registers the added campaign and unavailable external artifacts without inventing a freeze manifest. The bundle-count regression matches 22.
  • The guide withdraws the unsupported bandwidth-floor/impossibility conclusion and distinguishes resident expert capacity from bytes accessed per frame.
  • Private artifact locations are replaced with <ARTIFACT_ROOT>. The guide, summary and bundle explicitly identify author-reported measurements, placeholder experimental revisions, the mutable patch pointer and unavailable raw outputs. This agrees with the same-head source re-check.

批准前必做(Before I can approve)

None for this reviewed source/archive change. The campaign remains INCONCLUSIVE; these checks do not qualify its measurements or satisfy its unmet targets.

非阻塞问题或建议

Please align the PR body's older “locally verified with retained raw logs” wording with the committed files' explicit author-reported / external-unavailable qualification.

Checks and limits

Independent exact-head Windows / CPython 3.12.1 verification: 21 evidence-inventory/frozen-byte tests passed, Ruff and whitespace checks passed. Inventory validation reports 22 bundles, 430 checked hashes and no errors, retaining 17 unavailable dependencies. Ready CI succeeded; the required policy status is successful. Main's intervening changes do not alter these archival/inventory paths.

I read all eight changed files and the earlier findings. I did not inspect unavailable raw artifacts, reconstruct immutable experimental revisions, or run model, NPU, quality or performance experiments. No campaign PASS is implied.

Direct delegation: zengchuang-hw, the account holder, authorized Codex in this chat to independently review other authors' InferRSI PRs and submit revision-bound APPROVE when actual content blockers are absent and applicable checks pass. Executor: Codex, with a separate source/inventory cross-check; acting account: zengchuang-hw, with repository write access or higher. This account/task did not author, materially contribute to or parent this delivery slice. Scope and permitted action: this PR's archival diff and verification, APPROVE.

@Dong1017 Dong1017 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

LGTM

PR review verdict — PASS for the archival/source contribution at head 89caf208dc99b3743aaee877a6ee361b9fb12d47. Reviewed the eight-file diff from 663f3b327998526a13aa31e72ad729025c18983c and independently assessed integration with current main 57621339ad08bb32228bccda7d60217545316351. No remaining blocking source finding.

Resolved

The earlier findings remain addressed: the campaign is registered without invented freeze hashes; the unsupported bandwidth-floor conclusion is removed; private artifact paths are placeholders; measurements and unavailable external artifacts are explicitly qualified as author-reported. This confirms the previous exact-head source review.

Nonblocking

Align the PR body's older “locally verified with retained raw logs” wording with the committed files' author-reported / external-unavailable qualification.

Verification and limits

  • Applied the PR patch cleanly to an archive of current main. All eight resulting changed files match the exact-head Git blob SHAs.
  • On that integrated snapshot, CPython 3.12.14: inventory validation passed with 22 bundles, 430 checked hashes, 17 unavailable dependencies and zero errors; evidence-inventory/frozen-byte tests reported 20 passed, 1 skipped. The skipped Git-metadata comparison was separately checked: all 935 historical evidence/legacy files match current-main Git blobs, and the new campaign files match head blobs. Focused Ruff passed.
  • All seven current-head checks and the required knowledge-model-policy status are successful. The existing Ready run remains applicable to this unchanged archival/inventory slice: intervening main changes do not alter its files, validator/tests, frozen-byte policy or Ready workflow. This is not a full-suite rerun against current main.

The campaign remains INCONCLUSIVE, with unmet targets. Unavailable originals, immutable experimental revisions and model/NPU/performance claims remain unverified. This approval accepts the archival/source change only.

Agent-assisted independent review by dot, acting through Dong1017's maintainer account. Dong1017 explicitly authorized this formal APPROVE for this PR and exact head immediately before submission. This reviewer did not author, materially contribute to, or parent the delivered archival change.

@Dong1017
Dong1017 merged commit 5c86eb5 into InferMatrixLab:main Nov 5, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:workbench CLI workbench: profile, A/B loop, quality gates, evidence reports

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants