BlockWeightPreshuffleASmemBSmemCRegV1< Problem_, BlockPolicy_ > Struct Template Reference

BlockWeightPreshuffleASmemBSmemCRegV1&lt; Problem_, BlockPolicy_ &gt; Struct Template Reference#

Composable Kernel: ck_tile::BlockWeightPreshuffleASmemBSmemCRegV1< Problem_, BlockPolicy_ > Struct Template Reference
ck_tile::BlockWeightPreshuffleASmemBSmemCRegV1< Problem_, BlockPolicy_ > Struct Template Reference

#include <block_wp_asmem_bsmem_creg_v1.hpp>

Public Types

using Problem = remove_cvref_t<Problem_>
using BlockPolicy = remove_cvref_t<BlockPolicy_>
using ADataType = remove_cvref_t<typename Problem::ADataType>
using BDataType = remove_cvref_t<typename Problem::BDataType>
using CDataType = remove_cvref_t<typename Problem::CDataType>
using BlockGemmShape = remove_cvref_t<typename Problem::BlockGemmShape>
using BlockTile = remove_cvref_t<typename BlockGemmShape::BlockTile>
using BlockWarps = remove_cvref_t<typename BlockGemmShape::BlockWarps>
using WarpTile = remove_cvref_t<typename BlockGemmShape::WarpTile>
using WG = remove_cvref_t<decltype(config.template at<0>())>

Public Member Functions

template<typename CBlockTensor, typename ABlockWindow, typename BFlatBlockTensor>
CK_TILE_DEVICE void operator() (CBlockTensor &c_block_tensor, ABlockWindow &a_warp_windows, BFlatBlockTensor &b_warp_tensor) const

Static Public Member Functions

static CK_TILE_DEVICE constexpr auto MakeCBlockTile ()

Static Public Attributes

static constexpr auto I0 = number<0>()
static constexpr auto I1 = number<1>()
static constexpr auto I2 = number<2>()
static constexpr auto idxM = I0
static constexpr auto idxN = I1
static constexpr auto idxK = I2
static constexpr index_t kBlockSize = Problem::kBlockSize
static constexpr auto config = BlockPolicy::template GetWarpGemmMWarpNWarp<Problem>()

Member Typedef Documentation

◆ ADataType

template<typename Problem_, typename BlockPolicy_>
using ck_tile::BlockWeightPreshuffleASmemBSmemCRegV1< Problem_, BlockPolicy_ >::ADataType = remove_cvref_t<typename Problem::ADataType>

◆ BDataType

template<typename Problem_, typename BlockPolicy_>
using ck_tile::BlockWeightPreshuffleASmemBSmemCRegV1< Problem_, BlockPolicy_ >::BDataType = remove_cvref_t<typename Problem::BDataType>

◆ BlockGemmShape

template<typename Problem_, typename BlockPolicy_>
using ck_tile::BlockWeightPreshuffleASmemBSmemCRegV1< Problem_, BlockPolicy_ >::BlockGemmShape = remove_cvref_t<typename Problem::BlockGemmShape>

◆ BlockPolicy

template<typename Problem_, typename BlockPolicy_>
using ck_tile::BlockWeightPreshuffleASmemBSmemCRegV1< Problem_, BlockPolicy_ >::BlockPolicy = remove_cvref_t<BlockPolicy_>

◆ BlockTile

template<typename Problem_, typename BlockPolicy_>
using ck_tile::BlockWeightPreshuffleASmemBSmemCRegV1< Problem_, BlockPolicy_ >::BlockTile = remove_cvref_t<typename BlockGemmShape::BlockTile>

◆ BlockWarps

template<typename Problem_, typename BlockPolicy_>
using ck_tile::BlockWeightPreshuffleASmemBSmemCRegV1< Problem_, BlockPolicy_ >::BlockWarps = remove_cvref_t<typename BlockGemmShape::BlockWarps>

◆ CDataType

template<typename Problem_, typename BlockPolicy_>
using ck_tile::BlockWeightPreshuffleASmemBSmemCRegV1< Problem_, BlockPolicy_ >::CDataType = remove_cvref_t<typename Problem::CDataType>

◆ Problem

template<typename Problem_, typename BlockPolicy_>
using ck_tile::BlockWeightPreshuffleASmemBSmemCRegV1< Problem_, BlockPolicy_ >::Problem = remove_cvref_t<Problem_>

◆ WarpTile

template<typename Problem_, typename BlockPolicy_>
using ck_tile::BlockWeightPreshuffleASmemBSmemCRegV1< Problem_, BlockPolicy_ >::WarpTile = remove_cvref_t<typename BlockGemmShape::WarpTile>

◆ WG

template<typename Problem_, typename BlockPolicy_>
using ck_tile::BlockWeightPreshuffleASmemBSmemCRegV1< Problem_, BlockPolicy_ >::WG = remove_cvref_t<decltype(config.template at<0>())>

Member Function Documentation

◆ MakeCBlockTile()

template<typename Problem_, typename BlockPolicy_>
CK_TILE_DEVICE constexpr auto ck_tile::BlockWeightPreshuffleASmemBSmemCRegV1< Problem_, BlockPolicy_ >::MakeCBlockTile ( )
inlinestaticconstexpr

◆ operator()()

template<typename Problem_, typename BlockPolicy_>
template<typename CBlockTensor, typename ABlockWindow, typename BFlatBlockTensor>
CK_TILE_DEVICE void ck_tile::BlockWeightPreshuffleASmemBSmemCRegV1< Problem_, BlockPolicy_ >::operator() ( CBlockTensor & c_block_tensor,
ABlockWindow & a_warp_windows,
BFlatBlockTensor & b_warp_tensor ) const
inline

Member Data Documentation

◆ config

template<typename Problem_, typename BlockPolicy_>
auto ck_tile::BlockWeightPreshuffleASmemBSmemCRegV1< Problem_, BlockPolicy_ >::config = BlockPolicy::template GetWarpGemmMWarpNWarp<Problem>()
staticconstexpr

◆ I0

template<typename Problem_, typename BlockPolicy_>
auto ck_tile::BlockWeightPreshuffleASmemBSmemCRegV1< Problem_, BlockPolicy_ >::I0 = number<0>()
staticconstexpr

◆ I1

template<typename Problem_, typename BlockPolicy_>
auto ck_tile::BlockWeightPreshuffleASmemBSmemCRegV1< Problem_, BlockPolicy_ >::I1 = number<1>()
staticconstexpr

◆ I2

template<typename Problem_, typename BlockPolicy_>
auto ck_tile::BlockWeightPreshuffleASmemBSmemCRegV1< Problem_, BlockPolicy_ >::I2 = number<2>()
staticconstexpr

◆ idxK

template<typename Problem_, typename BlockPolicy_>
auto ck_tile::BlockWeightPreshuffleASmemBSmemCRegV1< Problem_, BlockPolicy_ >::idxK = I2
staticconstexpr

◆ idxM

template<typename Problem_, typename BlockPolicy_>
auto ck_tile::BlockWeightPreshuffleASmemBSmemCRegV1< Problem_, BlockPolicy_ >::idxM = I0
staticconstexpr

◆ idxN

template<typename Problem_, typename BlockPolicy_>
auto ck_tile::BlockWeightPreshuffleASmemBSmemCRegV1< Problem_, BlockPolicy_ >::idxN = I1
staticconstexpr

◆ kBlockSize

template<typename Problem_, typename BlockPolicy_>
index_t ck_tile::BlockWeightPreshuffleASmemBSmemCRegV1< Problem_, BlockPolicy_ >::kBlockSize = Problem::kBlockSize
staticconstexpr

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