14#include "arcane/accelerator/core/internal/AcceleratorCoreGlobalInternal.h"
15#include "arcane/accelerator/core/RunQueue.h"
17#include "arcane/utils/FatalErrorException.h"
19#include "arcane/accelerator/core/internal/IRunnerRuntime.h"
20#include "arcane/accelerator/core/internal/IRunQueueStream.h"
21#include "arcane/accelerator/core/internal/IRunQueueEventImpl.h"
22#include "arcane/accelerator/core/internal/RunQueueImpl.h"
23#include "arcane/accelerator/core/internal/RunnerImpl.h"
24#include "arcane/accelerator/core/Runner.h"
25#include "arcane/accelerator/core/RunQueueEvent.h"
26#include "arcane/accelerator/core/Memory.h"
27#include "arcane/accelerator/core/NativeStream.h"
55: m_p(impl::RunQueueImpl::create(runner._impl()))
64: m_p(impl::RunQueueImpl::create(runner._impl(),
bi))
73: m_p(impl::RunQueueImpl::create(runner._impl()))
82: m_p(impl::RunQueueImpl::create(runner._impl(),
bi))
117operator=(
const RunQueue& x)
128operator=(RunQueue&& x)
noexcept
162 m_p->_internalBarrier();
172 return m_p->executionPolicy();
180_internalRuntime()
const
182 return m_p->_internalRuntime();
188impl::IRunQueueStream* RunQueue::
189_internalStream()
const
191 return m_p->_internalStream();
197impl::RunCommandImpl* RunQueue::
198_getCommandImpl()
const
200 return m_p->_internalCreateOrGetRunCommandImpl();
206impl::RunQueueImpl* RunQueue::
216impl::NativeStream RunQueue::
217_internalNativeStream()
const
220 return m_p->_internalStream()->nativeStream();
228platformStream()
const
230 return _internalNativeStream().m_native_pointer;
240 m_p->copyMemory(args);
250 m_p->prefetchMemory(args);
260 m_p->waitEvent(
event);
281 m_p->recordEvent(
event);
323 return m_p->m_is_async;
343 return m_p->allocationOptions();
354 m_p->m_memory_ressource =
mem;
364 return m_p->m_memory_ressource;
365 return eMemoryRessource::Unknown;
376 ARCANE_FATAL(
"setting concurrent command creation is not supported for RunQueue running on accelerator");
377 m_p->setConcurrentCommandCreation(v);
387 return m_p->isConcurrentCommandCreation();
397 if (!queue || queue->
isNull())
402extern "C++" void impl::
403arcaneCheckPointerIsAccessible(
const RunQueue* queue,
const void*
ptr,
406 if (!queue || queue->
isNull())
408 return impl::RuntimeStaticInfo::checkPointerIsAcccessible(queue->
executionPolicy(),
ptr, name,
ti);
#define ARCANE_CHECK_POINTER(ptr)
Macro retournant le pointeur ptr s'il est non nul ou lancant une exception s'il est nul.
#define ARCANE_FATAL(...)
Macro envoyant une exception FatalErrorException.
Arguments pour la copie mémoire.
Arguments pour le préfetching mémoire.
Informations sur une adresse 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.
bool isAsync() const
Indique si la file d'exécution est asynchrone.
void waitEvent(RunQueueEvent &event)
Bloque l'exécution sur l'instance tant que les jobs enregistrés dans event ne sont pas terminés.
void copyMemory(const MemoryCopyArgs &args) const
Copie des informations entre deux zones mémoires.
RunQueue()
Créé une file nulle.
void setAsync(bool v)
Positionne l'asynchronisme de l'instance.
void recordEvent(RunQueueEvent &event)
bool isNull() const
Indique si la RunQueue est nulle.
void prefetchMemory(const MemoryPrefetchArgs &args) const
Effectue un préfetching de la mémoire.
MemoryAllocationOptions allocationOptions() const
Options d'allocation associée à cette file.
void barrier() const
Bloque tant que toutes les commandes associées à la file ne sont pas terminées.
eMemoryRessource memoryRessource() const
Ressource mémoire utilisée pour les allocations avec cette instance.
const RunQueue & addAsync(bool is_async) const
Positionne l'asynchronisme de l'instance.
void setMemoryRessource(eMemoryRessource mem)
Positionne la ressource mémoire utilisée pour les allocations avec cette instance.
eExecutionPolicy executionPolicy() const
Politique d'exécution de la file.
bool isAcceleratorPolicy() const
Indique si l'instance est associée à un accélérateur.
bool isConcurrentCommandCreation() const
Indique si la création concurrente de plusieurs RunCommand est autorisée.
void setConcurrentCommandCreation(bool v)
Indique si on autorise la création de RunCommand pour cette instance depuis plusieurs threads.
Gestionnaire d'exécution pour accélérateur.
Interface du runtime associé à un accélérateur.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Options pour configurer les allocations.
Espace de nom pour l'utilisation des accélérateurs.
ePointerAccessibility getPointerAccessibility(eExecutionPolicy policy, const void *ptr, PointerAttribute *ptr_attr)
Accessibilité de l'adresse ptr pour une politique d'exécutionpolicy.
ePointerAccessibility
Informations d'accessibilité d'une adresse mémoire.
@ Unknown
Accessibilité inconnue.
eExecutionPolicy
Politique d'exécution pour un Runner.
@ None
Aucune politique d'exécution.
bool isAcceleratorPolicy(eExecutionPolicy exec_policy)
Indique si exec_policy correspond à un accélérateur.
eMemoryResource
Liste des ressources mémoire disponibles.