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;
116 ARCANE_DEPRECATED_REASON(
"Y2025: this method is a no op. Concurrent queue creation is always thread-safe")
130 ARCANE_DEPRECATED_REASON(
"Y2025: this method is a no op. reduce policy is always eDeviceReducePolicy::Grid")
173 static RunQueue _makeQueue(
const Runner& runner)
175 return RunQueue(runner,
true);
179 return RunQueue(runner, bi,
true);
183 return makeRef(
new RunQueue(runner,
true));
187 return makeRef(
new RunQueue(runner, bi,
true));
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.
File d'exécution pour un accélérateur.
void fillPointerAttribute(PointerAttribute &attr, const void *ptr)
Remplit attr avec les informations concernant la zone mémoire pointée par ptr.
void setConcurrentQueueCreation(bool v)
Indique si on autorise la création de RunQueue depuis plusieurs threads.
static const IDeviceInfoList * deviceInfoList(eExecutionPolicy policy)
Liste des devices pour la politique d'exécution policy.
bool isInitialized() const
Indique si l'instance a été initialisée.
Runner()
Créé un gestionnaire d'exécution non initialisé.
RunnerInternal * _internalApi()
API interne à Arcane.
double cumulativeCommandTime() const
Temps total passé dans les commandes associées à cette instance.
friend Ref< RunQueue > makeQueueRef(const Runner &runner)
Créé une référence sur file avec la politique d'exécution par défaut de runner.
bool isConcurrentQueueCreation() const
Indique si la création concurrent de plusieurs RunQueue est autorisé
DeviceId deviceId() const
Device associé à cette instance.
void setDeviceReducePolicy(eDeviceReducePolicy v)
Positionne la politique d'exécution des réductions.
const DeviceInfo & deviceInfo() const
Information sur le device associé à cette instance.
DeviceMemoryInfo deviceMemoryInfo() const
Information sur le device associé à cette instance.
void initialize(eExecutionPolicy v)
Initialise l'instance. Cette méthode ne doit être appelée qu'une seule fois.
friend RunQueue makeQueue(const Runner &runner)
Créé une file associée à runner.
void setAsCurrentDevice()
Positionne le device associé à cette instance comme le device par défaut du contexte.
eDeviceReducePolicy deviceReducePolicy() const
politique d'exécution des réductions
void setMemoryAdvice(ConstMemoryView buffer, eMemoryAdvice advice)
Positionne un conseil sur la gestion d'une zone mémoire.
void unsetMemoryAdvice(ConstMemoryView buffer, eMemoryAdvice advice)
Supprime un conseil sur la gestion d'une zone mémoire.
eExecutionPolicy executionPolicy() const
Politique d'exécution associée.
Référence à une instance.
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.
auto makeRef(InstanceType *t) -> Ref< InstanceType >
Créé une référence sur un pointeur.