Intervalle d'itération d'une boucle utilisant le parallélisme hiérarchique. Plus de détails...
#include <arccore/accelerator/WorkGroupLoopRange.h>
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. | |
| void | setBlockSize (Int32 nb_block) |
| Positionne la taille d'un bloc. | |
| void | setBlockSize (const RunCommand &command) |
| Positionne la taille d'un bloc en fonction de la commande command. | |
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 660 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.
| using Arcane::Accelerator::WorkGroupLoopRangeBase< IndexType_ >::IndexType = IndexType_ |
Définition à la ligne 664 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.
|
inlineexplicit |
Définition à la ligne 669 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.
|
inlineconstexpr |
Taille d'un block.
Définition à la ligne 679 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 685 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.
|
inlineconstexpr |
Nombre d'éléments à traiter.
Définition à la ligne 677 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.
| 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().
| 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().