< Signed integer type for global offsets More...
< Signed integer type for global offsets
Utility class for dispatching the appropriately-tuned kernels for device-wide radix sort
Definition at line 807 of file dispatch_radix_sort.cuh.
Inheritance diagram for cub::DispatchRadixSort< IS_DESCENDING, KeyT, ValueT, OffsetT >:Data Structures | |
| struct | PassConfig |
| Pass configuration structure. More... | |
Public Types | |
| enum | { KEYS_ONLY = (Equals<ValueT, NullType>::VALUE) } |
Public Types inherited from cub::DeviceRadixSortPolicy< KeyT, ValueT, OffsetT > | |
| enum | { KEYS_ONLY = (Equals<ValueT, NullType>::VALUE) } |
| typedef If<(sizeof(ValueT)>4)&&(sizeof(KeyT)< sizeof(ValueT)), ValueT, KeyT >::Type | DominantT |
| typedef Policy700 | MaxPolicy |
| MaxPolicy. | |
Public Member Functions | |
| CUB_RUNTIME_FUNCTION __forceinline__ | DispatchRadixSort (void *d_temp_storage, size_t &temp_storage_bytes, DoubleBuffer< KeyT > &d_keys, DoubleBuffer< ValueT > &d_values, OffsetT num_items, int begin_bit, int end_bit, bool is_overwrite_okay, cudaStream_t stream, bool debug_synchronous, int ptx_version) |
| Constructor. | |
| template<typename ActivePolicyT , typename SingleTileKernelT > | |
| CUB_RUNTIME_FUNCTION __forceinline__ cudaError_t | InvokeSingleTile (SingleTileKernelT single_tile_kernel) |
| Invoke a single block to sort in-core. | |
| template<typename PassConfigT > | |
| CUB_RUNTIME_FUNCTION __forceinline__ cudaError_t | InvokePass (const KeyT *d_keys_in, KeyT *d_keys_out, const ValueT *d_values_in, ValueT *d_values_out, OffsetT *d_spine, int spine_length, int ¤t_bit, PassConfigT &pass_config) |
| template<typename ActivePolicyT , typename UpsweepKernelT , typename ScanKernelT , typename DownsweepKernelT > | |
| CUB_RUNTIME_FUNCTION __forceinline__ cudaError_t | InvokePasses (UpsweepKernelT upsweep_kernel, UpsweepKernelT alt_upsweep_kernel, ScanKernelT scan_kernel, DownsweepKernelT downsweep_kernel, DownsweepKernelT alt_downsweep_kernel) |
| Invocation (run multiple digit passes) | |
| template<typename ActivePolicyT > | |
| CUB_RUNTIME_FUNCTION __forceinline__ cudaError_t | Invoke () |
| Invocation. | |
Static Public Member Functions | |
| CUB_RUNTIME_FUNCTION static __forceinline__ cudaError_t | Dispatch (void *d_temp_storage, size_t &temp_storage_bytes, DoubleBuffer< KeyT > &d_keys, DoubleBuffer< ValueT > &d_values, OffsetT num_items, int begin_bit, int end_bit, bool is_overwrite_okay, cudaStream_t stream, bool debug_synchronous) |
Data Fields | |
| void * | d_temp_storage |
[in] Device-accessible allocation of temporary storage. When NULL, the required allocation size is written to temp_storage_bytes and no work is done. | |
| size_t & | temp_storage_bytes |
[in,out] Reference to size in bytes of d_temp_storage allocation | |
| DoubleBuffer< KeyT > & | d_keys |
| [in,out] Double-buffer whose current buffer contains the unsorted input keys and, upon return, is updated to point to the sorted output keys | |
| DoubleBuffer< ValueT > & | d_values |
| [in,out] Double-buffer whose current buffer contains the unsorted input values and, upon return, is updated to point to the sorted output values | |
| OffsetT | num_items |
| [in] Number of items to sort | |
| int | begin_bit |
| [in] The beginning (least-significant) bit index needed for key comparison | |
| int | end_bit |
| [in] The past-the-end (most-significant) bit index needed for key comparison | |
| cudaStream_t | stream |
| [in] CUDA stream to launch kernels within. Default is stream0. | |
| bool | debug_synchronous |
[in] Whether or not to synchronize the stream after every kernel launch to check for errors. Also causes launch configurations to be printed to the console. Default is false. | |
| int | ptx_version |
| [in] PTX version | |
| bool | is_overwrite_okay |
| [in] Whether is okay to overwrite source buffers | |
| anonymous enum |
Definition at line 814 of file dispatch_radix_sort.cuh.
|
inline |
Constructor.
Definition at line 844 of file dispatch_radix_sort.cuh.
|
inlinestatic |
Internal dispatch routine
| [in] | d_temp_storage | Device-accessible allocation of temporary storage. When NULL, the required allocation size is written to temp_storage_bytes and no work is done. |
| [in,out] | temp_storage_bytes | Reference to size in bytes of d_temp_storage allocation |
| [in,out] | d_keys | Double-buffer whose current buffer contains the unsorted input keys and, upon return, is updated to point to the sorted output keys |
| [in,out] | d_values | Double-buffer whose current buffer contains the unsorted input values and, upon return, is updated to point to the sorted output values |
| [in] | num_items | Number of items to sort |
| [in] | begin_bit | The beginning (least-significant) bit index needed for key comparison |
| [in] | end_bit | The past-the-end (most-significant) bit index needed for key comparison |
| [in] | is_overwrite_okay | Whether is okay to overwrite source buffers |
| [in] | stream | CUDA stream to launch kernels within. Default is stream0. |
| [in] | debug_synchronous | Whether or not to synchronize the stream after every kernel launch to check for errors. Also causes launch configurations to be printed to the console. Default is false. |
Definition at line 1255 of file dispatch_radix_sort.cuh.
|
inline |
Invocation.
Definition at line 1222 of file dispatch_radix_sort.cuh.
|
inline |
Invoke a three-kernel sorting pass at the current bit.
Definition at line 945 of file dispatch_radix_sort.cuh.
|
inline |
Invocation (run multiple digit passes)
< Function type of cub::DeviceRadixSortDownsweepKernel
| [in] | upsweep_kernel | Kernel function pointer to parameterization of cub::DeviceRadixSortUpsweepKernel |
| [in] | alt_upsweep_kernel | Alternate kernel function pointer to parameterization of cub::DeviceRadixSortUpsweepKernel |
| [in] | scan_kernel | Kernel function pointer to parameterization of cub::SpineScanKernel |
| [in] | downsweep_kernel | Kernel function pointer to parameterization of cub::DeviceRadixSortDownsweepKernel |
| [in] | alt_downsweep_kernel | Alternate kernel function pointer to parameterization of cub::DeviceRadixSortDownsweepKernel |
Definition at line 1096 of file dispatch_radix_sort.cuh.
|
inline |
Invoke a single block to sort in-core.
< Function type of cub::DeviceRadixSortSingleTileKernel
| [in] | single_tile_kernel | Kernel function pointer to parameterization of cub::DeviceRadixSortSingleTileKernel |
Definition at line 880 of file dispatch_radix_sort.cuh.
| int cub::DispatchRadixSort< IS_DESCENDING, KeyT, ValueT, OffsetT >::begin_bit |
[in] The beginning (least-significant) bit index needed for key comparison
Definition at line 830 of file dispatch_radix_sort.cuh.
| DoubleBuffer<KeyT>& cub::DispatchRadixSort< IS_DESCENDING, KeyT, ValueT, OffsetT >::d_keys |
[in,out] Double-buffer whose current buffer contains the unsorted input keys and, upon return, is updated to point to the sorted output keys
Definition at line 827 of file dispatch_radix_sort.cuh.
| void* cub::DispatchRadixSort< IS_DESCENDING, KeyT, ValueT, OffsetT >::d_temp_storage |
[in] Device-accessible allocation of temporary storage. When NULL, the required allocation size is written to temp_storage_bytes and no work is done.
Definition at line 825 of file dispatch_radix_sort.cuh.
| DoubleBuffer<ValueT>& cub::DispatchRadixSort< IS_DESCENDING, KeyT, ValueT, OffsetT >::d_values |
[in,out] Double-buffer whose current buffer contains the unsorted input values and, upon return, is updated to point to the sorted output values
Definition at line 828 of file dispatch_radix_sort.cuh.
| bool cub::DispatchRadixSort< IS_DESCENDING, KeyT, ValueT, OffsetT >::debug_synchronous |
[in] Whether or not to synchronize the stream after every kernel launch to check for errors. Also causes launch configurations to be printed to the console. Default is false.
Definition at line 833 of file dispatch_radix_sort.cuh.
| int cub::DispatchRadixSort< IS_DESCENDING, KeyT, ValueT, OffsetT >::end_bit |
[in] The past-the-end (most-significant) bit index needed for key comparison
Definition at line 831 of file dispatch_radix_sort.cuh.
| bool cub::DispatchRadixSort< IS_DESCENDING, KeyT, ValueT, OffsetT >::is_overwrite_okay |
[in] Whether is okay to overwrite source buffers
Definition at line 835 of file dispatch_radix_sort.cuh.
| OffsetT cub::DispatchRadixSort< IS_DESCENDING, KeyT, ValueT, OffsetT >::num_items |
[in] Number of items to sort
Definition at line 829 of file dispatch_radix_sort.cuh.
| int cub::DispatchRadixSort< IS_DESCENDING, KeyT, ValueT, OffsetT >::ptx_version |
[in] PTX version
Definition at line 834 of file dispatch_radix_sort.cuh.
| cudaStream_t cub::DispatchRadixSort< IS_DESCENDING, KeyT, ValueT, OffsetT >::stream |
[in] CUDA stream to launch kernels within. Default is stream0.
Definition at line 832 of file dispatch_radix_sort.cuh.
| size_t& cub::DispatchRadixSort< IS_DESCENDING, KeyT, ValueT, OffsetT >::temp_storage_bytes |
[in,out] Reference to size in bytes of d_temp_storage allocation
Definition at line 826 of file dispatch_radix_sort.cuh.