Algorithme générique de réduction sur accélérateur. Plus de détails...
Graphe d'héritage 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 249 du fichier arccore/src/accelerator/arccore/accelerator/GenericReducer.h.
|
inlineexplicit |
Définition à la ligne 254 du fichier arccore/src/accelerator/arccore/accelerator/GenericReducer.h.
|
inlineprivate |
Définition à la ligne 315 du fichier arccore/src/accelerator/arccore/accelerator/GenericReducer.h.
|
inlineprivate |
Définition à la ligne 325 du fichier arccore/src/accelerator/arccore/accelerator/GenericReducer.h.
|
inlineprivate |
Définition à la ligne 336 du fichier arccore/src/accelerator/arccore/accelerator/GenericReducer.h.
|
inline |
Applique une réduction 'Max' sur les valeurs values.
Définition à la ligne 269 du fichier arccore/src/accelerator/arccore/accelerator/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 :
|
inline |
Applique une réduction 'Max' sur les valeurs sélectionnées par select_lambda.
Définition à la ligne 289 du fichier arccore/src/accelerator/arccore/accelerator/GenericReducer.h.
|
inline |
Applique une réduction 'Min' sur les valeurs values.
Définition à la ligne 263 du fichier arccore/src/accelerator/arccore/accelerator/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 :
|
inline |
Applique une réduction 'Min' sur les valeurs sélectionnées par select_lambda.
Définition à la ligne 282 du fichier arccore/src/accelerator/arccore/accelerator/GenericReducer.h.
|
inline |
Applique une réduction 'Somme' sur les valeurs values.
Définition à la ligne 275 du fichier arccore/src/accelerator/arccore/accelerator/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 :
|
inline |
Applique une réduction 'Somme' sur les valeurs sélectionnées par select_lambda.
Définition à la ligne 296 du fichier arccore/src/accelerator/arccore/accelerator/GenericReducer.h.
|
inline |
Valeur de la réduction.
Définition à la ligne 302 du fichier arccore/src/accelerator/arccore/accelerator/GenericReducer.h.
|
private |
Définition à la ligne 310 du fichier arccore/src/accelerator/arccore/accelerator/GenericReducer.h.