DeviceGemmReduce< NumDTensor, NumReduce > Struct Template Reference

DeviceGemmReduce&lt; NumDTensor, NumReduce &gt; Struct Template Reference#

Composable Kernel: ck::tensor_operation::device::DeviceGemmReduce< NumDTensor, NumReduce > Struct Template Reference
ck::tensor_operation::device::DeviceGemmReduce< NumDTensor, NumReduce > Struct Template Referenceabstract

#include <device_gemm_reduce.hpp>

Inheritance diagram for ck::tensor_operation::device::DeviceGemmReduce< NumDTensor, NumReduce >:
ck::tensor_operation::device::BaseOperator

Public Member Functions

virtual std::unique_ptr< BaseArgumentMakeArgumentPointer (const void *p_a, const void *p_b, const void *p_bias, std::array< const void *, NumDTensor > p_ds, void *p_c, std::array< void *, NumReduce > p_reduces, ck::index_t M, ck::index_t N, ck::index_t K, ck::index_t StrideA, ck::index_t StrideB, ck::index_t StrideC, std::array< ck::index_t, NumDTensor > StrideDs, std::array< void *, 3 > gemm_element_ops, std::array< void *, NumDTensor > d_element_ops, std::array< void *, NumReduce > reduce_in_element_ops, std::array< void *, NumReduce > reduce_out_element_ops, ck::index_t BatchCount=1)=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 ()

Member Function Documentation

◆ MakeArgumentPointer()

template<ck::index_t NumDTensor, ck::index_t NumReduce>
virtual std::unique_ptr< BaseArgument > ck::tensor_operation::device::DeviceGemmReduce< NumDTensor, NumReduce >::MakeArgumentPointer ( const void * p_a,
const void * p_b,
const void * p_bias,
std::array< const void *, NumDTensor > p_ds,
void * p_c,
std::array< void *, NumReduce > p_reduces,
ck::index_t M,
ck::index_t N,
ck::index_t K,
ck::index_t StrideA,
ck::index_t StrideB,
ck::index_t StrideC,
std::array< ck::index_t, NumDTensor > StrideDs,
std::array< void *, 3 > gemm_element_ops,
std::array< void *, NumDTensor > d_element_ops,
std::array< void *, NumReduce > reduce_in_element_ops,
std::array< void *, NumReduce > reduce_out_element_ops,
ck::index_t BatchCount = 1 )
pure virtual

◆ MakeInvokerPointer()

template<ck::index_t NumDTensor, ck::index_t NumReduce>
virtual std::unique_ptr< BaseInvoker > ck::tensor_operation::device::DeviceGemmReduce< NumDTensor, NumReduce >::MakeInvokerPointer ( )
pure virtual

Implemented in ck::tensor_operation::device::DeviceBatchedGemmReduce_Xdl_CShuffle< ALayout, BLayout, CLayout, ADataType, BDataType, CDataType, GemmAccDataType, CShuffleDataType, ReduceAccDataType, ReducePtrsGlobal, AElementwiseOperation, BElementwiseOperation, CElementwiseOperation, ReduceOperations, ReduceInElementwiseOperations, ReduceAccElementwiseOperations, ReduceGlobalMemoryDataOperation, GemmSpec, NumGemmKPrefetchStage, BlockSize, MPerBlock, NPerBlock, KPerBlock, AK1, BK1, MPerXDL, NPerXDL, MXdlPerWave, NXdlPerWave, ABlockTransferThreadClusterLengths_AK0_M_AK1, ABlockTransferThreadClusterArrangeOrder, ABlockTransferSrcAccessOrder, ABlockTransferSrcVectorDim, ABlockTransferSrcScalarPerVector, ABlockTransferDstScalarPerVector_AK1, ABlockLdsExtraM, BBlockTransferThreadClusterLengths_BK0_N_BK1, BBlockTransferThreadClusterArrangeOrder, BBlockTransferSrcAccessOrder, BBlockTransferSrcVectorDim, BBlockTransferSrcScalarPerVector, BBlockTransferDstScalarPerVector_BK1, BBlockLdsExtraN, CShuffleMXdlPerWavePerShuffle, CShuffleNXdlPerWavePerShuffle, CShuffleBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, CShuffleBlockTransferScalarPerVector_NPerBlock, CReduceThreadClusterLengths_MPerBlock_NPerBlock, CReduceThreadLds2VGprCopySrcDstScalarPerVector_NPerBlock, CReduceThreadVgpr2GlobalCopySrcDstScalarPerVector_MPerBlock, LoopSched >, ck::tensor_operation::device::DeviceGemmBiasAddReduce_Xdl_CShuffle< ALayout, BLayout, CLayout, ADataType, BDataType, CDataType, BiasDataType, D0DataType, GemmAccDataType, CShuffleDataType, ReduceAccDataType, ReducePtrsGlobal, AElementwiseOperation, BElementwiseOperation, CElementwiseOperation, D0ElementwiseOperation, ReduceOperations, ReduceInElementwiseOperations, ReduceAccElementwiseOperations, ReduceGlobalMemoryDataOperation, GemmSpec, NumGemmKPrefetchStage, BlockSize, MPerBlock, NPerBlock, KPerBlock, AK1, BK1, MPerXDL, NPerXDL, MXdlPerWave, NXdlPerWave, ABlockTransferThreadClusterLengths_AK0_M_AK1, ABlockTransferThreadClusterArrangeOrder, ABlockTransferSrcAccessOrder, ABlockTransferSrcVectorDim, ABlockTransferSrcScalarPerVector, ABlockTransferDstScalarPerVector_AK1, ABlockLdsExtraM, BBlockTransferThreadClusterLengths_BK0_N_BK1, BBlockTransferThreadClusterArrangeOrder, BBlockTransferSrcAccessOrder, BBlockTransferSrcVectorDim, BBlockTransferSrcScalarPerVector, BBlockTransferDstScalarPerVector_BK1, BBlockLdsExtraN, CShuffleMXdlPerWavePerShuffle, CShuffleNXdlPerWavePerShuffle, CShuffleBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, CShuffleBlockTransferScalarPerVector_NPerBlock, CReduceThreadClusterLengths_MPerBlock_NPerBlock, CReduceThreadLds2VGprCopySrcDstScalarPerVector_NPerBlock, CReduceThreadVgpr2GlobalCopySrcDstScalarPerVector_MPerBlock, LoopSched >, and ck::tensor_operation::device::DeviceGemmReduce_Xdl_CShuffle< ALayout, BLayout, CLayout, ADataType, BDataType, CDataType, GemmAccDataType, CShuffleDataType, ReduceAccDataType, ReducePtrsGlobal, AElementwiseOperation, BElementwiseOperation, CElementwiseOperation, ReduceOperations, ReduceInElementwiseOperations, ReduceAccElementwiseOperations, ReduceGlobalMemoryDataOperation, GemmSpec, NumGemmKPrefetchStage, BlockSize, MPerBlock, NPerBlock, KPerBlock, AK1, BK1, MPerXDL, NPerXDL, MXdlPerWave, NXdlPerWave, ABlockTransferThreadClusterLengths_AK0_M_AK1, ABlockTransferThreadClusterArrangeOrder, ABlockTransferSrcAccessOrder, ABlockTransferSrcVectorDim, ABlockTransferSrcScalarPerVector, ABlockTransferDstScalarPerVector_AK1, ABlockLdsExtraM, BBlockTransferThreadClusterLengths_BK0_N_BK1, BBlockTransferThreadClusterArrangeOrder, BBlockTransferSrcAccessOrder, BBlockTransferSrcVectorDim, BBlockTransferSrcScalarPerVector, BBlockTransferDstScalarPerVector_BK1, BBlockLdsExtraN, CShuffleMXdlPerWavePerShuffle, CShuffleNXdlPerWavePerShuffle, CShuffleBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, CShuffleBlockTransferScalarPerVector_NPerBlock, CReduceThreadClusterLengths_MPerBlock_NPerBlock, CReduceThreadLds2VGprCopySrcDstScalarPerVector_NPerBlock, CReduceThreadVgpr2GlobalCopySrcDstScalarPerVector_MPerBlock, LoopSched >.


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