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 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 >
constexpr 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 >
constexpr 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:
  • /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/docs-6.4.3/include/ck/tensor_operation/gpu/device/device_multiple_reduce.hpp