GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ > Struct Template Reference

GroupedConvFwdKernelArgs&lt; GroupedConvTraitsType_, CDElementwise_ &gt; Struct Template Reference#

Composable Kernel: ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ > Struct Template Reference
ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ > Struct Template Reference

The Grouped Convolution kernel device arguments. More...

#include <grouped_convolution_forward_kernel.hpp>

Classes

struct  SplitImageInfo

Public Types

using ConvToGemmFwdTransformer
using CDElementwise = CDElementwise_
using AGridDescMK
using BGridDescNK
using CGridDescMN
using ConvToGemmFwdTransformer_t = ConvToGemmFwdTransformer
using AGridDescMK_t = AGridDescMK
using CGridDescMN_t = CGridDescMN

Public Member Functions

template<typename InLay = typename GroupedConvTraitsType_::InLayout, typename WeiLay = typename GroupedConvTraitsType_::WeiLayout, typename OutLay = typename GroupedConvTraitsType_::OutLayout, typename std::enable_if< std::is_same_v< InLay, tensor_layout::convolution::NWGC > &&std::is_same_v< WeiLay, tensor_layout::convolution::GKXC > &&std::is_same_v< OutLay, tensor_layout::convolution::NWGK >, bool >::type = false>
CK_TILE_HOST GroupedConvFwdKernelArgs (const GroupedConvFwdHostArgs< CDElementwise > &args)
template<typename InLay = typename GroupedConvTraitsType_::InLayout, typename WeiLay = typename GroupedConvTraitsType_::WeiLayout, typename OutLay = typename GroupedConvTraitsType_::OutLayout, typename std::enable_if< std::is_same_v< InLay, tensor_layout::convolution::NHWGC > &&std::is_same_v< WeiLay, tensor_layout::convolution::GKYXC > &&std::is_same_v< OutLay, tensor_layout::convolution::NHWGK >, bool >::type = false>
CK_TILE_HOST GroupedConvFwdKernelArgs (const GroupedConvFwdHostArgs< CDElementwise > &args)
template<typename InLay = typename GroupedConvTraitsType_::InLayout, typename WeiLay = typename GroupedConvTraitsType_::WeiLayout, typename OutLay = typename GroupedConvTraitsType_::OutLayout, typename std::enable_if< std::is_same_v< InLay, tensor_layout::convolution::NDHWGC > &&std::is_same_v< WeiLay, tensor_layout::convolution::GKZYXC > &&std::is_same_v< OutLay, tensor_layout::convolution::NDHWGK >, bool >::type = false>
CK_TILE_HOST GroupedConvFwdKernelArgs (const GroupedConvFwdHostArgs< CDElementwise > &args)

Public Attributes

array< index_t, NonSpatialDims+GroupedConvTraitsType_::NDimSpatial > in_g_n_c_wis_lengths
array< index_t, NonSpatialDims+GroupedConvTraitsType_::NDimSpatial > wei_g_k_c_xs_lengths
array< index_t, NonSpatialDims+GroupedConvTraitsType_::NDimSpatial > out_g_n_k_wos_lengths
array< index_t, GroupedConvTraitsType_::NDimSpatial > conv_filter_strides
array< index_t, GroupedConvTraitsType_::NDimSpatial > conv_filter_dilations
array< index_t, GroupedConvTraitsType_::NDimSpatial > input_left_pads
array< index_t, GroupedConvTraitsType_::NDimSpatial > input_right_pads
index_t k_batch
index_t GemmM
index_t GemmN
index_t GemmK
index_t GemmBatch
const void * in_ptr
const void * wei_ptr
std::array< const void *, NumDTensords_ptr
const CDElementwise elfunc
void * out_ptr
AGridDescMK a_grid_desc_m_k
BGridDescNK b_grid_desc_n_k
CGridDescMN c_grid_desc_m_n
long_index_t group_stride_a
long_index_t group_stride_b
long_index_t group_stride_c
index_t n_splits = 1
index_t n_per_split = 1
index_t original_n = 1
index_t input_batch_stride = 0
index_t output_batch_stride = 0
long_index_t spatial_offset_in = 0
long_index_t spatial_offset_out = 0
ConvToGemmFwdTransformer transformer_
index_t num_spatial_pieces = 1
SplitImageInfo split_image

Static Public Attributes

static constexpr index_t NumDTensor = GroupedConvTraitsType_::NumDTensor
static constexpr index_t NonSpatialDims = 3

Detailed Description

template<typename GroupedConvTraitsType_, typename CDElementwise_>
struct ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >

The Grouped Convolution kernel device arguments.

Member Typedef Documentation

◆ AGridDescMK

template<typename GroupedConvTraitsType_, typename CDElementwise_>
using ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::AGridDescMK
Initial value:
.template MakeADescriptor_M_K<typename GroupedConvTraitsType_::InLayout>())>
remove_cv_t< std::remove_reference_t< T > > remove_cvref_t
Definition type_traits.hpp:21
TransformConvFwdToGemm< GroupedConvTraitsType_::NDimSpatial, GroupedConvTraitsType_::ConvSpecialization, GroupedConvTraitsType_::VectorSizeA, GroupedConvTraitsType_::VectorSizeB, GroupedConvTraitsType_::VectorSizeC, GroupedConvTraitsType_::NumGroupsToMerge, true > ConvToGemmFwdTransformer
Definition grouped_convolution_forward_kernel.hpp:26

◆ AGridDescMK_t

template<typename GroupedConvTraitsType_, typename CDElementwise_>
using ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::AGridDescMK_t = AGridDescMK

◆ BGridDescNK

template<typename GroupedConvTraitsType_, typename CDElementwise_>
using ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::BGridDescNK
Initial value:
.template MakeBDescriptor_N_K<typename GroupedConvTraitsType_::WeiLayout>())>

◆ CDElementwise

template<typename GroupedConvTraitsType_, typename CDElementwise_>
using ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::CDElementwise = CDElementwise_

◆ CGridDescMN

template<typename GroupedConvTraitsType_, typename CDElementwise_>
using ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::CGridDescMN
Initial value:
.template MakeCDescriptor_M_N<typename GroupedConvTraitsType_::OutLayout>())>

◆ CGridDescMN_t

template<typename GroupedConvTraitsType_, typename CDElementwise_>
using ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::CGridDescMN_t = CGridDescMN

◆ ConvToGemmFwdTransformer

template<typename GroupedConvTraitsType_, typename CDElementwise_>
using ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::ConvToGemmFwdTransformer
Initial value:
TransformConvFwdToGemm<GroupedConvTraitsType_::NDimSpatial,
GroupedConvTraitsType_::ConvSpecialization,
GroupedConvTraitsType_::VectorSizeA,
GroupedConvTraitsType_::VectorSizeB,
GroupedConvTraitsType_::VectorSizeC,
GroupedConvTraitsType_::NumGroupsToMerge,
true>
Definition tensor_operation/operator_transform/transform_conv_fwd_to_gemm.hpp:25

◆ ConvToGemmFwdTransformer_t

template<typename GroupedConvTraitsType_, typename CDElementwise_>
using ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::ConvToGemmFwdTransformer_t = ConvToGemmFwdTransformer

Constructor & Destructor Documentation

◆ GroupedConvFwdKernelArgs() [1/3]

template<typename GroupedConvTraitsType_, typename CDElementwise_>
template<typename InLay = typename GroupedConvTraitsType_::InLayout, typename WeiLay = typename GroupedConvTraitsType_::WeiLayout, typename OutLay = typename GroupedConvTraitsType_::OutLayout, typename std::enable_if< std::is_same_v< InLay, tensor_layout::convolution::NWGC > &&std::is_same_v< WeiLay, tensor_layout::convolution::GKXC > &&std::is_same_v< OutLay, tensor_layout::convolution::NWGK >, bool >::type = false>
CK_TILE_HOST ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::GroupedConvFwdKernelArgs ( const GroupedConvFwdHostArgs< CDElementwise > & args)
inline

◆ GroupedConvFwdKernelArgs() [2/3]

template<typename GroupedConvTraitsType_, typename CDElementwise_>
template<typename InLay = typename GroupedConvTraitsType_::InLayout, typename WeiLay = typename GroupedConvTraitsType_::WeiLayout, typename OutLay = typename GroupedConvTraitsType_::OutLayout, typename std::enable_if< std::is_same_v< InLay, tensor_layout::convolution::NHWGC > &&std::is_same_v< WeiLay, tensor_layout::convolution::GKYXC > &&std::is_same_v< OutLay, tensor_layout::convolution::NHWGK >, bool >::type = false>
CK_TILE_HOST ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::GroupedConvFwdKernelArgs ( const GroupedConvFwdHostArgs< CDElementwise > & args)
inline

◆ GroupedConvFwdKernelArgs() [3/3]

template<typename GroupedConvTraitsType_, typename CDElementwise_>
template<typename InLay = typename GroupedConvTraitsType_::InLayout, typename WeiLay = typename GroupedConvTraitsType_::WeiLayout, typename OutLay = typename GroupedConvTraitsType_::OutLayout, typename std::enable_if< std::is_same_v< InLay, tensor_layout::convolution::NDHWGC > &&std::is_same_v< WeiLay, tensor_layout::convolution::GKZYXC > &&std::is_same_v< OutLay, tensor_layout::convolution::NDHWGK >, bool >::type = false>
CK_TILE_HOST ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::GroupedConvFwdKernelArgs ( const GroupedConvFwdHostArgs< CDElementwise > & args)
inline

Member Data Documentation

◆ a_grid_desc_m_k

template<typename GroupedConvTraitsType_, typename CDElementwise_>
AGridDescMK ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::a_grid_desc_m_k

◆ b_grid_desc_n_k

template<typename GroupedConvTraitsType_, typename CDElementwise_>
BGridDescNK ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::b_grid_desc_n_k

◆ c_grid_desc_m_n

template<typename GroupedConvTraitsType_, typename CDElementwise_>
CGridDescMN ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::c_grid_desc_m_n

◆ conv_filter_dilations

template<typename GroupedConvTraitsType_, typename CDElementwise_>
array<index_t, GroupedConvTraitsType_::NDimSpatial> ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::conv_filter_dilations

◆ conv_filter_strides

template<typename GroupedConvTraitsType_, typename CDElementwise_>
array<index_t, GroupedConvTraitsType_::NDimSpatial> ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::conv_filter_strides

◆ ds_ptr

template<typename GroupedConvTraitsType_, typename CDElementwise_>
std::array<const void*, NumDTensor> ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::ds_ptr

◆ elfunc

template<typename GroupedConvTraitsType_, typename CDElementwise_>
const CDElementwise ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::elfunc

◆ GemmBatch

template<typename GroupedConvTraitsType_, typename CDElementwise_>
index_t ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::GemmBatch

◆ GemmK

template<typename GroupedConvTraitsType_, typename CDElementwise_>
index_t ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::GemmK

◆ GemmM

template<typename GroupedConvTraitsType_, typename CDElementwise_>
index_t ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::GemmM

◆ GemmN

template<typename GroupedConvTraitsType_, typename CDElementwise_>
index_t ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::GemmN

◆ group_stride_a

template<typename GroupedConvTraitsType_, typename CDElementwise_>
long_index_t ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::group_stride_a

◆ group_stride_b

template<typename GroupedConvTraitsType_, typename CDElementwise_>
long_index_t ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::group_stride_b

◆ group_stride_c

template<typename GroupedConvTraitsType_, typename CDElementwise_>
long_index_t ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::group_stride_c

◆ in_g_n_c_wis_lengths

template<typename GroupedConvTraitsType_, typename CDElementwise_>
array<index_t, NonSpatialDims + GroupedConvTraitsType_::NDimSpatial> ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::in_g_n_c_wis_lengths

◆ in_ptr

template<typename GroupedConvTraitsType_, typename CDElementwise_>
const void* ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::in_ptr

◆ input_batch_stride

template<typename GroupedConvTraitsType_, typename CDElementwise_>
index_t ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::input_batch_stride = 0

◆ input_left_pads

template<typename GroupedConvTraitsType_, typename CDElementwise_>
array<index_t, GroupedConvTraitsType_::NDimSpatial> ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::input_left_pads

◆ input_right_pads

template<typename GroupedConvTraitsType_, typename CDElementwise_>
array<index_t, GroupedConvTraitsType_::NDimSpatial> ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::input_right_pads

◆ k_batch

template<typename GroupedConvTraitsType_, typename CDElementwise_>
index_t ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::k_batch

◆ n_per_split

template<typename GroupedConvTraitsType_, typename CDElementwise_>
index_t ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::n_per_split = 1

◆ n_splits

template<typename GroupedConvTraitsType_, typename CDElementwise_>
index_t ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::n_splits = 1

◆ NonSpatialDims

template<typename GroupedConvTraitsType_, typename CDElementwise_>
index_t ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::NonSpatialDims = 3
staticconstexpr

◆ num_spatial_pieces

template<typename GroupedConvTraitsType_, typename CDElementwise_>
index_t ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::num_spatial_pieces = 1

◆ NumDTensor

template<typename GroupedConvTraitsType_, typename CDElementwise_>
index_t ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::NumDTensor = GroupedConvTraitsType_::NumDTensor
staticconstexpr

◆ original_n

template<typename GroupedConvTraitsType_, typename CDElementwise_>
index_t ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::original_n = 1

◆ out_g_n_k_wos_lengths

template<typename GroupedConvTraitsType_, typename CDElementwise_>
array<index_t, NonSpatialDims + GroupedConvTraitsType_::NDimSpatial> ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::out_g_n_k_wos_lengths

◆ out_ptr

template<typename GroupedConvTraitsType_, typename CDElementwise_>
void* ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::out_ptr

◆ output_batch_stride

template<typename GroupedConvTraitsType_, typename CDElementwise_>
index_t ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::output_batch_stride = 0

◆ spatial_offset_in

template<typename GroupedConvTraitsType_, typename CDElementwise_>
long_index_t ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::spatial_offset_in = 0

◆ spatial_offset_out

template<typename GroupedConvTraitsType_, typename CDElementwise_>
long_index_t ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::spatial_offset_out = 0

◆ split_image

template<typename GroupedConvTraitsType_, typename CDElementwise_>
SplitImageInfo ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::split_image

◆ transformer_

template<typename GroupedConvTraitsType_, typename CDElementwise_>
ConvToGemmFwdTransformer ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::transformer_

◆ wei_g_k_c_xs_lengths

template<typename GroupedConvTraitsType_, typename CDElementwise_>
array<index_t, NonSpatialDims + GroupedConvTraitsType_::NDimSpatial> ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::wei_g_k_c_xs_lengths

◆ wei_ptr

template<typename GroupedConvTraitsType_, typename CDElementwise_>
const void* ck_tile::GroupedConvFwdKernelArgs< GroupedConvTraitsType_, CDElementwise_ >::wei_ptr

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