BlockReduce2dLinearCrossWarpSync< Problem_, Policy_ > Struct Template Reference

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

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

#include <block_reduce2d.hpp>

Public Types

using Problem = remove_cvref_t<Problem_>
using BlockShape = typename Problem::BlockShape

Public Member Functions

template<typename YDistributedTensor_, typename ReduceFunc>
CK_TILE_DEVICE void operator() (YDistributedTensor_ &y_tensor, void *smem, const ReduceFunc &reduce_func)
template<typename YDistributedTensor_, typename YIndexDistributedTensor_, typename ReduceFunc>
CK_TILE_DEVICE void operator() (YDistributedTensor_ &y_tensor, YIndexDistributedTensor_ &y_index_tensor, void *smem, void *smem_indices, const ReduceFunc &reduce_func)

Static Public Member Functions

template<typename YDistributedTensor_>
static CK_TILE_DEVICE constexpr index_t GetReduceWarps ()
template<typename YDistributedTensor_>
static CK_TILE_HOST_DEVICE constexpr index_t GetSmemSize ()
template<typename YIndexDistributedTensor_>
static CK_TILE_HOST_DEVICE constexpr index_t GetIndicesSmemSize ()

Member Typedef Documentation

◆ BlockShape

template<typename Problem_, typename Policy_ = void>
using ck_tile::BlockReduce2dLinearCrossWarpSync< Problem_, Policy_ >::BlockShape = typename Problem::BlockShape

◆ Problem

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

Member Function Documentation

◆ GetIndicesSmemSize()

template<typename Problem_, typename Policy_ = void>
template<typename YIndexDistributedTensor_>
CK_TILE_HOST_DEVICE constexpr index_t ck_tile::BlockReduce2dLinearCrossWarpSync< Problem_, Policy_ >::GetIndicesSmemSize ( )
inlinestaticconstexpr

◆ GetReduceWarps()

template<typename Problem_, typename Policy_ = void>
template<typename YDistributedTensor_>
CK_TILE_DEVICE constexpr index_t ck_tile::BlockReduce2dLinearCrossWarpSync< Problem_, Policy_ >::GetReduceWarps ( )
inlinestaticconstexpr

◆ GetSmemSize()

template<typename Problem_, typename Policy_ = void>
template<typename YDistributedTensor_>
CK_TILE_HOST_DEVICE constexpr index_t ck_tile::BlockReduce2dLinearCrossWarpSync< Problem_, Policy_ >::GetSmemSize ( )
inlinestaticconstexpr

◆ operator()() [1/2]

template<typename Problem_, typename Policy_ = void>
template<typename YDistributedTensor_, typename ReduceFunc>
CK_TILE_DEVICE void ck_tile::BlockReduce2dLinearCrossWarpSync< Problem_, Policy_ >::operator() ( YDistributedTensor_ & y_tensor,
void * smem,
const ReduceFunc & reduce_func )
inline

◆ operator()() [2/2]

template<typename Problem_, typename Policy_ = void>
template<typename YDistributedTensor_, typename YIndexDistributedTensor_, typename ReduceFunc>
CK_TILE_DEVICE void ck_tile::BlockReduce2dLinearCrossWarpSync< Problem_, Policy_ >::operator() ( YDistributedTensor_ & y_tensor,
YIndexDistributedTensor_ & y_index_tensor,
void * smem,
void * smem_indices,
const ReduceFunc & reduce_func )
inline

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