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"
54: m_p(impl::RunQueueImpl::create(runner._impl()))
63: m_p(impl::RunQueueImpl::create(runner._impl(), bi))
72: m_p(impl::RunQueueImpl::create(runner._impl()))
81: m_p(impl::RunQueueImpl::create(runner._impl(), bi))
116operator=(
const RunQueue& x)
127operator=(RunQueue&& x)
noexcept
161 m_p->_internalBarrier();
171 return m_p->executionPolicy();
178impl::IRunnerRuntime* RunQueue::
179_internalRuntime()
const
182 return m_p->_internalRuntime();
188impl::IRunQueueStream* RunQueue::
189_internalStream()
const
192 return m_p->_internalStream();
198impl::RunCommandImpl* RunQueue::
199_getCommandImpl()
const
202 return m_p->_internalCreateOrGetRunCommandImpl();
208impl::RunQueueImpl* RunQueue::
222 return m_p->_internalStream()->_internalImpl();
233 m_p->copyMemory(args);
243 m_p->prefetchMemory(args);
253 m_p->waitEvent(event);
274 m_p->recordEvent(event);
305 m_p->m_is_async = is_async;
316 return m_p->m_is_async;
336 return m_p->allocationOptions();
347 m_p->m_memory_ressource = mem;
357 return m_p->m_memory_ressource;
367 if (!queue || queue->
isNull())
369 return impl::RuntimeStaticInfo::getPointerAccessibility(queue->
executionPolicy(), ptr, ptr_attr);
372extern "C++" void impl::
373arcaneCheckPointerIsAccessible(
const RunQueue* queue,
const void* ptr,
376 if (!queue || queue->
isNull())
378 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 * platformStream() const
Pointeur sur la structure interne dépendante de l'implémentation.
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.
Gestionnaire d'exécution pour accélérateur.
T * get() const
Retourne l'objet référé par l'instance.
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.
eMemoryRessource
Liste des ressources mémoire disponibles.
@ Unknown
Valeur inconnue ou non initialisée.