14#include "arccore/common/accelerator/IAcceleratorMng.h"
16#include "arccore/trace/TraceAccessor.h"
17#include "arccore/base/FatalErrorException.h"
20#include "arccore/common/accelerator/Runner.h"
21#include "arccore/common/accelerator/RunQueue.h"
23#include "arcane/accelerator/core/AcceleratorRuntimeInitialisationInfo.h"
30#define CHECK_HAS_INIT() \
32 ARCANE_FATAL("Invalid call because IAcceleratorMng::initialized() has not been called")
37namespace Arcane::Accelerator
47,
public IAcceleratorMng
59 bool isInitialized()
const override {
return m_has_init; }
60 Runner* defaultRunner()
override
63 return m_default_runner_ref.get();
65 RunQueue* defaultQueue()
override
68 return m_default_queue_ref.get();
70 Runner runner()
override
72 return m_default_runner;
74 RunQueue queue()
override {
return m_default_queue; }
78 std::unique_ptr<Runner> m_default_runner_ref;
79 Runner m_default_runner;
81 RunQueue m_default_queue;
82 bool m_has_init =
false;
92 ARCANE_FATAL(
"Method initialize() has already been called");
94 arcaneInitializeRunner(m_default_runner,
traceMng(),runtime_info);
97 m_default_runner_ref = std::make_unique<Runner>(m_default_runner);
98 m_default_queue_ref = makeQueueRef(m_default_runner);
99 m_default_queue = *m_default_queue_ref.
get();
106arcaneCreateAcceleratorMngRef(
ITraceMng* tm)
#define ARCANE_FATAL(...)
Macro envoyant une exception FatalErrorException.
Gestion des références à une classe C++.
Gestionnaire des modules.
Informations pour l'initialisation des accélérateurs.
Interface du gestionnaire de traces.
Référence à une instance.
TraceAccessor(ITraceMng *m)
Construit un accesseur via le gestionnaire de trace m.
ITraceMng * traceMng() const
Gestionnaire de trace.
InstanceType * get() const
Instance associée ou nullptr si aucune.
auto makeRef(InstanceType *t) -> Ref< InstanceType >
Créé une référence sur un pointeur.