14#include "arcane/accelerator/core/internal/IRunnerRuntime.h"
15#include "arcane/accelerator/core/internal/IRunQueueStream.h"
16#include "arcane/accelerator/core/internal/IRunQueueEventImpl.h"
17#include "arcane/accelerator/core/Memory.h"
18#include "arcane/accelerator/core/DeviceInfoList.h"
20#include "arcane/utils/NotImplementedException.h"
21#include "arcane/utils/MemoryView.h"
22#include "arcane/utils/PlatformUtils.h"
23#include "arcane/utils/FatalErrorException.h"
30namespace Arcane::Accelerator::impl
49 void barrier()
override {
return m_runtime->barrier(); }
52 args.destination().copyHost(args.source());
80 m_recorded_time = platform::getRealTime();
97 bool m_has_timer =
false;
98 double m_recorded_time = 0.0;
113 d.setName(
"HostDevice");
114 m_device_info_list.addDevice(d);
119 void notifyBeginLaunchKernel()
final {}
120 void notifyEndLaunchKernel()
final {}
121 void barrier()
final {}
127 void setCurrentDevice(
DeviceId)
final {}
128 const IDeviceInfoList* deviceInfoList()
final {
return &m_device_info_list; }
145 eExecutionPolicy executionPolicy()
const final {
return eExecutionPolicy::Sequential; }
156 eExecutionPolicy executionPolicy()
const final {
return eExecutionPolicy::Thread; }
169extern "C++" ARCANE_ACCELERATOR_CORE_EXPORT IRunnerRuntime*
170getSequentialRunQueueRuntime()
176extern "C++" ARCANE_ACCELERATOR_CORE_EXPORT IRunnerRuntime*
177getThreadRunQueueRuntime()
#define ARCANE_CHECK_POINTER(ptr)
Macro retournant le pointeur ptr s'il est non nul ou lancant une exception s'il est nul.
#define ARCANE_FATAL(...)
Macro envoyant une exception FatalErrorException.
Identifiant d'un composant du système.
Information sur un device.
Interface d'une liste de devices.
Arguments pour la copie mémoire.
Arguments pour le préfetching mémoire.
Informations sur une adresse mémoire.
Informations pour créer une RunQueue.
Interface d'une liste de devices.
Int64 elapsedTime(IRunQueueEventImpl *start_event) final
Temps écoulé (en nanoseconde) entre l'évènement from_event et cet évènement.
void barrier() override
Bloque jusqu'à ce que toutes les actions associées à cette file soient terminées.
void copyMemory(const MemoryCopyArgs &args) override
Effectue une copie entre deux zones mémoire.
void notifyBeginLaunchKernel(RunCommandImpl &) override
Notification avant le lancement de la commande.
void * _internalImpl() override
Pointeur sur la structure interne dépendante de l'implémentation.
bool _barrierNoException() override
Barrière sans exception. Retourne true en cas d'erreur.
void notifyEndLaunchKernel(RunCommandImpl &) override
Notification de fin de lancement de la commande.
void prefetchMemory(const MemoryPrefetchArgs &) override
Effectue un pré-chargement d'une zone mémoire.
Interface de l'implémentation d'un évènement.
Interface d'un flux d'exécution pour une RunQueue.
Interface du runtime associé à une RunQueue.
Implémentation d'une commande pour accélérateur.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
eMemoryAdvice
Conseils pour la gestion mémoire.
eExecutionPolicy
Politique d'exécution pour un Runner.
std::int64_t Int64
Type entier signé sur 64 bits.