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

One accumulator's logical footprint and allocation contribution. More...

#include <sdfg/tiles/analysis/reduction_buffer_analysis.h>

Public Attributes

ReductionBufferStatus status = ReductionBufferStatus::Unsupported
std::string diagnostic
 Explanation for a non-exact result.
std::optional< gpu::ReductionLayout > layout
 Original-address to compact-slot mapping, present only for exact results.
symbolic::Expression accumulator_index = SymEngine::null
 Original body index, retained after accesses are redirected to partials.
std::optional< types::PrimitiveType > primitive
std::optional< int64_t > element_bytes
 Scalar element width in bytes, rounded up from the primitive bit width.
std::optional< int64_t > private_bytes
 Per-thread private allocation, or zero when no private partial is needed.
std::optional< int64_t > shared_bytes
 Per-block shared allocation contributed by this reduction.
std::optional< size_t > shared_owner
 Element ID of the shared allocation's owner, including for nested users.
symbolic::Expression linear_thread_index = SymEngine::null
 Flattened block-thread coordinate for a shared owner; null otherwise.
std::string private_buffer
 Schedule references to materialized partials; empty before placement.
std::string shared_buffer
bool materialized = false
 The reduction retains an original index and its packed buffers were validated.
bool multi_output = false
 The original index has inner-loop output axes, including unit-count axes.

Detailed Description

One accumulator's logical footprint and allocation contribution.

Missing costs mean unknown, not zero. Conservative bounds retain byte costs but no layout. Shared storage is charged only to its owner; nested users of that allocation contribute zero shared bytes.

Member Data Documentation

◆ accumulator_index

symbolic::Expression sdfg::tiles::ReductionBufferInfo::accumulator_index = SymEngine::null

Original body index, retained after accesses are redirected to partials.

◆ diagnostic

std::string sdfg::tiles::ReductionBufferInfo::diagnostic

Explanation for a non-exact result.

◆ element_bytes

std::optional<int64_t> sdfg::tiles::ReductionBufferInfo::element_bytes

Scalar element width in bytes, rounded up from the primitive bit width.

◆ layout

std::optional<gpu::ReductionLayout> sdfg::tiles::ReductionBufferInfo::layout

Original-address to compact-slot mapping, present only for exact results.

◆ linear_thread_index

symbolic::Expression sdfg::tiles::ReductionBufferInfo::linear_thread_index = SymEngine::null

Flattened block-thread coordinate for a shared owner; null otherwise.

◆ materialized

bool sdfg::tiles::ReductionBufferInfo::materialized = false

The reduction retains an original index and its packed buffers were validated.

◆ multi_output

bool sdfg::tiles::ReductionBufferInfo::multi_output = false

The original index has inner-loop output axes, including unit-count axes.

◆ primitive

std::optional<types::PrimitiveType> sdfg::tiles::ReductionBufferInfo::primitive

◆ private_buffer

std::string sdfg::tiles::ReductionBufferInfo::private_buffer

Schedule references to materialized partials; empty before placement.

◆ private_bytes

std::optional<int64_t> sdfg::tiles::ReductionBufferInfo::private_bytes

Per-thread private allocation, or zero when no private partial is needed.

◆ shared_buffer

std::string sdfg::tiles::ReductionBufferInfo::shared_buffer

◆ shared_bytes

std::optional<int64_t> sdfg::tiles::ReductionBufferInfo::shared_bytes

Per-block shared allocation contributed by this reduction.

◆ shared_owner

std::optional<size_t> sdfg::tiles::ReductionBufferInfo::shared_owner

Element ID of the shared allocation's owner, including for nested users.

◆ status

ReductionBufferStatus sdfg::tiles::ReductionBufferInfo::status = ReductionBufferStatus::Unsupported

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