BlockReduce2d< Problem_, Policy_ > Struct Template Reference

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

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

#include <block_reduce2d.hpp>

Public Types

using Problem = remove_cvref_t<Problem_>
using XDataType = typename Problem::XDataType
using ComputeDataType = typename Problem::ComputeDataType

Public Member Functions

CK_TILE_DEVICE constexpr BlockReduce2d ()
template<typename XDistributedTensor_, typename YDistributedTensor_, typename ReduceFunc, typename ReducePacksPerXDim = uniform_sequence_gen_t<2, 1>>
CK_TILE_DEVICE void operator() (const XDistributedTensor_ &x_tensor, YDistributedTensor_ &y_tensor, const ReduceFunc &reduce_func, ReducePacksPerXDim={})
template<typename XDistributedTensor_, typename YDistributedTensor_, typename YIndexDistributedTensor_, typename ReduceFunc, typename IndexCalculatorFunc, typename ReducePacksPerXDim = uniform_sequence_gen_t<2, 1>>
CK_TILE_DEVICE void operator() (const XDistributedTensor_ &x_tensor, YDistributedTensor_ &y_tensor, YIndexDistributedTensor_ &y_index_tensor, const ReduceFunc &reduce_func, const IndexCalculatorFunc &index_calculator, ReducePacksPerXDim={})
template<typename XDistributedTensor_, typename ReduceFunc, typename ReducePacksPerXDim = uniform_sequence_gen_t<2, 1>>
CK_TILE_DEVICE auto operator() (const XDistributedTensor_ &x_tensor, const ComputeDataType &reduce_init, const ReduceFunc &reduce_func, ReducePacksPerXDim={})

Static Public Member Functions

template<typename XDistributedTensor_>
static CK_TILE_DEVICE auto MakeYBlockTile ()
template<typename XDistributedTensor_, typename IndexDataType = index_t>
static CK_TILE_DEVICE auto MakeYIndexBlockTile ()

Member Typedef Documentation

◆ ComputeDataType

template<typename Problem_, typename Policy_ = void>
using ck_tile::BlockReduce2d< Problem_, Policy_ >::ComputeDataType = typename Problem::ComputeDataType

◆ Problem

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

◆ XDataType

template<typename Problem_, typename Policy_ = void>
using ck_tile::BlockReduce2d< Problem_, Policy_ >::XDataType = typename Problem::XDataType

Constructor & Destructor Documentation

◆ BlockReduce2d()

template<typename Problem_, typename Policy_ = void>
CK_TILE_DEVICE constexpr ck_tile::BlockReduce2d< Problem_, Policy_ >::BlockReduce2d ( )
inlineconstexpr

Member Function Documentation

◆ MakeYBlockTile()

template<typename Problem_, typename Policy_ = void>
template<typename XDistributedTensor_>
CK_TILE_DEVICE auto ck_tile::BlockReduce2d< Problem_, Policy_ >::MakeYBlockTile ( )
inlinestatic

◆ MakeYIndexBlockTile()

template<typename Problem_, typename Policy_ = void>
template<typename XDistributedTensor_, typename IndexDataType = index_t>
CK_TILE_DEVICE auto ck_tile::BlockReduce2d< Problem_, Policy_ >::MakeYIndexBlockTile ( )
inlinestatic

◆ operator()() [1/3]

template<typename Problem_, typename Policy_ = void>
template<typename XDistributedTensor_, typename ReduceFunc, typename ReducePacksPerXDim = uniform_sequence_gen_t<2, 1>>
CK_TILE_DEVICE auto ck_tile::BlockReduce2d< Problem_, Policy_ >::operator() ( const XDistributedTensor_ & x_tensor,
const ComputeDataType & reduce_init,
const ReduceFunc & reduce_func,
ReducePacksPerXDim = {} )
inline

◆ operator()() [2/3]

template<typename Problem_, typename Policy_ = void>
template<typename XDistributedTensor_, typename YDistributedTensor_, typename ReduceFunc, typename ReducePacksPerXDim = uniform_sequence_gen_t<2, 1>>
CK_TILE_DEVICE void ck_tile::BlockReduce2d< Problem_, Policy_ >::operator() ( const XDistributedTensor_ & x_tensor,
YDistributedTensor_ & y_tensor,
const ReduceFunc & reduce_func,
ReducePacksPerXDim = {} )
inline

◆ operator()() [3/3]

template<typename Problem_, typename Policy_ = void>
template<typename XDistributedTensor_, typename YDistributedTensor_, typename YIndexDistributedTensor_, typename ReduceFunc, typename IndexCalculatorFunc, typename ReducePacksPerXDim = uniform_sequence_gen_t<2, 1>>
CK_TILE_DEVICE void ck_tile::BlockReduce2d< Problem_, Policy_ >::operator() ( const XDistributedTensor_ & x_tensor,
YDistributedTensor_ & y_tensor,
YIndexDistributedTensor_ & y_index_tensor,
const ReduceFunc & reduce_func,
const IndexCalculatorFunc & index_calculator,
ReducePacksPerXDim = {} )
inline

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