hyp D: non-matmul decode ops share the matmul Tensix grid, so they cannot hide under the weight read #56
Labels
No labels
human-approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
bitpartner/tt-stack#56
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Parent: the P150 single-stream ≤25.0 ms issue. This decides whether ≤25.0 ms is structurally reachable.
Claim
N1's floor is an intercept: it is serial with the DRAM term, not hidden under it. The ~15 ms of non-matmul device work (see the residue issue) is also inside the same traced call. If those ops use the same Tensix grid as the weight-reading matmuls, they cannot overlap the 22.1 ms read, and the step cannot fall below roughly
22 ms DRAM + 8.2 ms floor + non-matmul + 3.3 ms hostwithout fusing the non-matmul work into idle issue slots of the matmul kernel itself.The interesting falsification is the opposite: some of that work runs on cores the matmul is not using (or on the big RISC-V cores — the "16 per chip" claim is unverified; establish it from the SoC descriptor before using it), so it can be scheduled under the weight read. Overlap is the only story in which both the floor and the residue disappear at once. Shrinking them one at a time does not reach 25 ms.
Falsifier
For one production decode token, name the core range of each class: MLP matmul, GDN matmul, GDN recurrence, attention SDPA, attention QKV (already
11x4), CCL. Cite the progcfg / grid constant in tree. Conclude one of:No boot in the code drill. A later boot is a single-op placement experiment only if (2) names a concrete op and a concrete core set.
Do not
Parent: #53. Code drill only — do not boot the cards, do not start tenstorrent-serving.service, do not edit the tree. Comment the falsifier here.
Supersedes "do not boot". Card use is the cfx-llm2 lock: atomic mkdir /tmp/ttlock, owner hyp-56 in /tmp/ttlock/owner, release only if that owner is still yours, trap exits on signal. If mkdir fails, read the owner and do not wait. MemAvailable ≥ ~4 GB. docker stop -t 60, never docker rm -f on a live container. Do not start tenstorrent-serving.service. See #53.
Code answer: (1) fully serial. Which cores each op uses is not the variable.
subdevice_id=None(tp_common.py:491,596;tt_all_reducedefault).DistributedNormis built withprefetcher=None(layer.py:_make_norm).Qwen36Model.switch_modeis "no-op (no prefetcher)" (model.py:576). Under one sub-device, the dispatcher sends program N+1's go signal only after every worker in program N has finished. That is tt-metal dispatch semantics, not measured here.create_matmul_1d_decode_progcfgat 44/33/64 cores, width 11 (model_config.py:191-230). The attn-QKV override is11x4. The decode norms use the 32-coreact_shard_hiddenlayout (layer.py, ff_norm uses the attn config). The GDN L1 chain and SDPA use their own grids. The CCL workers are chosen byreduce_scatter_minimal_async/all_gather_async.all_gather_minimal_matmul_asyncandmatmul_reduce_scatter_asyncare wired for prefill only.tp_common.matmul_reduce_scatter_decodeexists but has no call sites (also recorded indocs/EXTERNAL-LEDGER.md:76).Conclusion. ≤25.0 ms is not reachable by rescheduling the current graph. Two overlap routes are left, and neither is one diff:
I propose closing #56 as answered (1) and tracking the overlap in #58.
"<=25 ms not reachable by rescheduling" came from code reading. Please don't close it as impossible; treat it as a measurement, and fold it into #58 if that's cleaner. The ledger's "30 tok/s at B=1 unreachable on two cards" (
8d0f52c) is also reopened: it rested on analysis, and MTP K3 measured 33.0 ms/token (#63).Reopened under the new rule (owner, 2026-09-25): a closure needs an on-hardware record at the stated scope; estimates, code-reads and third-party numbers close nothing. See docs/LEDGER.md "Reopened" (PR #68).