Rotom: Layout Representation updates for tiled layouts - #3169
Conversation
ccaff25 to
8483b5f
Compare
|
I guess one thing I don't quite understand about the design here is explained with this example: Here you'd split the single dim into two pieces because it has size 8 and there are only 4 slots, right? What is the benefit of doing that instead of, say, explicitly representing what piece is slots and what piece is ciphertext? I guess what I'm saying is: if you explicitly represented this, would you be able to avoid most of the work in this PR? |
…elling Attribute-layer rework preparing the layout search for split and tiled packings: - preprocessLayoutData produces a LayoutPiece list (one per written dim, tagged Traversal/Replication/Gap) plus a deduped axes table -- one ISL domain variable per logical tensor dim. A traversal piece is a mixed-radix digit (i / divBy) mod modBy of its axis's index, so an axis split into several pieces (tiled or ct/slot-straddling layouts) shares one variable. Multi-piece axes are validated as complete mixed-radix decompositions. The ISL emitter reads the per-piece digit descriptors when building address terms. - The axes table canonicalizes to ascending dim id. Consumers read it positionally as tensor dims (most importantly the ISL domain), so a layout whose pieces lead with a later dim (column-major) must not leak piece order into the domain: previously row- and column-major materialized identical relations, making conversions between them silently free. - The dim assembly separates ciphertext dims from slot dims with `|` ([ct... | slot...], omitted when there are no ct dims). The split is derived (the longest dims suffix whose extents fill n) and the written `|` is validated against it, so a layout never reads differently than it packs. The slot side must fill n exactly; unused capacity is written as an explicit gap piece rather than synthesized. - Replication and gap dims print as R and G ([R:4:1], [G:4:1]); the numeric ids -1/-2 are still accepted on input and round-trip to the letter forms. Affected materialize/syntax/seed tests re-blessed.
|
The layout representation is now updated to have a clear separation between ct and slot dimensions: where LayoutPieces before the The remaining changes in this PR are for adding robustness checks to constructing a Rotom layout (in |
Three attribute-layer changes preparing the layout search for split and tiled packings:
Part 1 of #2980.
|(e.g.,[ct pieces | slot pieces]). Unused slots is written as an explicit gap piece.