Intervalle d'itération d'une boucle utilisant le parallélisme hiérarchique. Plus de détails...
Graphe d'héritage de Arcane::Accelerator::WorkGroupLoopRangeBase< IndexType_ >:
Graphe de collaboration de Arcane::Accelerator::WorkGroupLoopRangeBase< IndexType_ >:Types publics | |
| using | IndexType = IndexType_ |
Fonctions membres publiques | |
| WorkGroupLoopRangeBase (IndexType nb_element) | |
| constexpr IndexType | nbElement () const |
| Nombre d'éléments à traiter. | |
| constexpr Int32 | blockSize () const |
| Taille d'un block. | |
| constexpr Int32 | nbBlock () const |
| Nombre de blocs. | |
| ARCCORE_ACCELERATOR_EXPORT void | setBlockSize (Int32 nb_block) |
| Positionne la taille d'un bloc. | |
| ARCCORE_ACCELERATOR_EXPORT void | setBlockSize (const RunCommand &command) |
| Positionne la taille d'un bloc en fonction de la commande command. | |
Fonctions membres privées | |
| void | _setNbBlock () |
Attributs privés | |
| IndexType | m_nb_element = 0 |
| Int32 | m_nb_block = 0 |
| Int32 | m_block_size = 0 |
Intervalle d'itération d'une boucle utilisant le parallélisme hiérarchique.
Cette classe est la classe de base pour WorkGroupLoopRange et CooperativeWorkGroupLoopRange.
Il faudra appeler setBlockSize() pour positionner la taille d'un bloc. Cela peut être fait par le développeur ou automatiquement au lancement de la commande.
L'intervalle d'itération contient nbElement() et est décomposé en nbBlock() WorkGroup contenant chacun blockSize() WorkItem.
Définition à la ligne 722 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.
| using Arcane::Accelerator::WorkGroupLoopRangeBase< IndexType_ >::IndexType = IndexType_ |
Définition à la ligne 726 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.
|
inlineexplicit |
Définition à la ligne 731 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.
|
private |
Définition à la ligne 56 du fichier WorkGroupLoopRange.cc.
|
inlineconstexpr |
Taille d'un block.
Définition à la ligne 741 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.
|
inlineconstexpr |
Nombre de blocs.
Retourne 0 si setBlockSize() n'a pas encore été appelé.
Définition à la ligne 747 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.
|
inlineconstexpr |
Nombre d'éléments à traiter.
Définition à la ligne 739 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.
| ARCCORE_ACCELERATOR_EXPORT void Arcane::Accelerator::WorkGroupLoopRangeBase< IndexType_ >::setBlockSize | ( | const RunCommand & | command | ) |
Positionne la taille d'un bloc en fonction de la commande command.
Définition à la ligne 42 du fichier WorkGroupLoopRange.cc.
Références Arcane::Accelerator::RunCommand::executionPolicy(), Arcane::Accelerator::isAcceleratorPolicy(), et setBlockSize().
Voici le graphe d'appel pour cette fonction :| ARCCORE_ACCELERATOR_EXPORT void Arcane::Accelerator::WorkGroupLoopRangeBase< IndexType_ >::setBlockSize | ( | Int32 | nb_block | ) |
Positionne la taille d'un bloc.
nb_block doit être un multiple de 32.
Définition à la ligne 29 du fichier WorkGroupLoopRange.cc.
Références ARCCORE_FATAL.
Référencé par setBlockSize().
Voici le graphe des appelants de cette fonction :
|
private |
Définition à la ligne 763 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.
|
private |
Définition à la ligne 762 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.
|
private |
Définition à la ligne 761 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.