docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
sdfg::tiles::PackedBuffer Struct Reference

The packed local buffer as a value: its nested-array shape (axes), the matching per-axis element address (subset), and the scalar-offset layout. More...

#include <sdfg/tiles/buffer_layout.h>

Public Member Functions

symbolic::Expression total_size () const
 Allocated scalar slots, padding included.
symbolic::Expression tile_total_size () const
 One logical per-slot block = product(tile_sizes).
symbolic::Expression slot_stride () const
 Distance between consecutive slots, padding included.
symbolic::MultiExpression axes () const
 Per-axis extents of the nested-array type, outermost first.
symbolic::MultiExpression subset (const symbolic::MultiExpression &slot_indices, const symbolic::MultiExpression &tile_indices) const
 Per-axis index tuple addressing one element (matches axes).
ComposedLayout layout () const
 The scalar element offset as a (possibly swizzled) layout over [slot ++ tile].

Public Attributes

symbolic::MultiExpression slot_sizes
 per-thread slot dims (may be empty)
symbolic::MultiExpression tile_sizes
 per-slot tile block dims
Placement placement = Placement::RowMajor
ConflictPolicy conflict = ConflictPolicy::None
size_t pad = 0
 padding elements of ConflictPolicy::PadRow / ConflictPolicy::PadSlot

Detailed Description

The packed local buffer as a value: its nested-array shape (axes), the matching per-axis element address (subset), and the scalar-offset layout.

The multidimensional type loses no information.

Member Function Documentation

◆ axes()

symbolic::MultiExpression sdfg::tiles::PackedBuffer::axes ( ) const

Per-axis extents of the nested-array type, outermost first.

◆ layout()

ComposedLayout sdfg::tiles::PackedBuffer::layout ( ) const

The scalar element offset as a (possibly swizzled) layout over [slot ++ tile].

◆ slot_stride()

symbolic::Expression sdfg::tiles::PackedBuffer::slot_stride ( ) const

Distance between consecutive slots, padding included.

◆ subset()

symbolic::MultiExpression sdfg::tiles::PackedBuffer::subset ( const symbolic::MultiExpression & slot_indices,
const symbolic::MultiExpression & tile_indices ) const

Per-axis index tuple addressing one element (matches axes).

◆ tile_total_size()

symbolic::Expression sdfg::tiles::PackedBuffer::tile_total_size ( ) const

One logical per-slot block = product(tile_sizes).

◆ total_size()

symbolic::Expression sdfg::tiles::PackedBuffer::total_size ( ) const

Allocated scalar slots, padding included.

Member Data Documentation

◆ conflict

ConflictPolicy sdfg::tiles::PackedBuffer::conflict = ConflictPolicy::None

◆ pad

size_t sdfg::tiles::PackedBuffer::pad = 0

◆ placement

Placement sdfg::tiles::PackedBuffer::placement = Placement::RowMajor

◆ slot_sizes

symbolic::MultiExpression sdfg::tiles::PackedBuffer::slot_sizes

per-thread slot dims (may be empty)

◆ tile_sizes

symbolic::MultiExpression sdfg::tiles::PackedBuffer::tile_sizes

per-slot tile block dims


The documentation for this struct was generated from the following file: