Arcane  v4.1.3.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
Référence du modèle de la classe Arcane::Accelerator::WorkGroupLoopRangeBase< 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 Int32 blockSize () const
 Taille d'un block.
 
constexpr Int32 nbBlock () const
 Nombre de blocs.
 
void setBlockSize (Int32 nb_block)
 Positionne la taille d'un bloc.
 
void setBlockSize (const RunCommand &command)
 Positionne la taille d'un bloc en fonction de la commande command.
 

Description détaillée

template<typename IndexType_>
class Arcane::Accelerator::WorkGroupLoopRangeBase< 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 660 du fichier arccore/src/accelerator/arccore/accelerator/WorkGroupLoopRange.h.

Documentation des définitions de type membres

◆ IndexType

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

Documentation des constructeurs et destructeur

◆ WorkGroupLoopRangeBase()

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

Documentation des fonctions membres

◆ blockSize()

template<typename IndexType_>
Int32 Arcane::Accelerator::WorkGroupLoopRangeBase< IndexType_ >::blockSize ( ) const
inlineconstexpr

Taille d'un block.

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

◆ nbBlock()

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

Nombre de blocs.

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

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

◆ nbElement()

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

Nombre d'éléments à traiter.

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

◆ setBlockSize() [1/2]

template<typename IndexType_>
void Arcane::Accelerator::WorkGroupLoopRangeBase< IndexType_ >::setBlockSize ( const RunCommand & command)

Positionne la taille d'un bloc en fonction de la commande command.

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

Références Arcane::Accelerator::RunCommand::executionPolicy(), Arcane::Accelerator::isAcceleratorPolicy(), et setBlockSize().

◆ setBlockSize() [2/2]

template<typename IndexType_>
void Arcane::Accelerator::WorkGroupLoopRangeBase< IndexType_ >::setBlockSize ( Int32 nb_block)

Positionne la taille d'un bloc.

nb_block doit être un multiple de 32.

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

Références ARCCORE_FATAL.

Référencé par setBlockSize().


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