transpose_vectors< S_, NX, NY > Struct Template Reference

transpose_vectors&lt; S_, NX, NY &gt; Struct Template Reference#

Composable Kernel: ck_tile::transpose_vectors< S_, NX, NY > Struct Template Reference
ck_tile::transpose_vectors< S_, NX, NY > Struct Template Reference

#include <transpose_vectors.hpp>

Classes

struct  generic_tag
struct  bytesize2_2x2_tag
struct  bytesize1_4x4_tag
struct  bytesize1_2x2_tag

Public Types

using S = remove_cvref_t<S_>
using VX = array<S, s_per_x>
using VY = array<S, s_per_y>

Public Member Functions

CK_TILE_DEVICE void operator() (const thread_buffer< VX, NX > &vx_tuple, thread_buffer< VY, NY > &vy_tuple) const

Static Public Member Functions

static CK_TILE_DEVICE constexpr void apply_impl (const thread_buffer< VX, NX > &vx_tuple, thread_buffer< VY, NY > &vy_tuple, generic_tag)
static CK_TILE_DEVICE constexpr void apply_impl (const thread_buffer< VX, NX > &vx_tuple, thread_buffer< VY, NY > &vy_tuple, bytesize2_2x2_tag)
static CK_TILE_DEVICE constexpr void apply_impl (const thread_buffer< VX, NX > &vx_tuple, thread_buffer< VY, NY > &vy_tuple, bytesize1_4x4_tag)
static CK_TILE_DEVICE constexpr void apply_impl (const thread_buffer< VX, NX > &vx_tuple, thread_buffer< VY, NY > &vy_tuple, bytesize1_2x2_tag)
static CK_TILE_DEVICE constexpr auto tag_dispatch ()

Static Public Attributes

static constexpr index_t s_per_x = NY
static constexpr index_t s_per_y = NX

Member Typedef Documentation

◆ S

template<typename S_, index_t NX, index_t NY>
using ck_tile::transpose_vectors< S_, NX, NY >::S = remove_cvref_t<S_>

◆ VX

template<typename S_, index_t NX, index_t NY>
using ck_tile::transpose_vectors< S_, NX, NY >::VX = array<S, s_per_x>

◆ VY

template<typename S_, index_t NX, index_t NY>
using ck_tile::transpose_vectors< S_, NX, NY >::VY = array<S, s_per_y>

Member Function Documentation

◆ apply_impl() [1/4]

template<typename S_, index_t NX, index_t NY>
CK_TILE_DEVICE constexpr void ck_tile::transpose_vectors< S_, NX, NY >::apply_impl ( const thread_buffer< VX, NX > & vx_tuple,
thread_buffer< VY, NY > & vy_tuple,
bytesize1_2x2_tag  )
inlinestaticconstexpr

◆ apply_impl() [2/4]

template<typename S_, index_t NX, index_t NY>
CK_TILE_DEVICE constexpr void ck_tile::transpose_vectors< S_, NX, NY >::apply_impl ( const thread_buffer< VX, NX > & vx_tuple,
thread_buffer< VY, NY > & vy_tuple,
bytesize1_4x4_tag  )
inlinestaticconstexpr

◆ apply_impl() [3/4]

template<typename S_, index_t NX, index_t NY>
CK_TILE_DEVICE constexpr void ck_tile::transpose_vectors< S_, NX, NY >::apply_impl ( const thread_buffer< VX, NX > & vx_tuple,
thread_buffer< VY, NY > & vy_tuple,
bytesize2_2x2_tag  )
inlinestaticconstexpr

◆ apply_impl() [4/4]

template<typename S_, index_t NX, index_t NY>
CK_TILE_DEVICE constexpr void ck_tile::transpose_vectors< S_, NX, NY >::apply_impl ( const thread_buffer< VX, NX > & vx_tuple,
thread_buffer< VY, NY > & vy_tuple,
generic_tag  )
inlinestaticconstexpr

◆ operator()()

template<typename S_, index_t NX, index_t NY>
CK_TILE_DEVICE void ck_tile::transpose_vectors< S_, NX, NY >::operator() ( const thread_buffer< VX, NX > & vx_tuple,
thread_buffer< VY, NY > & vy_tuple ) const
inline

◆ tag_dispatch()

template<typename S_, index_t NX, index_t NY>
CK_TILE_DEVICE constexpr auto ck_tile::transpose_vectors< S_, NX, NY >::tag_dispatch ( )
inlinestaticconstexpr

Member Data Documentation

◆ s_per_x

template<typename S_, index_t NX, index_t NY>
index_t ck_tile::transpose_vectors< S_, NX, NY >::s_per_x = NY
staticconstexpr

◆ s_per_y

template<typename S_, index_t NX, index_t NY>
index_t ck_tile::transpose_vectors< S_, NX, NY >::s_per_y = NX
staticconstexpr

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