CShuffleEpilogue< Problem_, Policy_ > Struct Template Reference#
Public Types |
Public Member Functions |
Static Public Member Functions |
Static Public Attributes |
List of all members
ck_tile::CShuffleEpilogue< Problem_, Policy_ > Struct Template Reference
#include <cshuffle_epilogue.hpp>
Public Types | |
using | Problem = remove_cvref_t< Problem_ > |
using | AccDataType = remove_cvref_t< typename Problem::AccDataType > |
using | ODataType = remove_cvref_t< typename Problem::ODataType > |
using | CLayout = remove_cvref_t< typename Problem::CLayout > |
using | WG = WarpGemmMfmaDispatcher< ODataType, ODataType, AccDataType, kMPerXdl, kNPerXdl, kKPerXdl, isCTransposed > |
using | CWarpDstr = typename WG::CWarpDstr |
using | CWarpTensor = typename WG::CWarpTensor |
Public Member Functions | |
template<typename ODramWindow , typename OAccTile , memory_operation_enum out_memory_data_op = memory_operation_enum::set> | |
CK_TILE_DEVICE auto | operator() (ODramWindow &out_dram_window, const OAccTile &o_acc_tile, void *p_smem) |
Static Public Member Functions | |
template<typename ODataType > | |
static constexpr CK_TILE_HOST_DEVICE auto | GetVectorSizeC () |
Get the vector store size for C tensor. More... | |
template<typename Problem > | |
static constexpr CK_TILE_HOST_DEVICE auto | MakeLdsBlockDescriptor () |
static constexpr CK_TILE_HOST_DEVICE index_t | GetSmemSize () |
Static Public Attributes | |
static constexpr index_t | kBlockSize = Problem::kBlockSize |
static constexpr index_t | kMPerBlock = Problem::kMPerBlock |
static constexpr index_t | kNPerBlock = Problem::kNPerBlock |
static constexpr index_t | kMWave = Problem::kMWave |
static constexpr index_t | kNWave = Problem::kNWave |
static constexpr index_t | kMPerXdl = Problem::kMPerXdl |
static constexpr index_t | kNPerXdl = Problem::kNPerXdl |
static constexpr index_t | kKPerXdl = Problem::kKPerXdl |
static constexpr index_t | isCTransposed = Problem::isCTransposed |
static constexpr index_t | kMPerIteration = kMPerXdl * kMWave |
static constexpr index_t | kNPerIteration = kNPerXdl * kNWave |
Member Typedef Documentation
◆ AccDataType
template<typename Problem_ , typename Policy_ = void>
using ck_tile::CShuffleEpilogue< Problem_, Policy_ >::AccDataType = remove_cvref_t<typename Problem::AccDataType> |
◆ CLayout
template<typename Problem_ , typename Policy_ = void>
using ck_tile::CShuffleEpilogue< Problem_, Policy_ >::CLayout = remove_cvref_t<typename Problem::CLayout> |
◆ CWarpDstr
template<typename Problem_ , typename Policy_ = void>
using ck_tile::CShuffleEpilogue< Problem_, Policy_ >::CWarpDstr = typename WG::CWarpDstr |
◆ CWarpTensor
template<typename Problem_ , typename Policy_ = void>
using ck_tile::CShuffleEpilogue< Problem_, Policy_ >::CWarpTensor = typename WG::CWarpTensor |
◆ ODataType
template<typename Problem_ , typename Policy_ = void>
using ck_tile::CShuffleEpilogue< Problem_, Policy_ >::ODataType = remove_cvref_t<typename Problem::ODataType> |
◆ Problem
template<typename Problem_ , typename Policy_ = void>
using ck_tile::CShuffleEpilogue< Problem_, Policy_ >::Problem = remove_cvref_t<Problem_> |
◆ WG
template<typename Problem_ , typename Policy_ = void>
using ck_tile::CShuffleEpilogue< Problem_, Policy_ >::WG = WarpGemmMfmaDispatcher<ODataType, ODataType, AccDataType, kMPerXdl, kNPerXdl, kKPerXdl, isCTransposed> |
Member Function Documentation
◆ GetSmemSize()
template<typename Problem_ , typename Policy_ = void>
|
inlinestaticconstexpr |
◆ GetVectorSizeC()
template<typename Problem_ , typename Policy_ = void>
template<typename ODataType >
|
inlinestaticconstexpr |
Get the vector store size for C tensor.
- Note
- The vector store size for output C tensor would depend on multiple factors like its data layout and warp gemm C transposition. In general it would be the number of consecutive elements in contiguous C dimension hold by single thread.
- Returns
- The vector store size for C tensor.
◆ MakeLdsBlockDescriptor()
template<typename Problem_ , typename Policy_ = void>
template<typename Problem >
|
inlinestaticconstexpr |
◆ operator()()
template<typename Problem_ , typename Policy_ = void>
template<typename ODramWindow , typename OAccTile , memory_operation_enum out_memory_data_op = memory_operation_enum::set>
|
inline |
Member Data Documentation
◆ isCTransposed
template<typename Problem_ , typename Policy_ = void>
|
staticconstexpr |
◆ kBlockSize
template<typename Problem_ , typename Policy_ = void>
|
staticconstexpr |
◆ kKPerXdl
template<typename Problem_ , typename Policy_ = void>
|
staticconstexpr |
◆ kMPerBlock
template<typename Problem_ , typename Policy_ = void>
|
staticconstexpr |
◆ kMPerIteration
template<typename Problem_ , typename Policy_ = void>
|
staticconstexpr |
◆ kMPerXdl
template<typename Problem_ , typename Policy_ = void>
|
staticconstexpr |
◆ kMWave
template<typename Problem_ , typename Policy_ = void>
|
staticconstexpr |
◆ kNPerBlock
template<typename Problem_ , typename Policy_ = void>
|
staticconstexpr |
◆ kNPerIteration
template<typename Problem_ , typename Policy_ = void>
|
staticconstexpr |
◆ kNPerXdl
template<typename Problem_ , typename Policy_ = void>
|
staticconstexpr |
◆ kNWave
template<typename Problem_ , typename Policy_ = void>
|
staticconstexpr |
The documentation for this struct was generated from the following file:
- include/ck_tile/ops/epilogue/cshuffle_epilogue.hpp