Algorithme générique de réduction sur accélérateur. Plus de détails...
#include <arcane/accelerator/GenericReducer.h>
 Graphe d'héritage de Arcane::Accelerator::GenericReducer< DataType >:
 Graphe d'héritage de Arcane::Accelerator::GenericReducer< DataType >: Graphe de collaboration de Arcane::Accelerator::GenericReducer< DataType >:
 Graphe de collaboration de Arcane::Accelerator::GenericReducer< DataType >:| 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. | |
| Fonctions membres privées | |
| template<typename InputIterator, typename ReduceOperator> | |
| void | _apply (Int32 nb_value, InputIterator input_iter, ReduceOperator reduce_op, const TraceInfo &trace_info) | 
| template<typename GetterLambda, typename ReduceOperator> | |
| void | _applyWithIndex (Int32 nb_value, const GetterLambda &getter_lambda, ReduceOperator reduce_op, const TraceInfo &trace_info) | 
| void | _setCalled () | 
|  Fonctions membres privées hérités de Arcane::Accelerator::impl::GenericReducerBase< DataType > | |
| GenericReducerBase (const RunQueue &queue) | |
| DataType | _reducedValue () const | 
| void | _allocate () | 
| Attributs privés | |
| bool | m_is_already_called = false | 
|  Attributs privés hérités de Arcane::Accelerator::impl::GenericReducerBase< DataType > | |
| RunQueue | m_queue | 
| GenericDeviceStorage | m_algo_storage | 
| DeviceStorage< DataType > | m_device_reduce_storage | 
| NumArray< DataType, MDDim1 > | m_host_reduce_storage | 
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:
Définition à la ligne 248 du fichier GenericReducer.h.
| 
 | inlineexplicit | 
Définition à la ligne 253 du fichier GenericReducer.h.
| 
 | inlineprivate | 
Définition à la ligne 314 du fichier GenericReducer.h.
| 
 | inlineprivate | 
Définition à la ligne 324 du fichier GenericReducer.h.
| 
 | inlineprivate | 
Définition à la ligne 335 du fichier GenericReducer.h.
| 
 | inline | 
Applique une réduction 'Max' sur les valeurs values.
Définition à la ligne 268 du fichier GenericReducer.h.
Références Arcane::SpanImpl< T, SizeType, Extent >::data(), et Arcane::SpanImpl< T, SizeType, Extent >::size().
 Voici le graphe d'appel pour cette fonction :
 Voici le graphe d'appel pour cette fonction :| 
 | inline | 
Applique une réduction 'Max' sur les valeurs sélectionnées par select_lambda.
Définition à la ligne 288 du fichier GenericReducer.h.
| 
 | inline | 
Applique une réduction 'Min' sur les valeurs values.
Définition à la ligne 262 du fichier GenericReducer.h.
Références Arcane::SpanImpl< T, SizeType, Extent >::data(), et Arcane::SpanImpl< T, SizeType, Extent >::size().
 Voici le graphe d'appel pour cette fonction :
 Voici le graphe d'appel pour cette fonction :| 
 | inline | 
Applique une réduction 'Min' sur les valeurs sélectionnées par select_lambda.
Définition à la ligne 281 du fichier GenericReducer.h.
| 
 | inline | 
Applique une réduction 'Somme' sur les valeurs values.
Définition à la ligne 274 du fichier GenericReducer.h.
Références Arcane::SpanImpl< T, SizeType, Extent >::data(), et Arcane::SpanImpl< T, SizeType, Extent >::size().
 Voici le graphe d'appel pour cette fonction :
 Voici le graphe d'appel pour cette fonction :| 
 | inline | 
Applique une réduction 'Somme' sur les valeurs sélectionnées par select_lambda.
Définition à la ligne 295 du fichier GenericReducer.h.
| 
 | inline | 
Valeur de la réduction.
Définition à la ligne 301 du fichier GenericReducer.h.
| 
 | private | 
Définition à la ligne 309 du fichier GenericReducer.h.