DeviceGemmMultipleDLayernorm< ALayout, BLayout, DsLayout, HLayout, ADataType, BDataType, DsDataType, GammaDataType, BetaDataType, HDataType, AElementwiseOperation, BElementwiseOperation, CDEElementwiseOperation, HElementwiseOperation > Struct Template Reference

DeviceGemmMultipleDLayernorm&lt; ALayout, BLayout, DsLayout, HLayout, ADataType, BDataType, DsDataType, GammaDataType, BetaDataType, HDataType, AElementwiseOperation, BElementwiseOperation, CDEElementwiseOperation, HElementwiseOperation &gt; Struct Template Reference#

Composable Kernel: ck::tensor_operation::device::DeviceGemmMultipleDLayernorm< ALayout, BLayout, DsLayout, HLayout, ADataType, BDataType, DsDataType, GammaDataType, BetaDataType, HDataType, AElementwiseOperation, BElementwiseOperation, CDEElementwiseOperation, HElementwiseOperation > Struct Template Reference
ck::tensor_operation::device::DeviceGemmMultipleDLayernorm< ALayout, BLayout, DsLayout, HLayout, ADataType, BDataType, DsDataType, GammaDataType, BetaDataType, HDataType, AElementwiseOperation, BElementwiseOperation, CDEElementwiseOperation, HElementwiseOperation > Struct Template Referenceabstract

#include <device_gemm_multiple_d_layernorm.hpp>

Inheritance diagram for ck::tensor_operation::device::DeviceGemmMultipleDLayernorm< ALayout, BLayout, DsLayout, HLayout, ADataType, BDataType, DsDataType, GammaDataType, BetaDataType, HDataType, AElementwiseOperation, BElementwiseOperation, CDEElementwiseOperation, HElementwiseOperation >:
ck::tensor_operation::device::BaseOperator ck::tensor_operation::device::DeviceGemmMultipleDLayernorm_Wmma_CShuffleV3< ALayout, BLayout, DsLayout, HLayout, ADataType, BDataType, DsDataType, HDataType, AccDataType, CShuffleDataType, EMeanVarDataType, GammaDataType, BetaDataType, AElementwiseOperation, BElementwiseOperation, CDEElementwiseOperation, HElementwiseOperation, GemmSpec, BlockSize, MPerBlock, NPerBlock, KPerBlock, AK1, BK1, MPerWmma, NPerWmma, MRepeat, NRepeat, ABlockTransferThreadClusterLengths_AK0_M_AK1, ABlockTransferThreadClusterArrangeOrder, ABlockTransferSrcAccessOrder, ABlockTransferSrcVectorDim, ABlockTransferSrcScalarPerVector, ABlockTransferDstScalarPerVector_AK1, ABlockLdsExtraM, BBlockTransferThreadClusterLengths_BK0_N_BK1, BBlockTransferThreadClusterArrangeOrder, BBlockTransferSrcAccessOrder, BBlockTransferSrcVectorDim, BBlockTransferSrcScalarPerVector, BBlockTransferDstScalarPerVector_BK1, BBlockLdsExtraN, CShuffleMRepeatPerShuffle, CShuffleNRepeatPerShuffle, CDEShuffleBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, CDEShuffleBlockTransferScalarPerVector, LayernormThreadClusterSize_M_N, LayernormThreadSliceSize_M, BlkGemmPipeSched, BlkGemmPipelineVer, ComputeTypeA, ComputeTypeB, PermuteA, PermuteB > ck::tensor_operation::device::DeviceGemmMultipleDLayernorm_Xdl_CShuffle< ALayout, BLayout, DsLayout, HLayout, ADataType, BDataType, AccDataType, CShuffleDataType, DsDataType, EMeanVarDataType, GammaDataType, BetaDataType, HDataType, AElementwiseOperation, BElementwiseOperation, CDEElementwiseOperation, HElementwiseOperation, 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, PostShuffleThreadClusterSize_M_N, PostShuffleScalarPerVector, LayernormThreadClusterSize_M_N, LayernormThreadSliceSize_M, LoopSched, PipelineVer >

Public Member Functions

virtual std::unique_ptr< BaseArgumentMakeArgumentPointer (const void *p_a, const void *p_b, std::array< const void *, NumDTensor > p_ds, const void *p_gamma, const void *p_beta, void *p_h, index_t MRaw, index_t NRaw, index_t KRaw, index_t StrideA, index_t StrideB, std::array< index_t, NumDTensor > StrideDs, index_t StrideH, double epsilon, AElementwiseOperation a_element_op, BElementwiseOperation b_element_op, CDEElementwiseOperation cde_element_op, HElementwiseOperation h_element_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 NumDTensor = DsDataType::Size()

Member Function Documentation

◆ MakeArgumentPointer()

template<typename ALayout, typename BLayout, typename DsLayout, typename HLayout, typename ADataType, typename BDataType, typename DsDataType, typename GammaDataType, typename BetaDataType, typename HDataType, typename AElementwiseOperation, typename BElementwiseOperation, typename CDEElementwiseOperation, typename HElementwiseOperation>
virtual std::unique_ptr< BaseArgument > ck::tensor_operation::device::DeviceGemmMultipleDLayernorm< ALayout, BLayout, DsLayout, HLayout, ADataType, BDataType, DsDataType, GammaDataType, BetaDataType, HDataType, AElementwiseOperation, BElementwiseOperation, CDEElementwiseOperation, HElementwiseOperation >::MakeArgumentPointer ( const void * p_a,
const void * p_b,
std::array< const void *, NumDTensor > p_ds,
const void * p_gamma,
const void * p_beta,
void * p_h,
index_t MRaw,
index_t NRaw,
index_t KRaw,
index_t StrideA,
index_t StrideB,
std::array< index_t, NumDTensor > StrideDs,
index_t StrideH,
double epsilon,
AElementwiseOperation a_element_op,
BElementwiseOperation b_element_op,
CDEElementwiseOperation cde_element_op,
HElementwiseOperation h_element_op )
pure virtual

Implemented in ck::tensor_operation::device::DeviceGemmMultipleDLayernorm_Wmma_CShuffleV3< ALayout, BLayout, DsLayout, HLayout, ADataType, BDataType, DsDataType, HDataType, AccDataType, CShuffleDataType, EMeanVarDataType, GammaDataType, BetaDataType, AElementwiseOperation, BElementwiseOperation, CDEElementwiseOperation, HElementwiseOperation, GemmSpec, BlockSize, MPerBlock, NPerBlock, KPerBlock, AK1, BK1, MPerWmma, NPerWmma, MRepeat, NRepeat, ABlockTransferThreadClusterLengths_AK0_M_AK1, ABlockTransferThreadClusterArrangeOrder, ABlockTransferSrcAccessOrder, ABlockTransferSrcVectorDim, ABlockTransferSrcScalarPerVector, ABlockTransferDstScalarPerVector_AK1, ABlockLdsExtraM, BBlockTransferThreadClusterLengths_BK0_N_BK1, BBlockTransferThreadClusterArrangeOrder, BBlockTransferSrcAccessOrder, BBlockTransferSrcVectorDim, BBlockTransferSrcScalarPerVector, BBlockTransferDstScalarPerVector_BK1, BBlockLdsExtraN, CShuffleMRepeatPerShuffle, CShuffleNRepeatPerShuffle, CDEShuffleBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, CDEShuffleBlockTransferScalarPerVector, LayernormThreadClusterSize_M_N, LayernormThreadSliceSize_M, BlkGemmPipeSched, BlkGemmPipelineVer, ComputeTypeA, ComputeTypeB, PermuteA, PermuteB >, and ck::tensor_operation::device::DeviceGemmMultipleDLayernorm_Xdl_CShuffle< ALayout, BLayout, DsLayout, HLayout, ADataType, BDataType, AccDataType, CShuffleDataType, DsDataType, EMeanVarDataType, GammaDataType, BetaDataType, HDataType, AElementwiseOperation, BElementwiseOperation, CDEElementwiseOperation, HElementwiseOperation, 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, PostShuffleThreadClusterSize_M_N, PostShuffleScalarPerVector, LayernormThreadClusterSize_M_N, LayernormThreadSliceSize_M, LoopSched, PipelineVer >.

◆ MakeInvokerPointer()

template<typename ALayout, typename BLayout, typename DsLayout, typename HLayout, typename ADataType, typename BDataType, typename DsDataType, typename GammaDataType, typename BetaDataType, typename HDataType, typename AElementwiseOperation, typename BElementwiseOperation, typename CDEElementwiseOperation, typename HElementwiseOperation>
virtual std::unique_ptr< BaseInvoker > ck::tensor_operation::device::DeviceGemmMultipleDLayernorm< ALayout, BLayout, DsLayout, HLayout, ADataType, BDataType, DsDataType, GammaDataType, BetaDataType, HDataType, AElementwiseOperation, BElementwiseOperation, CDEElementwiseOperation, HElementwiseOperation >::MakeInvokerPointer ( )
pure virtual

Implemented in ck::tensor_operation::device::DeviceGemmMultipleDLayernorm_Wmma_CShuffleV3< ALayout, BLayout, DsLayout, HLayout, ADataType, BDataType, DsDataType, HDataType, AccDataType, CShuffleDataType, EMeanVarDataType, GammaDataType, BetaDataType, AElementwiseOperation, BElementwiseOperation, CDEElementwiseOperation, HElementwiseOperation, GemmSpec, BlockSize, MPerBlock, NPerBlock, KPerBlock, AK1, BK1, MPerWmma, NPerWmma, MRepeat, NRepeat, ABlockTransferThreadClusterLengths_AK0_M_AK1, ABlockTransferThreadClusterArrangeOrder, ABlockTransferSrcAccessOrder, ABlockTransferSrcVectorDim, ABlockTransferSrcScalarPerVector, ABlockTransferDstScalarPerVector_AK1, ABlockLdsExtraM, BBlockTransferThreadClusterLengths_BK0_N_BK1, BBlockTransferThreadClusterArrangeOrder, BBlockTransferSrcAccessOrder, BBlockTransferSrcVectorDim, BBlockTransferSrcScalarPerVector, BBlockTransferDstScalarPerVector_BK1, BBlockLdsExtraN, CShuffleMRepeatPerShuffle, CShuffleNRepeatPerShuffle, CDEShuffleBlockTransferClusterLengths_MBlock_MPerBlock_NBlock_NPerBlock, CDEShuffleBlockTransferScalarPerVector, LayernormThreadClusterSize_M_N, LayernormThreadSliceSize_M, BlkGemmPipeSched, BlkGemmPipelineVer, ComputeTypeA, ComputeTypeB, PermuteA, PermuteB >, and ck::tensor_operation::device::DeviceGemmMultipleDLayernorm_Xdl_CShuffle< ALayout, BLayout, DsLayout, HLayout, ADataType, BDataType, AccDataType, CShuffleDataType, DsDataType, EMeanVarDataType, GammaDataType, BetaDataType, HDataType, AElementwiseOperation, BElementwiseOperation, CDEElementwiseOperation, HElementwiseOperation, 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, PostShuffleThreadClusterSize_M_N, PostShuffleScalarPerVector, LayernormThreadClusterSize_M_N, LayernormThreadSliceSize_M, LoopSched, PipelineVer >.

Member Data Documentation

◆ NumDTensor

template<typename ALayout, typename BLayout, typename DsLayout, typename HLayout, typename ADataType, typename BDataType, typename DsDataType, typename GammaDataType, typename BetaDataType, typename HDataType, typename AElementwiseOperation, typename BElementwiseOperation, typename CDEElementwiseOperation, typename HElementwiseOperation>
index_t ck::tensor_operation::device::DeviceGemmMultipleDLayernorm< ALayout, BLayout, DsLayout, HLayout, ADataType, BDataType, DsDataType, GammaDataType, BetaDataType, HDataType, AElementwiseOperation, BElementwiseOperation, CDEElementwiseOperation, HElementwiseOperation >::NumDTensor = DsDataType::Size()
staticconstexpr

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