Arcane  v4.1.1.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 </__w/arcaneframework.github.io/arcaneframework.github.io/framework/arccore/src/accelerator/arccore/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 arccore/src/accelerator/arccore/accelerator/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 arccore/src/accelerator/arccore/accelerator/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 arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.

◆ activeWorkItemRankInGroup()

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

Rang du WorkItem actif dans son WorkGroup.

Définition à la ligne 111 du fichier arccore/src/accelerator/arccore/accelerator/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 arccore/src/accelerator/arccore/accelerator/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 arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.

◆ groupSize()

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

Nombre de WorkItem dans un WorkGroup.

Définition à la ligne 108 du fichier arccore/src/accelerator/arccore/accelerator/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 arccore/src/accelerator/arccore/accelerator/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 arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.

Documentation des données membres

◆ DeviceWorkItemBlock

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

◆ m_group_index

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

◆ m_group_size

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

◆ m_loop_index

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

◆ m_nb_active_item

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

◆ SyclDeviceWorkItemBlock

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

◆ WorkGroupLoopContext

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

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