EpilogueChainer< Scheduler > Struct Template Reference

EpilogueChainer&lt; Scheduler &gt; Struct Template Reference#

Composable Kernel: ck_tile::EpilogueChainer< Scheduler > Struct Template Reference
ck_tile::EpilogueChainer< Scheduler > Struct Template Reference

Epilogue Chainer - Modular epilogue processing facilitator. More...

#include <epilogue_chainer.hpp>

Public Types

using Problem = typename Scheduler::ProblemType
 
using BaseOp = typename Scheduler::BaseOp
 
using ODataType = typename BaseOp::ODataType
 
using DsDataType = typename BaseOp::DsDataType
 
using DsLayout = typename BaseOp::DsLayout
 
using AccDataType = typename BaseOp::AccDataType
 

Public Member Functions

template<typename OutWindow , typename AccTile , typename AuxWindows , typename... Args>
CK_TILE_DEVICE void operator() (OutWindow &out_window, const AccTile &acc_tile, const AuxWindows &aux_windows, void *p_smem, Args &&... args) const
 Process epilogue through scheduler-defined operation graph. More...
 

Static Public Member Functions

static constexpr CK_TILE_HOST_DEVICE index_t GetSmemSize ()
 
static constexpr CK_TILE_HOST_DEVICE index_t GetVectorSizeC ()
 
template<index_t I>
static constexpr CK_TILE_HOST_DEVICE index_t GetVectorSizeD (number< I > idx)
 
static constexpr CK_TILE_DEVICE auto MakeLdsDistributionEncode ()
 

Static Public Attributes

static constexpr auto MemoryOperation = BaseOp::MemoryOperation
 

Detailed Description

template<typename Scheduler>
struct ck_tile::EpilogueChainer< Scheduler >

Epilogue Chainer - Modular epilogue processing facilitator.

Overview
EpilogueChainer provides an interface for processing epilogue operations through schedules. The chainer uses decomposed epilogue operations, these are scheduled/sequenced by a Scheduler to form operation graphs.
Template Parameters
SchedulerThe schedule provider that defines epilogue operation graphs

Member Typedef Documentation

◆ AccDataType

template<typename Scheduler >
using ck_tile::EpilogueChainer< Scheduler >::AccDataType = typename BaseOp::AccDataType

◆ BaseOp

template<typename Scheduler >
using ck_tile::EpilogueChainer< Scheduler >::BaseOp = typename Scheduler::BaseOp

◆ DsDataType

template<typename Scheduler >
using ck_tile::EpilogueChainer< Scheduler >::DsDataType = typename BaseOp::DsDataType

◆ DsLayout

template<typename Scheduler >
using ck_tile::EpilogueChainer< Scheduler >::DsLayout = typename BaseOp::DsLayout

◆ ODataType

template<typename Scheduler >
using ck_tile::EpilogueChainer< Scheduler >::ODataType = typename BaseOp::ODataType

◆ Problem

template<typename Scheduler >
using ck_tile::EpilogueChainer< Scheduler >::Problem = typename Scheduler::ProblemType

Member Function Documentation

◆ GetSmemSize()

template<typename Scheduler >
static constexpr CK_TILE_HOST_DEVICE index_t ck_tile::EpilogueChainer< Scheduler >::GetSmemSize ( )
inlinestaticconstexpr

◆ GetVectorSizeC()

template<typename Scheduler >
static constexpr CK_TILE_HOST_DEVICE index_t ck_tile::EpilogueChainer< Scheduler >::GetVectorSizeC ( )
inlinestaticconstexpr

◆ GetVectorSizeD()

template<typename Scheduler >
template<index_t I>
static constexpr CK_TILE_HOST_DEVICE index_t ck_tile::EpilogueChainer< Scheduler >::GetVectorSizeD ( number< I >  idx)
inlinestaticconstexpr

◆ MakeLdsDistributionEncode()

template<typename Scheduler >
static constexpr CK_TILE_DEVICE auto ck_tile::EpilogueChainer< Scheduler >::MakeLdsDistributionEncode ( )
inlinestaticconstexpr

◆ operator()()

template<typename Scheduler >
template<typename OutWindow , typename AccTile , typename AuxWindows , typename... Args>
CK_TILE_DEVICE void ck_tile::EpilogueChainer< Scheduler >::operator() ( OutWindow &  out_window,
const AccTile &  acc_tile,
const AuxWindows &  aux_windows,
void *  p_smem,
Args &&...  args 
) const
inline

Process epilogue through scheduler-defined operation graph.

Flow
  1. Create shared context through scheduler
  2. Generate operation schedule based on arguments
  3. Run scheduled operations in sequence

Member Data Documentation

◆ MemoryOperation

template<typename Scheduler >
constexpr auto ck_tile::EpilogueChainer< Scheduler >::MemoryOperation = BaseOp::MemoryOperation
staticconstexpr

The documentation for this struct was generated from the following file:
  • /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/develop/include/ck_tile/ops/epilogue/chainer/epilogue_chainer.hpp