Contents

struct

SushiBLAS::Spatial::WindowSpan

Holds where one spatial operation's input and output live, in element counts.

Declared in
include/SushiBLAS/support/spatial_geometry.hpp

See also

include/SushiBLAS/support/README.md

Public attributes

int64_t batch = 0

How many independent images.

int64_t in_h = 0

The input's row count.

int64_t in_w = 0

The input's column count.

int64_t channels = 0

The channel count, shared by input and output.

int64_t out_h = 0

The output's row count; output_extent's answer.

int64_t out_w = 0

The output's column count; output_extent's answer.

int64_t in_batch_stride = 0

Input elements between consecutive images.

int64_t in_row_stride = 0

Input elements between vertically adjacent pixels.

int64_t in_col_stride = 0

Input elements between horizontally adjacent pixels.

int64_t in_channel_stride = 1

Input elements between adjacent channels of one pixel.

int64_t out_batch_stride = 0

Output elements between consecutive images.

int64_t out_row_stride = 0

Output elements between vertically adjacent pixels.

int64_t out_col_stride = 0

Output elements between horizontally adjacent pixels.

int64_t out_channel_stride = 1

Output elements between adjacent channels of one pixel.

ConvGeometry geometry {}

The window itself.

Public member functions

constexpr int64_t windows() const noexcept

How many windows the operation visits: batch * out_h * out_w.

constexpr int64_t patch_elements() const noexcept

How many elements one window contributes: kernel_h * kernel_w * channels.

constexpr int64_t column_elements() const noexcept

How many elements an im2col matrix holds: windows() * patch_elements().

constexpr int64_t input_elements() const noexcept

How many elements the input holds: batch * in_h * in_w * channels.

constexpr int64_t output_elements() const noexcept

How many elements the output holds: windows() * channels.