Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
Référence du modèle de la classe Arcane::Accelerator::GenericReducer< DataType >

Algorithme générique de réduction sur accélérateur. Plus de détails...

#include <arcane/accelerator/Reduce.h>

+ 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.
 

Description détaillée

template<typename DataType>
class Arcane::Accelerator::GenericReducer< DataType >

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:

using namespace Arcane;
const Int32 nb_value(50);
Arcane::RunQueue queue = ...;
// Calcul direct
reducer.applySum(t1_view);
std::cout << "Sum is '" << reducer.reducedValue() << "\n";
// Calcul avec lambda
auto getter_func = [=] ARCCORE_HOST_DEVICE(Int32 index) -> Real
{
return t1_view[index];
}
reducer.applySumWithIndex(nb_value,getter_func);
std::cout << "Sum is '" << reducer.reducedValue() << "\n";
Algorithme générique de réduction sur accélérateur.
Definition Reduce.h:1086
File d'exécution pour un accélérateur.
Tableaux multi-dimensionnels pour les types numériques accessibles sur accélérateurs.
Vue d'un tableau d'éléments de type T.
Definition Span.h:670
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-

Définition à la ligne 1084 du fichier Reduce.h.

Documentation des constructeurs et destructeur

◆ GenericReducer()

template<typename DataType >
Arcane::Accelerator::GenericReducer< DataType >::GenericReducer ( const RunQueue queue)
inlineexplicit

Définition à la ligne 1089 du fichier Reduce.h.

Documentation des fonctions membres

◆ applyMax()

template<typename DataType >
void Arcane::Accelerator::GenericReducer< DataType >::applyMax ( SmallSpan< const DataType >  values,
const TraceInfo trace_info = TraceInfo() 
)
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().

◆ applyMaxWithIndex()

template<typename DataType >
template<typename SelectLambda >
void Arcane::Accelerator::GenericReducer< DataType >::applyMaxWithIndex ( Int32  nb_value,
const SelectLambda &  select_lambda,
const TraceInfo trace_info = TraceInfo() 
)
inline

Applique une réduction 'Max' sur les valeurs sélectionnées par select_lambda.

Définition à la ligne 1124 du fichier Reduce.h.

◆ applyMin()

template<typename DataType >
void Arcane::Accelerator::GenericReducer< DataType >::applyMin ( SmallSpan< const DataType >  values,
const TraceInfo trace_info = TraceInfo() 
)
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().

◆ applyMinWithIndex()

template<typename DataType >
template<typename SelectLambda >
void Arcane::Accelerator::GenericReducer< DataType >::applyMinWithIndex ( Int32  nb_value,
const SelectLambda &  select_lambda,
const TraceInfo trace_info = TraceInfo() 
)
inline

Applique une réduction 'Min' sur les valeurs sélectionnées par select_lambda.

Définition à la ligne 1117 du fichier Reduce.h.

◆ applySum()

template<typename DataType >
void Arcane::Accelerator::GenericReducer< DataType >::applySum ( SmallSpan< const DataType >  values,
const TraceInfo trace_info = TraceInfo() 
)
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().

◆ applySumWithIndex()

template<typename DataType >
template<typename SelectLambda >
void Arcane::Accelerator::GenericReducer< DataType >::applySumWithIndex ( Int32  nb_value,
const SelectLambda &  select_lambda,
const TraceInfo trace_info = TraceInfo() 
)
inline

Applique une réduction 'Somme' sur les valeurs sélectionnées par select_lambda.

Définition à la ligne 1131 du fichier Reduce.h.

◆ reducedValue()

template<typename DataType >
DataType Arcane::Accelerator::GenericReducer< DataType >::reducedValue ( )
inline

Valeur de la réduction.

Définition à la ligne 1137 du fichier Reduce.h.


La documentation de cette classe a été générée à partir du fichier suivant :