Intervalle d'itération d'une boucle utilisant le parallélisme hiérarchique. Plus de détails...
#include <arcane/accelerator/WorkGroupLoopRange.h>
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 | |
| WorkGroupLoopRange | makeWorkGroupLoopRange (RunCommand &command, Int32 nb_group, Int32 group_size) |
| Créé un intervalle d'itération pour la commande command. | |
| 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 364 du fichier WorkGroupLoopRange.h.
Définition à la ligne 375 du fichier 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 396 du fichier 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 400 du fichier WorkGroupLoopRange.h.
Nombre d'éléments actifs pour le i-ème groupe.
Définition à la ligne 402 du fichier 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 394 du fichier WorkGroupLoopRange.h.
|
inlineconstexpr |
Nombre de groupes.
Définition à la ligne 398 du fichier WorkGroupLoopRange.h.
Référencé par Arcane::Accelerator::arcaneSequentialFor(), et Arcane::Accelerator::arccoreParallelFor().
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 426 du fichier WorkGroupLoopRange.h.
|
private |
Définition à la ligne 427 du fichier WorkGroupLoopRange.h.
|
private |
Définition à la ligne 425 du fichier WorkGroupLoopRange.h.
|
private |
Définition à la ligne 424 du fichier WorkGroupLoopRange.h.