Intervalle d'itération d'une boucle utilisant le parallélisme hiérarchique. Plus de détails...
Graphe de collaboration de Arcane::Accelerator::WorkGroupLoopRange: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. | |
Fonctions membres privées | |
| WorkGroupLoopRange (Int32 total_nb_element, Int32 nb_group, Int32 group_size) | |
| Créé un intervalle d'itération pour la commande command. | |
Attributs privés | |
| Int32 | m_total_size = 0 |
| Int32 | m_nb_group = 0 |
| Int32 | m_group_size = 0 |
| Int32 | m_last_group_size = 0 |
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.
|
private |
Créé un intervalle d'itération pour la commande command.
Le nombre total d'éléments est total_nb_element, réparti en nb_group de taille group_size. total_nb_element n'est pas nécessairement un multiple de block_size.
Définition à la ligne 25 du fichier WorkGroupLoopRange.cc.
|
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().
Voici le graphe des appelants de cette fonction :
|
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().
Voici le graphe des appelants de cette fonction :
|
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.
Référencé par Arcane::Accelerator::arccoreParallelFor(), et Arcane::Accelerator::arccoreSequentialFor().
Voici le graphe des appelants de cette fonction :
|
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.
|
private |
Définition à la ligne 414 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.
|
private |
Définition à la ligne 415 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.
|
private |
Définition à la ligne 413 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.
|
private |
Définition à la ligne 412 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.