21 #ifndef ROCPRIM_DEVICE_DEVICE_MERGE_CONFIG_HPP_ 22 #define ROCPRIM_DEVICE_DEVICE_MERGE_CONFIG_HPP_ 24 #include <type_traits> 26 #include "../config.hpp" 27 #include "../detail/various.hpp" 28 #include "../functional.hpp" 30 #include "config_types.hpp" 35 BEGIN_ROCPRIM_NAMESPACE
38 template<
unsigned int BlockSize,
unsigned int ItemsPerThread>
44 template<
class Key,
class Value>
47 static constexpr
unsigned int item_scale =
48 ::rocprim::detail::ceiling_div<unsigned int>(
::rocprim::max(
sizeof(Key),
sizeof(Value)),
sizeof(int));
57 static constexpr
unsigned int item_scale =
58 ::rocprim::detail::ceiling_div<unsigned int>(
sizeof(Key),
sizeof(
int));
60 using type = select_type<
68 template<
class Key,
class Value>
71 static constexpr
unsigned int item_scale =
72 ::rocprim::detail::ceiling_div<unsigned int>(
::rocprim::max(
sizeof(Key),
sizeof(Value)),
sizeof(int));
81 static constexpr
unsigned int item_scale =
82 ::rocprim::detail::ceiling_div<unsigned int>(
sizeof(Key),
sizeof(
int));
84 using type = select_type<
93 template<
class Key,
class Value>
96 static constexpr
unsigned int item_scale =
97 ::rocprim::detail::ceiling_div<unsigned int>(
::rocprim::max(
sizeof(Key),
sizeof(Value)),
sizeof(int));
106 static constexpr
unsigned int item_scale =
107 ::rocprim::detail::ceiling_div<unsigned int>(
sizeof(Key),
sizeof(
int));
109 using type = select_type<
118 template<
class Key,
class Value>
121 static constexpr
unsigned int item_scale =
122 ::rocprim::detail::ceiling_div<unsigned int>(
::rocprim::max(
sizeof(Key),
sizeof(Value)),
sizeof(int));
131 static constexpr
unsigned int item_scale =
132 ::rocprim::detail::ceiling_div<unsigned int>(
sizeof(Key),
sizeof(
int));
134 using type = select_type<
142 template<
unsigned int TargetArch,
class Key,
class Value>
146 select_arch_case<803, merge_config_803<Key, Value>>,
147 select_arch_case<900, merge_config_900<Key, Value>>,
148 select_arch_case<ROCPRIM_ARCH_90a, merge_config_90a<Key, Value>>,
149 select_arch_case<1030, merge_config_1030<Key, Value>>,
150 merge_config_900<Key, Value>
155 END_ROCPRIM_NAMESPACE
160 #endif // ROCPRIM_DEVICE_DEVICE_MERGE_CONFIG_HPP_ Empty type used as a placeholder, usually used to flag that given template parameter should not be us...
Definition: types.hpp:135
Definition: device_merge_config.hpp:119
ROCPRIM_HOST_DEVICE constexpr T max(const T &a, const T &b)
Returns the maximum of its arguments.
Definition: functional.hpp:55
Definition: device_merge_config.hpp:45
Definition: various.hpp:236
Definition: device_merge_config.hpp:143
Definition: device_merge_config.hpp:69
Deprecated: Configuration of device-level scan primitives.
Definition: block_histogram.hpp:62
Definition: config_types.hpp:140
Definition: device_merge_config.hpp:94
Configuration of particular kernels launched by device-level operation.
Definition: config_types.hpp:84