Invoker Struct Reference

Invoker Struct Reference#

Composable Kernel: ck::tensor_operation::device::DeviceGemm_Wmma_CShuffleV3_Common< GridwiseGemm, AsDataType, BsDataType, DsDataType, EDataType, MPerBlock, NPerBlock, KPerBlock, BlockSize, AK1, BK1, GemmSpec, CDEShuffleBlockTransferScalarPerVectors, BlkGemmPipeSched, BlkGemmPipelineVer, ComputeTypeA, ComputeTypeB >::Invoker Struct Reference
ck::tensor_operation::device::DeviceGemm_Wmma_CShuffleV3_Common< GridwiseGemm, AsDataType, BsDataType, DsDataType, EDataType, MPerBlock, NPerBlock, KPerBlock, BlockSize, AK1, BK1, GemmSpec, CDEShuffleBlockTransferScalarPerVectors, BlkGemmPipeSched, BlkGemmPipelineVer, ComputeTypeA, ComputeTypeB >::Invoker Struct Reference

Helper structure responsible for kernel invocation. More...

#include <device_gemm_wmma_cshuffle_v3_common.hpp>

Inheritance diagram for ck::tensor_operation::device::DeviceGemm_Wmma_CShuffleV3_Common< GridwiseGemm, AsDataType, BsDataType, DsDataType, EDataType, MPerBlock, NPerBlock, KPerBlock, BlockSize, AK1, BK1, GemmSpec, CDEShuffleBlockTransferScalarPerVectors, BlkGemmPipeSched, BlkGemmPipelineVer, ComputeTypeA, ComputeTypeB >::Invoker:
ck::tensor_operation::device::BaseInvoker

Public Member Functions

float Run (const Argument &arg, const StreamConfig &stream_config=StreamConfig{})
 This function issues GPU kernel execution.
float Run (const BaseArgument *p_arg, const StreamConfig &stream_config=StreamConfig{}) override
Public Member Functions inherited from ck::tensor_operation::device::BaseInvoker
 BaseInvoker ()=default
 BaseInvoker (const BaseInvoker &)=default
BaseInvokeroperator= (const BaseInvoker &)=default
virtual ~BaseInvoker ()

Detailed Description

template<typename GridwiseGemm, typename AsDataType, typename BsDataType, typename DsDataType, typename EDataType, index_t MPerBlock, index_t NPerBlock, index_t KPerBlock, index_t BlockSize, index_t AK1, index_t BK1, GemmSpecialization GemmSpec, typename CDEShuffleBlockTransferScalarPerVectors, BlockGemmPipelineScheduler BlkGemmPipeSched, BlockGemmPipelineVersion BlkGemmPipelineVer, typename ComputeTypeA, typename ComputeTypeB>
struct ck::tensor_operation::device::DeviceGemm_Wmma_CShuffleV3_Common< GridwiseGemm, AsDataType, BsDataType, DsDataType, EDataType, MPerBlock, NPerBlock, KPerBlock, BlockSize, AK1, BK1, GemmSpec, CDEShuffleBlockTransferScalarPerVectors, BlkGemmPipeSched, BlkGemmPipelineVer, ComputeTypeA, ComputeTypeB >::Invoker

Helper structure responsible for kernel invocation.

Invoker class is responsible for preparation and invocation of actual GPU

kernel function. It usually determines the launched grid size prepares kernel arguments as well as perform specific kernel configuration selection based on runtime arguments.

Note
If appropriately configured it may measure kernel execution time.

Member Function Documentation

◆ Run() [1/2]

template<typename GridwiseGemm, typename AsDataType, typename BsDataType, typename DsDataType, typename EDataType, index_t MPerBlock, index_t NPerBlock, index_t KPerBlock, index_t BlockSize, index_t AK1, index_t BK1, GemmSpecialization GemmSpec, typename CDEShuffleBlockTransferScalarPerVectors, BlockGemmPipelineScheduler BlkGemmPipeSched, BlockGemmPipelineVersion BlkGemmPipelineVer, typename ComputeTypeA, typename ComputeTypeB>
float ck::tensor_operation::device::DeviceGemm_Wmma_CShuffleV3_Common< GridwiseGemm, AsDataType, BsDataType, DsDataType, EDataType, MPerBlock, NPerBlock, KPerBlock, BlockSize, AK1, BK1, GemmSpec, CDEShuffleBlockTransferScalarPerVectors, BlkGemmPipeSched, BlkGemmPipelineVer, ComputeTypeA, ComputeTypeB >::Invoker::Run ( const Argument & arg,
const StreamConfig & stream_config = StreamConfig{} )
inline

This function issues GPU kernel execution.

Parameters
argThe GPU kernel arguments.
stream_configThe HIP stream configuration helper structure.
Returns
The kernel's average execution time (if time measurement is enabled).

◆ Run() [2/2]

template<typename GridwiseGemm, typename AsDataType, typename BsDataType, typename DsDataType, typename EDataType, index_t MPerBlock, index_t NPerBlock, index_t KPerBlock, index_t BlockSize, index_t AK1, index_t BK1, GemmSpecialization GemmSpec, typename CDEShuffleBlockTransferScalarPerVectors, BlockGemmPipelineScheduler BlkGemmPipeSched, BlockGemmPipelineVersion BlkGemmPipelineVer, typename ComputeTypeA, typename ComputeTypeB>
float ck::tensor_operation::device::DeviceGemm_Wmma_CShuffleV3_Common< GridwiseGemm, AsDataType, BsDataType, DsDataType, EDataType, MPerBlock, NPerBlock, KPerBlock, BlockSize, AK1, BK1, GemmSpec, CDEShuffleBlockTransferScalarPerVectors, BlkGemmPipeSched, BlkGemmPipelineVer, ComputeTypeA, ComputeTypeB >::Invoker::Run ( const BaseArgument * p_arg,
const StreamConfig & stream_config = StreamConfig{} )
inlineoverridevirtual

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