std::vector< Expression > MultiExpression
Vector of symbolic expressions for multi-dimensional operations.
Definition symbolic.h:89
SymEngine::RCP< const SymEngine::Basic > Expression
Reference-counted pointer to a symbolic expression (SymEngine Basic).
Definition symbolic.h:83
Definition gpu_tile_target.h:13
Placement
Definition buffer_layout.h:20
@ Flat
one flat axis over [slot ++ tile] (lane-contiguous staging)
Definition buffer_layout.h:23
@ ColMajor
[slot ++ reversed tile], first tile dim fastest
Definition buffer_layout.h:22
@ RowMajor
[slot ++ tile], last tile dim fastest
Definition buffer_layout.h:21
ConflictPolicy
Definition buffer_layout.h:26
@ None
Definition buffer_layout.h:27
@ PadSlot
flatten each per-slot block and widen its stride by PackedBuffer::pad elements
Definition buffer_layout.h:29
@ PadRow
append PackedBuffer::pad elements to every stored innermost row
Definition buffer_layout.h:28
A layout with a swizzle on its output offset (S o L) — the bank-conflict ConflictPolicy::Swizzle.
Definition swizzle.h:40
The packed local buffer as a value: its nested-array shape (axes), the matching per-axis element addr...
Definition buffer_layout.h:36
symbolic::MultiExpression tile_sizes
per-slot tile block dims
Definition buffer_layout.h:38
size_t pad
padding elements of ConflictPolicy::PadRow / ConflictPolicy::PadSlot
Definition buffer_layout.h:41
symbolic::MultiExpression axes() const
Per-axis extents of the nested-array type, outermost first.
ConflictPolicy conflict
Definition buffer_layout.h:40
ComposedLayout layout() const
The scalar element offset as a (possibly swizzled) layout over [slot ++ tile].
symbolic::Expression tile_total_size() const
One logical per-slot block = product(tile_sizes).
Placement placement
Definition buffer_layout.h:39
symbolic::MultiExpression subset(const symbolic::MultiExpression &slot_indices, const symbolic::MultiExpression &tile_indices) const
Per-axis index tuple addressing one element (matches axes).
symbolic::Expression slot_stride() const
Distance between consecutive slots, padding included.
symbolic::MultiExpression slot_sizes
per-thread slot dims (may be empty)
Definition buffer_layout.h:37
symbolic::Expression total_size() const
Allocated scalar slots, padding included.
XOR-swizzle as a composition functor over a Layout.
Definition swizzle.h:21
Symbolic system for integer-based symbol analysis.