DeviceMaxPoolBwdImpl< DOutDataType, IndexDataType, DInDataType, InOutVectorSize > Struct Template Reference

DeviceMaxPoolBwdImpl&lt; DOutDataType, IndexDataType, DInDataType, InOutVectorSize &gt; Struct Template Reference#

Composable Kernel: ck::tensor_operation::device::DeviceMaxPoolBwdImpl< DOutDataType, IndexDataType, DInDataType, InOutVectorSize > Struct Template Reference
ck::tensor_operation::device::DeviceMaxPoolBwdImpl< DOutDataType, IndexDataType, DInDataType, InOutVectorSize > Struct Template Reference

#include <device_max_pool_bwd_impl.hpp>

Inheritance diagram for ck::tensor_operation::device::DeviceMaxPoolBwdImpl< DOutDataType, IndexDataType, DInDataType, InOutVectorSize >:
ck::tensor_operation::device::DeviceMaxPoolBwd< DOutDataType, IndexDataType, DInDataType > ck::tensor_operation::device::BaseOperator

Classes

struct  Argument
struct  Invoker

Public Types

using DInDataType_AutomicAddPreCast
using PassThrough = ck::tensor_operation::element_wise::PassThrough
using UnaryConvert = ck::tensor_operation::element_wise::UnaryConvert
using InOutGrid1dDesc = decltype(MakeDescriptor_M(1, 1))
using InOutGrid2dDesc = decltype(ExpendDescFirstDim(InOutGrid1dDesc{}))
using GridwisePutElementSet
using GridwisePutElementAtomicAdd
using Block2TileMap = BlockToCTileMap_M00_N0_M01Adapt<MPerBlock, NPerBlock>
using GridwiseCasting

Public Member Functions

size_t GetWorkSpaceSize (const BaseArgument *pArg) const override
bool IsSupportedArgument (const BaseArgument *p_arg) override
std::unique_ptr< BaseArgumentMakeArgumentPointer (const void *p_dout, const void *p_indices, void *p_din, index_t dout_length, index_t din_length, std::vector< ck::index_t > window_lengths, std::vector< ck::index_t > window_strides, std::vector< ck::index_t > window_dilations) override
std::unique_ptr< BaseInvokerMakeInvokerPointer () override
Public Member Functions inherited from ck::tensor_operation::device::BaseOperator
 BaseOperator ()=default
 BaseOperator (const BaseOperator &)=default
BaseOperatoroperator= (const BaseOperator &)=default
virtual std::string GetTypeString () const
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 void SetWorkSpacePointer (BaseArgument *p_arg, void *p_workspace, const StreamConfig &=StreamConfig{}) const
virtual ~BaseOperator ()

Static Public Member Functions

template<typename Desc_M>
static auto PadDescriptor_M_1d (Desc_M &desc_m, index_t loop_step)
static auto MakeDescriptor_M (index_t length, index_t loop_step)
template<typename Desc_M>
static auto ExpendDescFirstDim (Desc_M desc_m)

Static Public Attributes

static constexpr auto I0 = Number<0>{}
static constexpr auto I1 = Number<1>{}
static constexpr index_t BlockSize = 256
static constexpr index_t MPerThread = 1
static constexpr index_t NPerThread = InOutVectorSize
static constexpr index_t MPerBlock = 1
static constexpr index_t NPerBlock = BlockSize * NPerThread

Member Typedef Documentation

◆ Block2TileMap

template<typename DOutDataType, typename IndexDataType, typename DInDataType, ck::index_t InOutVectorSize>
using ck::tensor_operation::device::DeviceMaxPoolBwdImpl< DOutDataType, IndexDataType, DInDataType, InOutVectorSize >::Block2TileMap = BlockToCTileMap_M00_N0_M01Adapt<MPerBlock, NPerBlock>

◆ DInDataType_AutomicAddPreCast

template<typename DOutDataType, typename IndexDataType, typename DInDataType, ck::index_t InOutVectorSize>
using ck::tensor_operation::device::DeviceMaxPoolBwdImpl< DOutDataType, IndexDataType, DInDataType, InOutVectorSize >::DInDataType_AutomicAddPreCast
Initial value:
DInDataType,
float>
typename conditional< predicate, X, Y >::type conditional_t
Definition utility/functional.hpp:115
constexpr bool is_same_v
Definition type.hpp:283

◆ GridwiseCasting

template<typename DOutDataType, typename IndexDataType, typename DInDataType, ck::index_t InOutVectorSize>
using ck::tensor_operation::device::DeviceMaxPoolBwdImpl< DOutDataType, IndexDataType, DInDataType, InOutVectorSize >::GridwiseCasting
Initial value:
I1,
I1>
Definition gridwise_elementwise_2d.hpp:278
Definition utility/sequence.hpp:43
Definition utility/tuple.hpp:117
static constexpr auto I1
Definition device_max_pool_bwd_impl.hpp:42
ck::tensor_operation::element_wise::UnaryConvert UnaryConvert
Definition device_max_pool_bwd_impl.hpp:39
static constexpr index_t NPerThread
Definition device_max_pool_bwd_impl.hpp:94
static constexpr index_t MPerThread
Definition device_max_pool_bwd_impl.hpp:93
static constexpr index_t BlockSize
Definition device_max_pool_bwd_impl.hpp:92
BlockToCTileMap_M00_N0_M01Adapt< MPerBlock, NPerBlock > Block2TileMap
Definition device_max_pool_bwd_impl.hpp:98
static constexpr index_t NPerBlock
Definition device_max_pool_bwd_impl.hpp:96
static constexpr index_t MPerBlock
Definition device_max_pool_bwd_impl.hpp:95

◆ GridwisePutElementAtomicAdd

template<typename DOutDataType, typename IndexDataType, typename DInDataType, ck::index_t InOutVectorSize>
using ck::tensor_operation::device::DeviceMaxPoolBwdImpl< DOutDataType, IndexDataType, DInDataType, InOutVectorSize >::GridwisePutElementAtomicAdd
Initial value:
DOutDataType,
IndexDataType,
InOutVectorSize>
@ AtomicAdd
Definition ck.hpp:279
Definition gridwise_put_element_1d.hpp:36
decltype(MakeDescriptor_M(1, 1)) InOutGrid1dDesc
Definition device_max_pool_bwd_impl.hpp:73
ck::tensor_operation::element_wise::PassThrough PassThrough
Definition device_max_pool_bwd_impl.hpp:38
conditional_t< is_same_v< DInDataType, float >||is_same_v< DInDataType, double >, DInDataType, float > DInDataType_AutomicAddPreCast
Definition device_max_pool_bwd_impl.hpp:33

◆ GridwisePutElementSet

template<typename DOutDataType, typename IndexDataType, typename DInDataType, ck::index_t InOutVectorSize>
using ck::tensor_operation::device::DeviceMaxPoolBwdImpl< DOutDataType, IndexDataType, DInDataType, InOutVectorSize >::GridwisePutElementSet
Initial value:
DOutDataType,
IndexDataType,
DInDataType,
InOutVectorSize>
@ Set
Definition ck.hpp:278

◆ InOutGrid1dDesc

template<typename DOutDataType, typename IndexDataType, typename DInDataType, ck::index_t InOutVectorSize>
using ck::tensor_operation::device::DeviceMaxPoolBwdImpl< DOutDataType, IndexDataType, DInDataType, InOutVectorSize >::InOutGrid1dDesc = decltype(MakeDescriptor_M(1, 1))

◆ InOutGrid2dDesc

template<typename DOutDataType, typename IndexDataType, typename DInDataType, ck::index_t InOutVectorSize>
using ck::tensor_operation::device::DeviceMaxPoolBwdImpl< DOutDataType, IndexDataType, DInDataType, InOutVectorSize >::InOutGrid2dDesc = decltype(ExpendDescFirstDim(InOutGrid1dDesc{}))

◆ PassThrough

template<typename DOutDataType, typename IndexDataType, typename DInDataType, ck::index_t InOutVectorSize>
using ck::tensor_operation::device::DeviceMaxPoolBwdImpl< DOutDataType, IndexDataType, DInDataType, InOutVectorSize >::PassThrough = ck::tensor_operation::element_wise::PassThrough

◆ UnaryConvert

template<typename DOutDataType, typename IndexDataType, typename DInDataType, ck::index_t InOutVectorSize>
using ck::tensor_operation::device::DeviceMaxPoolBwdImpl< DOutDataType, IndexDataType, DInDataType, InOutVectorSize >::UnaryConvert = ck::tensor_operation::element_wise::UnaryConvert

Member Function Documentation

◆ ExpendDescFirstDim()

template<typename DOutDataType, typename IndexDataType, typename DInDataType, ck::index_t InOutVectorSize>
template<typename Desc_M>
auto ck::tensor_operation::device::DeviceMaxPoolBwdImpl< DOutDataType, IndexDataType, DInDataType, InOutVectorSize >::ExpendDescFirstDim ( Desc_M desc_m)
inlinestatic

◆ GetWorkSpaceSize()

template<typename DOutDataType, typename IndexDataType, typename DInDataType, ck::index_t InOutVectorSize>
size_t ck::tensor_operation::device::DeviceMaxPoolBwdImpl< DOutDataType, IndexDataType, DInDataType, InOutVectorSize >::GetWorkSpaceSize ( const BaseArgument * pArg) const
inlineoverridevirtual

◆ IsSupportedArgument()

template<typename DOutDataType, typename IndexDataType, typename DInDataType, ck::index_t InOutVectorSize>
bool ck::tensor_operation::device::DeviceMaxPoolBwdImpl< DOutDataType, IndexDataType, DInDataType, InOutVectorSize >::IsSupportedArgument ( const BaseArgument * p_arg)
inlineoverridevirtual

◆ MakeArgumentPointer()

template<typename DOutDataType, typename IndexDataType, typename DInDataType, ck::index_t InOutVectorSize>
std::unique_ptr< BaseArgument > ck::tensor_operation::device::DeviceMaxPoolBwdImpl< DOutDataType, IndexDataType, DInDataType, InOutVectorSize >::MakeArgumentPointer ( const void * p_dout,
const void * p_indices,
void * p_din,
index_t dout_length,
index_t din_length,
std::vector< ck::index_t > window_lengths,
std::vector< ck::index_t > window_strides,
std::vector< ck::index_t > window_dilations )
inlineoverridevirtual

◆ MakeDescriptor_M()

template<typename DOutDataType, typename IndexDataType, typename DInDataType, ck::index_t InOutVectorSize>
auto ck::tensor_operation::device::DeviceMaxPoolBwdImpl< DOutDataType, IndexDataType, DInDataType, InOutVectorSize >::MakeDescriptor_M ( index_t length,
index_t loop_step )
inlinestatic

◆ MakeInvokerPointer()

template<typename DOutDataType, typename IndexDataType, typename DInDataType, ck::index_t InOutVectorSize>
std::unique_ptr< BaseInvoker > ck::tensor_operation::device::DeviceMaxPoolBwdImpl< DOutDataType, IndexDataType, DInDataType, InOutVectorSize >::MakeInvokerPointer ( )
inlineoverridevirtual

◆ PadDescriptor_M_1d()

template<typename DOutDataType, typename IndexDataType, typename DInDataType, ck::index_t InOutVectorSize>
template<typename Desc_M>
auto ck::tensor_operation::device::DeviceMaxPoolBwdImpl< DOutDataType, IndexDataType, DInDataType, InOutVectorSize >::PadDescriptor_M_1d ( Desc_M & desc_m,
index_t loop_step )
inlinestatic

Member Data Documentation

◆ BlockSize

template<typename DOutDataType, typename IndexDataType, typename DInDataType, ck::index_t InOutVectorSize>
index_t ck::tensor_operation::device::DeviceMaxPoolBwdImpl< DOutDataType, IndexDataType, DInDataType, InOutVectorSize >::BlockSize = 256
staticconstexpr

◆ I0

template<typename DOutDataType, typename IndexDataType, typename DInDataType, ck::index_t InOutVectorSize>
auto ck::tensor_operation::device::DeviceMaxPoolBwdImpl< DOutDataType, IndexDataType, DInDataType, InOutVectorSize >::I0 = Number<0>{}
staticconstexpr

◆ I1

template<typename DOutDataType, typename IndexDataType, typename DInDataType, ck::index_t InOutVectorSize>
auto ck::tensor_operation::device::DeviceMaxPoolBwdImpl< DOutDataType, IndexDataType, DInDataType, InOutVectorSize >::I1 = Number<1>{}
staticconstexpr

◆ MPerBlock

template<typename DOutDataType, typename IndexDataType, typename DInDataType, ck::index_t InOutVectorSize>
index_t ck::tensor_operation::device::DeviceMaxPoolBwdImpl< DOutDataType, IndexDataType, DInDataType, InOutVectorSize >::MPerBlock = 1
staticconstexpr

◆ MPerThread

template<typename DOutDataType, typename IndexDataType, typename DInDataType, ck::index_t InOutVectorSize>
index_t ck::tensor_operation::device::DeviceMaxPoolBwdImpl< DOutDataType, IndexDataType, DInDataType, InOutVectorSize >::MPerThread = 1
staticconstexpr

◆ NPerBlock

template<typename DOutDataType, typename IndexDataType, typename DInDataType, ck::index_t InOutVectorSize>
index_t ck::tensor_operation::device::DeviceMaxPoolBwdImpl< DOutDataType, IndexDataType, DInDataType, InOutVectorSize >::NPerBlock = BlockSize * NPerThread
staticconstexpr

◆ NPerThread

template<typename DOutDataType, typename IndexDataType, typename DInDataType, ck::index_t InOutVectorSize>
index_t ck::tensor_operation::device::DeviceMaxPoolBwdImpl< DOutDataType, IndexDataType, DInDataType, InOutVectorSize >::NPerThread = InOutVectorSize
staticconstexpr

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