Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::Accelerator::Runner

Gestionnaire d'exécution pour accélérateur. Plus de détails...

#include <arcane/accelerator/core/Runner.h>

+ Graphe de collaboration de Arcane::Accelerator::Runner:

Fonctions membres publiques

 Runner ()
 Créé un gestionnaire d'exécution non initialisé.
 
 Runner (eExecutionPolicy p)
 Créé et initialise un gestionnaire pour l'accélérateur p.
 
 Runner (eExecutionPolicy p, DeviceId device)
 Créé et initialise un gestionnaire pour l'accélérateur p et l'accélérateur device.
 
eExecutionPolicy executionPolicy () const
 Politique d'exécution associée.
 
void initialize (eExecutionPolicy v)
 Initialise l'instance. Cette méthode ne doit être appelée qu'une seule fois.
 
void initialize (eExecutionPolicy v, DeviceId device)
 Initialise l'instance. Cette méthode ne doit être appelée qu'une seule fois.
 
bool isInitialized () const
 Indique si l'instance a été initialisée.
 
void setConcurrentQueueCreation (bool v)
 Indique si on autorise la création de RunQueue depuis plusieurs threads.
 
bool isConcurrentQueueCreation () const
 Indique si la création concurrent de plusieurs RunQueue est autorisé
 
double cumulativeCommandTime () const
 Temps total passé dans les commandes associées à cette instance.
 
void setDeviceReducePolicy (eDeviceReducePolicy v)
 Positionne la politique d'exécution des réductions.
 
eDeviceReducePolicy deviceReducePolicy () const
 politique d'exécution des réductions
 
void setMemoryAdvice (ConstMemoryView buffer, eMemoryAdvice advice)
 Positionne un conseil sur la gestion d'une zone mémoire.
 
void unsetMemoryAdvice (ConstMemoryView buffer, eMemoryAdvice advice)
 Supprime un conseil sur la gestion d'une zone mémoire.
 
DeviceId deviceId () const
 Device associé à cette instance.
 
void setAsCurrentDevice ()
 Positionne le device associé à cette instance comme le device par défaut du contexte.
 
const DeviceInfodeviceInfo () const
 Information sur le device associé à cette instance.
 
void fillPointerAttribute (PointerAttribute &attr, const void *ptr)
 Remplit attr avec les informations concernant la zone mémoire pointée par ptr.
 
RunnerInternal * _internalApi ()
 API interne à Arcane.
 

Fonctions membres publiques statiques

static const IDeviceInfoListdeviceInfoList (eExecutionPolicy policy)
 Liste des devices pour la politique d'exécution policy.
 

Amis

RunQueue makeQueue (const Runner &runner)
 Créé une file associée à runner.
 
RunQueue makeQueue (const Runner *runner)
 Créé une file associée à runner.
 
RunQueue makeQueue (const Runner &runner, const RunQueueBuildInfo &bi)
 Créé une file associée à runner avec les propriétés bi.
 
RunQueue makeQueue (const Runner *runner, const RunQueueBuildInfo &bi)
 Créé une file associée à runner avec les propriétés bi.
 
Ref< RunQueuemakeQueueRef (const Runner &runner)
 Créé une référence sur file avec la politique d'exécution par défaut de runner.
 
Ref< RunQueuemakeQueueRef (Runner &runner, const RunQueueBuildInfo &bi)
 Créé une référence sur file avec la politique d'exécution par défaut de runner.
 
Ref< RunQueuemakeQueueRef (Runner *runner)
 Créé une référence sur file avec la politique d'exécution par défaut de runner.
 

Description détaillée

Gestionnaire d'exécution pour accélérateur.

Cette classe utilise une sémantique par référence

Une instance de cette classe représente un backend d'exécution. Il faut d'abord appelé initialize() avant de pouvoir utiliser les méthodes de l'instance ou alors il faut appeler l'un des constructeurs autre que le constructeur par défaut.

Une instance de cette classe est associée à un device qui n'est pas forcément celui utilisé par défaut pour le thread courant. Pour garantir que les kernels associés à ce runner seront bien exécutés sur le bon device il est nécessaire d'appeler au moins une fois la méthode setAsCurrentDevice().

Il est possible de changer le mécanisme utilisé pour les réductions via la méthode setDeviceReducePolicy(). Par défaut on utilise un kernel utilisant des synchronisations entre blocs. Cela permet de garantir la répétabilité des résultats.

Définition à la ligne 52 du fichier core/Runner.h.

Documentation des constructeurs et destructeur

◆ Runner() [1/3]

Arcane::Accelerator::Runner::Runner ( )

Créé un gestionnaire d'exécution non initialisé.

Il faudra appeler initialize() avant de pouvoir utiliser l'instance

Définition à la ligne 257 du fichier Runner.cc.

◆ Runner() [2/3]

Arcane::Accelerator::Runner::Runner ( eExecutionPolicy  p)
explicit

Créé et initialise un gestionnaire pour l'accélérateur p.

Définition à la ligne 266 du fichier Runner.cc.

Références initialize().

◆ Runner() [3/3]

Arcane::Accelerator::Runner::Runner ( eExecutionPolicy  p,
DeviceId  device 
)

Créé et initialise un gestionnaire pour l'accélérateur p et l'accélérateur device.

Définition à la ligne 276 du fichier Runner.cc.

Références initialize().

Documentation des fonctions membres

◆ _internalApi()

RunnerInternal * Arcane::Accelerator::Runner::_internalApi ( )

API interne à Arcane.

Définition à la ligne 478 du fichier Runner.cc.

◆ cumulativeCommandTime()

double Arcane::Accelerator::Runner::cumulativeCommandTime ( ) const

Temps total passé dans les commandes associées à cette instance.

Ce temps n'est significatif que si les RunQueue sont synchrones.

Définition à la ligne 381 du fichier Runner.cc.

◆ deviceId()

DeviceId Arcane::Accelerator::Runner::deviceId ( ) const

Device associé à cette instance.

Définition à la ligne 420 du fichier Runner.cc.

Référencé par deviceInfo().

◆ deviceInfo()

const DeviceInfo & Arcane::Accelerator::Runner::deviceInfo ( ) const

◆ deviceInfoList()

const IDeviceInfoList * Arcane::Accelerator::Runner::deviceInfoList ( eExecutionPolicy  policy)
static

Liste des devices pour la politique d'exécution policy.

Si le runtime associé n'a pas encore été initialisé, cette méthode retourne nullptr.

Définition à la ligne 446 du fichier Runner.cc.

Références Arcane::Accelerator::None.

Référencé par deviceInfo().

◆ deviceReducePolicy()

eDeviceReducePolicy Arcane::Accelerator::Runner::deviceReducePolicy ( ) const

politique d'exécution des réductions

Définition à la ligne 344 du fichier Runner.cc.

◆ executionPolicy()

eExecutionPolicy Arcane::Accelerator::Runner::executionPolicy ( ) const

Politique d'exécution associée.

Définition à la ligne 299 du fichier Runner.cc.

Référencé par Arcane::Accelerator::impl::arcaneCheckPointerIsAccessible(), deviceInfo(), et Arcane::Accelerator::getPointerAccessibility().

◆ fillPointerAttribute()

void Arcane::Accelerator::Runner::fillPointerAttribute ( PointerAttribute attr,
const void *  ptr 
)

Remplit attr avec les informations concernant la zone mémoire pointée par ptr.

Définition à la ligne 458 du fichier Runner.cc.

◆ initialize() [1/2]

void Arcane::Accelerator::Runner::initialize ( eExecutionPolicy  v)

Initialise l'instance. Cette méthode ne doit être appelée qu'une seule fois.

Définition à la ligne 353 du fichier Runner.cc.

Référencé par Arcane::Accelerator::arcaneInitializeRunner(), Runner(), et Runner().

◆ initialize() [2/2]

void Arcane::Accelerator::Runner::initialize ( eExecutionPolicy  v,
DeviceId  device 
)

Initialise l'instance. Cette méthode ne doit être appelée qu'une seule fois.

Définition à la ligne 362 du fichier Runner.cc.

◆ isConcurrentQueueCreation()

bool Arcane::Accelerator::Runner::isConcurrentQueueCreation ( ) const

Indique si la création concurrent de plusieurs RunQueue est autorisé

Définition à la ligne 326 du fichier Runner.cc.

◆ isInitialized()

bool Arcane::Accelerator::Runner::isInitialized ( ) const

Indique si l'instance a été initialisée.

Définition à la ligne 308 du fichier Runner.cc.

◆ setAsCurrentDevice()

void Arcane::Accelerator::Runner::setAsCurrentDevice ( )

Positionne le device associé à cette instance comme le device par défaut du contexte.

Cet appel est équivalent à cudaSetDevice() ou hipSetDevice();

Définition à la ligne 410 du fichier Runner.cc.

Référencé par Arcane::Accelerator::arcaneInitializeRunner().

◆ setConcurrentQueueCreation()

void Arcane::Accelerator::Runner::setConcurrentQueueCreation ( bool  v)

Indique si on autorise la création de RunQueue depuis plusieurs threads.

Cela nécessite d'utiliser un verrou (comme std::mutex) et peut dégrader les performances. Le défaut est false.

Définition à la ligne 317 du fichier Runner.cc.

◆ setDeviceReducePolicy()

void Arcane::Accelerator::Runner::setDeviceReducePolicy ( eDeviceReducePolicy  v)

Positionne la politique d'exécution des réductions.

Définition à la ligne 335 du fichier Runner.cc.

◆ setMemoryAdvice()

void Arcane::Accelerator::Runner::setMemoryAdvice ( ConstMemoryView  buffer,
eMemoryAdvice  advice 
)

Positionne un conseil sur la gestion d'une zone mémoire.

Définition à la ligne 390 du fichier Runner.cc.

◆ unsetMemoryAdvice()

void Arcane::Accelerator::Runner::unsetMemoryAdvice ( ConstMemoryView  buffer,
eMemoryAdvice  advice 
)

Supprime un conseil sur la gestion d'une zone mémoire.

Définition à la ligne 400 du fichier Runner.cc.

Documentation des fonctions amies et associées

◆ makeQueue [1/4]

RunQueue makeQueue ( const Runner runner)
friend

Créé une file associée à runner.

Cet appel est thread-safe si runner.isConcurrentQueueCreation()==true.

Définition à la ligne 202 du fichier core/Runner.h.

◆ makeQueue [2/4]

RunQueue makeQueue ( const Runner runner,
const RunQueueBuildInfo bi 
)
friend

Créé une file associée à runner avec les propriétés bi.

Cet appel est thread-safe si runner.isConcurrentQueueCreation()==true.

Définition à la ligne 229 du fichier core/Runner.h.

◆ makeQueue [3/4]

RunQueue makeQueue ( const Runner runner)
friend

Créé une file associée à runner.

Cet appel est thread-safe si runner.isConcurrentQueueCreation()==true.

Définition à la ligne 215 du fichier core/Runner.h.

◆ makeQueue [4/4]

RunQueue makeQueue ( const Runner runner,
const RunQueueBuildInfo bi 
)
friend

Créé une file associée à runner avec les propriétés bi.

Cet appel est thread-safe si runner.isConcurrentQueueCreation()==true.

Définition à la ligne 242 du fichier core/Runner.h.

◆ makeQueueRef [1/3]

Ref< RunQueue > makeQueueRef ( const Runner runner)
friend

Créé une référence sur file avec la politique d'exécution par défaut de runner.

Si la file est temporaire, il est préférable d'utiliser makeQueue() à la place pour éviter une allocation inutile.

Définition à la ligne 257 du fichier core/Runner.h.

◆ makeQueueRef [2/3]

Ref< RunQueue > makeQueueRef ( Runner runner,
const RunQueueBuildInfo bi 
)
friend

Créé une référence sur file avec la politique d'exécution par défaut de runner.

Si la file est temporaire, il est préférable d'utiliser makeQueue() à la place pour éviter une allocation inutile.

Définition à la ligne 271 du fichier core/Runner.h.

◆ makeQueueRef [3/3]

Ref< RunQueue > makeQueueRef ( Runner runner)
friend

Créé une référence sur file avec la politique d'exécution par défaut de runner.

Si la file est temporaire, il est préférable d'utiliser makeQueue() à la place pour éviter une allocation inutile.

Définition à la ligne 285 du fichier core/Runner.h.


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