29 const std::vector<int64_t>& strides,
47 const std::function<std::optional<size_t>(
const PackedBuffer&)>& cost
The destination side of a tiled copy — the packed local buffer — as a (possibly swizzled) Layout over...
Library node definitions for calling functions beyond simple instructions.
Definition gpu_tile_target.h:13
size_t row_pad(const BankModel &model, size_t elem_bytes, PackedBuffer buffer, size_t align_bytes, const std::function< std::optional< size_t >(const PackedBuffer &)> &cost)
The ConflictPolicy::PadRow padding (elements) of buffer minimizing cost, the access cycles of a candi...
size_t slot_pad(const BankModel &model, size_t block, size_t coop_span)
ConflictPolicy::PadSlot padding (elements) of a per-slot block of block elements whose slots are acce...
size_t access_cycles(const BankModel &model, size_t elem_bytes, const std::vector< int64_t > &strides, const data_flow::SubgroupAccess &access)
Cycles the banked memory spends serving access when the operand's elements (of elem_bytes) sit at ele...
The operand elements one subgroup touches in a single access: for every lane, the operand coordinates...
Definition library_node.h:88
A banked on-chip memory: banks banks of bank_bytes each, every bank serving one word per cycle.
Definition bank_conflicts.h:16
unsigned bank_bytes
Definition bank_conflicts.h:18
unsigned banks
Definition bank_conflicts.h:17
The packed local buffer as a value: its nested-array shape (axes), the matching per-axis element addr...
Definition buffer_layout.h:36