Skip to content

Preserve runtime Tile geometry and expose PE-domain participation - #281

Closed
zhoubot wants to merge 5 commits into
linxfrom
codex/pto-element-api-postmerge
Closed

zhoubot wants to merge 5 commits into
linxfrom
codex/pto-element-api-postmerge

Conversation

@zhoubot

@zhoubot zhoubot commented Oct 18, 2026 •

Copy link
Copy Markdown
Collaborator

Preserve runtime physical-column geometry through binary elementwise operations, scalar fill and row expansion. Validate bounds using instance dimensions instead of the DYNAMIC sentinel while retaining the original allocation and layout.

Expose PTO_PE_DOMAIN(mask) for compiler-owned participation boundaries and propagate TileArray participant masks through output references, assembly, views and TMOV writers. Reject invalid masks and unsupported selected-slot writers. This supports nested PE0-only Tile/element chains inside the original four-PE QLI driver.

Correct lifetime fixtures to publish complete Local parents and reject OPEN-parent escapes; make the header-defined layout formatter inline. Native test matching accepts the exact old and new TLSU/CUBE header spellings. Host make check, focused API tests and combined native/runtime profiles pass. Full target verification still has the existing SharedTLoad handle-store gap; general pointer-TLOAD partial-parent transport outside marked regions is not claimed scalar-free.

Qualified on frozen LLVM a08e1c228dbe8b5fe45a6c613fec6a78499ab920, API 1f72e918fcbb72569d8e28dda11f7c579a06dab2, benchmark code 693d25349b9e17bad57fe7d281be258140d649ba, and unchanged gfrun 0a237ccfe8404d73d92dd144a6af539b2b0ebc5a. The subsequent benchmark documentation commit records these exact code pins. All runtime cases keep the 120-second gfrun timeout and original resource limits.

  • Element suite 64/64 (455 memory segments), core TopK 777 9/9 segments, solution regressions 21/21.
  • QLI key48 / histogram72 / norm13 / popn18 / static TopK7 / original5 / dynamic4; additionally original four-PE4 and upstream four-PE2, each comparing 18 memory segments.
  • Original low-precision matmul7/7; predicate original and edge cases; MoE boundary driver with 11 lengths and repeated calls; D6 C48 and issue130 C16.
  • Nested PE-domain assembly/view/TMOV/element chain: two segments, 16,768 bytes, all 21 B.IOT binders use PE0 mask1000.
  • Focused API6 + native adapter42 + PE-domain7 + exact descriptor glob24 + upstream lifetime/header16 = 95/95; three additional late-copy/legacy tests pass. Issue60 remains a separately recorded negative, not feature closure.
  • Independent final audit: PASS, 3,795 hash records verified, zero errors/pending. Local report /tmp/pto-element-fusion-20261019/final-v19-audit.json (SHA256 ec21921ce2f554e78131ee12be39e9ebc151d7a62d999f1093a51aa814eed0c4).

This qualifies the declared gfrun profiles. gfsim/timing, forced Tile spill runtime, and lifetime retirement semantics are not qualified. The original application inventory remains 17/21 with four pending profiles, distinct from solution21/21. LLVM still has 28 legacy pragma fixtures outside this closure and a valid guard-correlated issue60 proof gap. Broad MC accounting is 82 PASS, 1 XFAIL, and three historical failures (CUBE_Mamulb, MTC_Tloadstore, pto-tileop-macro-ranges); no all-LLVM-tests-green claim.

Companion PRs: LLVM #131, TileOP API #281, SuperNPUBench #252, gfrun #949.

@zhoubot zhoubot changed the title fix(api): preserve runtime physical columns in elementwise TileOps Preserve runtime Tile geometry and expose PE-domain participation Oct 19, 2026
@VV0003

VV0003 commented Oct 26, 2026

Copy link
Copy Markdown
Collaborator

Superseded by #292: the multi-PE integration branch merged this PR history and then re-landed the same features with follow-up adjustments (participant-mask coverage fitted to supported ElementTile profiles, standalone Tile headers in PE-domain tests, runtime physical-column fixes). The integrated result is squash-merged into linx as b5fbae192912. This PR head now conflicts with linx and would revert those adjustments, so closing as superseded instead of merging.

@VV0003 VV0003 closed this Oct 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants