XeTLA v0.3.6
IntelĀ® Xe Templates for Linear Algebra - API Definition Document
 
Loading...
Searching...
No Matches
gpu::xetla::subgroup::tile_desc_t< tile_size_x_, tile_size_y_, block_size_x_, block_size_y_, reg_layout_ > Struct Template Reference

Is to illustrate the tile information about a sub matrix. More...

#include <api.hpp>

Static Public Attributes

static constexpr uint32_t tile_size_x = tile_size_x_
 
static constexpr uint32_t tile_size_y = tile_size_y_
 
static constexpr uint32_t block_size_x = block_size_x_
 
static constexpr uint32_t block_size_y = block_size_y_
 
static constexpr uint32_t remained_size_y = tile_size_y % block_size_y
 
static constexpr reg_layout register_layout = reg_layout_
 
static constexpr bool reg_transpose = reg_layout_ == reg_layout::transpose_tiled
 
static constexpr uint32_t num_block_x = tile_size_x / block_size_x
 
static constexpr uint32_t num_block_y = tile_size_y / block_size_y
 
static constexpr uint32_t num_block = num_block_x * (num_block_y + (remained_size_y > 0 ? 1 : 0))
 
static constexpr uint32_t block_elems = block_size_x * block_size_y
 
static constexpr uint32_t tile_elems = tile_size_x * tile_size_y
 

Detailed Description

template<uint32_t tile_size_x_, uint32_t tile_size_y_, uint32_t block_size_x_, uint32_t block_size_y_, reg_layout reg_layout_ = reg_layout::tiled>
struct gpu::xetla::subgroup::tile_desc_t< tile_size_x_, tile_size_y_, block_size_x_, block_size_y_, reg_layout_ >

Is to illustrate the tile information about a sub matrix.

Template Parameters
tile_size_x_Is the horizon tile size.
tile_size_y_Is the vertical tile size.
block_size_x_Is the horizon block size.
block_size_y_Is the vertical block size.
reg_layout_Is the register layout i.e. tiled, vnni_tiled and so on.
gpu_arch_Is the hardware architecture tag.

Member Data Documentation

◆ block_elems

template<uint32_t tile_size_x_, uint32_t tile_size_y_, uint32_t block_size_x_, uint32_t block_size_y_, reg_layout reg_layout_ = reg_layout::tiled>
constexpr uint32_t gpu::xetla::subgroup::tile_desc_t< tile_size_x_, tile_size_y_, block_size_x_, block_size_y_, reg_layout_ >::block_elems = block_size_x * block_size_y
staticconstexpr

◆ block_size_x

template<uint32_t tile_size_x_, uint32_t tile_size_y_, uint32_t block_size_x_, uint32_t block_size_y_, reg_layout reg_layout_ = reg_layout::tiled>
constexpr uint32_t gpu::xetla::subgroup::tile_desc_t< tile_size_x_, tile_size_y_, block_size_x_, block_size_y_, reg_layout_ >::block_size_x = block_size_x_
staticconstexpr

◆ block_size_y

template<uint32_t tile_size_x_, uint32_t tile_size_y_, uint32_t block_size_x_, uint32_t block_size_y_, reg_layout reg_layout_ = reg_layout::tiled>
constexpr uint32_t gpu::xetla::subgroup::tile_desc_t< tile_size_x_, tile_size_y_, block_size_x_, block_size_y_, reg_layout_ >::block_size_y = block_size_y_
staticconstexpr

◆ num_block

template<uint32_t tile_size_x_, uint32_t tile_size_y_, uint32_t block_size_x_, uint32_t block_size_y_, reg_layout reg_layout_ = reg_layout::tiled>
constexpr uint32_t gpu::xetla::subgroup::tile_desc_t< tile_size_x_, tile_size_y_, block_size_x_, block_size_y_, reg_layout_ >::num_block = num_block_x * (num_block_y + (remained_size_y > 0 ? 1 : 0))
staticconstexpr

◆ num_block_x

template<uint32_t tile_size_x_, uint32_t tile_size_y_, uint32_t block_size_x_, uint32_t block_size_y_, reg_layout reg_layout_ = reg_layout::tiled>
constexpr uint32_t gpu::xetla::subgroup::tile_desc_t< tile_size_x_, tile_size_y_, block_size_x_, block_size_y_, reg_layout_ >::num_block_x = tile_size_x / block_size_x
staticconstexpr

◆ num_block_y

template<uint32_t tile_size_x_, uint32_t tile_size_y_, uint32_t block_size_x_, uint32_t block_size_y_, reg_layout reg_layout_ = reg_layout::tiled>
constexpr uint32_t gpu::xetla::subgroup::tile_desc_t< tile_size_x_, tile_size_y_, block_size_x_, block_size_y_, reg_layout_ >::num_block_y = tile_size_y / block_size_y
staticconstexpr

◆ reg_transpose

template<uint32_t tile_size_x_, uint32_t tile_size_y_, uint32_t block_size_x_, uint32_t block_size_y_, reg_layout reg_layout_ = reg_layout::tiled>
constexpr bool gpu::xetla::subgroup::tile_desc_t< tile_size_x_, tile_size_y_, block_size_x_, block_size_y_, reg_layout_ >::reg_transpose = reg_layout_ == reg_layout::transpose_tiled
staticconstexpr

◆ register_layout

template<uint32_t tile_size_x_, uint32_t tile_size_y_, uint32_t block_size_x_, uint32_t block_size_y_, reg_layout reg_layout_ = reg_layout::tiled>
constexpr reg_layout gpu::xetla::subgroup::tile_desc_t< tile_size_x_, tile_size_y_, block_size_x_, block_size_y_, reg_layout_ >::register_layout = reg_layout_
staticconstexpr

◆ remained_size_y

template<uint32_t tile_size_x_, uint32_t tile_size_y_, uint32_t block_size_x_, uint32_t block_size_y_, reg_layout reg_layout_ = reg_layout::tiled>
constexpr uint32_t gpu::xetla::subgroup::tile_desc_t< tile_size_x_, tile_size_y_, block_size_x_, block_size_y_, reg_layout_ >::remained_size_y = tile_size_y % block_size_y
staticconstexpr

◆ tile_elems

template<uint32_t tile_size_x_, uint32_t tile_size_y_, uint32_t block_size_x_, uint32_t block_size_y_, reg_layout reg_layout_ = reg_layout::tiled>
constexpr uint32_t gpu::xetla::subgroup::tile_desc_t< tile_size_x_, tile_size_y_, block_size_x_, block_size_y_, reg_layout_ >::tile_elems = tile_size_x * tile_size_y
staticconstexpr

◆ tile_size_x

template<uint32_t tile_size_x_, uint32_t tile_size_y_, uint32_t block_size_x_, uint32_t block_size_y_, reg_layout reg_layout_ = reg_layout::tiled>
constexpr uint32_t gpu::xetla::subgroup::tile_desc_t< tile_size_x_, tile_size_y_, block_size_x_, block_size_y_, reg_layout_ >::tile_size_x = tile_size_x_
staticconstexpr

◆ tile_size_y

template<uint32_t tile_size_x_, uint32_t tile_size_y_, uint32_t block_size_x_, uint32_t block_size_y_, reg_layout reg_layout_ = reg_layout::tiled>
constexpr uint32_t gpu::xetla::subgroup::tile_desc_t< tile_size_x_, tile_size_y_, block_size_x_, block_size_y_, reg_layout_ >::tile_size_y = tile_size_y_
staticconstexpr