DeviceAvgPool2dBwd_NHWC_NHWC< DOutDataType, DInDataType, ComputeDataType, BlockSize, MThreadClusterSize, KThreadClusterSize, MThreadSliceSize, KThreadSliceSize, InSrcOutDstVectorSize > Struct Template Reference

DeviceAvgPool2dBwd_NHWC_NHWC&lt; DOutDataType, DInDataType, ComputeDataType, BlockSize, MThreadClusterSize, KThreadClusterSize, MThreadSliceSize, KThreadSliceSize, InSrcOutDstVectorSize &gt; Struct Template Reference#

Composable Kernel: ck::tensor_operation::device::DeviceAvgPool2dBwd_NHWC_NHWC< DOutDataType, DInDataType, ComputeDataType, BlockSize, MThreadClusterSize, KThreadClusterSize, MThreadSliceSize, KThreadSliceSize, InSrcOutDstVectorSize > Struct Template Reference
ck::tensor_operation::device::DeviceAvgPool2dBwd_NHWC_NHWC< DOutDataType, DInDataType, ComputeDataType, BlockSize, MThreadClusterSize, KThreadClusterSize, MThreadSliceSize, KThreadSliceSize, InSrcOutDstVectorSize > Struct Template Reference

#include <device_avgpool2d_bwd_nhwc_nhwc.hpp>

Inheritance diagram for ck::tensor_operation::device::DeviceAvgPool2dBwd_NHWC_NHWC< DOutDataType, DInDataType, ComputeDataType, BlockSize, MThreadClusterSize, KThreadClusterSize, MThreadSliceSize, KThreadSliceSize, InSrcOutDstVectorSize >:
ck::tensor_operation::device::DeviceAvgPoolBwd< 2, DOutDataType, DInDataType, tensor_layout::convolution::NHWC, tensor_layout::convolution::NHWC > ck::tensor_operation::device::BaseOperator

Classes

struct  Argument
struct  Invoker

Public Types

using DoutDinGridDesc
using DoutGridDesc_M_K = remove_cvref_t<tuple_element_t<0, DoutDinGridDesc>>
using DinGridDesc_M = remove_cvref_t<tuple_element_t<1, DoutDinGridDesc>>
using PassThrough = tensor_operation::element_wise::PassThrough
using Div = tensor_operation::element_wise::UnaryDivide
using gridwise_reduce

Public Member Functions

bool IsSupportedArgument (const BaseArgument *p_arg) override
std::unique_ptr< BaseArgumentMakeArgumentPointer (const void *p_dout, void *p_din, std::vector< ck::index_t > dout_n_c_wos_lengths, std::vector< ck::index_t > din_n_c_wos_length, std::vector< ck::index_t > dout_n_c_wos_strides, std::vector< ck::index_t > din_n_c_wos_strides, std::vector< ck::index_t > window_lengths, std::vector< ck::index_t > window_strides, std::vector< ck::index_t > window_dilations, std::vector< ck::index_t > input_left_pads, std::vector< ck::index_t > input_right_pads) override
std::unique_ptr< BaseInvokerMakeInvokerPointer () override
std::string GetTypeString () const override
Public Member Functions inherited from ck::tensor_operation::device::BaseOperator
 BaseOperator ()=default
 BaseOperator (const BaseOperator &)=default
BaseOperatoroperator= (const BaseOperator &)=default
virtual std::string GetInstanceString () const
virtual std::string GetTypeIdName () const
virtual std::optional< std::string > GetObjectName () const
virtual std::optional< std::string > GetTemplateInfo () const
virtual std::string GetTypeIdHashCode () const
virtual size_t GetWorkSpaceSize (const BaseArgument *) const
virtual void SetWorkSpacePointer (BaseArgument *p_arg, void *p_workspace, const StreamConfig &=StreamConfig{}) const
virtual ~BaseOperator ()

Static Public Member Functions

static auto Make2DGridDescriptor_Out_M_K_In_M (const std::vector< ck::index_t > &dout_n_c_wos_lengths, const std::vector< ck::index_t > &din_n_c_wos_length, const std::vector< ck::index_t > &dout_n_c_wos_strides, const std::vector< ck::index_t > &din_n_c_wos_strides, const std::vector< ck::index_t > &window_lengths, const std::vector< ck::index_t > &window_strides, const std::vector< ck::index_t > &window_dilations, const std::vector< ck::index_t > &input_left_pads, const std::vector< ck::index_t > &input_right_pads, const std::vector< ck::index_t > &tildes)
static bool IsSupportedArgument (const Argument &arg)

Static Public Attributes

static constexpr ck::index_t NDimSpatial = 2
static constexpr auto I0 = Number<0>{}
static constexpr auto I1 = Number<1>{}
static constexpr ck::index_t M_BlockTileSize = MThreadClusterSize * MThreadSliceSize
static constexpr ck::index_t K_BlockTileSize = KThreadClusterSize * KThreadSliceSize
static constexpr index_t OutSrcInDstVectorDim = 0

Member Typedef Documentation

◆ DinGridDesc_M

template<typename DOutDataType, typename DInDataType, typename ComputeDataType, ck::index_t BlockSize, ck::index_t MThreadClusterSize, ck::index_t KThreadClusterSize, ck::index_t MThreadSliceSize, ck::index_t KThreadSliceSize, ck::index_t InSrcOutDstVectorSize>
using ck::tensor_operation::device::DeviceAvgPool2dBwd_NHWC_NHWC< DOutDataType, DInDataType, ComputeDataType, BlockSize, MThreadClusterSize, KThreadClusterSize, MThreadSliceSize, KThreadSliceSize, InSrcOutDstVectorSize >::DinGridDesc_M = remove_cvref_t<tuple_element_t<1, DoutDinGridDesc>>

◆ Div

template<typename DOutDataType, typename DInDataType, typename ComputeDataType, ck::index_t BlockSize, ck::index_t MThreadClusterSize, ck::index_t KThreadClusterSize, ck::index_t MThreadSliceSize, ck::index_t KThreadSliceSize, ck::index_t InSrcOutDstVectorSize>
using ck::tensor_operation::device::DeviceAvgPool2dBwd_NHWC_NHWC< DOutDataType, DInDataType, ComputeDataType, BlockSize, MThreadClusterSize, KThreadClusterSize, MThreadSliceSize, KThreadSliceSize, InSrcOutDstVectorSize >::Div = tensor_operation::element_wise::UnaryDivide

◆ DoutDinGridDesc

template<typename DOutDataType, typename DInDataType, typename ComputeDataType, ck::index_t BlockSize, ck::index_t MThreadClusterSize, ck::index_t KThreadClusterSize, ck::index_t MThreadSliceSize, ck::index_t KThreadSliceSize, ck::index_t InSrcOutDstVectorSize>
using ck::tensor_operation::device::DeviceAvgPool2dBwd_NHWC_NHWC< DOutDataType, DInDataType, ComputeDataType, BlockSize, MThreadClusterSize, KThreadClusterSize, MThreadSliceSize, KThreadSliceSize, InSrcOutDstVectorSize >::DoutDinGridDesc
Initial value:
decltype(Make2DGridDescriptor_Out_M_K_In_M({0, 0, 0, 0},
{0, 0, 0, 0},
{0, 0, 0, 0},
{0, 0, 0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0}))
static auto Make2DGridDescriptor_Out_M_K_In_M(const std::vector< ck::index_t > &dout_n_c_wos_lengths, const std::vector< ck::index_t > &din_n_c_wos_length, const std::vector< ck::index_t > &dout_n_c_wos_strides, const std::vector< ck::index_t > &din_n_c_wos_strides, const std::vector< ck::index_t > &window_lengths, const std::vector< ck::index_t > &window_strides, const std::vector< ck::index_t > &window_dilations, const std::vector< ck::index_t > &input_left_pads, const std::vector< ck::index_t > &input_right_pads, const std::vector< ck::index_t > &tildes)
Definition device_avgpool2d_bwd_nhwc_nhwc.hpp:52

◆ DoutGridDesc_M_K

template<typename DOutDataType, typename DInDataType, typename ComputeDataType, ck::index_t BlockSize, ck::index_t MThreadClusterSize, ck::index_t KThreadClusterSize, ck::index_t MThreadSliceSize, ck::index_t KThreadSliceSize, ck::index_t InSrcOutDstVectorSize>
using ck::tensor_operation::device::DeviceAvgPool2dBwd_NHWC_NHWC< DOutDataType, DInDataType, ComputeDataType, BlockSize, MThreadClusterSize, KThreadClusterSize, MThreadSliceSize, KThreadSliceSize, InSrcOutDstVectorSize >::DoutGridDesc_M_K = remove_cvref_t<tuple_element_t<0, DoutDinGridDesc>>

◆ gridwise_reduce

template<typename DOutDataType, typename DInDataType, typename ComputeDataType, ck::index_t BlockSize, ck::index_t MThreadClusterSize, ck::index_t KThreadClusterSize, ck::index_t MThreadSliceSize, ck::index_t KThreadSliceSize, ck::index_t InSrcOutDstVectorSize>
using ck::tensor_operation::device::DeviceAvgPool2dBwd_NHWC_NHWC< DOutDataType, DInDataType, ComputeDataType, BlockSize, MThreadClusterSize, KThreadClusterSize, MThreadSliceSize, KThreadSliceSize, InSrcOutDstVectorSize >::gridwise_reduce
Initial value:
DInDataType,
ComputeDataType,
int,
Div,
false,
BlockSize,
MThreadSliceSize,
KThreadSliceSize,
InSrcOutDstVectorSize,
InSrcOutDstVectorSize>
@ Set
Definition ck.hpp:278
Definition gridwise_2d_reduction_threadwise.hpp:84
Definition reduction_operator.hpp:37
tensor_operation::element_wise::UnaryDivide Div
Definition device_avgpool2d_bwd_nhwc_nhwc.hpp:274
remove_cvref_t< tuple_element_t< 0, DoutDinGridDesc > > DoutGridDesc_M_K
Definition device_avgpool2d_bwd_nhwc_nhwc.hpp:265
remove_cvref_t< tuple_element_t< 1, DoutDinGridDesc > > DinGridDesc_M
Definition device_avgpool2d_bwd_nhwc_nhwc.hpp:266
tensor_operation::element_wise::PassThrough PassThrough
Definition device_avgpool2d_bwd_nhwc_nhwc.hpp:273
static constexpr index_t OutSrcInDstVectorDim
Definition device_avgpool2d_bwd_nhwc_nhwc.hpp:271

◆ PassThrough

template<typename DOutDataType, typename DInDataType, typename ComputeDataType, ck::index_t BlockSize, ck::index_t MThreadClusterSize, ck::index_t KThreadClusterSize, ck::index_t MThreadSliceSize, ck::index_t KThreadSliceSize, ck::index_t InSrcOutDstVectorSize>
using ck::tensor_operation::device::DeviceAvgPool2dBwd_NHWC_NHWC< DOutDataType, DInDataType, ComputeDataType, BlockSize, MThreadClusterSize, KThreadClusterSize, MThreadSliceSize, KThreadSliceSize, InSrcOutDstVectorSize >::PassThrough = tensor_operation::element_wise::PassThrough

Member Function Documentation

◆ GetTypeString()

template<typename DOutDataType, typename DInDataType, typename ComputeDataType, ck::index_t BlockSize, ck::index_t MThreadClusterSize, ck::index_t KThreadClusterSize, ck::index_t MThreadSliceSize, ck::index_t KThreadSliceSize, ck::index_t InSrcOutDstVectorSize>
std::string ck::tensor_operation::device::DeviceAvgPool2dBwd_NHWC_NHWC< DOutDataType, DInDataType, ComputeDataType, BlockSize, MThreadClusterSize, KThreadClusterSize, MThreadSliceSize, KThreadSliceSize, InSrcOutDstVectorSize >::GetTypeString ( ) const
inlineoverridevirtual

◆ IsSupportedArgument() [1/2]

template<typename DOutDataType, typename DInDataType, typename ComputeDataType, ck::index_t BlockSize, ck::index_t MThreadClusterSize, ck::index_t KThreadClusterSize, ck::index_t MThreadSliceSize, ck::index_t KThreadSliceSize, ck::index_t InSrcOutDstVectorSize>
bool ck::tensor_operation::device::DeviceAvgPool2dBwd_NHWC_NHWC< DOutDataType, DInDataType, ComputeDataType, BlockSize, MThreadClusterSize, KThreadClusterSize, MThreadSliceSize, KThreadSliceSize, InSrcOutDstVectorSize >::IsSupportedArgument ( const Argument & arg)
inlinestatic

◆ IsSupportedArgument() [2/2]

template<typename DOutDataType, typename DInDataType, typename ComputeDataType, ck::index_t BlockSize, ck::index_t MThreadClusterSize, ck::index_t KThreadClusterSize, ck::index_t MThreadSliceSize, ck::index_t KThreadSliceSize, ck::index_t InSrcOutDstVectorSize>
bool ck::tensor_operation::device::DeviceAvgPool2dBwd_NHWC_NHWC< DOutDataType, DInDataType, ComputeDataType, BlockSize, MThreadClusterSize, KThreadClusterSize, MThreadSliceSize, KThreadSliceSize, InSrcOutDstVectorSize >::IsSupportedArgument ( const BaseArgument * p_arg)
inlineoverridevirtual

◆ Make2DGridDescriptor_Out_M_K_In_M()

template<typename DOutDataType, typename DInDataType, typename ComputeDataType, ck::index_t BlockSize, ck::index_t MThreadClusterSize, ck::index_t KThreadClusterSize, ck::index_t MThreadSliceSize, ck::index_t KThreadSliceSize, ck::index_t InSrcOutDstVectorSize>
auto ck::tensor_operation::device::DeviceAvgPool2dBwd_NHWC_NHWC< DOutDataType, DInDataType, ComputeDataType, BlockSize, MThreadClusterSize, KThreadClusterSize, MThreadSliceSize, KThreadSliceSize, InSrcOutDstVectorSize >::Make2DGridDescriptor_Out_M_K_In_M ( const std::vector< ck::index_t > & dout_n_c_wos_lengths,
const std::vector< ck::index_t > & din_n_c_wos_length,
const std::vector< ck::index_t > & dout_n_c_wos_strides,
const std::vector< ck::index_t > & din_n_c_wos_strides,
const std::vector< ck::index_t > & window_lengths,
const std::vector< ck::index_t > & window_strides,
const std::vector< ck::index_t > & window_dilations,
const std::vector< ck::index_t > & input_left_pads,
const std::vector< ck::index_t > & input_right_pads,
const std::vector< ck::index_t > & tildes )
inlinestatic

◆ MakeArgumentPointer()

template<typename DOutDataType, typename DInDataType, typename ComputeDataType, ck::index_t BlockSize, ck::index_t MThreadClusterSize, ck::index_t KThreadClusterSize, ck::index_t MThreadSliceSize, ck::index_t KThreadSliceSize, ck::index_t InSrcOutDstVectorSize>
std::unique_ptr< BaseArgument > ck::tensor_operation::device::DeviceAvgPool2dBwd_NHWC_NHWC< DOutDataType, DInDataType, ComputeDataType, BlockSize, MThreadClusterSize, KThreadClusterSize, MThreadSliceSize, KThreadSliceSize, InSrcOutDstVectorSize >::MakeArgumentPointer ( const void * p_dout,
void * p_din,
std::vector< ck::index_t > dout_n_c_wos_lengths,
std::vector< ck::index_t > din_n_c_wos_length,
std::vector< ck::index_t > dout_n_c_wos_strides,
std::vector< ck::index_t > din_n_c_wos_strides,
std::vector< ck::index_t > window_lengths,
std::vector< ck::index_t > window_strides,
std::vector< ck::index_t > window_dilations,
std::vector< ck::index_t > input_left_pads,
std::vector< ck::index_t > input_right_pads )
inlineoverridevirtual

◆ MakeInvokerPointer()

template<typename DOutDataType, typename DInDataType, typename ComputeDataType, ck::index_t BlockSize, ck::index_t MThreadClusterSize, ck::index_t KThreadClusterSize, ck::index_t MThreadSliceSize, ck::index_t KThreadSliceSize, ck::index_t InSrcOutDstVectorSize>
std::unique_ptr< BaseInvoker > ck::tensor_operation::device::DeviceAvgPool2dBwd_NHWC_NHWC< DOutDataType, DInDataType, ComputeDataType, BlockSize, MThreadClusterSize, KThreadClusterSize, MThreadSliceSize, KThreadSliceSize, InSrcOutDstVectorSize >::MakeInvokerPointer ( )
inlineoverridevirtual

Member Data Documentation

◆ I0

template<typename DOutDataType, typename DInDataType, typename ComputeDataType, ck::index_t BlockSize, ck::index_t MThreadClusterSize, ck::index_t KThreadClusterSize, ck::index_t MThreadSliceSize, ck::index_t KThreadSliceSize, ck::index_t InSrcOutDstVectorSize>
auto ck::tensor_operation::device::DeviceAvgPool2dBwd_NHWC_NHWC< DOutDataType, DInDataType, ComputeDataType, BlockSize, MThreadClusterSize, KThreadClusterSize, MThreadSliceSize, KThreadSliceSize, InSrcOutDstVectorSize >::I0 = Number<0>{}
staticconstexpr

◆ I1

template<typename DOutDataType, typename DInDataType, typename ComputeDataType, ck::index_t BlockSize, ck::index_t MThreadClusterSize, ck::index_t KThreadClusterSize, ck::index_t MThreadSliceSize, ck::index_t KThreadSliceSize, ck::index_t InSrcOutDstVectorSize>
auto ck::tensor_operation::device::DeviceAvgPool2dBwd_NHWC_NHWC< DOutDataType, DInDataType, ComputeDataType, BlockSize, MThreadClusterSize, KThreadClusterSize, MThreadSliceSize, KThreadSliceSize, InSrcOutDstVectorSize >::I1 = Number<1>{}
staticconstexpr

◆ K_BlockTileSize

template<typename DOutDataType, typename DInDataType, typename ComputeDataType, ck::index_t BlockSize, ck::index_t MThreadClusterSize, ck::index_t KThreadClusterSize, ck::index_t MThreadSliceSize, ck::index_t KThreadSliceSize, ck::index_t InSrcOutDstVectorSize>
ck::index_t ck::tensor_operation::device::DeviceAvgPool2dBwd_NHWC_NHWC< DOutDataType, DInDataType, ComputeDataType, BlockSize, MThreadClusterSize, KThreadClusterSize, MThreadSliceSize, KThreadSliceSize, InSrcOutDstVectorSize >::K_BlockTileSize = KThreadClusterSize * KThreadSliceSize
staticconstexpr

◆ M_BlockTileSize

template<typename DOutDataType, typename DInDataType, typename ComputeDataType, ck::index_t BlockSize, ck::index_t MThreadClusterSize, ck::index_t KThreadClusterSize, ck::index_t MThreadSliceSize, ck::index_t KThreadSliceSize, ck::index_t InSrcOutDstVectorSize>
ck::index_t ck::tensor_operation::device::DeviceAvgPool2dBwd_NHWC_NHWC< DOutDataType, DInDataType, ComputeDataType, BlockSize, MThreadClusterSize, KThreadClusterSize, MThreadSliceSize, KThreadSliceSize, InSrcOutDstVectorSize >::M_BlockTileSize = MThreadClusterSize * MThreadSliceSize
staticconstexpr

◆ NDimSpatial

template<typename DOutDataType, typename DInDataType, typename ComputeDataType, ck::index_t BlockSize, ck::index_t MThreadClusterSize, ck::index_t KThreadClusterSize, ck::index_t MThreadSliceSize, ck::index_t KThreadSliceSize, ck::index_t InSrcOutDstVectorSize>
ck::index_t ck::tensor_operation::device::DeviceAvgPool2dBwd_NHWC_NHWC< DOutDataType, DInDataType, ComputeDataType, BlockSize, MThreadClusterSize, KThreadClusterSize, MThreadSliceSize, KThreadSliceSize, InSrcOutDstVectorSize >::NDimSpatial = 2
staticconstexpr

◆ OutSrcInDstVectorDim

template<typename DOutDataType, typename DInDataType, typename ComputeDataType, ck::index_t BlockSize, ck::index_t MThreadClusterSize, ck::index_t KThreadClusterSize, ck::index_t MThreadSliceSize, ck::index_t KThreadSliceSize, ck::index_t InSrcOutDstVectorSize>
index_t ck::tensor_operation::device::DeviceAvgPool2dBwd_NHWC_NHWC< DOutDataType, DInDataType, ComputeDataType, BlockSize, MThreadClusterSize, KThreadClusterSize, MThreadSliceSize, KThreadSliceSize, InSrcOutDstVectorSize >::OutSrcInDstVectorDim = 0
staticconstexpr

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