File d'exécution pour accélérateur. Plus de détails...
#include <arcane/accelerator/core/internal/RunQueueImpl.h>
Fonctions membres publiques | |
RunQueueImpl (const RunQueueImpl &)=delete | |
RunQueueImpl (RunQueueImpl &&)=delete | |
RunQueueImpl & | operator= (const RunQueueImpl &)=delete |
RunQueueImpl & | operator= (RunQueueImpl &&)=delete |
eExecutionPolicy | executionPolicy () const |
RunnerImpl * | runner () const |
MemoryAllocationOptions | allocationOptions () const |
bool | isAutoPrefetchCommand () const |
void | copyMemory (const MemoryCopyArgs &args) const |
void | prefetchMemory (const MemoryPrefetchArgs &args) const |
void | recordEvent (RunQueueEvent &event) |
void | waitEvent (RunQueueEvent &event) |
void | addRef () |
void | removeRef () |
Fonctions membres publiques statiques | |
static RunQueueImpl * | create (RunnerImpl *r, const RunQueueBuildInfo &bi) |
static RunQueueImpl * | create (RunnerImpl *r) |
Fonctions membres privées | |
RunQueueImpl (RunnerImpl *runner_impl, Int32 id, const RunQueueBuildInfo &bi) | |
RunCommandImpl * | _internalCreateOrGetRunCommandImpl () |
IRunnerRuntime * | _internalRuntime () const |
IRunQueueStream * | _internalStream () const |
void | _internalFreeRunningCommands () |
Libère les commandes en cours d'exécution. | |
void | _internalBarrier () |
Bloque jusqu'à ce que toutes les commandes soient terminées. | |
bool | _isInPool () const |
void | _release () |
void | _setDefaultMemoryRessource () |
Fonctions membres privées statiques | |
static RunQueueImpl * | _reset (RunQueueImpl *p) |
Réinitialise l'implémentation. | |
Attributs privés | |
RunnerImpl * | m_runner_impl = nullptr |
eExecutionPolicy | m_execution_policy = eExecutionPolicy::None |
IRunnerRuntime * | m_runtime = nullptr |
IRunQueueStream * | m_queue_stream = nullptr |
std::stack< RunCommandImpl * > | m_run_command_pool |
Pool de commandes. | |
UniqueArray< RunCommandImpl * > | m_active_run_command_list |
Liste des commandes en cours d'exécution. | |
Int32 | m_id = 0 |
Identifiant de la file. | |
bool | m_is_in_pool = false |
Indique si l'instance est dans un pool d'instance. | |
std::atomic< Int32 > | m_nb_ref = 0 |
Nombre de références sur l'instance. | |
bool | m_is_async = false |
Indique si la file est asynchrone. | |
eMemoryRessource | m_memory_ressource = eMemoryRessource::Unknown |
Ressource mémoire par défaut. | |
Amis | |
class | Arcane::Accelerator::Runner |
class | Arcane::Accelerator::RunQueue |
class | RunCommandImpl |
class | RunQueueImplStack |
class | RunnerImpl |
File d'exécution pour accélérateur.
Cette classe gère l'implémentation d'une RunQueue. La description des méthodes se trouve dans RunQueue.
Définition à la ligne 40 du fichier core/internal/RunQueueImpl.h.
|
private |
Définition à la ligne 38 du fichier RunQueueImpl.cc.
Arcane::Accelerator::impl::RunQueueImpl::~RunQueueImpl | ( | ) |
Définition à la ligne 51 du fichier RunQueueImpl.cc.
|
private |
Bloque jusqu'à ce que toutes les commandes soient terminées.
Définition à la ligne 221 du fichier RunQueueImpl.cc.
|
private |
Définition à la ligne 180 du fichier RunQueueImpl.cc.
|
private |
Libère les commandes en cours d'exécution.
Cette méthode est en général appelée après une barrière ce qui garantit que les commandes asynchrones sont terminées.
Définition à la ligne 206 du fichier RunQueueImpl.cc.
|
inlineprivate |
Définition à la ligne 97 du fichier core/internal/RunQueueImpl.h.
|
inlineprivate |
Définition à la ligne 98 du fichier core/internal/RunQueueImpl.h.
|
inlineprivate |
Définition à la ligne 101 du fichier core/internal/RunQueueImpl.h.
|
private |
Définition à la ligne 67 du fichier RunQueueImpl.cc.
|
staticprivate |
Réinitialise l'implémentation.
Cette méthode est appelée lorsqu'on va initialiser une RunQueue avec cette instance. Il faut dans ce cas réinitialiser les valeurs de l'instance qui dépendent de l'état actuel.
Définition à la ligne 237 du fichier RunQueueImpl.cc.
|
private |
Définition à la ligne 92 du fichier RunQueueImpl.cc.
|
inline |
Définition à la ligne 83 du fichier core/internal/RunQueueImpl.h.
MemoryAllocationOptions Arcane::Accelerator::impl::RunQueueImpl::allocationOptions | ( | ) | const |
Définition à la ligne 103 du fichier RunQueueImpl.cc.
void Arcane::Accelerator::impl::RunQueueImpl::copyMemory | ( | const MemoryCopyArgs & | args | ) | const |
Définition à la ligne 124 du fichier RunQueueImpl.cc.
|
static |
Définition à la ligne 162 du fichier RunQueueImpl.cc.
|
static |
Définition à la ligne 171 du fichier RunQueueImpl.cc.
|
inline |
Définition à la ligne 70 du fichier core/internal/RunQueueImpl.h.
bool Arcane::Accelerator::impl::RunQueueImpl::isAutoPrefetchCommand | ( | ) | const |
Définition à la ligne 115 du fichier RunQueueImpl.cc.
void Arcane::Accelerator::impl::RunQueueImpl::prefetchMemory | ( | const MemoryPrefetchArgs & | args | ) | const |
Définition à la ligne 133 du fichier RunQueueImpl.cc.
void Arcane::Accelerator::impl::RunQueueImpl::recordEvent | ( | RunQueueEvent & | event | ) |
Définition à la ligne 142 du fichier RunQueueImpl.cc.
|
inline |
Définition à la ligne 87 du fichier core/internal/RunQueueImpl.h.
|
inline |
Définition à la ligne 71 du fichier core/internal/RunQueueImpl.h.
void Arcane::Accelerator::impl::RunQueueImpl::waitEvent | ( | RunQueueEvent & | event | ) |
Définition à la ligne 152 du fichier RunQueueImpl.cc.
Définition à la ligne 42 du fichier core/internal/RunQueueImpl.h.
Définition à la ligne 43 du fichier core/internal/RunQueueImpl.h.
|
friend |
Définition à la ligne 44 du fichier core/internal/RunQueueImpl.h.
|
friend |
Définition à la ligne 46 du fichier core/internal/RunQueueImpl.h.
|
friend |
Définition à la ligne 45 du fichier core/internal/RunQueueImpl.h.
|
private |
Liste des commandes en cours d'exécution.
Définition à la ligne 115 du fichier core/internal/RunQueueImpl.h.
|
private |
Définition à la ligne 109 du fichier core/internal/RunQueueImpl.h.
|
private |
Identifiant de la file.
Définition à la ligne 117 du fichier core/internal/RunQueueImpl.h.
Indique si la file est asynchrone.
Définition à la ligne 123 du fichier core/internal/RunQueueImpl.h.
Indique si l'instance est dans un pool d'instance.
Définition à la ligne 119 du fichier core/internal/RunQueueImpl.h.
|
private |
Ressource mémoire par défaut.
Définition à la ligne 125 du fichier core/internal/RunQueueImpl.h.
|
private |
Nombre de références sur l'instance.
Définition à la ligne 121 du fichier core/internal/RunQueueImpl.h.
|
private |
Définition à la ligne 111 du fichier core/internal/RunQueueImpl.h.
|
private |
Pool de commandes.
Définition à la ligne 113 du fichier core/internal/RunQueueImpl.h.
|
private |
Définition à la ligne 108 du fichier core/internal/RunQueueImpl.h.
|
private |
Définition à la ligne 110 du fichier core/internal/RunQueueImpl.h.