Algorithme générique de réduction sur accélérateur. Plus de détails...
#include <arcane/accelerator/Reduce.h>
Fonctions membres publiques | |
GenericReducer (const RunQueue &queue) | |
void | applyMin (SmallSpan< const DataType > values, const TraceInfo &trace_info=TraceInfo()) |
Applique une réduction 'Min' sur les valeurs values. | |
void | applyMax (SmallSpan< const DataType > values, const TraceInfo &trace_info=TraceInfo()) |
Applique une réduction 'Max' sur les valeurs values. | |
void | applySum (SmallSpan< const DataType > values, const TraceInfo &trace_info=TraceInfo()) |
Applique une réduction 'Somme' sur les valeurs values. | |
template<typename SelectLambda > | |
void | applyMinWithIndex (Int32 nb_value, const SelectLambda &select_lambda, const TraceInfo &trace_info=TraceInfo()) |
Applique une réduction 'Min' sur les valeurs sélectionnées par select_lambda. | |
template<typename SelectLambda > | |
void | applyMaxWithIndex (Int32 nb_value, const SelectLambda &select_lambda, const TraceInfo &trace_info=TraceInfo()) |
Applique une réduction 'Max' sur les valeurs sélectionnées par select_lambda. | |
template<typename SelectLambda > | |
void | applySumWithIndex (Int32 nb_value, const SelectLambda &select_lambda, const TraceInfo &trace_info=TraceInfo()) |
Applique une réduction 'Somme' sur les valeurs sélectionnées par select_lambda. | |
DataType | reducedValue () |
Valeur de la réduction. | |
Algorithme générique de réduction sur accélérateur.
La réduction se fait via les appels à applyMin(), applyMax(), applySum(), applyMinWithIndex(), applyMaxWithIndex() ou applySumWithIndex(). Ces méthodes sont asynchrones. Après réduction, il est possible récupérer la valeur réduite via reducedValue(). L'appel à reducedValue() bloque tant que la réduction n'est pas terminée.
Les instances de cette classe peuvent être utilisées plusieurs fois.
Voici un exemple pour calculer la somme d'un tableau de 50 éléments:
|
inlineexplicit |
|
inline |
Applique une réduction 'Max' sur les valeurs values.
Définition à la ligne 1104 du fichier Reduce.h.
Références Arccore::SpanImpl< T, SizeType, Extent, MinValue >::data(), et Arccore::SpanImpl< T, SizeType, Extent, MinValue >::size().
|
inline |
|
inline |
Applique une réduction 'Min' sur les valeurs values.
Définition à la ligne 1098 du fichier Reduce.h.
Références Arccore::SpanImpl< T, SizeType, Extent, MinValue >::data(), et Arccore::SpanImpl< T, SizeType, Extent, MinValue >::size().
|
inline |
|
inline |
Applique une réduction 'Somme' sur les valeurs values.
Définition à la ligne 1110 du fichier Reduce.h.
Références Arccore::SpanImpl< T, SizeType, Extent, MinValue >::data(), et Arccore::SpanImpl< T, SizeType, Extent, MinValue >::size().
|
inline |
|
inline |