Arcane  v4.1.1.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::Accelerator::GenericScanner

Algorithmes de scan exclusif ou inclusif sur accélérateurs. Plus de détails...

#include </__w/arcaneframework.github.io/arcaneframework.github.io/framework/arccore/src/accelerator/arccore/accelerator/GenericScanner.h>

+ Graphe de collaboration de Arcane::Accelerator::GenericScanner:

Classes

class  SetterLambdaIterator
 Itérateur sur une lambda pour positionner une valeur via un index. Plus de détails...
 

Fonctions membres publiques

 GenericScanner (const RunQueue &queue)
 
template<typename DataType, typename GetterLambda, typename SetterLambda, typename Operator>
void applyWithIndexExclusive (Int32 nb_value, const DataType &initial_value, const GetterLambda &getter_lambda, const SetterLambda &setter_lambda, const Operator &op_lambda, const TraceInfo &trace_info=TraceInfo())
 
template<typename DataType, typename GetterLambda, typename SetterLambda, typename Operator>
void applyWithIndexInclusive (Int32 nb_value, const DataType &initial_value, const GetterLambda &getter_lambda, const SetterLambda &setter_lambda, const Operator &op_lambda, const TraceInfo &trace_info=TraceInfo())
 
template<typename InputDataType, typename OutputDataType, typename Operator>
void applyExclusive (const OutputDataType &initial_value, SmallSpan< const InputDataType > input, SmallSpan< OutputDataType > output, const Operator &op_lambda, const TraceInfo &trace_info=TraceInfo())
 
template<typename InputDataType, typename OutputDataType, typename Operator>
void applyInclusive (const OutputDataType &initial_value, SmallSpan< const InputDataType > input, SmallSpan< OutputDataType > output, const Operator &op_lambda, const TraceInfo &trace_info=TraceInfo())
 

Fonctions membres privées

template<bool IsExclusive, typename DataType, typename GetterLambda, typename SetterLambda, typename Operator>
void _applyWithIndex (Int32 nb_value, const DataType &initial_value, const GetterLambda &getter_lambda, const SetterLambda &setter_lambda, const Operator &op_lambda, const TraceInfo &trace_info)
 
template<bool IsExclusive, typename InputDataType, typename OutputDataType, typename Operator>
void _apply (const OutputDataType &initial_value, SmallSpan< const InputDataType > input, SmallSpan< OutputDataType > output, const Operator &op, const TraceInfo &trace_info=TraceInfo())
 
void _checkBarrier ()
 

Attributs privés

RunQueue m_queue
 

Description détaillée

Algorithmes de scan exclusif ou inclusif sur accélérateurs.

Voir https://en.wikipedia.org/wiki/Prefix_sum.

Dans les méthodes de scan, les valeurs entre les entrées et les sorties ne doivent pas se chevaucher.

Définition à la ligne 260 du fichier arccore/src/accelerator/arccore/accelerator/GenericScanner.h.

Documentation des constructeurs et destructeur

◆ GenericScanner()

Arcane::Accelerator::GenericScanner::GenericScanner ( const RunQueue & queue)
inlineexplicit

Documentation des fonctions membres

◆ _apply()

template<bool IsExclusive, typename InputDataType, typename OutputDataType, typename Operator>
void Arcane::Accelerator::GenericScanner::_apply ( const OutputDataType & initial_value,
SmallSpan< const InputDataType > input,
SmallSpan< OutputDataType > output,
const Operator & op,
const TraceInfo & trace_info = TraceInfo() )
inlineprivate

◆ _applyWithIndex()

template<bool IsExclusive, typename DataType, typename GetterLambda, typename SetterLambda, typename Operator>
void Arcane::Accelerator::GenericScanner::_applyWithIndex ( Int32 nb_value,
const DataType & initial_value,
const GetterLambda & getter_lambda,
const SetterLambda & setter_lambda,
const Operator & op_lambda,
const TraceInfo & trace_info )
inlineprivate

◆ _checkBarrier()

void Arcane::Accelerator::GenericScanner::_checkBarrier ( )
inlineprivate

◆ applyExclusive()

template<typename InputDataType, typename OutputDataType, typename Operator>
void Arcane::Accelerator::GenericScanner::applyExclusive ( const OutputDataType & initial_value,
SmallSpan< const InputDataType > input,
SmallSpan< OutputDataType > output,
const Operator & op_lambda,
const TraceInfo & trace_info = TraceInfo() )
inline

◆ applyInclusive()

template<typename InputDataType, typename OutputDataType, typename Operator>
void Arcane::Accelerator::GenericScanner::applyInclusive ( const OutputDataType & initial_value,
SmallSpan< const InputDataType > input,
SmallSpan< OutputDataType > output,
const Operator & op_lambda,
const TraceInfo & trace_info = TraceInfo() )
inline

◆ applyWithIndexExclusive()

template<typename DataType, typename GetterLambda, typename SetterLambda, typename Operator>
void Arcane::Accelerator::GenericScanner::applyWithIndexExclusive ( Int32 nb_value,
const DataType & initial_value,
const GetterLambda & getter_lambda,
const SetterLambda & setter_lambda,
const Operator & op_lambda,
const TraceInfo & trace_info = TraceInfo() )
inline

◆ applyWithIndexInclusive()

template<typename DataType, typename GetterLambda, typename SetterLambda, typename Operator>
void Arcane::Accelerator::GenericScanner::applyWithIndexInclusive ( Int32 nb_value,
const DataType & initial_value,
const GetterLambda & getter_lambda,
const SetterLambda & setter_lambda,
const Operator & op_lambda,
const TraceInfo & trace_info = TraceInfo() )
inline

Documentation des données membres

◆ m_queue

RunQueue Arcane::Accelerator::GenericScanner::m_queue
private

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