30 #ifndef HIPCUB_ROCPRIM_BLOCK_BLOCK_DISCONTINUITY_HPP_ 31 #define HIPCUB_ROCPRIM_BLOCK_BLOCK_DISCONTINUITY_HPP_ 33 #include "../../../config.hpp" 35 #include <rocprim/block/block_discontinuity.hpp> 37 BEGIN_HIPCUB_NAMESPACE
44 int ARCH = HIPCUB_ARCH
47 :
private ::rocprim::block_discontinuity<
55 BLOCK_DIM_X * BLOCK_DIM_Y * BLOCK_DIM_Z > 0,
56 "BLOCK_DIM_X * BLOCK_DIM_Y * BLOCK_DIM_Z must be greater than 0" 60 typename ::rocprim::block_discontinuity<
68 typename base_type::storage_type& temp_storage_;
71 using TempStorage =
typename base_type::storage_type;
79 BlockDiscontinuity(
TempStorage& temp_storage) : temp_storage_(temp_storage)
83 template<
int ITEMS_PER_THREAD,
typename FlagT,
typename FlagOp>
85 void FlagHeads(FlagT (&head_flags)[ITEMS_PER_THREAD],
86 T (&input)[ITEMS_PER_THREAD],
89 base_type::flag_heads(head_flags, input, flag_op, temp_storage_);
92 template<
int ITEMS_PER_THREAD,
typename FlagT,
typename FlagOp>
94 void FlagHeads(FlagT (&head_flags)[ITEMS_PER_THREAD],
95 T (&input)[ITEMS_PER_THREAD],
97 T tile_predecessor_item)
99 base_type::flag_heads(head_flags, tile_predecessor_item, input, flag_op, temp_storage_);
102 template<
int ITEMS_PER_THREAD,
typename FlagT,
typename FlagOp>
104 void FlagTails(FlagT (&tail_flags)[ITEMS_PER_THREAD],
105 T (&input)[ITEMS_PER_THREAD],
108 base_type::flag_tails(tail_flags, input, flag_op, temp_storage_);
111 template<
int ITEMS_PER_THREAD,
typename FlagT,
typename FlagOp>
113 void FlagTails(FlagT (&tail_flags)[ITEMS_PER_THREAD],
114 T (&input)[ITEMS_PER_THREAD],
116 T tile_successor_item)
118 base_type::flag_tails(tail_flags, tile_successor_item, input, flag_op, temp_storage_);
121 template<
int ITEMS_PER_THREAD,
typename FlagT,
typename FlagOp>
123 void FlagHeadsAndTails(FlagT (&head_flags)[ITEMS_PER_THREAD],
124 FlagT (&tail_flags)[ITEMS_PER_THREAD],
125 T (&input)[ITEMS_PER_THREAD],
128 base_type::flag_heads_and_tails(
129 head_flags, tail_flags, input,
130 flag_op, temp_storage_
134 template<
int ITEMS_PER_THREAD,
typename FlagT,
typename FlagOp>
136 void FlagHeadsAndTails(FlagT (&head_flags)[ITEMS_PER_THREAD],
137 FlagT (&tail_flags)[ITEMS_PER_THREAD],
138 T tile_successor_item,
139 T (&input)[ITEMS_PER_THREAD],
142 base_type::flag_heads_and_tails(
143 head_flags, tail_flags, tile_successor_item, input,
144 flag_op, temp_storage_
148 template<
int ITEMS_PER_THREAD,
typename FlagT,
typename FlagOp>
150 void FlagHeadsAndTails(FlagT (&head_flags)[ITEMS_PER_THREAD],
151 T tile_predecessor_item,
152 FlagT (&tail_flags)[ITEMS_PER_THREAD],
153 T (&input)[ITEMS_PER_THREAD],
156 base_type::flag_heads_and_tails(
157 head_flags, tile_predecessor_item, tail_flags, input,
158 flag_op, temp_storage_
162 template<
int ITEMS_PER_THREAD,
typename FlagT,
typename FlagOp>
164 void FlagHeadsAndTails(FlagT (&head_flags)[ITEMS_PER_THREAD],
165 T tile_predecessor_item,
166 FlagT (&tail_flags)[ITEMS_PER_THREAD],
167 T tile_successor_item,
168 T (&input)[ITEMS_PER_THREAD],
171 base_type::flag_heads_and_tails(
172 head_flags, tile_predecessor_item, tail_flags, tile_successor_item, input,
173 flag_op, temp_storage_
182 return private_storage;
188 #endif // HIPCUB_ROCPRIM_BLOCK_BLOCK_DISCONTINUITY_HPP_ Definition: test_hipcub_block_load_store.kernels.hpp:167
Definition: block_discontinuity.hpp:46