Arcane  v3.15.0.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::Accelerator::impl::RunCommandImpl

Implémentation d'une commande pour accélérateur. Plus de détails...

#include <arcane/accelerator/core/internal/RunCommandImpl.h>

+ Graphe de collaboration de Arcane::Accelerator::impl::RunCommandImpl:

Fonctions membres publiques

 RunCommandImpl (RunQueueImpl *queue)
 
 RunCommandImpl (const RunCommandImpl &)=delete
 
RunCommandImploperator= (const RunCommandImpl &)=delete
 
const TraceInfotraceInfo () const
 
const StringkernelName () const
 
void notifyBeginLaunchKernel ()
 Notification du début d'exécution de la commande.
 
void notifyEndLaunchKernel ()
 Notification de la fin de lancement de la commande.
 
void notifyEndExecuteKernel ()
 Notification de la fin d'exécution du noyau.
 
impl::IReduceMemoryImplgetOrCreateReduceMemoryImpl ()
 
void releaseReduceMemoryImpl (ReduceMemoryImpl *p)
 
IRunQueueStreaminternalStream () const
 
RunnerImplrunner () const
 
void notifyLaunchKernelSyclEvent (void *sycl_event_ptr)
 Notification du lancement d'un kernel SYCL.
 

Fonctions membres publiques statiques

static RunCommandImplcreate (RunQueueImpl *r)
 

Fonctions membres privées

ReduceMemoryImpl_getOrCreateReduceMemoryImpl ()
 
void _freePools ()
 
void _reset ()
 
void _init ()
 
IRunQueueEventImpl_createEvent ()
 
void _notifyDestroyRunCommand ()
 Méthode appelée quand l'instance RunCommand associée est détruite.
 

Attributs privés

friend RunCommand
 
friend RunQueueImpl
 
RunQueueImplm_queue
 
TraceInfo m_trace_info
 
String m_kernel_name
 
Int32 m_nb_thread_per_block = 0
 
ParallelLoopOptions m_parallel_loop_options
 
std::stack< ReduceMemoryImpl * > m_reduce_memory_pool
 
std::set< ReduceMemoryImpl * > m_active_reduce_memory_list
 Liste des réductions actives.
 
bool m_has_been_launched = false
 Indique si la commande a été lancée.
 
bool m_use_profiling = false
 Indique si on souhaite le profiling.
 
bool m_use_sequential_timer_event = false
 Indique si on utilise les évènements séquentiels pour calculer le temps d'exécution.
 
IRunQueueEventImplm_start_event = nullptr
 Évènements pour le début et la fin de l'exécution.
 
IRunQueueEventImplm_stop_event = nullptr
 Évènements pour la fin de l'exécution.
 
Int64 m_begin_time = 0
 Temps au lancement de la commande.
 
ForLoopOneExecStat m_loop_one_exec_stat
 
ForLoopOneExecStatm_loop_one_exec_stat_ptr = nullptr
 
const bool m_use_accelerator = false
 Indique si la commande s'exécute sur accélérateur.
 
bool m_is_allow_reuse_command = false
 Indique si on autorise à utiliser plusieurs fois la même commande.
 
bool m_has_living_run_command = false
 Indique si une RunCommand a une référence sur cette instance.
 
bool m_may_be_put_in_pool = false
 Indique si on peut remettre la commande dans le pool associé à la RunQueue.
 

Description détaillée

Implémentation d'une commande pour accélérateur.

Définition à la ligne 38 du fichier internal/RunCommandImpl.h.

Documentation des constructeurs et destructeur

◆ RunCommandImpl()

Arcane::Accelerator::impl::RunCommandImpl::RunCommandImpl ( RunQueueImpl queue)
explicit

Définition à la ligne 42 du fichier RunCommandImpl.cc.

◆ ~RunCommandImpl()

Arcane::Accelerator::impl::RunCommandImpl::~RunCommandImpl ( )

Définition à la ligne 53 du fichier RunCommandImpl.cc.

Documentation des fonctions membres

◆ _createEvent()

IRunQueueEventImpl * Arcane::Accelerator::impl::RunCommandImpl::_createEvent ( )
private

Définition à la ligne 76 du fichier RunCommandImpl.cc.

◆ _freePools()

void Arcane::Accelerator::impl::RunCommandImpl::_freePools ( )
private

Définition à la ligne 64 du fichier RunCommandImpl.cc.

◆ _getOrCreateReduceMemoryImpl()

ReduceMemoryImpl * Arcane::Accelerator::impl::RunCommandImpl::_getOrCreateReduceMemoryImpl ( )
private

Définition à la ligne 280 du fichier RunCommandImpl.cc.

◆ _init()

void Arcane::Accelerator::impl::RunCommandImpl::_init ( )
private

Définition à la ligne 87 du fichier RunCommandImpl.cc.

◆ _notifyDestroyRunCommand()

void Arcane::Accelerator::impl::RunCommandImpl::_notifyDestroyRunCommand ( )
private

Méthode appelée quand l'instance RunCommand associée est détruite.

Définition à la ligne 303 du fichier RunCommandImpl.cc.

◆ _reset()

void Arcane::Accelerator::impl::RunCommandImpl::_reset ( )
private

Définition à la ligne 217 du fichier RunCommandImpl.cc.

◆ create()

RunCommandImpl * Arcane::Accelerator::impl::RunCommandImpl::create ( RunQueueImpl r)
static

Définition à la ligne 111 du fichier RunCommandImpl.cc.

◆ getOrCreateReduceMemoryImpl()

IReduceMemoryImpl * Arcane::Accelerator::impl::RunCommandImpl::getOrCreateReduceMemoryImpl ( )

Définition à la ligne 236 du fichier RunCommandImpl.cc.

◆ internalStream()

IRunQueueStream * Arcane::Accelerator::impl::RunCommandImpl::internalStream ( ) const

Définition à la ligne 262 du fichier RunCommandImpl.cc.

◆ kernelName()

const String & Arcane::Accelerator::impl::RunCommandImpl::kernelName ( ) const
inline

Définition à la ligne 57 du fichier internal/RunCommandImpl.h.

◆ notifyBeginLaunchKernel()

void Arcane::Accelerator::impl::RunCommandImpl::notifyBeginLaunchKernel ( )

Notification du début d'exécution de la commande.

Définition à la ligne 124 du fichier RunCommandImpl.cc.

Références ARCANE_FATAL, et Arcane::Accelerator::impl::IRunQueueStream::notifyBeginLaunchKernel().

◆ notifyEndExecuteKernel()

void Arcane::Accelerator::impl::RunCommandImpl::notifyEndExecuteKernel ( )

Notification de la fin d'exécution du noyau.

Après cet appel, on est sur que la commande a fini de s'exécuter et on peut la recycler. En asynchrone, cette méthode est appelée lors de la synchronisation d'une file.

Définition à la ligne 192 du fichier RunCommandImpl.cc.

◆ notifyEndLaunchKernel()

void Arcane::Accelerator::impl::RunCommandImpl::notifyEndLaunchKernel ( )

Notification de la fin de lancement de la commande.

La commande continue à s'exécuter en tâche de fond.

Définition à la ligne 152 du fichier RunCommandImpl.cc.

Références Arcane::Accelerator::impl::IRunQueueStream::notifyEndLaunchKernel().

◆ notifyLaunchKernelSyclEvent()

void Arcane::Accelerator::impl::RunCommandImpl::notifyLaunchKernelSyclEvent ( void sycl_event_ptr)

Notification du lancement d'un kernel SYCL.

sycl_event_ptr est de type sycl::event* et contient l'évènement associé à la commande qui est retourné lors des appels à sycl::queue::submit().

Définition à la ligne 172 du fichier RunCommandImpl.cc.

Références Arcane::Accelerator::impl::IRunQueueStream::_setSyclLastCommandEvent().

◆ releaseReduceMemoryImpl()

void Arcane::Accelerator::impl::RunCommandImpl::releaseReduceMemoryImpl ( ReduceMemoryImpl p)

Définition à la ligne 249 du fichier RunCommandImpl.cc.

◆ runner()

RunnerImpl * Arcane::Accelerator::impl::RunCommandImpl::runner ( ) const

Définition à la ligne 271 du fichier RunCommandImpl.cc.

◆ traceInfo()

const TraceInfo & Arcane::Accelerator::impl::RunCommandImpl::traceInfo ( ) const
inline

Définition à la ligne 56 du fichier internal/RunCommandImpl.h.

Documentation des données membres

◆ m_active_reduce_memory_list

std::set<ReduceMemoryImpl*> Arcane::Accelerator::impl::RunCommandImpl::m_active_reduce_memory_list
private

Liste des réductions actives.

Définition à la ligne 92 du fichier internal/RunCommandImpl.h.

◆ m_begin_time

Int64 Arcane::Accelerator::impl::RunCommandImpl::m_begin_time = 0
private

Temps au lancement de la commande.

Définition à la ligne 109 du fichier internal/RunCommandImpl.h.

◆ m_has_been_launched

bool Arcane::Accelerator::impl::RunCommandImpl::m_has_been_launched = false
private

Indique si la commande a été lancée.

Définition à la ligne 95 du fichier internal/RunCommandImpl.h.

◆ m_has_living_run_command

bool Arcane::Accelerator::impl::RunCommandImpl::m_has_living_run_command = false
private

Indique si une RunCommand a une référence sur cette instance.

Définition à la ligne 127 du fichier internal/RunCommandImpl.h.

◆ m_is_allow_reuse_command

bool Arcane::Accelerator::impl::RunCommandImpl::m_is_allow_reuse_command = false
private

Indique si on autorise à utiliser plusieurs fois la même commande.

Normalement cela est interdit mais avant novembre 2024, il n'y avait pas de mécanisme pour détecter cela. On peut donc temporairement autoriser cela et dans un on supprimera cette possibilité.

Définition à la ligne 124 du fichier internal/RunCommandImpl.h.

◆ m_kernel_name

String Arcane::Accelerator::impl::RunCommandImpl::m_kernel_name
private

Définition à la ligne 81 du fichier internal/RunCommandImpl.h.

◆ m_loop_one_exec_stat

ForLoopOneExecStat Arcane::Accelerator::impl::RunCommandImpl::m_loop_one_exec_stat
private

Définition à la ligne 111 du fichier internal/RunCommandImpl.h.

◆ m_loop_one_exec_stat_ptr

ForLoopOneExecStat* Arcane::Accelerator::impl::RunCommandImpl::m_loop_one_exec_stat_ptr = nullptr
private

Définition à la ligne 112 du fichier internal/RunCommandImpl.h.

◆ m_may_be_put_in_pool

bool Arcane::Accelerator::impl::RunCommandImpl::m_may_be_put_in_pool = false
private

Indique si on peut remettre la commande dans le pool associé à la RunQueue.

Définition à la ligne 130 du fichier internal/RunCommandImpl.h.

◆ m_nb_thread_per_block

Int32 Arcane::Accelerator::impl::RunCommandImpl::m_nb_thread_per_block = 0
private

Définition à la ligne 82 du fichier internal/RunCommandImpl.h.

◆ m_parallel_loop_options

ParallelLoopOptions Arcane::Accelerator::impl::RunCommandImpl::m_parallel_loop_options
private

Définition à la ligne 83 du fichier internal/RunCommandImpl.h.

◆ m_queue

RunQueueImpl* Arcane::Accelerator::impl::RunCommandImpl::m_queue
private

Définition à la ligne 79 du fichier internal/RunCommandImpl.h.

◆ m_reduce_memory_pool

std::stack<ReduceMemoryImpl*> Arcane::Accelerator::impl::RunCommandImpl::m_reduce_memory_pool
private

Définition à la ligne 89 du fichier internal/RunCommandImpl.h.

◆ m_start_event

IRunQueueEventImpl* Arcane::Accelerator::impl::RunCommandImpl::m_start_event = nullptr
private

Évènements pour le début et la fin de l'exécution.

Définition à la ligne 104 du fichier internal/RunCommandImpl.h.

◆ m_stop_event

IRunQueueEventImpl* Arcane::Accelerator::impl::RunCommandImpl::m_stop_event = nullptr
private

Évènements pour la fin de l'exécution.

Définition à la ligne 106 du fichier internal/RunCommandImpl.h.

◆ m_trace_info

TraceInfo Arcane::Accelerator::impl::RunCommandImpl::m_trace_info
private

Définition à la ligne 80 du fichier internal/RunCommandImpl.h.

◆ m_use_accelerator

const bool Arcane::Accelerator::impl::RunCommandImpl::m_use_accelerator = false
private

Indique si la commande s'exécute sur accélérateur.

Définition à la ligne 115 du fichier internal/RunCommandImpl.h.

◆ m_use_profiling

bool Arcane::Accelerator::impl::RunCommandImpl::m_use_profiling = false
private

Indique si on souhaite le profiling.

Définition à la ligne 98 du fichier internal/RunCommandImpl.h.

◆ m_use_sequential_timer_event

bool Arcane::Accelerator::impl::RunCommandImpl::m_use_sequential_timer_event = false
private

Indique si on utilise les évènements séquentiels pour calculer le temps d'exécution.

Définition à la ligne 101 du fichier internal/RunCommandImpl.h.

◆ RunCommand

friend Arcane::Accelerator::impl::RunCommandImpl::RunCommand
private

Définition à la ligne 40 du fichier internal/RunCommandImpl.h.

◆ RunQueueImpl

friend Arcane::Accelerator::impl::RunCommandImpl::RunQueueImpl
private

Définition à la ligne 41 du fichier internal/RunCommandImpl.h.


La documentation de cette classe a été générée à partir des fichiers suivants :