Arcane  v4.1.1.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::Accelerator::WorkGroupLoopRange

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.
 

Description détaillée

Intervalle d'itération d'une boucle utilisant le parallélisme hiérarchique.

Avertissement
API en cours de définition. Ne pas utiliser en dehors de Arcane.

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().

Note
Sur accélérateur, La valeur de groupSize() est dépendante de l'architecture de l'accélérateur. Afin d'être portable, cette valeur doit être comprise entre 32 et 1024 et être un multiple de 32.

Définition à la ligne 367 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.

Documentation des définitions de type membres

◆ LoopIndexType

Documentation des fonctions membres

◆ groupSize()

Int32 Arcane::Accelerator::WorkGroupLoopRange::groupSize ( ) const
inlineconstexpr

◆ lastGroupSize()

Int32 Arcane::Accelerator::WorkGroupLoopRange::lastGroupSize ( ) const
inlineconstexpr

Nombre d'éléments du dernier groupe.

Définition à la ligne 403 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.

◆ nbActiveItem()

Int32 Arcane::Accelerator::WorkGroupLoopRange::nbActiveItem ( Int32 i) const
inlineconstexpr

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().

◆ nbElement()

Int32 Arcane::Accelerator::WorkGroupLoopRange::nbElement ( ) const
inlineconstexpr

Nombre d'éléments à traiter.

Définition à la ligne 397 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.

◆ nbGroup()

Int32 Arcane::Accelerator::WorkGroupLoopRange::nbGroup ( ) const
inlineconstexpr

Nombre de groupes.

Définition à la ligne 401 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.

Documentation des fonctions amies et associées

◆ makeWorkGroupLoopRange [1/2]

ARCCORE_ACCELERATOR_EXPORT WorkGroupLoopRange makeWorkGroupLoopRange ( RunCommand & command,
Int32 nb_element,
Int32 nb_group,
Int32 group_size )
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.

◆ makeWorkGroupLoopRange [2/2]

ARCCORE_ACCELERATOR_EXPORT WorkGroupLoopRange makeWorkGroupLoopRange ( RunCommand & command,
Int32 nb_group,
Int32 group_size )
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.


La documentation de cette classe a été générée à partir des fichiers suivants :