TransformConvBwdWeightToGemm< NDimSpatial, MPerBlock, NPerBlock, GemmK1Number, K0PerBlock, ConvBackwardWeightSpecialization > Struct Template Reference

TransformConvBwdWeightToGemm&lt; NDimSpatial, MPerBlock, NPerBlock, GemmK1Number, K0PerBlock, ConvBackwardWeightSpecialization &gt; Struct Template Reference#

Composable Kernel: ck::tensor_operation::TransformConvBwdWeightToGemm< NDimSpatial, MPerBlock, NPerBlock, GemmK1Number, K0PerBlock, ConvBackwardWeightSpecialization > Struct Template Reference
ck::tensor_operation::TransformConvBwdWeightToGemm< NDimSpatial, MPerBlock, NPerBlock, GemmK1Number, K0PerBlock, ConvBackwardWeightSpecialization > Struct Template Reference

#include <transform_conv_bwd_weight_to_gemm.hpp>

Static Public Member Functions

template<index_t NDim, typename enable_if< NDim==2, bool >::type = false>
static constexpr auto make_out_grid_desc (const index_t N, const index_t Ho, const index_t Wo, const index_t K, const std::array< index_t, NDimSpatial+3 > &output_strides)
template<index_t NDim, typename enable_if< NDim==2, bool >::type = false>
static constexpr auto make_in_grid_desc (const index_t N, const index_t Hi, const index_t Wi, const index_t C, const std::array< index_t, NDimSpatial+3 > &input_strides)
template<index_t NDim, typename enable_if< NDim==2, bool >::type = false>
static constexpr auto make_wei_grid_desc (const index_t K, const index_t Y, const index_t X, const index_t C, const std::array< index_t, NDimSpatial+3 > &weights_strides)
template<index_t NDim, typename enable_if< NDim==3, bool >::type = false>
static constexpr auto make_out_grid_desc (const index_t N, const index_t Do, const index_t Ho, const index_t Wo, const index_t K, const std::array< index_t, NDimSpatial+3 > &output_strides)
template<index_t NDim, typename enable_if< NDim==3, bool >::type = false>
static constexpr auto make_in_grid_desc (const index_t N, const index_t Di, const index_t Hi, const index_t Wi, const index_t C, const std::array< index_t, NDimSpatial+3 > &input_strides)
template<index_t NDim, typename enable_if< NDim==3, bool >::type = false>
static constexpr auto make_wei_grid_desc (const index_t K, const index_t Z, const index_t Y, const index_t X, const index_t C, const std::array< index_t, NDimSpatial+3 > &weights_strides)
template<index_t NDim, typename enable_if< NDim==1, bool >::type = false>
static auto MakeABCGridDescriptor_A_K0_M_K1_B_K0_N_K1_C_M_N (const index_t N, const index_t K, const index_t C, const std::array< index_t, NDimSpatial > &input_spatial_lengths, const std::array< index_t, NDimSpatial > &filter_spatial_lengths, const std::array< index_t, NDimSpatial > &output_spatial_lengths, const std::array< index_t, NDimSpatial+3 > &, const std::array< index_t, NDimSpatial+3 > &, const std::array< index_t, NDimSpatial+3 > &, const std::array< index_t, NDimSpatial > &conv_filter_strides, const std::array< index_t, NDimSpatial > &conv_filter_dilations, const std::array< index_t, NDimSpatial > &input_left_pads, const std::array< index_t, NDimSpatial > &input_right_pads, const index_t batch_k)
template<index_t NDim, typename enable_if< NDim==2, bool >::type = false>
static auto MakeABCGridDescriptor_A_K0_M_K1_B_K0_N_K1_C_M_N (const index_t N, const index_t K, const index_t C, const std::array< index_t, NDimSpatial > &input_spatial_lengths, const std::array< index_t, NDimSpatial > &filter_spatial_lengths, const std::array< index_t, NDimSpatial > &output_spatial_lengths, const std::array< index_t, NDimSpatial+3 > &input_strides, const std::array< index_t, NDimSpatial+3 > &weights_strides, const std::array< index_t, NDimSpatial+3 > &output_strides, const std::array< index_t, NDimSpatial > &conv_filter_strides, const std::array< index_t, NDimSpatial > &conv_filter_dilations, const std::array< index_t, NDimSpatial > &input_left_pads, const std::array< index_t, NDimSpatial > &input_right_pads, const index_t batch_k)
template<index_t NDim, typename enable_if< NDim==3, bool >::type = false>
static auto MakeABCGridDescriptor_A_K0_M_K1_B_K0_N_K1_C_M_N (const index_t N, const index_t K, const index_t C, const std::array< index_t, NDimSpatial > &input_spatial_lengths, const std::array< index_t, NDimSpatial > &filter_spatial_lengths, const std::array< index_t, NDimSpatial > &output_spatial_lengths, const std::array< index_t, NDimSpatial+3 > &input_strides, const std::array< index_t, NDimSpatial+3 > &weights_strides, const std::array< index_t, NDimSpatial+3 > &output_strides, const std::array< index_t, NDimSpatial > &conv_filter_strides, const std::array< index_t, NDimSpatial > &conv_filter_dilations, const std::array< index_t, NDimSpatial > &input_left_pads, const std::array< index_t, NDimSpatial > &input_right_pads, const index_t batch_k)

Static Public Attributes

static constexpr auto I0 = Number<0>{}
static constexpr auto I1 = Number<1>{}

Member Function Documentation

◆ make_in_grid_desc() [1/2]

template<index_t NDimSpatial, index_t MPerBlock, index_t NPerBlock, index_t GemmK1Number, index_t K0PerBlock, device::ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization>
template<index_t NDim, typename enable_if< NDim==3, bool >::type = false>
constexpr auto ck::tensor_operation::TransformConvBwdWeightToGemm< NDimSpatial, MPerBlock, NPerBlock, GemmK1Number, K0PerBlock, ConvBackwardWeightSpecialization >::make_in_grid_desc ( const index_t N,
const index_t Di,
const index_t Hi,
const index_t Wi,
const index_t C,
const std::array< index_t, NDimSpatial+3 > & input_strides )
inlinestaticconstexpr

◆ make_in_grid_desc() [2/2]

template<index_t NDimSpatial, index_t MPerBlock, index_t NPerBlock, index_t GemmK1Number, index_t K0PerBlock, device::ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization>
template<index_t NDim, typename enable_if< NDim==2, bool >::type = false>
constexpr auto ck::tensor_operation::TransformConvBwdWeightToGemm< NDimSpatial, MPerBlock, NPerBlock, GemmK1Number, K0PerBlock, ConvBackwardWeightSpecialization >::make_in_grid_desc ( const index_t N,
const index_t Hi,
const index_t Wi,
const index_t C,
const std::array< index_t, NDimSpatial+3 > & input_strides )
inlinestaticconstexpr

◆ make_out_grid_desc() [1/2]

template<index_t NDimSpatial, index_t MPerBlock, index_t NPerBlock, index_t GemmK1Number, index_t K0PerBlock, device::ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization>
template<index_t NDim, typename enable_if< NDim==3, bool >::type = false>
constexpr auto ck::tensor_operation::TransformConvBwdWeightToGemm< NDimSpatial, MPerBlock, NPerBlock, GemmK1Number, K0PerBlock, ConvBackwardWeightSpecialization >::make_out_grid_desc ( const index_t N,
const index_t Do,
const index_t Ho,
const index_t Wo,
const index_t K,
const std::array< index_t, NDimSpatial+3 > & output_strides )
inlinestaticconstexpr

◆ make_out_grid_desc() [2/2]

template<index_t NDimSpatial, index_t MPerBlock, index_t NPerBlock, index_t GemmK1Number, index_t K0PerBlock, device::ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization>
template<index_t NDim, typename enable_if< NDim==2, bool >::type = false>
constexpr auto ck::tensor_operation::TransformConvBwdWeightToGemm< NDimSpatial, MPerBlock, NPerBlock, GemmK1Number, K0PerBlock, ConvBackwardWeightSpecialization >::make_out_grid_desc ( const index_t N,
const index_t Ho,
const index_t Wo,
const index_t K,
const std::array< index_t, NDimSpatial+3 > & output_strides )
inlinestaticconstexpr

◆ make_wei_grid_desc() [1/2]

template<index_t NDimSpatial, index_t MPerBlock, index_t NPerBlock, index_t GemmK1Number, index_t K0PerBlock, device::ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization>
template<index_t NDim, typename enable_if< NDim==2, bool >::type = false>
constexpr auto ck::tensor_operation::TransformConvBwdWeightToGemm< NDimSpatial, MPerBlock, NPerBlock, GemmK1Number, K0PerBlock, ConvBackwardWeightSpecialization >::make_wei_grid_desc ( const index_t K,
const index_t Y,
const index_t X,
const index_t C,
const std::array< index_t, NDimSpatial+3 > & weights_strides )
inlinestaticconstexpr

◆ make_wei_grid_desc() [2/2]

template<index_t NDimSpatial, index_t MPerBlock, index_t NPerBlock, index_t GemmK1Number, index_t K0PerBlock, device::ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization>
template<index_t NDim, typename enable_if< NDim==3, bool >::type = false>
constexpr auto ck::tensor_operation::TransformConvBwdWeightToGemm< NDimSpatial, MPerBlock, NPerBlock, GemmK1Number, K0PerBlock, ConvBackwardWeightSpecialization >::make_wei_grid_desc ( const index_t K,
const index_t Z,
const index_t Y,
const index_t X,
const index_t C,
const std::array< index_t, NDimSpatial+3 > & weights_strides )
inlinestaticconstexpr

◆ MakeABCGridDescriptor_A_K0_M_K1_B_K0_N_K1_C_M_N() [1/3]

template<index_t NDimSpatial, index_t MPerBlock, index_t NPerBlock, index_t GemmK1Number, index_t K0PerBlock, device::ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization>
template<index_t NDim, typename enable_if< NDim==1, bool >::type = false>
auto ck::tensor_operation::TransformConvBwdWeightToGemm< NDimSpatial, MPerBlock, NPerBlock, GemmK1Number, K0PerBlock, ConvBackwardWeightSpecialization >::MakeABCGridDescriptor_A_K0_M_K1_B_K0_N_K1_C_M_N ( const index_t N,
const index_t K,
const index_t C,
const std::array< index_t, NDimSpatial > & input_spatial_lengths,
const std::array< index_t, NDimSpatial > & filter_spatial_lengths,
const std::array< index_t, NDimSpatial > & output_spatial_lengths,
const std::array< index_t, NDimSpatial+3 > & ,
const std::array< index_t, NDimSpatial+3 > & ,
const std::array< index_t, NDimSpatial+3 > & ,
const std::array< index_t, NDimSpatial > & conv_filter_strides,
const std::array< index_t, NDimSpatial > & conv_filter_dilations,
const std::array< index_t, NDimSpatial > & input_left_pads,
const std::array< index_t, NDimSpatial > & input_right_pads,
const index_t batch_k )
inlinestatic

◆ MakeABCGridDescriptor_A_K0_M_K1_B_K0_N_K1_C_M_N() [2/3]

template<index_t NDimSpatial, index_t MPerBlock, index_t NPerBlock, index_t GemmK1Number, index_t K0PerBlock, device::ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization>
template<index_t NDim, typename enable_if< NDim==3, bool >::type = false>
auto ck::tensor_operation::TransformConvBwdWeightToGemm< NDimSpatial, MPerBlock, NPerBlock, GemmK1Number, K0PerBlock, ConvBackwardWeightSpecialization >::MakeABCGridDescriptor_A_K0_M_K1_B_K0_N_K1_C_M_N ( const index_t N,
const index_t K,
const index_t C,
const std::array< index_t, NDimSpatial > & input_spatial_lengths,
const std::array< index_t, NDimSpatial > & filter_spatial_lengths,
const std::array< index_t, NDimSpatial > & output_spatial_lengths,
const std::array< index_t, NDimSpatial+3 > & input_strides,
const std::array< index_t, NDimSpatial+3 > & weights_strides,
const std::array< index_t, NDimSpatial+3 > & output_strides,
const std::array< index_t, NDimSpatial > & conv_filter_strides,
const std::array< index_t, NDimSpatial > & conv_filter_dilations,
const std::array< index_t, NDimSpatial > & input_left_pads,
const std::array< index_t, NDimSpatial > & input_right_pads,
const index_t batch_k )
inlinestatic

◆ MakeABCGridDescriptor_A_K0_M_K1_B_K0_N_K1_C_M_N() [3/3]

template<index_t NDimSpatial, index_t MPerBlock, index_t NPerBlock, index_t GemmK1Number, index_t K0PerBlock, device::ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization>
template<index_t NDim, typename enable_if< NDim==2, bool >::type = false>
auto ck::tensor_operation::TransformConvBwdWeightToGemm< NDimSpatial, MPerBlock, NPerBlock, GemmK1Number, K0PerBlock, ConvBackwardWeightSpecialization >::MakeABCGridDescriptor_A_K0_M_K1_B_K0_N_K1_C_M_N ( const index_t N,
const index_t K,
const index_t C,
const std::array< index_t, NDimSpatial > & input_spatial_lengths,
const std::array< index_t, NDimSpatial > & filter_spatial_lengths,
const std::array< index_t, NDimSpatial > & output_spatial_lengths,
const std::array< index_t, NDimSpatial+3 > & input_strides,
const std::array< index_t, NDimSpatial+3 > & weights_strides,
const std::array< index_t, NDimSpatial+3 > & output_strides,
const std::array< index_t, NDimSpatial > & conv_filter_strides,
const std::array< index_t, NDimSpatial > & conv_filter_dilations,
const std::array< index_t, NDimSpatial > & input_left_pads,
const std::array< index_t, NDimSpatial > & input_right_pads,
const index_t batch_k )
inlinestatic

Member Data Documentation

◆ I0

template<index_t NDimSpatial, index_t MPerBlock, index_t NPerBlock, index_t GemmK1Number, index_t K0PerBlock, device::ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization>
auto ck::tensor_operation::TransformConvBwdWeightToGemm< NDimSpatial, MPerBlock, NPerBlock, GemmK1Number, K0PerBlock, ConvBackwardWeightSpecialization >::I0 = Number<0>{}
staticconstexpr

◆ I1

template<index_t NDimSpatial, index_t MPerBlock, index_t NPerBlock, index_t GemmK1Number, index_t K0PerBlock, device::ConvolutionBackwardWeightSpecialization ConvBackwardWeightSpecialization>
auto ck::tensor_operation::TransformConvBwdWeightToGemm< NDimSpatial, MPerBlock, NPerBlock, GemmK1Number, K0PerBlock, ConvBackwardWeightSpecialization >::I1 = Number<1>{}
staticconstexpr

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