cub::AgentWarpReducePolicy#

template<int _BLOCK_THREADS, int _WARP_THREADS, int NOMINAL_ITEMS_PER_THREAD_4B, typename ComputeT, int _VECTOR_LOAD_LENGTH, CacheLoadModifier _LOAD_MODIFIER>
struct AgentWarpReducePolicy#

Parameterizable tuning policy type for AgentReduce.

Template Parameters:
  • _BLOCK_THREADS – Threads per thread block

  • _WARP_THREADS – Threads per warp

  • NOMINAL_ITEMS_PER_THREAD_4B – Items per thread (per tile of input)

  • ComputeT – Dominant compute type

  • _VECTOR_LOAD_LENGTH – Number of items per vectorized load

  • _LOAD_MODIFIER – Cache load modifier for reading input elements

Public Static Attributes

static constexpr int WARP_THREADS = _WARP_THREADS#

Number of threads per warp.

static constexpr int VECTOR_LOAD_LENGTH = _VECTOR_LOAD_LENGTH#

Number of items per vectorized load.

static constexpr int BLOCK_THREADS = _BLOCK_THREADS#

Number of threads per block.

static constexpr int ITEMS_PER_THREAD = detail::MemBoundScaling<0, NOMINAL_ITEMS_PER_THREAD_4B, ComputeT>::ITEMS_PER_THREAD#

Number of items per thread.

static constexpr CacheLoadModifier LOAD_MODIFIER = _LOAD_MODIFIER#

Cache load modifier for reading input elements.

static constexpr int ITEMS_PER_TILE = ITEMS_PER_THREAD * WARP_THREADS#

Number of items per tile.

static constexpr int SEGMENTS_PER_BLOCK = BLOCK_THREADS / WARP_THREADS#

Number of segments per block.