Intervalle d'itération d'une boucle utilisant le parallélisme hiérarchique. Plus de détails...
Graphe de collaboration de Arcane::Accelerator::WorkGroupLoopRangeBase< IsCooperativeLaunch, IndexType_ >:Types publics | |
| using | IndexType = IndexType_ |
Fonctions membres publiques | |
| WorkGroupLoopRangeBase (IndexType nb_element) | |
| constexpr IndexType | nbElement () const |
| Nombre d'éléments à traiter. | |
| constexpr IndexType | blockSize () const |
| Taille d'un block. | |
| constexpr Int32 | nbBlock () const |
| Nombre de blocs. | |
| ARCCORE_ACCELERATOR_EXPORT void | setBlockSize (IndexType nb_block) |
| Positionne la taille d'un bloc. | |
| ARCCORE_ACCELERATOR_EXPORT void | setBlockSize (RunCommand &command) |
| Positionne la taille d'un bloc en fonction de la commande command. | |
Fonctions membres publiques statiques | |
| static constexpr bool | isCooperativeLaunch () |
Fonctions membres privées | |
| void | _setNbBlock () |
Attributs privés | |
| IndexType | m_nb_element = 0 |
| IndexType | m_block_size = 0 |
| Int32 | m_nb_block = 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 768 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.
| using Arcane::Accelerator::WorkGroupLoopRangeBase< IsCooperativeLaunch, IndexType_ >::IndexType = IndexType_ |
Définition à la ligne 772 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.
|
inlineexplicit |
Définition à la ligne 777 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.
|
private |
Définition à la ligne 79 du fichier WorkGroupLoopRange.cc.
|
inlineconstexpr |
Taille d'un block.
Définition à la ligne 789 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.
|
inlinestaticconstexpr |
Définition à la ligne 784 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 795 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.
|
inlineconstexpr |
Nombre d'éléments à traiter.
Définition à la ligne 787 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.
| ARCCORE_ACCELERATOR_EXPORT void Arcane::Accelerator::WorkGroupLoopRangeBase< IsCooperativeLaunch, IndexType_ >::setBlockSize | ( | IndexType | nb_block | ) |
Positionne la taille d'un bloc.
nb_block doit être un multiple de 32.
Définition à la ligne 31 du fichier WorkGroupLoopRange.cc.
Références ARCCORE_FATAL.
Référencé par setBlockSize().
Voici le graphe des appelants de cette fonction :| ARCCORE_ACCELERATOR_EXPORT void Arcane::Accelerator::WorkGroupLoopRangeBase< IsCooperativeLaunch, IndexType_ >::setBlockSize | ( | RunCommand & | command | ) |
Positionne la taille d'un bloc en fonction de la commande command.
Définition à la ligne 44 du fichier WorkGroupLoopRange.cc.
Références Arcane::Accelerator::RunCommand::executionPolicy(), Arcane::Accelerator::isAcceleratorPolicy(), Arcane::ParallelLoopOptions::maxThread(), Arcane::Accelerator::RunCommand::parallelLoopOptions(), setBlockSize(), Arcane::ParallelLoopOptions::setGrainSize(), Arcane::Accelerator::RunCommand::setParallelLoopOptions(), et Arcane::Accelerator::Thread.
Voici le graphe d'appel pour cette fonction :
|
private |
Définition à la ligne 810 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.
|
private |
Définition à la ligne 811 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.
|
private |
Définition à la ligne 809 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.