Arcane  v3.14.10.0
Documentation développeur
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.
 

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, MDDim1m_host_reduce_storage
 

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.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
-*- 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

◆ _apply()

template<typename DataType >
void Arcane::Accelerator::GenericReducer< DataType >::_apply ( Int32  nb_value,
InputIterator  input_iter,
ReduceOperator  reduce_op,
const TraceInfo trace_info 
)
inlineprivate

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

◆ _applyWithIndex()

template<typename DataType >
void Arcane::Accelerator::GenericReducer< DataType >::_applyWithIndex ( Int32  nb_value,
const GetterLambda getter_lambda,
ReduceOperator  reduce_op,
const TraceInfo trace_info 
)
inlineprivate

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

◆ _setCalled()

template<typename DataType >
void Arcane::Accelerator::GenericReducer< DataType >::_setCalled ( )
inlineprivate

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

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

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

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

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

Documentation des données membres

◆ m_is_already_called

template<typename DataType >
bool Arcane::Accelerator::GenericReducer< DataType >::m_is_already_called = false
private

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


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