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"
67class ARCANE_ACCELERATOR_CORE_EXPORT
Runner
69 friend impl::RunQueueImpl;
70 friend impl::RunCommandImpl;
73 friend impl::RunnerImpl;
108 bool isInitialized()
const;
116 ARCANE_DEPRECATED_REASON(
"Y2025: this method is a no op. Concurrent queue creation is always thread-safe")
117 void setConcurrentQueueCreation(
bool v);
120 bool isConcurrentQueueCreation()
const;
127 double cumulativeCommandTime()
const;
130 ARCANE_DEPRECATED_REASON(
"Y2025: this method is a no op. reduce policy is always eDeviceReducePolicy::Grid")
137 void setMemoryAdvice(ConstMemoryView buffer,
eMemoryAdvice advice);
140 void unsetMemoryAdvice(ConstMemoryView buffer,
eMemoryAdvice advice);
150 void setAsCurrentDevice();
181 static Ref<RunQueue> _makeQueueRef(
const Runner& runner)
183 return makeRef(
new RunQueue(runner,
true));
187 return makeRef(
new RunQueue(runner, bi,
true));
193 RunnerInternal* _internalApi();
197 impl::IRunnerRuntime* _internalRuntime()
const;
198 impl::RunnerImpl* _impl()
const {
return m_p.get(); }
202 std::shared_ptr<impl::RunnerImpl> m_p;
206 void _checkIsInit()
const;
207 bool _isAutoPrefetchCommand()
const;
224 return Runner::_makeQueue(runner);
238 return Runner::_makeQueue(*runner);
251 return Runner::_makeQueue(runner, bi);
265 return Runner::_makeQueue(*runner, bi);
279 return Runner::_makeQueueRef(runner);
293 return Runner::_makeQueueRef(runner, bi);
308 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.
Information mémoire d'un accélérateur.
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.