Background
V4.1 needs correct paged-cache metadata, graph-side access to caller-owned full RoPE tables, and visibility checks before C2A indexer page reads. Implementation: PR #1280.
Problems and expected behavior
| Area |
Problem |
Expected behavior |
| Paged metadata |
Incomplete compression groups and window padding can trigger unnecessary page lookup; required pages may be missing. |
Skip unpublished/padding rows and reject missing required write/history pages. |
| RoPE composition |
Attention needs token-major rows from caller-owned full tables; gathering inside every layer repeats work. |
Gather once per forward for each profile/positions/active-count combination, then reuse rows across matching consumers. |
| C2A indexer |
Shared Full prefill/decode index_select reads page-table/cache entries before checking tile visibility. |
Skip completely invisible tiles before lookup and fill invalid outputs; preserve scoring, physical rows, Top-K and publication dependencies. |
Before the C2A fix, length=1 with a one-column table reaches p0=128 and reads nonexistent column 1. length=513 with five columns reaches p0=640 and reads nonexistent column 5. Length zero also enters the fixed scan. These are source/CPU address findings, not reproduced NPU crashes. Partially valid 64-row tiles remain within allocated 128-row pages and retain their mask.
Implementation and validation
PR #1280 implements the three areas above and now links this issue with Fixes #1278. The PR is still open; this issue remains open until merge. Current reviewed head: 07d0df5645a46dd7d6a7283e60d33eb6f656c842 (four commits).
- Current-head pre-commit, docs, unit-tests and
a5-v41-flash CI passed. A5 device job. The decode composition CI includes mixed requests at TP=1/4; this is not evidence for the complete boundary matrix below.
- Earlier SSH validation at
ae0d2b1 (production files matched 02c2bd8) passed 18 A5 compilation configurations and six physical Ascend950DT cases across C2A decode, attention prefill and mHC prefill, including mixed requests and two epochs. Generated orchestration retained fixed RoPE widths and gathered rows before repeated attention. Stack: PyPTO e8191e3, PTOAS 0.61, CANN 9.2.0. These results predate the latest rebase.
- Earlier 24 metadata host tests and 10 exact A3 RoPE helper cases passed.
- Earlier A5 compilation and nine exact A5 simulator indexer cases passed at
c8c8208: lengths 0/1/128/129/512/513/2048/2049 plus mixed requests, minimal tables and non-contiguous pages. Generated reads were guarded and publish_ready retained. These are historical simulator results, not physical-device validation of the current revision.
The previously recorded PyPTO c9af905 composition compilation blocker is not a current blocker on the validated newer stack.
Validation tracking:
Validation code remains on independent branches, outside PR #1280:
No measured latency, full-model or M0 acceptance is claimed. External serving adapter migration is separate. Compressor ring state is #1260 / PR #1298; serving loading, shared-page copy-on-write and TP-to-EP are outside this issue.
Background
V4.1 needs correct paged-cache metadata, graph-side access to caller-owned full RoPE tables, and visibility checks before C2A indexer page reads. Implementation: PR #1280.
Problems and expected behavior
index_selectreads page-table/cache entries before checking tile visibility.Before the C2A fix,
length=1with a one-column table reachesp0=128and reads nonexistent column 1.length=513with five columns reachesp0=640and reads nonexistent column 5. Length zero also enters the fixed scan. These are source/CPU address findings, not reproduced NPU crashes. Partially valid 64-row tiles remain within allocated 128-row pages and retain their mask.Implementation and validation
PR #1280 implements the three areas above and now links this issue with
Fixes #1278. The PR is still open; this issue remains open until merge. Current reviewed head:07d0df5645a46dd7d6a7283e60d33eb6f656c842(four commits).a5-v41-flashCI passed. A5 device job. The decode composition CI includes mixed requests at TP=1/4; this is not evidence for the complete boundary matrix below.ae0d2b1(production files matched02c2bd8) passed 18 A5 compilation configurations and six physical Ascend950DT cases across C2A decode, attention prefill and mHC prefill, including mixed requests and two epochs. Generated orchestration retained fixed RoPE widths and gathered rows before repeated attention. Stack: PyPTOe8191e3, PTOAS 0.61, CANN 9.2.0. These results predate the latest rebase.c8c8208: lengths 0/1/128/129/512/513/2048/2049 plus mixed requests, minimal tables and non-contiguous pages. Generated reads were guarded andpublish_readyretained. These are historical simulator results, not physical-device validation of the current revision.The previously recorded PyPTO
c9af905composition compilation blocker is not a current blocker on the validated newer stack.Validation tracking:
Validation code remains on independent branches, outside PR #1280:
No measured latency, full-model or M0 acceptance is claimed. External serving adapter migration is separate. Compressor ring state is #1260 / PR #1298; serving loading, shared-page copy-on-write and TP-to-EP are outside this issue.