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 | LoopIndexType = WorkGroupLoopContext |
Fonctions membres publiques | |
| constexpr Int32 | nbElement () const |
| Nombre d'éléments à traiter. | |
| constexpr Int32 | groupSize () const |
| Taille d'un groupe. | |
| constexpr Int32 | nbGroup () const |
| Nombre de groupes. | |
| constexpr Int32 | lastGroupSize () const |
| Nombre d'éléments du dernier groupe. | |
| constexpr Int32 | nbActiveItem (Int32 i) const |
| Nombre d'éléments actifs pour le i-ème groupe. | |
Amis | |
| ARCCORE_ACCELERATOR_EXPORT WorkGroupLoopRange | makeWorkGroupLoopRange (RunCommand &command, Int32 nb_group, Int32 group_size) |
| Créé un intervalle d'itération pour la commande command. | |
| ARCCORE_ACCELERATOR_EXPORT WorkGroupLoopRange | makeWorkGroupLoopRange (RunCommand &command, Int32 nb_element, Int32 nb_group, Int32 group_size) |
| Créé un intervalle d'itération pour la commande command. | |
Intervalle d'itération d'une boucle utilisant le parallélisme hiérarchique.
L'intervalle d'itération contient nbElement() et est décomposé en nbGroup() WorkGroup contenant chacun groupSize() WorkItem.
La création de ces instances se fait via les méthodes makeWorkGroupLoopRange().
Définition à la ligne 367 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.
Définition à la ligne 378 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.
|
inlineconstexpr |
Taille d'un groupe.
Définition à la ligne 399 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.
Référencé par Arcane::Accelerator::Impl::WorkGroupSequentialForHelper::apply().
|
inlineconstexpr |
Nombre d'éléments du dernier groupe.
Définition à la ligne 403 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.
Nombre d'éléments actifs pour le i-ème groupe.
Définition à la ligne 405 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.
Référencé par Arcane::Accelerator::Impl::WorkGroupSequentialForHelper::apply().
|
inlineconstexpr |
Nombre d'éléments à traiter.
Définition à la ligne 397 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.
|
inlineconstexpr |
Nombre de groupes.
Définition à la ligne 401 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.
|
friend |
Créé un intervalle d'itération pour la commande command.
Créé un intervalle contenant nb_element, répartis en nb_group de taille group_size. Si nb_group et group_size sont nuls, une taille de bloc par défaut sera choisie en fonction de l'accélérateur et nb_group sera calculé automatiquement.
|
friend |
Créé un intervalle d'itération pour la commande command.
Créé un intervalle pour nb_group de taille group_size. Le nombre total d'éléments est donc égal à nb_group * group_size.