12#ifndef ARCANE_ACCELERATOR_CORE_RUNNER_H
13#define ARCANE_ACCELERATOR_CORE_RUNNER_H
19#include "arcane/accelerator/core/RunQueue.h"
66class ARCANE_ACCELERATOR_CORE_EXPORT
Runner
115 ARCANE_DEPRECATED_REASON(
"Y2025: this method is a no op. Concurrent queue creation is always thread-safe")
129 ARCANE_DEPRECATED_REASON(
"Y2025: this method is a no op. reduce policy is always eDeviceReducePolicy::Grid")
172 static RunQueue _makeQueue(
const Runner& runner)
174 return RunQueue(runner,
true);
178 return RunQueue(runner, bi,
true);
182 return makeRef(
new RunQueue(runner,
true));
186 return makeRef(
new RunQueue(runner, bi,
true));
201 std::shared_ptr<impl::RunnerImpl> m_p;
205 void _checkIsInit()
const;
206 bool _isAutoPrefetchCommand()
const;
223 return Runner::_makeQueue(runner);
237 return Runner::_makeQueue(*runner);
250 return Runner::_makeQueue(runner, bi);
264 return Runner::_makeQueue(*runner, bi);
278 return Runner::_makeQueueRef(runner);
292 return Runner::_makeQueueRef(runner, bi);
307 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.
Gestion des références à une classe C++.
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.
Interface du runtime associé à un accélérateur.
Implémentation d'une commande pour accélérateur.
File d'exécution pour accélérateur.
Vue constante sur une zone mémoire contigue contenant des éléments de taille fixe.
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.