Arcane  v4.1.0.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::Accelerator::HostWorkItemGroup

Gère un groupe de WorkItem dans un WorkGroupLoopRange pour l'hôte. Plus de détails...

#include <arcane/accelerator/WorkGroupLoopRange.h>

+ Graphe de collaboration de Arcane::Accelerator::HostWorkItemGroup:

Fonctions membres publiques

constexpr Int32 groupRank () const
 Rang du groupe du WorkItem dans la liste des WorkGroup.
 
constexpr Int32 groupSize () const
 Nombre de WorkItem dans un WorkGroup.
 
constexpr Int32 activeWorkItemRankInGroup () const
 Rang du WorkItem actif dans son WorkGroup.
 
void barrier ()
 Bloque tant que tous les WorkItem du groupe ne sont pas arrivés ici.
 
constexpr Int32 nbActiveItem () const
 Nombre de WorkItem à gérer dans l'itération.
 
WorkItem activeItem (Int32 index) const
 Récupère le index-ème WorkItem à gérer.
 

Fonctions membres publiques statiques

static constexpr bool isDevice ()
 Indique si on s'exécute sur un accélérateur.
 

Fonctions membres privées

constexpr __host__ __device__ HostWorkItemGroup (Int32 loop_index, Int32 group_index, Int32 group_size, Int32 nb_active_item)
 Constructeur pour l'hôte.
 

Attributs privés

friend WorkGroupLoopContext
 
friend SyclDeviceWorkItemBlock
 
friend DeviceWorkItemBlock
 
Int32 m_loop_index = 0
 
Int32 m_group_size = 0
 
Int32 m_group_index = 0
 
Int32 m_nb_active_item = 0
 

Description détaillée

Gère un groupe de WorkItem dans un WorkGroupLoopRange pour l'hôte.

Contraitement à l'exécution sur accélérateur ou un seul WorkItem est actif, l'hôte doit gérer un ensemble de WorkItem.

Pour l'hôte, un bloc de WorkItem correspond toujours à l'ensemble des WorkItem d'un groupe du WorkGroupLoopRange associé. Cela signifie que nbActiveItem()==WorkGroupLoopRange::groupSize() (sauf pour le dernier élément de l'itération si le nombre total d'élément n'est pas un multiple de la taille d'un groupe).

Définition à la ligne 86 du fichier WorkGroupLoopRange.h.

Documentation des constructeurs et destructeur

◆ HostWorkItemGroup()

__host__ __device__ Arcane::Accelerator::HostWorkItemGroup::HostWorkItemGroup ( Int32 loop_index,
Int32 group_index,
Int32 group_size,
Int32 nb_active_item )
inlineexplicitconstexprprivate

Constructeur pour l'hôte.

Définition à la ligne 95 du fichier WorkGroupLoopRange.h.

Documentation des fonctions membres

◆ activeItem()

WorkItem Arcane::Accelerator::HostWorkItemGroup::activeItem ( Int32 index) const
inline

Récupère le index-ème WorkItem à gérer.

Définition à la ligne 123 du fichier WorkGroupLoopRange.h.

◆ activeWorkItemRankInGroup()

Int32 Arcane::Accelerator::HostWorkItemGroup::activeWorkItemRankInGroup ( ) const
inlineconstexpr

Rang du WorkItem actif dans son WorkGroup.

Définition à la ligne 111 du fichier WorkGroupLoopRange.h.

◆ barrier()

void Arcane::Accelerator::HostWorkItemGroup::barrier ( )
inline

Bloque tant que tous les WorkItem du groupe ne sont pas arrivés ici.

Définition à la ligne 117 du fichier WorkGroupLoopRange.h.

◆ groupRank()

Int32 Arcane::Accelerator::HostWorkItemGroup::groupRank ( ) const
inlineconstexpr

Rang du groupe du WorkItem dans la liste des WorkGroup.

Définition à la ligne 105 du fichier WorkGroupLoopRange.h.

◆ groupSize()

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

Nombre de WorkItem dans un WorkGroup.

Définition à la ligne 108 du fichier WorkGroupLoopRange.h.

◆ isDevice()

static constexpr bool Arcane::Accelerator::HostWorkItemGroup::isDevice ( )
inlinestaticconstexpr

Indique si on s'exécute sur un accélérateur.

Définition à la ligne 114 du fichier WorkGroupLoopRange.h.

◆ nbActiveItem()

Int32 Arcane::Accelerator::HostWorkItemGroup::nbActiveItem ( ) const
inlineconstexpr

Nombre de WorkItem à gérer dans l'itération.

Définition à la ligne 120 du fichier WorkGroupLoopRange.h.

Documentation des données membres

◆ DeviceWorkItemBlock

friend Arcane::Accelerator::HostWorkItemGroup::DeviceWorkItemBlock
private

Définition à la ligne 90 du fichier WorkGroupLoopRange.h.

◆ m_group_index

Int32 Arcane::Accelerator::HostWorkItemGroup::m_group_index = 0
private

Définition à la ligne 133 du fichier WorkGroupLoopRange.h.

◆ m_group_size

Int32 Arcane::Accelerator::HostWorkItemGroup::m_group_size = 0
private

Définition à la ligne 132 du fichier WorkGroupLoopRange.h.

◆ m_loop_index

Int32 Arcane::Accelerator::HostWorkItemGroup::m_loop_index = 0
private

Définition à la ligne 131 du fichier WorkGroupLoopRange.h.

◆ m_nb_active_item

Int32 Arcane::Accelerator::HostWorkItemGroup::m_nb_active_item = 0
private

Définition à la ligne 134 du fichier WorkGroupLoopRange.h.

◆ SyclDeviceWorkItemBlock

friend Arcane::Accelerator::HostWorkItemGroup::SyclDeviceWorkItemBlock
private

Définition à la ligne 89 du fichier WorkGroupLoopRange.h.

◆ WorkGroupLoopContext

friend Arcane::Accelerator::HostWorkItemGroup::WorkGroupLoopContext
private

Définition à la ligne 88 du fichier WorkGroupLoopRange.h.


La documentation de cette classe a été générée à partir du fichier suivant :