12#ifndef ARCANE_ACCELERATOR_CORE_INTERNAL_RUNCOMMANDIMPL_H
13#define ARCANE_ACCELERATOR_CORE_INTERNAL_RUNCOMMANDIMPL_H
17#include "arcane/utils/TraceInfo.h"
18#include "arcane/utils/ParallelLoopOptions.h"
19#include "arcane/utils/Profiling.h"
29namespace Arcane::Accelerator::impl
56 const TraceInfo& traceInfo()
const {
return m_trace_info; }
57 const String& kernelName()
const {
return m_kernel_name; }
82 Int32 m_nb_thread_per_block = 0;
89 std::stack<ReduceMemoryImpl*> m_reduce_memory_pool;
Gestion d'une commande sur accélérateur.
Interface de la gestion mémoire pour les réductions.
Interface de l'implémentation d'un évènement.
Interface d'un flux d'exécution pour une RunQueue.
Implémentation d'une commande pour accélérateur.
void notifyEndLaunchKernel()
Notification de la fin de lancement de la commande.
bool m_use_sequential_timer_event
Indique si on utilise les évènements séquentiels pour calculer le temps d'exécution.
void _notifyDestroyRunCommand()
Méthode appelée quand l'instance RunCommand associée est détruite.
void notifyLaunchKernelSyclEvent(void *sycl_event_ptr)
Notification du lancement d'un kernel SYCL.
IRunQueueEventImpl * m_stop_event
Évènements pour la fin de l'exécution.
bool m_has_been_launched
Indique si la commande a été lancée.
IRunQueueEventImpl * m_start_event
Évènements pour le début et la fin de l'exécution.
void notifyBeginLaunchKernel()
Notification du début d'exécution de la commande.
bool m_is_allow_reuse_command
Indique si on autorise à utiliser plusieurs fois la même commande.
Int64 m_begin_time
Temps au lancement de la commande.
bool m_may_be_put_in_pool
Indique si on peut remettre la commande dans le pool associé à la RunQueue.
bool m_has_living_run_command
Indique si une RunCommand a une référence sur cette instance.
std::set< ReduceMemoryImpl * > m_active_reduce_memory_list
Liste des réductions actives.
bool m_use_profiling
Indique si on souhaite le profiling.
void notifyEndExecuteKernel()
Notification de la fin d'exécution du noyau.
const bool m_use_accelerator
Indique si la commande s'exécute sur accélérateur.
File d'exécution pour accélérateur.
Classe pour gérer le profiling d'une seule exécution d'une boucle.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Options d'exécution d'une boucle parallèle en multi-thread.
Chaîne de caractères unicode.
std::int64_t Int64
Type entier signé sur 64 bits.
std::int32_t Int32
Type entier signé sur 32 bits.