40 #include "dispatch/dispatch_radix_sort.cuh"
41 #include "../util_arch.cuh"
42 #include "../util_namespace.cuh"
141 void *d_temp_storage,
142 size_t &temp_storage_bytes,
146 ValueT *d_values_out,
149 int *d_begin_offsets,
152 int end_bit =
sizeof(KeyT) * 8,
153 cudaStream_t stream = 0,
154 bool debug_synchronous =
false)
159 DoubleBuffer<KeyT> d_keys(d_keys_in, d_keys_out);
160 DoubleBuffer<ValueT> d_values(d_values_in, d_values_out);
162 return DispatchSegmentedRadixSort<false, KeyT, ValueT, OffsetT>::Dispatch(
248 void *d_temp_storage,
249 size_t &temp_storage_bytes,
250 DoubleBuffer<KeyT> &d_keys,
251 DoubleBuffer<ValueT> &d_values,
254 int *d_begin_offsets,
257 int end_bit =
sizeof(KeyT) * 8,
258 cudaStream_t stream = 0,
259 bool debug_synchronous =
false)
264 return DispatchSegmentedRadixSort<false, KeyT, ValueT, OffsetT>::Dispatch(
339 void *d_temp_storage,
340 size_t &temp_storage_bytes,
344 ValueT *d_values_out,
347 int *d_begin_offsets,
350 int end_bit =
sizeof(KeyT) * 8,
351 cudaStream_t stream = 0,
352 bool debug_synchronous =
false)
357 DoubleBuffer<KeyT> d_keys(d_keys_in, d_keys_out);
358 DoubleBuffer<ValueT> d_values(d_values_in, d_values_out);
360 return DispatchSegmentedRadixSort<true, KeyT, ValueT, OffsetT>::Dispatch(
446 void *d_temp_storage,
447 size_t &temp_storage_bytes,
448 DoubleBuffer<KeyT> &d_keys,
449 DoubleBuffer<ValueT> &d_values,
452 int *d_begin_offsets,
455 int end_bit =
sizeof(KeyT) * 8,
456 cudaStream_t stream = 0,
457 bool debug_synchronous =
false)
462 return DispatchSegmentedRadixSort<true, KeyT, ValueT, OffsetT>::Dispatch(
532 template <
typename KeyT>
535 void *d_temp_storage,
536 size_t &temp_storage_bytes,
541 int *d_begin_offsets,
544 int end_bit =
sizeof(KeyT) * 8,
545 cudaStream_t stream = 0,
546 bool debug_synchronous =
false)
552 DoubleBuffer<KeyT> d_keys(d_keys_in, d_keys_out);
553 DoubleBuffer<NullType> d_values;
555 return DispatchSegmentedRadixSort<false, KeyT, NullType, OffsetT>::Dispatch(
628 template <
typename KeyT>
631 void *d_temp_storage,
632 size_t &temp_storage_bytes,
633 DoubleBuffer<KeyT> &d_keys,
636 int *d_begin_offsets,
639 int end_bit =
sizeof(KeyT) * 8,
640 cudaStream_t stream = 0,
641 bool debug_synchronous =
false)
647 DoubleBuffer<NullType> d_values;
649 return DispatchSegmentedRadixSort<false, KeyT, NullType, OffsetT>::Dispatch(
714 template <
typename KeyT>
717 void *d_temp_storage,
718 size_t &temp_storage_bytes,
723 int *d_begin_offsets,
726 int end_bit =
sizeof(KeyT) * 8,
727 cudaStream_t stream = 0,
728 bool debug_synchronous =
false)
733 DoubleBuffer<KeyT> d_keys(d_keys_in, d_keys_out);
734 DoubleBuffer<NullType> d_values;
736 return DispatchSegmentedRadixSort<true, KeyT, NullType, OffsetT>::Dispatch(
809 template <
typename KeyT>
812 void *d_temp_storage,
813 size_t &temp_storage_bytes,
814 DoubleBuffer<KeyT> &d_keys,
817 int *d_begin_offsets,
820 int end_bit =
sizeof(KeyT) * 8,
821 cudaStream_t stream = 0,
822 bool debug_synchronous =
false)
828 DoubleBuffer<NullType> d_values;
830 return DispatchSegmentedRadixSort<true, KeyT, NullType, OffsetT>::Dispatch(