12#ifndef ARCANE_ACCELERATOR_CORE_RUNNER_H
13#define ARCANE_ACCELERATOR_CORE_RUNNER_H
17#include "arcane/utils/Ref.h"
18#include "arcane/utils/MemoryRessource.h"
20#include "arcane/accelerator/core/RunQueue.h"
52class ARCANE_ACCELERATOR_CORE_EXPORT
Runner
54 friend impl::RunQueueImpl;
55 friend impl::RunCommandImpl;
58 friend impl::RunnerImpl;
93 bool isInitialized()
const;
101 void setConcurrentQueueCreation(
bool v);
104 bool isConcurrentQueueCreation()
const;
111 double cumulativeCommandTime()
const;
120 void setMemoryAdvice(ConstMemoryView buffer,
eMemoryAdvice advice);
123 void unsetMemoryAdvice(ConstMemoryView buffer,
eMemoryAdvice advice);
133 void setAsCurrentDevice();
161 static Ref<RunQueue> _makeQueueRef(
const Runner& runner)
163 return makeRef(
new RunQueue(runner,
true));
167 return makeRef(
new RunQueue(runner, bi,
true));
173 RunnerInternal* _internalApi();
177 impl::IRunnerRuntime* _internalRuntime()
const;
178 impl::RunnerImpl* _impl()
const {
return m_p.get(); }
182 std::shared_ptr<impl::RunnerImpl> m_p;
186 void _checkIsInit()
const;
187 bool _isAutoPrefetchCommand()
const;
204 return Runner::_makeQueue(runner);
218 return Runner::_makeQueue(*runner);
231 return Runner::_makeQueue(runner, bi);
245 return Runner::_makeQueue(*runner, bi);
259 return Runner::_makeQueueRef(runner);
273 return Runner::_makeQueueRef(runner, bi);
288 return Runner::_makeQueueRef(*runner);
#define ARCANE_CHECK_POINTER(ptr)
Macro retournant le pointeur ptr s'il est non nul ou lancant une exception s'il est nul.
Identifiant d'un composant du système.
Information sur un device.
Interface d'une liste de devices.
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.
Gestionnaire d'exécution pour accélérateur.
Espace de nom pour l'utilisation des accélérateurs.
Ref< RunQueue > makeQueueRef(const Runner &runner)
Créé une référence sur file avec la politique d'exécution par défaut de runner.
eDeviceReducePolicy
Politique des opératations de réduction sur les accélérateurs.
RunQueue makeQueue(const Runner &runner)
Créé une file associée à runner.
eMemoryAdvice
Conseils pour la gestion mémoire.
eExecutionPolicy
Politique d'exécution pour un Runner.