Arcane  v4.1.4.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
Référence du modèle de la classe Arcane::Accelerator::WorkGroupLoopRangeBase< IsCooperativeLaunch, IndexType_ >

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 IndexType = IndexType_
 

Fonctions membres publiques

 WorkGroupLoopRangeBase (IndexType nb_element)
 
constexpr IndexType nbElement () const
 Nombre d'éléments à traiter.
 
constexpr IndexType blockSize () const
 Taille d'un block.
 
constexpr Int32 nbBlock () const
 Nombre de blocs.
 
void setBlockSize (IndexType nb_block)
 Positionne la taille d'un bloc.
 
void setBlockSize (RunCommand &command)
 Positionne la taille d'un bloc en fonction de la commande command.
 

Fonctions membres publiques statiques

static constexpr bool isCooperativeLaunch ()
 

Description détaillée

template<bool IsCooperativeLaunch, typename IndexType_>
class Arcane::Accelerator::WorkGroupLoopRangeBase< IsCooperativeLaunch, IndexType_ >

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

Cette classe est la classe de base pour WorkGroupLoopRange et CooperativeWorkGroupLoopRange.

Il faudra appeler setBlockSize() pour positionner la taille d'un bloc. Cela peut être fait par le développeur ou automatiquement au lancement de la commande.

L'intervalle d'itération contient nbElement() et est décomposé en nbBlock() WorkGroup contenant chacun blockSize() WorkItem.

Note
Sur accélérateur, La valeur de blockSize() 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 768 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.

Documentation des définitions de type membres

◆ IndexType

template<bool IsCooperativeLaunch, typename IndexType_>
using Arcane::Accelerator::WorkGroupLoopRangeBase< IsCooperativeLaunch, IndexType_ >::IndexType = IndexType_

Documentation des constructeurs et destructeur

◆ WorkGroupLoopRangeBase()

template<bool IsCooperativeLaunch, typename IndexType_>
Arcane::Accelerator::WorkGroupLoopRangeBase< IsCooperativeLaunch, IndexType_ >::WorkGroupLoopRangeBase ( IndexType nb_element)
inlineexplicit

Documentation des fonctions membres

◆ blockSize()

template<bool IsCooperativeLaunch, typename IndexType_>
IndexType Arcane::Accelerator::WorkGroupLoopRangeBase< IsCooperativeLaunch, IndexType_ >::blockSize ( ) const
inlineconstexpr

Taille d'un block.

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

◆ isCooperativeLaunch()

template<bool IsCooperativeLaunch, typename IndexType_>
static constexpr bool Arcane::Accelerator::WorkGroupLoopRangeBase< IsCooperativeLaunch, IndexType_ >::isCooperativeLaunch ( )
inlinestaticconstexpr

◆ nbBlock()

template<bool IsCooperativeLaunch, typename IndexType_>
Int32 Arcane::Accelerator::WorkGroupLoopRangeBase< IsCooperativeLaunch, IndexType_ >::nbBlock ( ) const
inlineconstexpr

Nombre de blocs.

Retourne 0 si setBlockSize() n'a pas encore été appelé.

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

◆ nbElement()

template<bool IsCooperativeLaunch, typename IndexType_>
IndexType Arcane::Accelerator::WorkGroupLoopRangeBase< IsCooperativeLaunch, IndexType_ >::nbElement ( ) const
inlineconstexpr

Nombre d'éléments à traiter.

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

◆ setBlockSize() [1/2]

template<bool IsCooperativeLaunch, typename IndexType_>
void Arcane::Accelerator::WorkGroupLoopRangeBase< IsCooperativeLaunch, IndexType_ >::setBlockSize ( IndexType nb_block)

Positionne la taille d'un bloc.

nb_block doit être un multiple de 32.

Définition à la ligne 31 du fichier WorkGroupLoopRange.cc.

Références ARCCORE_FATAL.

Référencé par setBlockSize().

◆ setBlockSize() [2/2]


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