DeviceMultipleReduce< Rank, NumReduceDim, NumReduction, InElementwiseOperationTuple, AccElementwiseOperationTuple > Struct Template Reference

DeviceMultipleReduce&lt; Rank, NumReduceDim, NumReduction, InElementwiseOperationTuple, AccElementwiseOperationTuple &gt; Struct Template Reference#

Composable Kernel: ck::tensor_operation::device::DeviceMultipleReduce< Rank, NumReduceDim, NumReduction, InElementwiseOperationTuple, AccElementwiseOperationTuple > Struct Template Reference
ck::tensor_operation::device::DeviceMultipleReduce< Rank, NumReduceDim, NumReduction, InElementwiseOperationTuple, AccElementwiseOperationTuple > Struct Template Referenceabstract

#include <device_multiple_reduce.hpp>

Inheritance diagram for ck::tensor_operation::device::DeviceMultipleReduce< Rank, NumReduceDim, NumReduction, InElementwiseOperationTuple, AccElementwiseOperationTuple >:
ck::tensor_operation::device::BaseOperator ck::tensor_operation::device::DeviceMultipleReduceMultiBlock< NumReduction, InDataType, AccDataType, OutDataTypeTuple, Rank, NumReduceDim, ReduceOperation, InElementwiseOperationTuple, AccElementwiseOperationTuple, OutMemoryDataOperation, PropagateNan, BlockSize, MThreadClusterSize, KThreadClusterSize, MThreadSliceSize, KThreadSliceSize, InSrcVectorDim, InSrcVectorSize, OutDstVectorSizeSeq > ck::tensor_operation::device::DeviceMultipleReduceThreadWise< NumReduction, InDataType, AccDataType, OutDataTypeTuple, Rank, NumReduceDim, ReduceOperation, InElementwiseOperationTuple, AccElementwiseOperationTuple, PropagateNan, BlockSize, MThreadSliceSize, KThreadSliceSize, InSrcVectorDim, InSrcVectorSize, OutDstVectorSizeSeq >

Public Member Functions

virtual std::unique_ptr< BaseArgumentMakeArgumentPointer (const std::array< index_t, NumInputDim > inLengths, const std::array< index_t, NumInputDim > inStrides, const std::array< index_t, NumOutputDim > outLengths, const std::array< std::array< index_t, NumOutputDim >, NumReduction > outStrides, const std::array< int, NumReduceDim > reduceDims, const std::array< double, NumReduction > alphas, const std::array< double, NumReduction > betas, const void *in_dev, const std::array< void *, NumReduction > out_dev_buffers, const InElementwiseOperationTuple in_elementwise_op_tuple, const AccElementwiseOperationTuple acc_elementwise_op_tuple)=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 NumInputDim = Rank
static constexpr index_t NumOutputDim = (Rank - NumReduceDim > 1) ? Rank - NumReduceDim : 1

Member Function Documentation

◆ MakeArgumentPointer()

template<index_t Rank, index_t NumReduceDim, index_t NumReduction, typename InElementwiseOperationTuple, typename AccElementwiseOperationTuple>
virtual std::unique_ptr< BaseArgument > ck::tensor_operation::device::DeviceMultipleReduce< Rank, NumReduceDim, NumReduction, InElementwiseOperationTuple, AccElementwiseOperationTuple >::MakeArgumentPointer ( const std::array< index_t, NumInputDim > inLengths,
const std::array< index_t, NumInputDim > inStrides,
const std::array< index_t, NumOutputDim > outLengths,
const std::array< std::array< index_t, NumOutputDim >, NumReduction > outStrides,
const std::array< int, NumReduceDim > reduceDims,
const std::array< double, NumReduction > alphas,
const std::array< double, NumReduction > betas,
const void * in_dev,
const std::array< void *, NumReduction > out_dev_buffers,
const InElementwiseOperationTuple in_elementwise_op_tuple,
const AccElementwiseOperationTuple acc_elementwise_op_tuple )
pure virtual

◆ MakeInvokerPointer()

Member Data Documentation

◆ NumInputDim

template<index_t Rank, index_t NumReduceDim, index_t NumReduction, typename InElementwiseOperationTuple, typename AccElementwiseOperationTuple>
index_t ck::tensor_operation::device::DeviceMultipleReduce< Rank, NumReduceDim, NumReduction, InElementwiseOperationTuple, AccElementwiseOperationTuple >::NumInputDim = Rank
staticconstexpr

◆ NumOutputDim

template<index_t Rank, index_t NumReduceDim, index_t NumReduction, typename InElementwiseOperationTuple, typename AccElementwiseOperationTuple>
index_t ck::tensor_operation::device::DeviceMultipleReduce< Rank, NumReduceDim, NumReduction, InElementwiseOperationTuple, AccElementwiseOperationTuple >::NumOutputDim = (Rank - NumReduceDim > 1) ? Rank - NumReduceDim : 1
staticconstexpr

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