CUDPP  2.3
CUDA Data-Parallel Primitives Library
multisplit_kernel.cuh File Reference

CUDPP kernel-level multisplit routines. More...

#include "cudpp_multisplit.h"
#include <cudpp_globals.h>
#include <cudpp_util.h>
#include "sharedmem.h"
#include <stdint.h>

Functions

Multisplit Functions
template<class T >
__global__ void markBins_general (uint *d_mark, uint *d_elements, uint numElements, uint numBuckets, T bucketMapper)
 
__global__ void packingKeyValuePairs (uint64 *packed, uint *input_key, uint *input_value, uint numElements)
 
__global__ void unpackingKeyValuePairs (uint64 *packed, uint *out_key, uint *out_value, uint numElements)
 
template<uint32_t NUM_W, uint32_t DEPTH, typename bucket_t , typename key_t >
__global__ void histogram_pre_scan_compaction (key_t *input, uint32_t *bin, uint32_t numElements, bucket_t bucket_identifier)
 
template<uint32_t NUM_W, uint32_t DEPTH, typename bucket_t , typename key_t >
__global__ void split_post_scan_compaction (key_t *key_input, uint32_t *warpOffsets, key_t *key_output, uint32_t numElements, bucket_t bucket_identifier)
 
template<uint32_t NUM_W, uint32_t DEPTH, typename bucket_t , typename key_t , typename value_t >
__global__ void split_post_scan_pairs_compaction (key_t *key_input, value_t *value_input, uint32_t *warpOffsets, key_t *key_output, value_t *value_output, uint32_t numElements, bucket_t bucket_identifier)
 
template<uint32_t NUM_W, uint32_t NUM_B, uint32_t LOG_B, uint32_t DEPTH, typename bucket_t , typename key_type >
__global__ void multisplit_WMS_prescan (key_type *input, uint32_t *bin, uint32_t numElements, bucket_t bucket_identifier)
 
template<uint32_t NUM_W, uint32_t NUM_B, uint32_t LOG_B, uint32_t DEPTH, typename bucket_t , typename key_type >
__global__ void multisplit_WMS_postscan (key_type *key_input, uint32_t *warpOffsets, key_type *key_output, uint32_t numElements, bucket_t bucket_identifier)
 
template<uint32_t NUM_W, uint32_t NUM_B, uint32_t LOG_B, uint32_t DEPTH, typename bucket_t , typename key_type , typename value_type >
__global__ void multisplit_WMS_pairs_postscan (key_type *key_input, value_type *value_input, uint32_t *warpOffsets, key_type *key_output, value_type *value_output, uint32_t numElements, bucket_t bucket_identifier)
 
template<uint32_t NUM_W, uint32_t LOG_W, uint32_t NUM_B, uint32_t LOG_B, uint32_t DEPTH, typename bucket_t , typename key_type >
__global__ void multisplit_BMS_prescan (key_type *input, uint32_t *bin, uint32_t numElements, bucket_t bucket_identifier)
 
template<uint32_t NUM_W, uint32_t LOG_W, uint32_t NUM_B, uint32_t LOG_B, uint32_t DEPTH, typename bucket_t , typename key_type >
__global__ void multisplit_BMS_postscan (key_type *key_input, uint32_t *blockOffsets, key_type *key_output, uint32_t numElements, bucket_t bucket_identifier)
 
template<uint32_t NUM_W, uint32_t LOG_W, uint32_t NUM_B, uint32_t LOG_B, uint32_t DEPTH, typename bucket_t , typename key_type , typename value_type >
__global__ void multisplit_BMS_pairs_postscan (key_type *key_input, value_type *value_input, uint32_t *blockOffsets, key_type *key_output, value_type *value_output, uint32_t numElements, bucket_t bucket_identifier)
 

Detailed Description

CUDPP kernel-level multisplit routines.

multisplit_kernel.cu