Gestionnaire d'exécution pour accélérateur. Plus de détails...
#include <arcane/accelerator/core/Runner.h>
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 DeviceInfo & | deviceInfo () 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 IDeviceInfoList * | deviceInfoList (eExecutionPolicy policy) |
Liste des devices pour la politique d'exécution policy. | |
Fonctions membres privées | |
impl::IRunnerRuntime * | _internalRuntime () const |
impl::RunnerImpl * | _impl () const |
void | _checkIsInit () const |
bool | _isAutoPrefetchCommand () const |
Fonctions membres privées statiques | |
static RunQueue | _makeQueue (const Runner &runner) |
static RunQueue | _makeQueue (const Runner &runner, const RunQueueBuildInfo &bi) |
static Ref< RunQueue > | _makeQueueRef (const Runner &runner) |
static Ref< RunQueue > | _makeQueueRef (Runner &runner, const RunQueueBuildInfo &bi) |
Attributs privés | |
friend | RunQueue |
friend | RunQueueEvent |
std::shared_ptr< impl::RunnerImpl > | m_p |
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< RunQueue > | makeQueueRef (const Runner &runner) |
Créé une référence sur file avec la politique d'exécution par défaut de runner. | |
Ref< RunQueue > | makeQueueRef (Runner &runner, const RunQueueBuildInfo &bi) |
Créé une référence sur file avec la politique d'exécution par défaut de runner. | |
Ref< RunQueue > | makeQueueRef (Runner *runner) |
Créé une référence sur file avec la politique d'exécution par défaut de runner. | |
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.
Arcane::Accelerator::Runner::Runner | ( | ) |
Créé un gestionnaire d'exécution non initialisé.
Il faudra appeler initialize() avant de pouvoir utiliser l'instance
|
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().
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().
|
private |
|
inlineprivate |
Définition à la ligne 178 du fichier core/Runner.h.
RunnerInternal * Arcane::Accelerator::Runner::_internalApi | ( | ) |
|
private |
|
private |
|
inlinestaticprivate |
Définition à la ligne 153 du fichier core/Runner.h.
|
inlinestaticprivate |
Définition à la ligne 157 du fichier core/Runner.h.
|
inlinestaticprivate |
Définition à la ligne 161 du fichier core/Runner.h.
|
inlinestaticprivate |
Définition à la ligne 165 du fichier core/Runner.h.
double Arcane::Accelerator::Runner::cumulativeCommandTime | ( | ) | const |
DeviceId Arcane::Accelerator::Runner::deviceId | ( | ) | const |
Device associé à cette instance.
Définition à la ligne 420 du fichier Runner.cc.
Référencé par deviceInfo().
const DeviceInfo & Arcane::Accelerator::Runner::deviceInfo | ( | ) | const |
Information sur le device associé à cette instance.
Définition à la ligne 429 du fichier Runner.cc.
Références ARCANE_FATAL, Arcane::Accelerator::DeviceId::asInt32(), deviceId(), deviceInfoList(), et executionPolicy().
Référencé par Arcane::SubDomain::initialize().
|
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().
eDeviceReducePolicy Arcane::Accelerator::Runner::deviceReducePolicy | ( | ) | const |
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(), Arcane::Accelerator::getPointerAccessibility(), et Arcane::SubDomain::initialize().
void Arcane::Accelerator::Runner::fillPointerAttribute | ( | PointerAttribute & | attr, |
const void * | ptr | ||
) |
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().
void Arcane::Accelerator::Runner::initialize | ( | eExecutionPolicy | v, |
DeviceId | device | ||
) |
bool Arcane::Accelerator::Runner::isConcurrentQueueCreation | ( | ) | const |
bool Arcane::Accelerator::Runner::isInitialized | ( | ) | const |
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::VariableSynchronizer::_setCurrentDevice(), et Arcane::Accelerator::arcaneInitializeRunner().
void Arcane::Accelerator::Runner::setDeviceReducePolicy | ( | eDeviceReducePolicy | v | ) |
void Arcane::Accelerator::Runner::setMemoryAdvice | ( | ConstMemoryView | buffer, |
eMemoryAdvice | advice | ||
) |
void Arcane::Accelerator::Runner::unsetMemoryAdvice | ( | ConstMemoryView | buffer, |
eMemoryAdvice | advice | ||
) |
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.
|
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.
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.
|
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.
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.
|
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.
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.
|
private |
Définition à la ligne 182 du fichier core/Runner.h.
|
private |
Définition à la ligne 56 du fichier core/Runner.h.
|
private |
Définition à la ligne 57 du fichier core/Runner.h.