JS model of tensor_spec.hpp's element → page → core mapping. A logical
N-D shape folds (by layout) into pages, which scatter across
cores (by sharding). The page → core step reuses the
buffer model.
Tensor
N-D, row-major. e.g. 64,96 or 2,64,64
affects row-major recommended shard width
Sharding
Pick one — the other is derived (1 shard / core).
Sets how many cores; shard shape is even-split auto.
Round-robin deals over the full core list; grid (2D) maps the folded shard grid
(r,c)→core. They diverge when core-grid X exceeds the shard-column count.
Advanced
Optional Alignment arg to TensorLayout(dtype, page_config, memory_config, alignment = {}). Blank = create_default_alignment; otherwise merged by initialize_alignment (each dim rounded up to the default).
Final per-core view of which elements land where (below shards → cores).
On by default. Rank-3 elements / page grid / shards render as rotatable cubes of layers; uncheck for flat 2D.
→
Click an element / tile / page / shard / core to toggle its highlight — the same page lights up across every view.
Elements → Cores
page grid → core
① pages → shards
② shards → cores (device pages, shards stacked per core)
Result: elements → core
Each core shows the elements it owns — same core grid as shards → cores, linked highlight.