25 inline namespace _V1 {
28 template <
typename T,
class BinaryOperation,
int Dims,
size_t Extent,
29 bool ExplicitIdentity,
typename RedOutVar>
30 class reduction_impl_algo;
56 return Builder::createItem<Dims, false>(Range, Id);
60 template <
typename KernelName,
62 int Dims,
typename PropertiesT,
typename... RestT>
64 PropertiesT Properties, RestT... Rest);
66 template <
typename KernelName,
68 int Dims,
typename PropertiesT,
typename... RestT>
70 PropertiesT Properties, RestT... Rest);
79 std::is_base_of_v<reduction_impl_base, std::remove_reference_t<T>>;
Base non-template class which is a base class for all reduction implementation classes.
Command group handler class.
Identifies an instance of the function object executing at each point in a range.
Defines the iteration domain of both the work-groups and the overall dispatch.
item< Dims, false > getDelinearizedItem(range< Dims > Range, id< Dims > Id)
void withAuxHandler(handler &CGH, FunctorTy Func)
@ group_reduce_and_last_wg_detection
@ group_reduce_and_atomic_cross_wg
@ local_atomic_and_atomic_cross_wg
@ local_mem_tree_and_atomic_cross_wg
@ group_reduce_and_multiple_kernels
void finalizeHandler(handler &CGH)
void reduction_parallel_for(handler &CGH, range< Dims > NDRange, PropertiesT Properties, RestT... Rest)
auto reduction(buffer< T, 1, AllocatorT > Var, handler &CGH, BinaryOperation Combiner, const property_list &PropList={})
Constructs a reduction object using the given buffer Var, handler CGH, reduction operation Combiner,...
Predicate returning true if all template type parameters except the last one are reductions.
static constexpr bool value
Predicate returning true if a type is a reduction.
static constexpr bool value