From 951b218b2f708e424a5453dd01da3fbe15077d91 Mon Sep 17 00:00:00 2001 From: amy-why-3459 Date: Sat, 24 Oct 2026 02:02:06 +0800 Subject: [PATCH 1/5] Add Drama-3 Ascend 910B1 decode-graph knowledge and campaign evidence 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 --- docs/drama3-ascend-910b1.md | 84 +++++++++++++++++++ evidence/drama3-ascend-20261023/README.md | 10 +++ .../drama3-ascend-20261023/patch/README.md | 8 ++ .../drama3-ascend-20261023/plan/plan.json | 15 ++++ .../results/summary.json | 18 ++++ .../validator/README.md | 10 +++ 6 files changed, 145 insertions(+) create mode 100644 docs/drama3-ascend-910b1.md create mode 100644 evidence/drama3-ascend-20261023/README.md create mode 100644 evidence/drama3-ascend-20261023/patch/README.md create mode 100644 evidence/drama3-ascend-20261023/plan/plan.json create mode 100644 evidence/drama3-ascend-20261023/results/summary.json create mode 100644 evidence/drama3-ascend-20261023/validator/README.md diff --git a/docs/drama3-ascend-910b1.md b/docs/drama3-ascend-910b1.md new file mode 100644 index 000000000..8f887a440 --- /dev/null +++ b/docs/drama3-ascend-910b1.md @@ -0,0 +1,84 @@ +# Drama-3 (fish_omni) on two Ascend 910B1 + +Status: **INCONCLUSIVE** for the requested RTF targets. The decode FULL-graph +change is measured and repeatable; the RTF < 0.1 (C1) and RTF < 1 (C64) bars +are not met on this hardware. + +## Provenance + +Measurements by amy-why-3459 on a shared 8x910B1 host (cards 3/4), 2026-10-23/24. +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). +Raw logs and the sweep JSON live in `/dataset/home/why/drama3-opt/evidence/` +and `runs/`; this document stores the summary, not the logs. + +## RunSpec + +| Field | Value | +| --- | --- | +| repo | vllm-project/vllm-omni @ `c829af4` + the FULL-graph commit | +| backend | vLLM-Omni 0.32.0 nightly image `quay.io/ascend/vllm-omni:nightly-20261022-6b35bca`, vLLM-Ascend 0.19.1rc2, CANN 9.1.0, torch_npu 2.10.0.post4 | +| device | 2 x Ascend 910B1 (A2), stage 0 TP2 + expert parallel (devices 0,1), stage 1 DAC on device 1 | +| model | `fishaudio/drama-3` (Qwen3.5 MoE 40 layers, 256 experts / 8 active, block-FP8; 13-layer codebook tower; 44.1 kHz DAC) | +| scenario | streaming `/v1/audio/speech`, Seed-TTS-Eval `en`, one fixed pre-encoded reference (85 frames x 10 codebooks), `max_tokens=500`, 64 prompts, 1 warmup | + +Metrics: audio seconds counted from SSE PCM14 payloads at 44.1 kHz mono; +`frames/s = audio_s x 21.5 / wall`; per-request `RTF = (end - start) / audio_s` +so queueing and prefill are inside the number, as the target definition asks. + +## Kept + +| Change | C1 frames/s | C1 RTF mean | C1 RTF p95 | C1 TTFA p50 | Source | +| --- | ---: | ---: | ---: | ---: | --- | +| baseline: stage-0 PIECEWISE capture | 17.31 | 1.237 | 1.301 | 0.91 s | upstream `fish_omni.yaml` | +| decode `FULL_AND_PIECEWISE`, sizes to `max_num_seqs` | 22.4 | 0.962 | 1.141 | 0.80 s | this work, run 1 | +| same, repeat | 22.91 | 0.947 | 1.036 | 0.78 s | this work, run 2 | +| same, final sweep (host loaded) | 18.77 | 1.147 | 1.353 | 0.89 s | `runs/final/final-v2.json` | + +The host is shared (load average 15–20 during runs); the two clean repeats +are the attribution, the loaded sweep is the conservative bound. The gain is +one graph replay per decode step instead of ~53 layers of eager launches. + +Batching on the same build, best of repeats: +16 streams 133 frames/s, 32 streams 137, 64 streams 305 (best of three: +137 / 197 / 188, one later run 305); final sweep under load: 65 / 137 / 269. +Spreading inside the sweep is large enough that single readings of C8–C32 +should not be compared across tables. + +## Rejected + +| Change | Result | Why it stays out | +| --- | --- | --- | +| bind `fla_npu.ops.ascendc.causal_conv1d_update` into vLLM's GDN update | C1 22.4–22.6 frames/s, RTF 0.95 — identical to the unbound build; FULL capture succeeds with the portable `causal_conv1d_update` bound | the vLLM-Ascend warning claims the fallback stalls decode-FULL capture, but on this stack it does not; no measurable effect | +| keep the checkpoint's block-FP8 experts as FP8 | not attempted as a change: vLLM-Ascend builds `AscendW8A8MXFP8Dynamic*` only on 950 (`is_950()`), so A2 expands every expert to bf16 at load | would need a native A2 block-FP8 grouped GEMM; out of scope here | +| `mamba_ssm_cache_dtype: bfloat16` | already the default in this deploy config | not a lever | + +## Where the time goes + +Phase timers in `fish_omni_model.forward` (eager, one stream, one request): +backbone ~195 ms, tower + sampling ~72 ms, writeback ~0.1 ms per frame. With +FULL graphs the same step is ~44 ms, so the graph removes most of the launch +overhead, not the arithmetic. + +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 +the card's bandwidth — the budget is below the bandwidth floor before KV, +tower and sampling are added. + +## Operating notes learned the hard way + +- CANN 9.1.0 does not ship `aclnnAddRmsNormBias`; vLLM-Ascend's custom-op + vendor package must be registered (`${ASCEND_OPP_PATH}/vendors/config.ini` + `load_priority`, plus readable directory modes). A `750 root:root` vendor + directory makes `dlopen` fail with "Permission denied" and surfaces as a + missing-operator error. +- `fla_npu`'s `.pth` rewrites `ASCEND_CUSTOM_OPP_PATH` at interpreter start; + set `FLA_NPU_DISABLE_PTH=1` when a specific vendor list is required. +- `/health` answers before stage 0 finishes warming. A readiness probe must + issue one real synthesis request, or a sweep starts against a dead port. +- Stage 1 (DAC) initialises after stage 0; the first request pays its engine + startup unless the probe absorbs it. diff --git a/evidence/drama3-ascend-20261023/README.md b/evidence/drama3-ascend-20261023/README.md new file mode 100644 index 000000000..8d7022fd3 --- /dev/null +++ b/evidence/drama3-ascend-20261023/README.md @@ -0,0 +1,10 @@ +# Drama-3 Ascend campaign (2026-10-23/24) + +Verdict: **INCONCLUSIVE**. One optimization is measured and kept (decode FULL +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 +- [results/summary.json](results/summary.json) — kept/rejected numbers +- [patch/README.md](patch/README.md) — where the candidate patch lives +- [validator/README.md](validator/README.md) — how to re-run and what counts diff --git a/evidence/drama3-ascend-20261023/patch/README.md b/evidence/drama3-ascend-20261023/patch/README.md new file mode 100644 index 000000000..41027684b --- /dev/null +++ b/evidence/drama3-ascend-20261023/patch/README.md @@ -0,0 +1,8 @@ +# Patch + +Candidate: vLLM-Omni branch `perf/ascend-drama3-full-decode-graphs` +(`[Perf][Ascend] Replay Drama 3 decode steps as FULL graphs`), based on +`c829af4`. Two files: `vllm_omni/deploy/fish_omni.yaml` and a CPU test in +`tests/model_executor/models/fish_omni/test_fish_omni_config.py`. + +It is not vendored here; the candidate SHA belongs to the acceptance issue. diff --git a/evidence/drama3-ascend-20261023/plan/plan.json b/evidence/drama3-ascend-20261023/plan/plan.json new file mode 100644 index 000000000..77bce5c11 --- /dev/null +++ b/evidence/drama3-ascend-20261023/plan/plan.json @@ -0,0 +1,15 @@ +{ + "purpose": "Decode-graph optimization campaign for Drama-3 on Ascend 910B1; RTF targets are recorded, not claimed", + "hypothesis": "Drama-3 stage 0 samples one whole frame per stream per step, so decode is launch-bound; replaying decode as a single FULL ACL graph should cut single-stream RTF and raise frames/s without changing outputs", + "isolated_variable": "stage-0 NPU compilation_config.cudagraph_mode: PIECEWISE vs FULL_AND_PIECEWISE", + "control_revision": "", + "candidate_revision": "", + "engine_revision": "vLLM-Omni 0.32.0 nightly 2026-10-22 image; vLLM-Ascend 0.19.1rc2; CANN 9.1.0", + "devices": "2x Ascend 910B1 (A2), stage 0 TP2 + EP on devices 0,1; DAC stage 1 on device 1", + "protocol": "fishaudio/drama-3, streaming /v1/audio/speech, Seed-TTS-Eval en, one fixed pre-encoded reference (85 frames x 10 codebooks), max_tokens=500, 64 prompts, 1 warmup, concurrency 1..64", + "metrics": "frames/s = audio_s x 21.5 / wall; RTF = (end - start) / audio_s including queueing and prefill; TTFA from first SSE audio event", + "targets": {"rtf_mean_c1_lt": 0.1, "rtf_mean_c64_lt": 1.0}, + "success": "C1 RTF mean improves by at least 20% with no request failures and no change to sampling semantics", + "stop": "Stop on stage-0 readiness failure, request failures above 1 percent, or host load above twice the quiet baseline", + "notes": "Host is shared (load average 15-20); single readings of C8-C32 are not comparable across tables. Only the FULL-graph change is in the candidate; the causal_conv1d_update binding was tested and rejected." +} diff --git a/evidence/drama3-ascend-20261023/results/summary.json b/evidence/drama3-ascend-20261023/results/summary.json new file mode 100644 index 000000000..a12b5179c --- /dev/null +++ b/evidence/drama3-ascend-20261023/results/summary.json @@ -0,0 +1,18 @@ +{ + "campaign": "drama3-ascend-20261023", + "verdict": "INCONCLUSIVE", + "verdict_reason": "Targets unmet (C1 RTF 0.95-1.15 vs <0.1; C64 RTF 2-5 vs <1); the kept change is measured but the acceptance bars for this campaign are not.", + "kept_change": { + "name": "decode FULL graphs for Drama-3 stage 0 on Ascend", + "c1_frames_per_s": {"control": 17.31, "candidate": 22.4, "repeat": 22.91, "loaded": 18.77}, + "c1_rtf_mean": {"control": 1.237, "candidate": 0.962, "repeat": 0.947, "loaded": 1.147}, + "c1_ttfa_p50_s": {"control": 0.91, "candidate": 0.80, "repeat": 0.78, "loaded": 0.89}, + "batching": {"c16_best": 133, "c32_best": 137, "c64_best": 305, "c64_repeats": [137, 197, 188]} + }, + "rejected": [ + {"change": "bind fla_npu causal_conv1d_update into the GDN decode path", "result": "no measurable effect; FULL capture succeeds with the portable update", "evidence": "serve-full-without-conv1d-control.log"}, + {"change": "native block-FP8 experts on A2", "result": "not available: MXFP8 method is 950-only; A2 expands experts to bf16", "evidence": "vllm-ascend fp8_block.py is_950() branch"} + ], + "verification_locally_verified": true, + "artifacts_retained_at": "/dataset/home/why/drama3-opt/evidence and /dataset/home/why/drama3-opt/runs" +} diff --git a/evidence/drama3-ascend-20261023/validator/README.md b/evidence/drama3-ascend-20261023/validator/README.md new file mode 100644 index 000000000..aed40f618 --- /dev/null +++ b/evidence/drama3-ascend-20261023/validator/README.md @@ -0,0 +1,10 @@ +# Validator + +Re-run: start the service with the candidate deploy config on two 910B1 cards, +then run the streaming benchmark (`bench/bench_stream.py` in the campaign +workspace) over concurrency 1, 2, 4, 8, 16, 32, 64 with 64 prompts, 1 warmup. + +Pass requires: no request failures, C1 RTF mean at least 20% below the control +build measured the same day, and identical sampling parameters. Measure the +control and candidate back to back; this host is shared and single readings +move by tens of percent. From b9f846accd47c3f52158dfad593a6191edc0180b Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 4 Nov 2026 08:51:22 +0000 Subject: [PATCH 2/5] docs: replace the user-specific Drama-3 artifact location The Ascend note and results/summary.json named a user-specific filesystem location. Point both at a labelled placeholder and state that the raw logs and sweep JSON are external and unavailable in this checkout. Addresses https://github.com/InferMatrixLab/InferRSI/pull/132#discussion_r4365414688 Agent-assisted-by: Cursor Grok 4.7 (implementation) Signed-off-by: Cursor Agent Co-authored-by: amy-why-3459 --- docs/drama3-ascend-910b1.md | 6 ++++-- evidence/drama3-ascend-20261023/results/summary.json | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/drama3-ascend-910b1.md b/docs/drama3-ascend-910b1.md index 8f887a440..6612022d6 100644 --- a/docs/drama3-ascend-910b1.md +++ b/docs/drama3-ascend-910b1.md @@ -11,8 +11,10 @@ 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). -Raw logs and the sweep JSON live in `/dataset/home/why/drama3-opt/evidence/` -and `runs/`; this document stores the summary, not the logs. +Raw logs and the sweep JSON are external. They were retained under +`/evidence/` and `/runs/` and are not in +this repository, so they are unavailable for review from this checkout. +This document stores the summary, not those artifacts. ## RunSpec diff --git a/evidence/drama3-ascend-20261023/results/summary.json b/evidence/drama3-ascend-20261023/results/summary.json index a12b5179c..9fe262439 100644 --- a/evidence/drama3-ascend-20261023/results/summary.json +++ b/evidence/drama3-ascend-20261023/results/summary.json @@ -14,5 +14,6 @@ {"change": "native block-FP8 experts on A2", "result": "not available: MXFP8 method is 950-only; A2 expands experts to bf16", "evidence": "vllm-ascend fp8_block.py is_950() branch"} ], "verification_locally_verified": true, - "artifacts_retained_at": "/dataset/home/why/drama3-opt/evidence and /dataset/home/why/drama3-opt/runs" + "artifacts_retained_at": "/evidence and /runs", + "artifacts_availability": "external; unavailable in this checkout" } From b5b5e3295113bf31f06ce03da21e10587485c0bb Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 4 Nov 2026 08:51:27 +0000 Subject: [PATCH 3/5] docs: withdraw the unsupported Drama-3 bandwidth floor 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 https://github.com/InferMatrixLab/InferRSI/pull/132#discussion_r4365414686 Agent-assisted-by: Cursor Grok 4.7 (implementation) Signed-off-by: Cursor Agent Co-authored-by: amy-why-3459 --- docs/drama3-ascend-910b1.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/docs/drama3-ascend-910b1.md b/docs/drama3-ascend-910b1.md index 6612022d6..ec43032e1 100644 --- a/docs/drama3-ascend-910b1.md +++ b/docs/drama3-ascend-910b1.md @@ -64,12 +64,14 @@ backbone ~195 ms, tower + sampling ~72 ms, writeback ~0.1 ms per frame. With FULL graphs the same step is ~44 ms, so the graph removes most of the launch overhead, not the arithmetic. -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 -the card's bandwidth — the budget is below the bandwidth floor before KV, -tower and sampling are added. +The C1 RTF < 0.1 target was not reached in this measured configuration. +The kept rows above are the recorded outcome. Resident expert-weight +capacity does not establish that the target's 4.65 ms/frame wall budget +(0.1 s / 21.5 frames) is physically impossible: 8 of 256 experts are +active, so that resident footprint is not the bytes read per generated +frame. No bandwidth lower bound is claimed. Retaining one would require +active-byte traffic, the applicable bandwidth, and an explicit calculation, +which this record does not contain. ## Operating notes learned the hard way From 505b7649495f4cfc682c6397beb5135be9adc695 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 4 Nov 2026 08:51:51 +0000 Subject: [PATCH 4/5] docs: label Drama-3 measurements as author-reported 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 https://github.com/InferMatrixLab/InferRSI/pull/132#pullrequestreview-5635951482 Agent-assisted-by: Cursor Grok 4.7 (implementation) Signed-off-by: Cursor Agent Co-authored-by: amy-why-3459 --- docs/drama3-ascend-910b1.md | 25 +++++++++++++------ evidence/drama3-ascend-20261023/README.md | 18 +++++++------ .../drama3-ascend-20261023/patch/README.md | 10 +++++--- .../drama3-ascend-20261023/plan/plan.json | 1 + .../results/summary.json | 2 +- .../validator/README.md | 3 +++ 6 files changed, 39 insertions(+), 20 deletions(-) diff --git a/docs/drama3-ascend-910b1.md b/docs/drama3-ascend-910b1.md index ec43032e1..b5531a2a0 100644 --- a/docs/drama3-ascend-910b1.md +++ b/docs/drama3-ascend-910b1.md @@ -1,26 +1,35 @@ # Drama-3 (fish_omni) on two Ascend 910B1 Status: **INCONCLUSIVE** for the requested RTF targets. The decode FULL-graph -change is measured and repeatable; the RTF < 0.1 (C1) and RTF < 1 (C64) bars -are not met on this hardware. +change is author-reported, including a second measurement by the same author. +The RTF < 0.1 (C1) and RTF < 1 (C64) bars are not met on this hardware. +These figures are not independently reproducible validation until exact +revision and evidence references are retained. ## Provenance -Measurements by amy-why-3459 on a shared 8x910B1 host (cards 3/4), 2026-10-23/24. -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 +Measurements below are author-reported by amy-why-3459 on a shared 8x910B1 +host (cards 3/4), 2026-10-23/24. They are not independently reproducible +validation until exact revision and evidence references are retained. +`plan/plan.json` stores `` and +`` as placeholders, not pinned SHAs. +The upstream change is described as vLLM-Omni work "Replay Drama 3 decode +steps as FULL graphs" on the mutable branch +`perf/ascend-drama3-full-decode-graphs` (described as based on `c829af4`). +That branch name is not an immutable candidate revision. The Drama-3 NPU +runner path it builds on is [vllm-omni#9106](https://github.com/vllm-project/vllm-omni/pull/9106) (merged). Raw logs and the sweep JSON are external. They were retained under `/evidence/` and `/runs/` and are not in this repository, so they are unavailable for review from this checkout. -This document stores the summary, not those artifacts. +This document stores the summary, not those artifacts. A field marking the +summary locally verified would not make those external artifacts reviewable. ## RunSpec | Field | Value | | --- | --- | -| repo | vllm-project/vllm-omni @ `c829af4` + the FULL-graph commit | +| repo | vllm-project/vllm-omni, author-described as `c829af4` plus an unpinned FULL-graph change on mutable branch `perf/ascend-drama3-full-decode-graphs` | | backend | vLLM-Omni 0.32.0 nightly image `quay.io/ascend/vllm-omni:nightly-20261022-6b35bca`, vLLM-Ascend 0.19.1rc2, CANN 9.1.0, torch_npu 2.10.0.post4 | | device | 2 x Ascend 910B1 (A2), stage 0 TP2 + expert parallel (devices 0,1), stage 1 DAC on device 1 | | model | `fishaudio/drama-3` (Qwen3.5 MoE 40 layers, 256 experts / 8 active, block-FP8; 13-layer codebook tower; 44.1 kHz DAC) | diff --git a/evidence/drama3-ascend-20261023/README.md b/evidence/drama3-ascend-20261023/README.md index 8d7022fd3..f01d08e6c 100644 --- a/evidence/drama3-ascend-20261023/README.md +++ b/evidence/drama3-ascend-20261023/README.md @@ -1,10 +1,14 @@ # Drama-3 Ascend campaign (2026-10-23/24) -Verdict: **INCONCLUSIVE**. One optimization is measured and kept (decode FULL -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). +Verdict: **INCONCLUSIVE**. One optimization is author-reported and kept (decode +FULL graphs), two candidate changes were rejected. RTF targets are recorded +as unmet. The numbers are author-reported, not independently reproducible +validation: plan revisions are placeholders, the patch names a mutable +branch, and raw logs and benchmark outputs are external and unavailable in +this checkout. 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 -- [results/summary.json](results/summary.json) — kept/rejected numbers -- [patch/README.md](patch/README.md) — where the candidate patch lives -- [validator/README.md](validator/README.md) — how to re-run and what counts +- [plan/plan.json](plan/plan.json) — recorded protocol and success/stop rules; revision fields are placeholders +- [results/summary.json](results/summary.json) — author-reported kept/rejected numbers +- [patch/README.md](patch/README.md) — mutable branch pointer; the patch is not vendored +- [validator/README.md](validator/README.md) — re-run notes; raw benchmark outputs are external diff --git a/evidence/drama3-ascend-20261023/patch/README.md b/evidence/drama3-ascend-20261023/patch/README.md index 41027684b..8af2ca26b 100644 --- a/evidence/drama3-ascend-20261023/patch/README.md +++ b/evidence/drama3-ascend-20261023/patch/README.md @@ -1,8 +1,10 @@ # Patch -Candidate: vLLM-Omni branch `perf/ascend-drama3-full-decode-graphs` -(`[Perf][Ascend] Replay Drama 3 decode steps as FULL graphs`), based on -`c829af4`. Two files: `vllm_omni/deploy/fish_omni.yaml` and a CPU test in +Candidate pointer: mutable branch `perf/ascend-drama3-full-decode-graphs` +(`[Perf][Ascend] Replay Drama 3 decode steps as FULL graphs`), described as +based on `c829af4`. Two files are named: `vllm_omni/deploy/fish_omni.yaml` +and a CPU test in `tests/model_executor/models/fish_omni/test_fish_omni_config.py`. -It is not vendored here; the candidate SHA belongs to the acceptance issue. +The branch name is mutable and is not an immutable revision. The patch is +not vendored here, and no exact candidate SHA is retained in this bundle. diff --git a/evidence/drama3-ascend-20261023/plan/plan.json b/evidence/drama3-ascend-20261023/plan/plan.json index 77bce5c11..c1232d86b 100644 --- a/evidence/drama3-ascend-20261023/plan/plan.json +++ b/evidence/drama3-ascend-20261023/plan/plan.json @@ -4,6 +4,7 @@ "isolated_variable": "stage-0 NPU compilation_config.cudagraph_mode: PIECEWISE vs FULL_AND_PIECEWISE", "control_revision": "", "candidate_revision": "", + "revision_status": "control_revision and candidate_revision are placeholders. Exact baseline and candidate SHAs are not retained in this bundle.", "engine_revision": "vLLM-Omni 0.32.0 nightly 2026-10-22 image; vLLM-Ascend 0.19.1rc2; CANN 9.1.0", "devices": "2x Ascend 910B1 (A2), stage 0 TP2 + EP on devices 0,1; DAC stage 1 on device 1", "protocol": "fishaudio/drama-3, streaming /v1/audio/speech, Seed-TTS-Eval en, one fixed pre-encoded reference (85 frames x 10 codebooks), max_tokens=500, 64 prompts, 1 warmup, concurrency 1..64", diff --git a/evidence/drama3-ascend-20261023/results/summary.json b/evidence/drama3-ascend-20261023/results/summary.json index 9fe262439..7c88b61e6 100644 --- a/evidence/drama3-ascend-20261023/results/summary.json +++ b/evidence/drama3-ascend-20261023/results/summary.json @@ -13,7 +13,7 @@ {"change": "bind fla_npu causal_conv1d_update into the GDN decode path", "result": "no measurable effect; FULL capture succeeds with the portable update", "evidence": "serve-full-without-conv1d-control.log"}, {"change": "native block-FP8 experts on A2", "result": "not available: MXFP8 method is 950-only; A2 expands experts to bf16", "evidence": "vllm-ascend fp8_block.py is_950() branch"} ], - "verification_locally_verified": true, + "measurement_status": "author-reported; not independently reproducible validation until exact revision and evidence references are retained", "artifacts_retained_at": "/evidence and /runs", "artifacts_availability": "external; unavailable in this checkout" } diff --git a/evidence/drama3-ascend-20261023/validator/README.md b/evidence/drama3-ascend-20261023/validator/README.md index aed40f618..d04ceed93 100644 --- a/evidence/drama3-ascend-20261023/validator/README.md +++ b/evidence/drama3-ascend-20261023/validator/README.md @@ -8,3 +8,6 @@ Pass requires: no request failures, C1 RTF mean at least 20% below the control build measured the same day, and identical sampling parameters. Measure the control and candidate back to back; this host is shared and single readings move by tens of percent. + +The benchmark script and raw outputs are external and are not in this +checkout, so these notes are not an independently replayable validator. From 89caf208dc99b3743aaee877a6ee361b9fb12d47 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 4 Nov 2026 09:01:02 +0000 Subject: [PATCH 5/5] test: register the Drama-3 Ascend evidence bundle 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 https://github.com/InferMatrixLab/InferRSI/pull/132#discussion_r4365414684 Agent-assisted-by: Cursor Grok 4.7 (implementation) Signed-off-by: Cursor Agent Co-authored-by: amy-why-3459 --- evidence/drama3-ascend-20261023/README.md | 4 +++- tests/test_evidence_inventory.py | 2 +- tools/evidence_inventory.json | 7 +++++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/evidence/drama3-ascend-20261023/README.md b/evidence/drama3-ascend-20261023/README.md index f01d08e6c..41144aed7 100644 --- a/evidence/drama3-ascend-20261023/README.md +++ b/evidence/drama3-ascend-20261023/README.md @@ -5,7 +5,9 @@ FULL graphs), two candidate changes were rejected. RTF targets are recorded as unmet. The numbers are author-reported, not independently reproducible validation: plan revisions are placeholders, the patch names a mutable branch, and raw logs and benchmark outputs are external and unavailable in -this checkout. Details, RunSpec and operating notes: +this checkout. Registered in `tools/evidence_inventory.json` as a campaign +bundle with no freeze manifest; unavailable external artifacts are listed +there, and no freeze hashes were added. Details, RunSpec and operating notes: [docs/drama3-ascend-910b1.md](../../docs/drama3-ascend-910b1.md). - [plan/plan.json](plan/plan.json) — recorded protocol and success/stop rules; revision fields are placeholders diff --git a/tests/test_evidence_inventory.py b/tests/test_evidence_inventory.py index 9edd30863..4efa342b2 100644 --- a/tests/test_evidence_inventory.py +++ b/tests/test_evidence_inventory.py @@ -145,6 +145,6 @@ def test_checked_in_inventory(): repo = Path(__file__).resolve().parents[1] result = validate_inventory(repo) assert result["errors"] == [] - assert len(result["bundles"]) == 21 + assert len(result["bundles"]) == 22 assert result["checked_hashes"] == 430 assert result["unavailable"] # Historical raw artifacts are not in this checkout. diff --git a/tools/evidence_inventory.json b/tools/evidence_inventory.json index 6ca2cb388..6fc71a38f 100644 --- a/tools/evidence_inventory.json +++ b/tools/evidence_inventory.json @@ -105,6 +105,13 @@ ], "external": ["Owner-approved 8K search protocol activated prospectively in Issue67; campaign remains INCONCLUSIVE. Private source wrappers, operational logs, model outputs and runtime identities remain in controlled task storage."] }, + "drama3-ascend-20261023": { + "kind": "campaign", + "manifests": [], + "external": [ + "Author-reported summary only. Raw logs, benchmark/sweep outputs, and the candidate patch are external and unavailable in this checkout. No freeze manifest is recorded, and none is invented." + ] + }, "drama3-b300-scale150": { "kind": "campaign", "manifests": [{"path": "plan/freeze.json", "schema": "bundle-sha256"}],