DeviceReduceMultiD< InDataType, DsDataType, AccDataType, OutDataType, Rank, NumReduceDim, ReduceOperation, InElementwiseOperation, OutElementwiseOperation > Struct Template Reference

DeviceReduceMultiD&lt; InDataType, DsDataType, AccDataType, OutDataType, Rank, NumReduceDim, ReduceOperation, InElementwiseOperation, OutElementwiseOperation &gt; Struct Template Reference#

Composable Kernel: ck::tensor_operation::device::DeviceReduceMultiD< InDataType, DsDataType, AccDataType, OutDataType, Rank, NumReduceDim, ReduceOperation, InElementwiseOperation, OutElementwiseOperation > Struct Template Reference
ck::tensor_operation::device::DeviceReduceMultiD< InDataType, DsDataType, AccDataType, OutDataType, Rank, NumReduceDim, ReduceOperation, InElementwiseOperation, OutElementwiseOperation > Struct Template Referenceabstract

#include <device_reduce_multi_d.hpp>

Inheritance diagram for ck::tensor_operation::device::DeviceReduceMultiD< InDataType, DsDataType, AccDataType, OutDataType, Rank, NumReduceDim, ReduceOperation, InElementwiseOperation, OutElementwiseOperation >:
ck::tensor_operation::device::BaseOperator ck::tensor_operation::device::DeviceReduceThreadWiseMultiD< ReduceDataType, DsDataType, GemmAccDataType, CDataType, 3, 1, ReduceAdd, PassThrough, OutElementwiseOperation, 256, CShuffleBlockTransferScalarPerVector_NPerBlock, 1, 0, CShuffleBlockTransferScalarPerVector_NPerBlock, CShuffleBlockTransferScalarPerVector_NPerBlock, decltype(DsVectorLengthSequence)> ck::tensor_operation::device::DeviceReduceThreadWiseMultiD< InDataType, DsDataType, AccDataType, OutDataType, Rank, NumReduceDim, ReduceOperation, InElementwiseOperation, OutElementwiseOperation, BlockSize, MThreadSliceSize, KThreadSliceSize, InSrcVectorDim, InSrcVectorSize, OutDstVectorSize, DsVectorSizeSequence >

Public Member Functions

virtual std::unique_ptr< BaseArgumentMakeArgumentPointer (const std::array< index_t, Rank > inLengths, const std::array< index_t, Rank > inStrides, const std::array< std::array< index_t, NumOutDim >, NumDTensor > DsLengths, const std::array< std::array< index_t, NumOutDim >, NumDTensor > DsStrides, const std::array< index_t, NumOutDim > outLengths, const std::array< index_t, NumOutDim > outStrides, const std::array< int, NumReduceDim > reduceDims, const void *in_dev, const std::array< const void *, NumDTensor > ds_dev, void *out_dev, const InElementwiseOperation in_elementwise_op, const OutElementwiseOperation out_elementwise_op)=0
virtual std::unique_ptr< BaseInvokerMakeInvokerPointer ()=0
Public Member Functions inherited from ck::tensor_operation::device::BaseOperator
 BaseOperator ()=default
 BaseOperator (const BaseOperator &)=default
BaseOperatoroperator= (const BaseOperator &)=default
virtual bool IsSupportedArgument (const BaseArgument *)
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 size_t GetWorkSpaceSize (const BaseArgument *) const
virtual void SetWorkSpacePointer (BaseArgument *p_arg, void *p_workspace, const StreamConfig &=StreamConfig{}) const
virtual ~BaseOperator ()

Static Public Attributes

static constexpr index_t NumOutDim = (Rank - NumReduceDim == 0) ? 1 : Rank - NumReduceDim
static constexpr index_t NumDTensor = DsDataType::Size()

Member Function Documentation

◆ MakeArgumentPointer()

template<typename InDataType, typename DsDataType, typename AccDataType, typename OutDataType, index_t Rank, index_t NumReduceDim, typename ReduceOperation, typename InElementwiseOperation, typename OutElementwiseOperation>
virtual std::unique_ptr< BaseArgument > ck::tensor_operation::device::DeviceReduceMultiD< InDataType, DsDataType, AccDataType, OutDataType, Rank, NumReduceDim, ReduceOperation, InElementwiseOperation, OutElementwiseOperation >::MakeArgumentPointer ( const std::array< index_t, Rank > inLengths,
const std::array< index_t, Rank > inStrides,
const std::array< std::array< index_t, NumOutDim >, NumDTensor > DsLengths,
const std::array< std::array< index_t, NumOutDim >, NumDTensor > DsStrides,
const std::array< index_t, NumOutDim > outLengths,
const std::array< index_t, NumOutDim > outStrides,
const std::array< int, NumReduceDim > reduceDims,
const void * in_dev,
const std::array< const void *, NumDTensor > ds_dev,
void * out_dev,
const InElementwiseOperation in_elementwise_op,
const OutElementwiseOperation out_elementwise_op )
pure virtual

◆ MakeInvokerPointer()

Member Data Documentation

◆ NumDTensor

template<typename InDataType, typename DsDataType, typename AccDataType, typename OutDataType, index_t Rank, index_t NumReduceDim, typename ReduceOperation, typename InElementwiseOperation, typename OutElementwiseOperation>
index_t ck::tensor_operation::device::DeviceReduceMultiD< InDataType, DsDataType, AccDataType, OutDataType, Rank, NumReduceDim, ReduceOperation, InElementwiseOperation, OutElementwiseOperation >::NumDTensor = DsDataType::Size()
staticconstexpr

◆ NumOutDim

template<typename InDataType, typename DsDataType, typename AccDataType, typename OutDataType, index_t Rank, index_t NumReduceDim, typename ReduceOperation, typename InElementwiseOperation, typename OutElementwiseOperation>
index_t ck::tensor_operation::device::DeviceReduceMultiD< InDataType, DsDataType, AccDataType, OutDataType, Rank, NumReduceDim, ReduceOperation, InElementwiseOperation, OutElementwiseOperation >::NumOutDim = (Rank - NumReduceDim == 0) ? 1 : Rank - NumReduceDim
staticconstexpr

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