CUB  
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Functions
block_merge_sort.cuh File Reference
#include <cub/thread/thread_sort.cuh>
#include <cub/util_math.cuh>
#include <cub/util_namespace.cuh>
#include <cub/util_ptx.cuh>
#include <cub/util_type.cuh>

Classes

class  BlockMergeSortStrategy< KeyT, ValueT, NUM_THREADS, ITEMS_PER_THREAD, SynchronizationPolicy >
 Generalized merge sort algorithm. More...
 
struct  BlockMergeSortStrategy< KeyT, ValueT, NUM_THREADS, ITEMS_PER_THREAD, SynchronizationPolicy >::TempStorage
 The operations exposed by BlockMergeSort require a temporary memory allocation of this nested type for thread communication. This opaque storage can be allocated directly using the __shared__ keyword. Alternatively, it can be aliased to externally allocated memory (shared or global) or union'd with other storage allocation types to facilitate memory reuse. More...
 
class  BlockMergeSort< KeyT, BLOCK_DIM_X, ITEMS_PER_THREAD, ValueT, BLOCK_DIM_Y, BLOCK_DIM_Z >
 The BlockMergeSort class provides methods for sorting items partitioned across a CUDA thread block using a merge sorting method. More...
 

Functions

template<typename KeyT , typename KeyIteratorT , typename OffsetT , typename BinaryPred >
CUB_NAMESPACE_BEGIN __device__
__forceinline__ OffsetT 
MergePath (KeyIteratorT keys1, KeyIteratorT keys2, OffsetT keys1_count, OffsetT keys2_count, OffsetT diag, BinaryPred binary_pred)
 
template<typename KeyT , typename CompareOp , int ITEMS_PER_THREAD>
__device__ __forceinline__ void SerialMerge (KeyT *keys_shared, int keys1_beg, int keys2_beg, int keys1_count, int keys2_count, KeyT(&output)[ITEMS_PER_THREAD], int(&indices)[ITEMS_PER_THREAD], CompareOp compare_op)
 

Function Documentation

template<typename KeyT , typename KeyIteratorT , typename OffsetT , typename BinaryPred >
CUB_NAMESPACE_BEGIN __device__ __forceinline__ OffsetT MergePath ( KeyIteratorT  keys1,
KeyIteratorT  keys2,
OffsetT  keys1_count,
OffsetT  keys2_count,
OffsetT  diag,
BinaryPred  binary_pred 
)
template<typename KeyT , typename CompareOp , int ITEMS_PER_THREAD>
__device__ __forceinline__ void SerialMerge ( KeyT *  keys_shared,
int  keys1_beg,
int  keys2_beg,
int  keys1_count,
int  keys2_count,
KeyT(&)  output[ITEMS_PER_THREAD],
int(&)  indices[ITEMS_PER_THREAD],
CompareOp  compare_op 
)