cub::LoadDirectStriped#

Overloads#

LoadDirectStriped(linear_tid, block_src_it, T(&dst_items)[ItemsPerThread])#

template<int BlockThreads, typename T, int ItemsPerThread, typename RandomAccessIterator>
void cub::LoadDirectStriped(
int linear_tid,
RandomAccessIterator block_src_it,
T (&dst_items)[ItemsPerThread]
)

Load a linear segment of items into a striped arrangement across the thread block.

Assumes a striped arrangement of (block-threads * items-per-thread) items across the thread block, where threadi owns items (i), (i + block-threads), …, (i + (block-threads * (items-per-thread - 1))). For multi-dimensional thread blocks, a row-major thread ordering is assumed.

Template Parameters:
  • BlockThreads – The thread block size in threads

  • T – [inferred] The data type to load.

  • ItemsPerThread – [inferred] The number of consecutive items partitioned onto each thread.

  • RandomAccessIterator – [inferred] The random-access iterator type for input iterator.

Parameters:
  • linear_tid – [in] A suitable 1D thread-identifier for the calling thread (e.g., (threadIdx.y * blockDim.x) + linear_tid for 2D thread blocks)

  • block_src_it – [in] The thread block’s base iterator for loading from

  • dst_items – [out] Destination to load data into

LoadDirectStriped(linear_tid, block_src_it, T(&dst_items)[ItemsPerThread], block_items_end)#

template<int BlockThreads, typename T, int ItemsPerThread, typename RandomAccessIterator>
void cub::LoadDirectStriped(
int linear_tid,
RandomAccessIterator block_src_it,
T (&dst_items)[ItemsPerThread],
int block_items_end
)

Load a linear segment of items into a striped arrangement across the thread block, guarded by range

Assumes a striped arrangement of (block-threads * items-per-thread) items across the thread block, where threadi owns items (i), (i + block-threads), …, (i + (block-threads * (items-per-thread - 1))). For multi-dimensional thread blocks, a row-major thread ordering is assumed.

Template Parameters:
  • BlockThreads – The thread block size in threads

  • T – inferred The data type to load.

  • ItemsPerThread – inferred The number of consecutive items partitioned onto each thread.

  • RandomAccessIterator – inferred The random-access iterator type for input iterator.

Parameters:
  • linear_tid – [in] A suitable 1D thread-identifier for the calling thread (e.g., (threadIdx.y * blockDim.x) + linear_tid for 2D thread blocks)

  • block_src_it – [in] The thread block’s base iterator for loading from

  • dst_items – [out] Destination to load data into

  • block_items_end – [in] Number of valid items to load

LoadDirectStriped(linear_tid, block_src_it, T(&dst_items)[ItemsPerThread], block_items_end, oob_default)#

template<int BlockThreads, typename T, typename DefaultT, int ItemsPerThread, typename RandomAccessIterator>
void cub::LoadDirectStriped(
int linear_tid,
RandomAccessIterator block_src_it,
T (&dst_items)[ItemsPerThread],
int block_items_end,
DefaultT oob_default
)

Load a linear segment of items into a striped arrangement across the thread block, guarded by range, with a fall-back assignment of out-of-bound elements.

Assumes a striped arrangement of (block-threads * items-per-thread) items across the thread block, where threadi owns items (i), (i + block-threads), …, (i + (block-threads * (items-per-thread - 1))). For multi-dimensional thread blocks, a row-major thread ordering is assumed.

Template Parameters:
  • BlockThreads – The thread block size in threads

  • T – inferred The data type to load.

  • ItemsPerThread – inferred The number of consecutive items partitioned onto each thread.

  • RandomAccessIterator – inferred The random-access iterator type for input (may be a simple pointer type).

Parameters:
  • linear_tid – [in] A suitable 1D thread-identifier for the calling thread (e.g., (threadIdx.y * blockDim.x) + linear_tid for 2D thread blocks)

  • block_src_it – [in] The thread block’s base iterator for loading from

  • dst_items – [out] Destination to load data into

  • block_items_end – [in] Number of valid items to load

  • oob_default – [in] Default value to assign out-of-bound items