BlockGemmARegBRegCRegV2< Problem_, Policy_ > Struct Template Reference

BlockGemmARegBRegCRegV2&lt; Problem_, Policy_ &gt; Struct Template Reference#

Composable Kernel: ck_tile::BlockGemmARegBRegCRegV2< Problem_, Policy_ > Struct Template Reference
ck_tile::BlockGemmARegBRegCRegV2< Problem_, Policy_ > Struct Template Reference

#include <block_gemm_areg_breg_creg_v2.hpp>

Public Types

using Problem = remove_cvref_t<Problem_>
using Policy = remove_cvref_t<Policy_>
using Traits = GemmTraits_<Problem, Policy>
using WarpGemm = typename Traits::WarpGemm
using BlockGemmShape = typename Traits::BlockGemmShape
using ADataType = remove_cvref_t<typename Traits::ADataType>
using BDataType = remove_cvref_t<typename Traits::BDataType>
using CDataType = remove_cvref_t<typename Traits::CDataType>

Public Member Functions

template<typename CBlockTensor, typename ABlockTensor, typename BBlockTensor>
CK_TILE_DEVICE void operator() (CBlockTensor &c_block_tensor, const ABlockTensor &a_block_tensor, const BBlockTensor &b_block_tensor) const
template<typename ABlockTensor, typename BBlockTensor>
CK_TILE_DEVICE auto operator() (const ABlockTensor &a_block_tensor, const BBlockTensor &b_block_tensor) const

Static Public Member Functions

static CK_TILE_DEVICE constexpr auto MakeABlockDistributionEncode ()
static CK_TILE_DEVICE constexpr auto MakeBBlockDistributionEncode ()
static CK_TILE_DEVICE constexpr auto MakeCBlockDistributionEncode ()
static CK_TILE_DEVICE constexpr auto MakeCBlockTile ()

Static Public Attributes

static constexpr auto BlockGemmLoopOrder = Traits::BlockGemmLoopOrder
static constexpr index_t KIterPerWarp = Traits::KIterPerWarp
static constexpr index_t MIterPerWarp = Traits::MIterPerWarp
static constexpr index_t NIterPerWarp = Traits::NIterPerWarp
static constexpr index_t MWarp = Traits::MWarp
static constexpr index_t NWarp = Traits::NWarp
static constexpr bool UseDefaultScheduler = (Problem::NumWaveGroups != 1)

Member Typedef Documentation

◆ ADataType

template<typename Problem_, typename Policy_>
using ck_tile::BlockGemmARegBRegCRegV2< Problem_, Policy_ >::ADataType = remove_cvref_t<typename Traits::ADataType>

◆ BDataType

template<typename Problem_, typename Policy_>
using ck_tile::BlockGemmARegBRegCRegV2< Problem_, Policy_ >::BDataType = remove_cvref_t<typename Traits::BDataType>

◆ BlockGemmShape

template<typename Problem_, typename Policy_>
using ck_tile::BlockGemmARegBRegCRegV2< Problem_, Policy_ >::BlockGemmShape = typename Traits::BlockGemmShape

◆ CDataType

template<typename Problem_, typename Policy_>
using ck_tile::BlockGemmARegBRegCRegV2< Problem_, Policy_ >::CDataType = remove_cvref_t<typename Traits::CDataType>

◆ Policy

template<typename Problem_, typename Policy_>
using ck_tile::BlockGemmARegBRegCRegV2< Problem_, Policy_ >::Policy = remove_cvref_t<Policy_>

◆ Problem

template<typename Problem_, typename Policy_>
using ck_tile::BlockGemmARegBRegCRegV2< Problem_, Policy_ >::Problem = remove_cvref_t<Problem_>

◆ Traits

template<typename Problem_, typename Policy_>
using ck_tile::BlockGemmARegBRegCRegV2< Problem_, Policy_ >::Traits = GemmTraits_<Problem, Policy>

◆ WarpGemm

template<typename Problem_, typename Policy_>
using ck_tile::BlockGemmARegBRegCRegV2< Problem_, Policy_ >::WarpGemm = typename Traits::WarpGemm

Member Function Documentation

◆ MakeABlockDistributionEncode()

template<typename Problem_, typename Policy_>
CK_TILE_DEVICE constexpr auto ck_tile::BlockGemmARegBRegCRegV2< Problem_, Policy_ >::MakeABlockDistributionEncode ( )
inlinestaticconstexpr

◆ MakeBBlockDistributionEncode()

template<typename Problem_, typename Policy_>
CK_TILE_DEVICE constexpr auto ck_tile::BlockGemmARegBRegCRegV2< Problem_, Policy_ >::MakeBBlockDistributionEncode ( )
inlinestaticconstexpr

◆ MakeCBlockDistributionEncode()

template<typename Problem_, typename Policy_>
CK_TILE_DEVICE constexpr auto ck_tile::BlockGemmARegBRegCRegV2< Problem_, Policy_ >::MakeCBlockDistributionEncode ( )
inlinestaticconstexpr

◆ MakeCBlockTile()

template<typename Problem_, typename Policy_>
CK_TILE_DEVICE constexpr auto ck_tile::BlockGemmARegBRegCRegV2< Problem_, Policy_ >::MakeCBlockTile ( )
inlinestaticconstexpr

◆ operator()() [1/2]

template<typename Problem_, typename Policy_>
template<typename CBlockTensor, typename ABlockTensor, typename BBlockTensor>
CK_TILE_DEVICE void ck_tile::BlockGemmARegBRegCRegV2< Problem_, Policy_ >::operator() ( CBlockTensor & c_block_tensor,
const ABlockTensor & a_block_tensor,
const BBlockTensor & b_block_tensor ) const
inline

◆ operator()() [2/2]

template<typename Problem_, typename Policy_>
template<typename ABlockTensor, typename BBlockTensor>
CK_TILE_DEVICE auto ck_tile::BlockGemmARegBRegCRegV2< Problem_, Policy_ >::operator() ( const ABlockTensor & a_block_tensor,
const BBlockTensor & b_block_tensor ) const
inline

Member Data Documentation

◆ BlockGemmLoopOrder

template<typename Problem_, typename Policy_>
auto ck_tile::BlockGemmARegBRegCRegV2< Problem_, Policy_ >::BlockGemmLoopOrder = Traits::BlockGemmLoopOrder
staticconstexpr

◆ KIterPerWarp

template<typename Problem_, typename Policy_>
index_t ck_tile::BlockGemmARegBRegCRegV2< Problem_, Policy_ >::KIterPerWarp = Traits::KIterPerWarp
staticconstexpr

◆ MIterPerWarp

template<typename Problem_, typename Policy_>
index_t ck_tile::BlockGemmARegBRegCRegV2< Problem_, Policy_ >::MIterPerWarp = Traits::MIterPerWarp
staticconstexpr

◆ MWarp

template<typename Problem_, typename Policy_>
index_t ck_tile::BlockGemmARegBRegCRegV2< Problem_, Policy_ >::MWarp = Traits::MWarp
staticconstexpr

◆ NIterPerWarp

template<typename Problem_, typename Policy_>
index_t ck_tile::BlockGemmARegBRegCRegV2< Problem_, Policy_ >::NIterPerWarp = Traits::NIterPerWarp
staticconstexpr

◆ NWarp

template<typename Problem_, typename Policy_>
index_t ck_tile::BlockGemmARegBRegCRegV2< Problem_, Policy_ >::NWarp = Traits::NWarp
staticconstexpr

◆ UseDefaultScheduler

template<typename Problem_, typename Policy_>
bool ck_tile::BlockGemmARegBRegCRegV2< Problem_, Policy_ >::UseDefaultScheduler = (Problem::NumWaveGroups != 1)
staticconstexpr

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