30 #ifndef HIPCUB_ROCPRIM_DEVICE_DEVICE_RUN_LENGTH_ENCODE_HPP_
31 #define HIPCUB_ROCPRIM_DEVICE_DEVICE_RUN_LENGTH_ENCODE_HPP_
33 #include "../../../config.hpp"
35 #include <rocprim/device/device_run_length_encode.hpp>
37 BEGIN_HIPCUB_NAMESPACE
39 class DeviceRunLengthEncode
43 typename InputIteratorT,
44 typename UniqueOutputIteratorT,
45 typename LengthsOutputIteratorT,
46 typename NumRunsOutputIteratorT
48 HIPCUB_RUNTIME_FUNCTION
static
49 hipError_t Encode(
void * d_temp_storage,
50 size_t& temp_storage_bytes,
52 UniqueOutputIteratorT d_unique_out,
53 LengthsOutputIteratorT d_counts_out,
54 NumRunsOutputIteratorT d_num_runs_out,
56 hipStream_t stream = 0,
57 bool debug_synchronous =
false)
59 return ::rocprim::run_length_encode(
60 d_temp_storage, temp_storage_bytes,
62 d_unique_out, d_counts_out, d_num_runs_out,
63 stream, debug_synchronous
68 typename InputIteratorT,
69 typename OffsetsOutputIteratorT,
70 typename LengthsOutputIteratorT,
71 typename NumRunsOutputIteratorT
73 HIPCUB_RUNTIME_FUNCTION
static
74 hipError_t NonTrivialRuns(
void * d_temp_storage,
75 size_t& temp_storage_bytes,
77 OffsetsOutputIteratorT d_offsets_out,
78 LengthsOutputIteratorT d_lengths_out,
79 NumRunsOutputIteratorT d_num_runs_out,
81 hipStream_t stream = 0,
82 bool debug_synchronous =
false)
84 return ::rocprim::run_length_encode_non_trivial_runs(
85 d_temp_storage, temp_storage_bytes,
87 d_offsets_out, d_lengths_out, d_num_runs_out,
88 stream, debug_synchronous