DeviceGemmMultipleD_BlockScale_BPreshuffle< ALayout, BLayout, DsLayout, ELayout, ADataType, AScaleType, BDataType, BScaleType, DsDataType, EDataType, ScaleBlockM, ScaleBlockN, ScaleBlockK, AElementwiseOperation, BElementwiseOperation, CDEElementwiseOperation > Struct Template Reference

DeviceGemmMultipleD_BlockScale_BPreshuffle&lt; ALayout, BLayout, DsLayout, ELayout, ADataType, AScaleType, BDataType, BScaleType, DsDataType, EDataType, ScaleBlockM, ScaleBlockN, ScaleBlockK, AElementwiseOperation, BElementwiseOperation, CDEElementwiseOperation &gt; Struct Template Reference#

Composable Kernel: ck::tensor_operation::device::DeviceGemmMultipleD_BlockScale_BPreshuffle< ALayout, BLayout, DsLayout, ELayout, ADataType, AScaleType, BDataType, BScaleType, DsDataType, EDataType, ScaleBlockM, ScaleBlockN, ScaleBlockK, AElementwiseOperation, BElementwiseOperation, CDEElementwiseOperation > Struct Template Reference
ck::tensor_operation::device::DeviceGemmMultipleD_BlockScale_BPreshuffle< ALayout, BLayout, DsLayout, ELayout, ADataType, AScaleType, BDataType, BScaleType, DsDataType, EDataType, ScaleBlockM, ScaleBlockN, ScaleBlockK, AElementwiseOperation, BElementwiseOperation, CDEElementwiseOperation > Struct Template Referenceabstract

#include <device_gemm_multiple_d_ab_scale.hpp>

Inheritance diagram for ck::tensor_operation::device::DeviceGemmMultipleD_BlockScale_BPreshuffle< ALayout, BLayout, DsLayout, ELayout, ADataType, AScaleType, BDataType, BScaleType, DsDataType, EDataType, ScaleBlockM, ScaleBlockN, ScaleBlockK, AElementwiseOperation, BElementwiseOperation, CDEElementwiseOperation >:
ck::tensor_operation::device::BaseOperator

Public Member Functions

virtual std::unique_ptr< BaseArgumentMakeArgumentPointer (const void *p_a, const void *p_b, std::array< const void *, NumDTensor > p_ds, void *p_e, const ck::index_t M, const ck::index_t N, const ck::index_t K, const ck::index_t StrideA, const ck::index_t StrideB, const std::array< ck::index_t, NumDTensor > StrideDs, const ck::index_t StrideE, const void *p_a_scale, const void *p_b_scale, AElementwiseOperation a_element_op, BElementwiseOperation b_element_op, CDEElementwiseOperation cde_element_op)=0
virtual std::unique_ptr< BaseInvokerMakeInvokerPointer ()=0
virtual int GetPreShuffleParameters ()=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

◆ GetPreShuffleParameters()

template<typename ALayout, typename BLayout, typename DsLayout, typename ELayout, typename ADataType, typename AScaleType, typename BDataType, typename BScaleType, typename DsDataType, typename EDataType, index_t ScaleBlockM, index_t ScaleBlockN, index_t ScaleBlockK, typename AElementwiseOperation, typename BElementwiseOperation, typename CDEElementwiseOperation>
virtual int ck::tensor_operation::device::DeviceGemmMultipleD_BlockScale_BPreshuffle< ALayout, BLayout, DsLayout, ELayout, ADataType, AScaleType, BDataType, BScaleType, DsDataType, EDataType, ScaleBlockM, ScaleBlockN, ScaleBlockK, AElementwiseOperation, BElementwiseOperation, CDEElementwiseOperation >::GetPreShuffleParameters ( )
pure virtual

Implemented in ck::tensor_operation::device::DeviceGemmMultiD_BlockScale_Xdl_CShuffle_V3_BPreshuffle< ALayout, BLayout, DsLayout, CLayout, ADataType, AScaleDataType, BDataType, BScaleDataType, DsDataType, CDataType, GemmAccDataType, CShuffleDataType, AElementwiseOperation, BElementwiseOperation, CElementwiseOperation, GemmSpec, BlockSize, ScaleBlockM, ScaleBlockN, ScaleBlockK, 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, CDEShuffleBlockTransferScalarPerVectors, BlkGemmPipeSched, BlkGemmPipelineVer, ComputeTypeA, ComputeTypeB, LDSTypeA, LDSTypeB >, and ck::tensor_operation::device::DeviceMoeGemmBlockScale< ALayout, BLayout, DsLayout, CLayout, ADataType, AScaleDataType, BDataType, BScaleDataType, DsDataType, CDataType, GemmAccDataType, CShuffleDataType, AElementwiseOperation, BElementwiseOperation, CElementwiseOperation, GemmSpec, BlockSize, ScaleBlockM, ScaleBlockN, ScaleBlockK, 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, CDEShuffleBlockTransferScalarPerVectors, BlkGemmPipeSched, BlkGemmPipelineVer, ActivationOP, NSwizzle, IsInputGemm, MulRoutedWeight, IndexType, ComputeTypeA, ComputeTypeB, LDSTypeA, LDSTypeB >.

◆ MakeArgumentPointer()

template<typename ALayout, typename BLayout, typename DsLayout, typename ELayout, typename ADataType, typename AScaleType, typename BDataType, typename BScaleType, typename DsDataType, typename EDataType, index_t ScaleBlockM, index_t ScaleBlockN, index_t ScaleBlockK, typename AElementwiseOperation, typename BElementwiseOperation, typename CDEElementwiseOperation>
virtual std::unique_ptr< BaseArgument > ck::tensor_operation::device::DeviceGemmMultipleD_BlockScale_BPreshuffle< ALayout, BLayout, DsLayout, ELayout, ADataType, AScaleType, BDataType, BScaleType, DsDataType, EDataType, ScaleBlockM, ScaleBlockN, ScaleBlockK, AElementwiseOperation, BElementwiseOperation, CDEElementwiseOperation >::MakeArgumentPointer ( const void * p_a,
const void * p_b,
std::array< const void *, NumDTensor > p_ds,
void * p_e,
const ck::index_t M,
const ck::index_t N,
const ck::index_t K,
const ck::index_t StrideA,
const ck::index_t StrideB,
const std::array< ck::index_t, NumDTensor > StrideDs,
const ck::index_t StrideE,
const void * p_a_scale,
const void * p_b_scale,
AElementwiseOperation a_element_op,
BElementwiseOperation b_element_op,
CDEElementwiseOperation cde_element_op )
pure virtual

Implemented in ck::tensor_operation::device::DeviceGemmMultiD_BlockScale_Xdl_CShuffle_V3_BPreshuffle< ALayout, BLayout, DsLayout, CLayout, ADataType, AScaleDataType, BDataType, BScaleDataType, DsDataType, CDataType, GemmAccDataType, CShuffleDataType, AElementwiseOperation, BElementwiseOperation, CElementwiseOperation, GemmSpec, BlockSize, ScaleBlockM, ScaleBlockN, ScaleBlockK, 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, CDEShuffleBlockTransferScalarPerVectors, BlkGemmPipeSched, BlkGemmPipelineVer, ComputeTypeA, ComputeTypeB, LDSTypeA, LDSTypeB >, and ck::tensor_operation::device::DeviceMoeGemmBlockScale< ALayout, BLayout, DsLayout, CLayout, ADataType, AScaleDataType, BDataType, BScaleDataType, DsDataType, CDataType, GemmAccDataType, CShuffleDataType, AElementwiseOperation, BElementwiseOperation, CElementwiseOperation, GemmSpec, BlockSize, ScaleBlockM, ScaleBlockN, ScaleBlockK, 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, CDEShuffleBlockTransferScalarPerVectors, BlkGemmPipeSched, BlkGemmPipelineVer, ActivationOP, NSwizzle, IsInputGemm, MulRoutedWeight, IndexType, ComputeTypeA, ComputeTypeB, LDSTypeA, LDSTypeB >.

◆ MakeInvokerPointer()

template<typename ALayout, typename BLayout, typename DsLayout, typename ELayout, typename ADataType, typename AScaleType, typename BDataType, typename BScaleType, typename DsDataType, typename EDataType, index_t ScaleBlockM, index_t ScaleBlockN, index_t ScaleBlockK, typename AElementwiseOperation, typename BElementwiseOperation, typename CDEElementwiseOperation>
virtual std::unique_ptr< BaseInvoker > ck::tensor_operation::device::DeviceGemmMultipleD_BlockScale_BPreshuffle< ALayout, BLayout, DsLayout, ELayout, ADataType, AScaleType, BDataType, BScaleType, DsDataType, EDataType, ScaleBlockM, ScaleBlockN, ScaleBlockK, AElementwiseOperation, BElementwiseOperation, CDEElementwiseOperation >::MakeInvokerPointer ( )
pure virtual

Implemented in ck::tensor_operation::device::DeviceGemmMultiD_BlockScale_Xdl_CShuffle_V3_BPreshuffle< ALayout, BLayout, DsLayout, CLayout, ADataType, AScaleDataType, BDataType, BScaleDataType, DsDataType, CDataType, GemmAccDataType, CShuffleDataType, AElementwiseOperation, BElementwiseOperation, CElementwiseOperation, GemmSpec, BlockSize, ScaleBlockM, ScaleBlockN, ScaleBlockK, 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, CDEShuffleBlockTransferScalarPerVectors, BlkGemmPipeSched, BlkGemmPipelineVer, ComputeTypeA, ComputeTypeB, LDSTypeA, LDSTypeB >, and ck::tensor_operation::device::DeviceMoeGemmBlockScale< ALayout, BLayout, DsLayout, CLayout, ADataType, AScaleDataType, BDataType, BScaleDataType, DsDataType, CDataType, GemmAccDataType, CShuffleDataType, AElementwiseOperation, BElementwiseOperation, CElementwiseOperation, GemmSpec, BlockSize, ScaleBlockM, ScaleBlockN, ScaleBlockK, 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, CDEShuffleBlockTransferScalarPerVectors, BlkGemmPipeSched, BlkGemmPipelineVer, ActivationOP, NSwizzle, IsInputGemm, MulRoutedWeight, IndexType, ComputeTypeA, ComputeTypeB, LDSTypeA, LDSTypeB >.

Member Data Documentation

◆ NumDTensor

template<typename ALayout, typename BLayout, typename DsLayout, typename ELayout, typename ADataType, typename AScaleType, typename BDataType, typename BScaleType, typename DsDataType, typename EDataType, index_t ScaleBlockM, index_t ScaleBlockN, index_t ScaleBlockK, typename AElementwiseOperation, typename BElementwiseOperation, typename CDEElementwiseOperation>
index_t ck::tensor_operation::device::DeviceGemmMultipleD_BlockScale_BPreshuffle< ALayout, BLayout, DsLayout, ELayout, ADataType, AScaleType, BDataType, BScaleType, DsDataType, EDataType, ScaleBlockM, ScaleBlockN, ScaleBlockK, AElementwiseOperation, BElementwiseOperation, CDEElementwiseOperation >::NumDTensor = DsDataType::Size()
staticconstexpr

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