ImageToColumn< Problem_ > Struct Template Reference

ImageToColumn&lt; Problem_ &gt; Struct Template Reference#

Composable Kernel: ck_tile::ImageToColumn< Problem_ > Struct Template Reference
ck_tile::ImageToColumn< Problem_ > Struct Template Reference

#include <image_to_column_kernel.hpp>

Classes

struct  Kargs

Public Types

using Problem = remove_cvref_t<Problem_>
using InDataType = remove_cvref_t<typename Problem::InDataType>
using OutDataType = remove_cvref_t<typename Problem::OutDataType>

Public Member Functions

CK_TILE_DEVICE auto MakeImageMKDesc (const Kargs &kargs) const
CK_TILE_DEVICE auto CalculateMKDims (const Kargs &kargs) const
CK_TILE_DEVICE void ConvTensorRearrange (const Kargs &kargs) const
CK_TILE_DEVICE void operator() (Kargs &kargs) const

Static Public Member Functions

static CK_TILE_HOST constexpr Kargs MakeKargs (const void *p_in, void *p_out, const long_index_t G, const long_index_t N, const long_index_t C, const array< long_index_t, NDimSpatial > input_spatial_lengths, const array< long_index_t, NDimSpatial > filter_spatial_lengths, const array< long_index_t, NDimSpatial > output_spatial_lengths, const array< long_index_t, NDimSpatial+3 > image_g_n_c_wis_strides, const array< long_index_t, 3 > gemm_g_m_k_strides, const array< long_index_t, NDimSpatial > conv_filter_strides, const array< long_index_t, NDimSpatial > conv_filter_dilations, const array< long_index_t, NDimSpatial > input_left_pads, const array< long_index_t, NDimSpatial > input_right_pads)
static CK_TILE_HOST constexpr auto GridSize (index_t GemmM, index_t GemmK, index_t Batch)
static CK_TILE_HOST constexpr auto BlockSize ()
static CK_TILE_DEVICE constexpr auto MakeBlockTileDistribution ()

Static Public Attributes

static constexpr auto I0 = number<0>{}
static constexpr auto I1 = number<1>{}
static constexpr auto I2 = number<2>{}
static constexpr auto I3 = number<3>{}
static constexpr auto I4 = number<4>{}
static constexpr index_t NDimSpatial = Problem::NDimSpatial
static constexpr index_t AligmentIn = Problem::AligmentIn
static constexpr index_t AligmentOut = Problem::AligmentOut
static constexpr index_t kMPerBlock = Problem::BlockShape::kMPerBlock
static constexpr index_t kKPerBlock = Problem::BlockShape::kKPerBlock
static constexpr index_t kBlockSize = Problem::BlockShape::kBlockSize

Member Typedef Documentation

◆ InDataType

template<typename Problem_>
using ck_tile::ImageToColumn< Problem_ >::InDataType = remove_cvref_t<typename Problem::InDataType>

◆ OutDataType

template<typename Problem_>
using ck_tile::ImageToColumn< Problem_ >::OutDataType = remove_cvref_t<typename Problem::OutDataType>

◆ Problem

template<typename Problem_>
using ck_tile::ImageToColumn< Problem_ >::Problem = remove_cvref_t<Problem_>

Member Function Documentation

◆ BlockSize()

template<typename Problem_>
CK_TILE_HOST constexpr auto ck_tile::ImageToColumn< Problem_ >::BlockSize ( )
inlinestaticconstexpr

◆ CalculateMKDims()

template<typename Problem_>
CK_TILE_DEVICE auto ck_tile::ImageToColumn< Problem_ >::CalculateMKDims ( const Kargs & kargs) const
inline

◆ ConvTensorRearrange()

template<typename Problem_>
CK_TILE_DEVICE void ck_tile::ImageToColumn< Problem_ >::ConvTensorRearrange ( const Kargs & kargs) const
inline

◆ GridSize()

template<typename Problem_>
CK_TILE_HOST constexpr auto ck_tile::ImageToColumn< Problem_ >::GridSize ( index_t GemmM,
index_t GemmK,
index_t Batch )
inlinestaticconstexpr

◆ MakeBlockTileDistribution()

template<typename Problem_>
CK_TILE_DEVICE constexpr auto ck_tile::ImageToColumn< Problem_ >::MakeBlockTileDistribution ( )
inlinestaticconstexpr

◆ MakeImageMKDesc()

template<typename Problem_>
CK_TILE_DEVICE auto ck_tile::ImageToColumn< Problem_ >::MakeImageMKDesc ( const Kargs & kargs) const
inline

◆ MakeKargs()

template<typename Problem_>
CK_TILE_HOST constexpr Kargs ck_tile::ImageToColumn< Problem_ >::MakeKargs ( const void * p_in,
void * p_out,
const long_index_t G,
const long_index_t N,
const long_index_t C,
const array< long_index_t, NDimSpatial > input_spatial_lengths,
const array< long_index_t, NDimSpatial > filter_spatial_lengths,
const array< long_index_t, NDimSpatial > output_spatial_lengths,
const array< long_index_t, NDimSpatial+3 > image_g_n_c_wis_strides,
const array< long_index_t, 3 > gemm_g_m_k_strides,
const array< long_index_t, NDimSpatial > conv_filter_strides,
const array< long_index_t, NDimSpatial > conv_filter_dilations,
const array< long_index_t, NDimSpatial > input_left_pads,
const array< long_index_t, NDimSpatial > input_right_pads )
inlinestaticconstexpr

◆ operator()()

template<typename Problem_>
CK_TILE_DEVICE void ck_tile::ImageToColumn< Problem_ >::operator() ( Kargs & kargs) const
inline

Member Data Documentation

◆ AligmentIn

template<typename Problem_>
index_t ck_tile::ImageToColumn< Problem_ >::AligmentIn = Problem::AligmentIn
staticconstexpr

◆ AligmentOut

template<typename Problem_>
index_t ck_tile::ImageToColumn< Problem_ >::AligmentOut = Problem::AligmentOut
staticconstexpr

◆ I0

template<typename Problem_>
auto ck_tile::ImageToColumn< Problem_ >::I0 = number<0>{}
staticconstexpr

◆ I1

template<typename Problem_>
auto ck_tile::ImageToColumn< Problem_ >::I1 = number<1>{}
staticconstexpr

◆ I2

template<typename Problem_>
auto ck_tile::ImageToColumn< Problem_ >::I2 = number<2>{}
staticconstexpr

◆ I3

template<typename Problem_>
auto ck_tile::ImageToColumn< Problem_ >::I3 = number<3>{}
staticconstexpr

◆ I4

template<typename Problem_>
auto ck_tile::ImageToColumn< Problem_ >::I4 = number<4>{}
staticconstexpr

◆ kBlockSize

template<typename Problem_>
index_t ck_tile::ImageToColumn< Problem_ >::kBlockSize = Problem::BlockShape::kBlockSize
staticconstexpr

◆ kKPerBlock

template<typename Problem_>
index_t ck_tile::ImageToColumn< Problem_ >::kKPerBlock = Problem::BlockShape::kKPerBlock
staticconstexpr

◆ kMPerBlock

template<typename Problem_>
index_t ck_tile::ImageToColumn< Problem_ >::kMPerBlock = Problem::BlockShape::kMPerBlock
staticconstexpr

◆ NDimSpatial

template<typename Problem_>
index_t ck_tile::ImageToColumn< Problem_ >::NDimSpatial = Problem::NDimSpatial
staticconstexpr

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