12#ifndef ARCANE_ACCELERATOR_CORE_INTERNAL_RUNQUEUEIMPL_H
13#define ARCANE_ACCELERATOR_CORE_INTERNAL_RUNQUEUEIMPL_H
19#include "arcane/utils/Array.h"
20#include "arcane/utils/MemoryRessource.h"
29namespace Arcane::Accelerator::impl
75 RunnerImpl* runner()
const {
return m_runner_impl; }
77 bool isAutoPrefetchCommand()
const;
85 void setConcurrentCommandCreation(
bool v);
86 bool isConcurrentCommandCreation()
const {
return m_use_pool_mutex; }
88 void dumpStats(std::ostream&
ostr)
const;
89 bool isAsync()
const {
return m_is_async; }
91 void _internalBarrier();
103 Int32 v = std::atomic_fetch_add(&m_nb_ref, -1);
111 void _internalFreeRunningCommands();
112 bool _isInPool()
const {
return m_is_in_pool; }
114 void _setDefaultMemoryRessource();
117 void _freeCommandsInPool();
135 bool m_is_in_pool =
false;
137 std::atomic<Int32> m_nb_ref = 0;
139 bool m_is_async =
false;
144 std::unique_ptr<std::mutex> m_pool_mutex;
145 bool m_use_pool_mutex =
false;
Arguments pour la copie mémoire.
Arguments pour le préfetching mémoire.
Informations pour créer une RunQueue.
Evènement pour une file d'exécution.
File d'exécution pour un accélérateur.
Gestionnaire d'exécution pour accélérateur.
Interface d'un flux d'exécution pour une RunQueue.
Interface du runtime associé à un accélérateur.
Implémentation d'une commande pour accélérateur.
Verrou pour le pool de RunCommand en multi-thread.
File d'exécution pour accélérateur.
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.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Options pour configurer les allocations.
eExecutionPolicy
Politique d'exécution pour un Runner.
eMemoryResource
Liste des ressources mémoire disponibles.
std::int32_t Int32
Type entier signé sur 32 bits.