DeviceReduceMultiBlock< InDataType, AccDataType, OutDataType, Rank, NumReduceDim, ReduceOperation, InElementwiseOperation, AccElementwiseOperation, OutMemoryDataOperation, PropagateNan, OutputIndex, HaveIndexInputIfOutputIndex, BlockSize, MThreadClusterSize, KThreadClusterSize, MThreadSliceSize, KThreadSliceSize, InSrcVectorDim, InSrcVectorSize, OutDstVectorSize > Struct Template Reference#
Classes |
Public Types |
Public Member Functions |
Static Public Member Functions |
Static Public Attributes |
List of all members  
  ck::tensor_operation::device::DeviceReduceMultiBlock< InDataType, AccDataType, OutDataType, Rank, NumReduceDim, ReduceOperation, InElementwiseOperation, AccElementwiseOperation, OutMemoryDataOperation, PropagateNan, OutputIndex, HaveIndexInputIfOutputIndex, BlockSize, MThreadClusterSize, KThreadClusterSize, MThreadSliceSize, KThreadSliceSize, InSrcVectorDim, InSrcVectorSize, OutDstVectorSize > Struct Template Reference
  #include <device_reduce_multiblock.hpp>
Inheritance diagram for ck::tensor_operation::device::DeviceReduceMultiBlock< InDataType, AccDataType, OutDataType, Rank, NumReduceDim, ReduceOperation, InElementwiseOperation, AccElementwiseOperation, OutMemoryDataOperation, PropagateNan, OutputIndex, HaveIndexInputIfOutputIndex, BlockSize, MThreadClusterSize, KThreadClusterSize, MThreadSliceSize, KThreadSliceSize, InSrcVectorDim, InSrcVectorSize, OutDstVectorSize >:
 
  
| Classes | |
| struct | Argument | 
| struct | Invoker | 
| Public Types | |
| using | IndexDataType = int32_t | 
| Public Member Functions | |
| bool | IsSupportedArgument (const BaseArgument *p_arg) override | 
| std::unique_ptr< BaseArgument > | MakeArgumentPointer (const std::array< index_t, Rank > inLengths, const std::array< index_t, Rank > inStrides, const std::array< index_t, NumDstDim > outLengths, const std::array< index_t, NumDstDim > outStrides, const std::array< int, NumReduceDim > reduceDims, double alpha, double beta, const void *in_dev, const void *in_index_dev, void *out_dev, void *out_index_dev, const InElementwiseOperation in_elementwise_op, const AccElementwiseOperation acc_elementwise_op) override | 
| std::unique_ptr< BaseInvoker > | MakeInvokerPointer () override | 
| std::string | GetTypeString () const override | 
|  Public Member Functions inherited from ck::tensor_operation::device::DeviceReduce< InDataType, AccDataType, OutDataType, Rank, NumReduceDim, ReduceOperation, InElementwiseOperation, AccElementwiseOperation, PropagateNan, OutputIndex > | |
| virtual std::unique_ptr< BaseArgument > | MakeArgumentPointer (const std::array< index_t, Rank > inLengths, const std::array< index_t, Rank > inStrides, const std::array< index_t, NumOutDim > outLengths, const std::array< index_t, NumOutDim > outStrides, const std::array< int, NumReduceDim > reduceDims, double alpha, double beta, const void *in_dev, const void *in_index_dev, void *out_dev, void *out_index_dev, const InElementwiseOperation in_elementwise_op, const AccElementwiseOperation acc_elementwise_op)=0 | 
|  Public Member Functions inherited from ck::tensor_operation::device::BaseOperator | |
| BaseOperator ()=default | |
| BaseOperator (const BaseOperator &)=default | |
| BaseOperator & | operator= (const BaseOperator &)=default | 
| 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 | MakeSrc2dDescriptor (const std::array< index_t, Rank > &inLengths, const std::array< index_t, Rank > &inStrides, int blkGroupSize, int numBlockTileIteration) | 
| static auto | MakeDst1dDescriptor (const std::array< index_t, NumDstDim > &outLengths, const std::array< index_t, NumDstDim > &outStrides) | 
| static auto | MakeDst1dDescriptorForBufferSet (const std::array< index_t, NumDstDim > &outLengths, const std::array< index_t, NumDstDim > &outStrides) | 
| static bool | IsSupportedArgument (const Argument *pArg) | 
| Static Public Attributes | |
| static constexpr bool | HaveIndexInput = OutputIndex && HaveIndexInputIfOutputIndex | 
| static constexpr index_t | NumInvariantDim = Rank - NumReduceDim | 
| static constexpr index_t | NumSrcDim = Rank | 
| static constexpr index_t | NumDstDim = (NumInvariantDim == 0) ? 1 : NumInvariantDim | 
| static constexpr bool | reduceAllDim = (NumInvariantDim == 0) | 
| static constexpr bool | use_multiblock | 
| static constexpr index_t | M_BlockTileSize = MThreadClusterSize * MThreadSliceSize | 
| static constexpr index_t | K_BlockTileSize = KThreadClusterSize * KThreadSliceSize | 
|  Static Public Attributes inherited from ck::tensor_operation::device::DeviceReduce< InDataType, AccDataType, OutDataType, Rank, NumReduceDim, ReduceOperation, InElementwiseOperation, AccElementwiseOperation, PropagateNan, OutputIndex > | |
| static constexpr index_t | NumOutDim = (Rank - NumReduceDim == 0) ? 1 : Rank - NumReduceDim | 
Member Typedef Documentation
◆ IndexDataType
template<typename InDataType , typename AccDataType , typename OutDataType , index_t Rank, index_t NumReduceDim, typename ReduceOperation , typename InElementwiseOperation , typename AccElementwiseOperation , InMemoryDataOperationEnum OutMemoryDataOperation, bool PropagateNan, bool OutputIndex, bool HaveIndexInputIfOutputIndex, index_t BlockSize, index_t MThreadClusterSize, index_t KThreadClusterSize, index_t MThreadSliceSize, index_t KThreadSliceSize, index_t InSrcVectorDim, index_t InSrcVectorSize, index_t OutDstVectorSize> 
      | using ck::tensor_operation::device::DeviceReduceMultiBlock< InDataType, AccDataType, OutDataType, Rank, NumReduceDim, ReduceOperation, InElementwiseOperation, AccElementwiseOperation, OutMemoryDataOperation, PropagateNan, OutputIndex, HaveIndexInputIfOutputIndex, BlockSize, MThreadClusterSize, KThreadClusterSize, MThreadSliceSize, KThreadSliceSize, InSrcVectorDim, InSrcVectorSize, OutDstVectorSize >::IndexDataType = int32_t | 
Member Function Documentation
◆ GetTypeString()
template<typename InDataType , typename AccDataType , typename OutDataType , index_t Rank, index_t NumReduceDim, typename ReduceOperation , typename InElementwiseOperation , typename AccElementwiseOperation , InMemoryDataOperationEnum OutMemoryDataOperation, bool PropagateNan, bool OutputIndex, bool HaveIndexInputIfOutputIndex, index_t BlockSize, index_t MThreadClusterSize, index_t KThreadClusterSize, index_t MThreadSliceSize, index_t KThreadSliceSize, index_t InSrcVectorDim, index_t InSrcVectorSize, index_t OutDstVectorSize> 
| 
 | inlineoverridevirtual | 
Reimplemented from ck::tensor_operation::device::BaseOperator.
◆ IsSupportedArgument() [1/2]
template<typename InDataType , typename AccDataType , typename OutDataType , index_t Rank, index_t NumReduceDim, typename ReduceOperation , typename InElementwiseOperation , typename AccElementwiseOperation , InMemoryDataOperationEnum OutMemoryDataOperation, bool PropagateNan, bool OutputIndex, bool HaveIndexInputIfOutputIndex, index_t BlockSize, index_t MThreadClusterSize, index_t KThreadClusterSize, index_t MThreadSliceSize, index_t KThreadSliceSize, index_t InSrcVectorDim, index_t InSrcVectorSize, index_t OutDstVectorSize> 
| 
 | inlinestatic | 
◆ IsSupportedArgument() [2/2]
template<typename InDataType , typename AccDataType , typename OutDataType , index_t Rank, index_t NumReduceDim, typename ReduceOperation , typename InElementwiseOperation , typename AccElementwiseOperation , InMemoryDataOperationEnum OutMemoryDataOperation, bool PropagateNan, bool OutputIndex, bool HaveIndexInputIfOutputIndex, index_t BlockSize, index_t MThreadClusterSize, index_t KThreadClusterSize, index_t MThreadSliceSize, index_t KThreadSliceSize, index_t InSrcVectorDim, index_t InSrcVectorSize, index_t OutDstVectorSize> 
| 
 | inlineoverridevirtual | 
Reimplemented from ck::tensor_operation::device::BaseOperator.
◆ MakeArgumentPointer()
template<typename InDataType , typename AccDataType , typename OutDataType , index_t Rank, index_t NumReduceDim, typename ReduceOperation , typename InElementwiseOperation , typename AccElementwiseOperation , InMemoryDataOperationEnum OutMemoryDataOperation, bool PropagateNan, bool OutputIndex, bool HaveIndexInputIfOutputIndex, index_t BlockSize, index_t MThreadClusterSize, index_t KThreadClusterSize, index_t MThreadSliceSize, index_t KThreadSliceSize, index_t InSrcVectorDim, index_t InSrcVectorSize, index_t OutDstVectorSize> 
| 
 | inlineoverride | 
◆ MakeDst1dDescriptor()
template<typename InDataType , typename AccDataType , typename OutDataType , index_t Rank, index_t NumReduceDim, typename ReduceOperation , typename InElementwiseOperation , typename AccElementwiseOperation , InMemoryDataOperationEnum OutMemoryDataOperation, bool PropagateNan, bool OutputIndex, bool HaveIndexInputIfOutputIndex, index_t BlockSize, index_t MThreadClusterSize, index_t KThreadClusterSize, index_t MThreadSliceSize, index_t KThreadSliceSize, index_t InSrcVectorDim, index_t InSrcVectorSize, index_t OutDstVectorSize> 
| 
 | inlinestatic | 
◆ MakeDst1dDescriptorForBufferSet()
template<typename InDataType , typename AccDataType , typename OutDataType , index_t Rank, index_t NumReduceDim, typename ReduceOperation , typename InElementwiseOperation , typename AccElementwiseOperation , InMemoryDataOperationEnum OutMemoryDataOperation, bool PropagateNan, bool OutputIndex, bool HaveIndexInputIfOutputIndex, index_t BlockSize, index_t MThreadClusterSize, index_t KThreadClusterSize, index_t MThreadSliceSize, index_t KThreadSliceSize, index_t InSrcVectorDim, index_t InSrcVectorSize, index_t OutDstVectorSize> 
| 
 | inlinestatic | 
◆ MakeInvokerPointer()
template<typename InDataType , typename AccDataType , typename OutDataType , index_t Rank, index_t NumReduceDim, typename ReduceOperation , typename InElementwiseOperation , typename AccElementwiseOperation , InMemoryDataOperationEnum OutMemoryDataOperation, bool PropagateNan, bool OutputIndex, bool HaveIndexInputIfOutputIndex, index_t BlockSize, index_t MThreadClusterSize, index_t KThreadClusterSize, index_t MThreadSliceSize, index_t KThreadSliceSize, index_t InSrcVectorDim, index_t InSrcVectorSize, index_t OutDstVectorSize> 
| 
 | inlineoverridevirtual | 
◆ MakeSrc2dDescriptor()
template<typename InDataType , typename AccDataType , typename OutDataType , index_t Rank, index_t NumReduceDim, typename ReduceOperation , typename InElementwiseOperation , typename AccElementwiseOperation , InMemoryDataOperationEnum OutMemoryDataOperation, bool PropagateNan, bool OutputIndex, bool HaveIndexInputIfOutputIndex, index_t BlockSize, index_t MThreadClusterSize, index_t KThreadClusterSize, index_t MThreadSliceSize, index_t KThreadSliceSize, index_t InSrcVectorDim, index_t InSrcVectorSize, index_t OutDstVectorSize> 
| 
 | inlinestatic | 
Member Data Documentation
◆ HaveIndexInput
template<typename InDataType , typename AccDataType , typename OutDataType , index_t Rank, index_t NumReduceDim, typename ReduceOperation , typename InElementwiseOperation , typename AccElementwiseOperation , InMemoryDataOperationEnum OutMemoryDataOperation, bool PropagateNan, bool OutputIndex, bool HaveIndexInputIfOutputIndex, index_t BlockSize, index_t MThreadClusterSize, index_t KThreadClusterSize, index_t MThreadSliceSize, index_t KThreadSliceSize, index_t InSrcVectorDim, index_t InSrcVectorSize, index_t OutDstVectorSize> 
| 
 | staticconstexpr | 
◆ K_BlockTileSize
template<typename InDataType , typename AccDataType , typename OutDataType , index_t Rank, index_t NumReduceDim, typename ReduceOperation , typename InElementwiseOperation , typename AccElementwiseOperation , InMemoryDataOperationEnum OutMemoryDataOperation, bool PropagateNan, bool OutputIndex, bool HaveIndexInputIfOutputIndex, index_t BlockSize, index_t MThreadClusterSize, index_t KThreadClusterSize, index_t MThreadSliceSize, index_t KThreadSliceSize, index_t InSrcVectorDim, index_t InSrcVectorSize, index_t OutDstVectorSize> 
| 
 | staticconstexpr | 
◆ M_BlockTileSize
template<typename InDataType , typename AccDataType , typename OutDataType , index_t Rank, index_t NumReduceDim, typename ReduceOperation , typename InElementwiseOperation , typename AccElementwiseOperation , InMemoryDataOperationEnum OutMemoryDataOperation, bool PropagateNan, bool OutputIndex, bool HaveIndexInputIfOutputIndex, index_t BlockSize, index_t MThreadClusterSize, index_t KThreadClusterSize, index_t MThreadSliceSize, index_t KThreadSliceSize, index_t InSrcVectorDim, index_t InSrcVectorSize, index_t OutDstVectorSize> 
| 
 | staticconstexpr | 
◆ NumDstDim
template<typename InDataType , typename AccDataType , typename OutDataType , index_t Rank, index_t NumReduceDim, typename ReduceOperation , typename InElementwiseOperation , typename AccElementwiseOperation , InMemoryDataOperationEnum OutMemoryDataOperation, bool PropagateNan, bool OutputIndex, bool HaveIndexInputIfOutputIndex, index_t BlockSize, index_t MThreadClusterSize, index_t KThreadClusterSize, index_t MThreadSliceSize, index_t KThreadSliceSize, index_t InSrcVectorDim, index_t InSrcVectorSize, index_t OutDstVectorSize> 
| 
 | staticconstexpr | 
◆ NumInvariantDim
template<typename InDataType , typename AccDataType , typename OutDataType , index_t Rank, index_t NumReduceDim, typename ReduceOperation , typename InElementwiseOperation , typename AccElementwiseOperation , InMemoryDataOperationEnum OutMemoryDataOperation, bool PropagateNan, bool OutputIndex, bool HaveIndexInputIfOutputIndex, index_t BlockSize, index_t MThreadClusterSize, index_t KThreadClusterSize, index_t MThreadSliceSize, index_t KThreadSliceSize, index_t InSrcVectorDim, index_t InSrcVectorSize, index_t OutDstVectorSize> 
| 
 | staticconstexpr | 
◆ NumSrcDim
template<typename InDataType , typename AccDataType , typename OutDataType , index_t Rank, index_t NumReduceDim, typename ReduceOperation , typename InElementwiseOperation , typename AccElementwiseOperation , InMemoryDataOperationEnum OutMemoryDataOperation, bool PropagateNan, bool OutputIndex, bool HaveIndexInputIfOutputIndex, index_t BlockSize, index_t MThreadClusterSize, index_t KThreadClusterSize, index_t MThreadSliceSize, index_t KThreadSliceSize, index_t InSrcVectorDim, index_t InSrcVectorSize, index_t OutDstVectorSize> 
| 
 | staticconstexpr | 
◆ reduceAllDim
template<typename InDataType , typename AccDataType , typename OutDataType , index_t Rank, index_t NumReduceDim, typename ReduceOperation , typename InElementwiseOperation , typename AccElementwiseOperation , InMemoryDataOperationEnum OutMemoryDataOperation, bool PropagateNan, bool OutputIndex, bool HaveIndexInputIfOutputIndex, index_t BlockSize, index_t MThreadClusterSize, index_t KThreadClusterSize, index_t MThreadSliceSize, index_t KThreadSliceSize, index_t InSrcVectorDim, index_t InSrcVectorSize, index_t OutDstVectorSize> 
| 
 | staticconstexpr | 
◆ use_multiblock
template<typename InDataType , typename AccDataType , typename OutDataType , index_t Rank, index_t NumReduceDim, typename ReduceOperation , typename InElementwiseOperation , typename AccElementwiseOperation , InMemoryDataOperationEnum OutMemoryDataOperation, bool PropagateNan, bool OutputIndex, bool HaveIndexInputIfOutputIndex, index_t BlockSize, index_t MThreadClusterSize, index_t KThreadClusterSize, index_t MThreadSliceSize, index_t KThreadSliceSize, index_t InSrcVectorDim, index_t InSrcVectorSize, index_t OutDstVectorSize> 
| 
 | staticconstexpr | 
Initial value:
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-7.0.1/include/ck/tensor_operation/gpu/device/impl/device_reduce_multiblock.hpp