Arcane  v4.1.1.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::Accelerator::Impl::RunCommandLaunchInfo

Object temporaire pour conserver les informations d'exécution d'une commande et regrouper les tests. Plus de détails...

#include </__w/arcaneframework.github.io/arcaneframework.github.io/framework/arccore/src/common/arccore/common/accelerator/RunCommandLaunchInfo.h>

+ Graphe de collaboration de Arcane::Accelerator::Impl::RunCommandLaunchInfo:

Types publics

using ThreadBlockInfo = KernelLaunchArgs
 

Fonctions membres publiques

 RunCommandLaunchInfo (RunCommand &command, Int64 total_loop_size)
 
 RunCommandLaunchInfo (const RunCommandLaunchInfo &)=delete
 
RunCommandLaunchInfo operator= (const RunCommandLaunchInfo &)=delete
 
eExecutionPolicy executionPolicy () const
 
void beginExecute ()
 Indique qu'on commence l'exécution de la commande.
 
void endExecute ()
 Signale la fin de l'exécution.
 
ParallelLoopOptions computeParallelLoopOptions () const
 Calcule et retourne les informations pour les boucles multi-thread.
 
const ForLoopRunInfoloopRunInfo () const
 Informations d'exécution de la boucle.
 
Int64 totalLoopSize () const
 Taille totale de la boucle.
 

Fonctions membres privées

KernelLaunchArgs _computeKernelLaunchArgs (const void *func) const
 Calcule les arguments pour lancer le noyau dont l'adresse est func.
 
NativeStream _internalNativeStream ()
 
void _doEndKernelLaunch ()
 
void _computeInitialKernelLaunchArgs ()
 Calcule la valeur initiale de block/thread/grille du noyau en fonction de full_size.
 
bool _isUseCooperativeLaunch () const
 
bool _isUseCudaLaunchKernel () const
 
void _computeLoopRunInfo ()
 Calcule la valeur de m_loop_run_info.
 
void _addSyclEvent (void *sycl_event_ptr)
 

Attributs privés

RunCommandm_command
 
bool m_has_exec_begun = false
 
bool m_is_notify_end_kernel_done = false
 
eExecutionPolicy m_exec_policy = eExecutionPolicy::Sequential
 
KernelLaunchArgs m_kernel_launch_args
 
ForLoopRunInfo m_loop_run_info
 
Int64 m_total_loop_size = 0
 
impl::RunQueueImplm_queue_impl = nullptr
 

Amis

class CudaKernelLauncher
 
class HipKernelLauncher
 
class SyclKernelLauncher
 

Description détaillée

Object temporaire pour conserver les informations d'exécution d'une commande et regrouper les tests.

Définition à la ligne 35 du fichier arccore/src/common/arccore/common/accelerator/RunCommandLaunchInfo.h.

Documentation des définitions de type membres

◆ ThreadBlockInfo

Documentation des constructeurs et destructeur

◆ RunCommandLaunchInfo()

Arcane::Accelerator::Impl::RunCommandLaunchInfo::RunCommandLaunchInfo ( RunCommand & command,
Int64 total_loop_size )

Définition à la ligne 35 du fichier RunCommandLaunchInfo.cc.

◆ ~RunCommandLaunchInfo()

Arcane::Accelerator::Impl::RunCommandLaunchInfo::~RunCommandLaunchInfo ( )

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

Documentation des fonctions membres

◆ _addSyclEvent()

void Arcane::Accelerator::Impl::RunCommandLaunchInfo::_addSyclEvent ( void * sycl_event_ptr)
private

Définition à la ligne 194 du fichier RunCommandLaunchInfo.cc.

◆ _computeInitialKernelLaunchArgs()

void Arcane::Accelerator::Impl::RunCommandLaunchInfo::_computeInitialKernelLaunchArgs ( )
private

Calcule la valeur initiale de block/thread/grille du noyau en fonction de full_size.

Définition à la ligne 122 du fichier RunCommandLaunchInfo.cc.

◆ _computeKernelLaunchArgs()

KernelLaunchArgs Arcane::Accelerator::Impl::RunCommandLaunchInfo::_computeKernelLaunchArgs ( const void * func) const
private

Calcule les arguments pour lancer le noyau dont l'adresse est func.

Détermine la configuration du kernel.

La configuration est dépendante du runtime sous-jacent. Pour CUDA et ROCM, il s'agit d'un nombre de blocs et de thread.

Il est possible de calculer dynamiquement les valeurs optimales pour maximiser l'occupation.

Définition à la ligne 182 du fichier RunCommandLaunchInfo.cc.

Références totalLoopSize().

+ Voici le graphe d'appel pour cette fonction :

◆ _computeLoopRunInfo()

void Arcane::Accelerator::Impl::RunCommandLaunchInfo::_computeLoopRunInfo ( )
private

Calcule la valeur de m_loop_run_info.

Cela n'est utile qu'en mode multi-thread.

Définition à la ligne 163 du fichier RunCommandLaunchInfo.cc.

Références computeParallelLoopOptions().

Référencé par beginExecute().

+ Voici le graphe d'appel pour cette fonction :
+ Voici le graphe des appelants de cette fonction :

◆ _doEndKernelLaunch()

void Arcane::Accelerator::Impl::RunCommandLaunchInfo::_doEndKernelLaunch ( )
private

Définition à la ligne 94 du fichier RunCommandLaunchInfo.cc.

◆ _internalNativeStream()

NativeStream Arcane::Accelerator::Impl::RunCommandLaunchInfo::_internalNativeStream ( )
private

Définition à la ligne 110 du fichier RunCommandLaunchInfo.cc.

◆ _isUseCooperativeLaunch()

bool Arcane::Accelerator::Impl::RunCommandLaunchInfo::_isUseCooperativeLaunch ( ) const
private

Définition à la ligne 203 du fichier RunCommandLaunchInfo.cc.

◆ _isUseCudaLaunchKernel()

bool Arcane::Accelerator::Impl::RunCommandLaunchInfo::_isUseCudaLaunchKernel ( ) const
private

Définition à la ligne 212 du fichier RunCommandLaunchInfo.cc.

◆ beginExecute()

void Arcane::Accelerator::Impl::RunCommandLaunchInfo::beginExecute ( )

Indique qu'on commence l'exécution de la commande.

Doit toujours être appelé avant de lancer la commande pour être sur que cette méthode est appelée en cas d'exception.

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

Références _computeLoopRunInfo(), et Arcane::Accelerator::Thread.

Référencé par Arcane::Accelerator::impl::_applyConstituentCells(), Arcane::Accelerator::impl::_applyGenericLoop(), Arcane::Accelerator::impl::_applyItems(), Arcane::Accelerator::impl::GenericFilteringIf::apply(), Arcane::Accelerator::impl::GenericPartitionerIf::apply(), et Arcane::Accelerator::impl::GenericPartitionerIf::apply3().

+ Voici le graphe d'appel pour cette fonction :
+ Voici le graphe des appelants de cette fonction :

◆ computeParallelLoopOptions()

ParallelLoopOptions Arcane::Accelerator::Impl::RunCommandLaunchInfo::computeParallelLoopOptions ( ) const

Calcule et retourne les informations pour les boucles multi-thread.

Définition à la ligne 136 du fichier RunCommandLaunchInfo.cc.

Références Arcane::ParallelLoopOptions::grainSize(), Arcane::ConcurrencyBase::maxAllowedThread(), Arcane::ParallelLoopOptions::maxThread(), et Arcane::ParallelLoopOptions::setGrainSize().

Référencé par _computeLoopRunInfo().

+ Voici le graphe d'appel pour cette fonction :
+ Voici le graphe des appelants de cette fonction :

◆ endExecute()

void Arcane::Accelerator::Impl::RunCommandLaunchInfo::endExecute ( )

Signale la fin de l'exécution.

Notifie de la fin de lancement de la commande.

Si la file associée à la commande est asynchrone, la commande peut continuer à s'exécuter après cet appel.

A noter que si la commande est asynchrone, son exécution peut continuer après l'appel à cette méthode.

Définition à la ligne 83 du fichier RunCommandLaunchInfo.cc.

Référencé par Arcane::Accelerator::impl::_applyConstituentCells(), Arcane::Accelerator::impl::_applyGenericLoop(), Arcane::Accelerator::impl::_applyItems(), Arcane::Accelerator::impl::GenericFilteringIf::apply(), Arcane::Accelerator::impl::GenericPartitionerIf::apply(), et Arcane::Accelerator::impl::GenericPartitionerIf::apply3().

+ Voici le graphe des appelants de cette fonction :

◆ executionPolicy()

eExecutionPolicy Arcane::Accelerator::Impl::RunCommandLaunchInfo::executionPolicy ( ) const
inline

◆ loopRunInfo()

const ForLoopRunInfo & Arcane::Accelerator::Impl::RunCommandLaunchInfo::loopRunInfo ( ) const
inline

Informations d'exécution de la boucle.

Ces informations ne sont valides que si executionPolicy()==eExecutionPolicy::Thread et si beginExecute() a été appelé.

Définition à la ligne 82 du fichier arccore/src/common/arccore/common/accelerator/RunCommandLaunchInfo.h.

Référencé par Arcane::Accelerator::impl::GenericFilteringIf::apply().

+ Voici le graphe des appelants de cette fonction :

◆ totalLoopSize()

Int64 Arcane::Accelerator::Impl::RunCommandLaunchInfo::totalLoopSize ( ) const
inline

Taille totale de la boucle.

Définition à la ligne 85 du fichier arccore/src/common/arccore/common/accelerator/RunCommandLaunchInfo.h.

Référencé par _computeKernelLaunchArgs().

+ Voici le graphe des appelants de cette fonction :

Documentation des fonctions amies et associées

◆ CudaKernelLauncher

friend class CudaKernelLauncher
friend

◆ HipKernelLauncher

friend class HipKernelLauncher
friend

◆ SyclKernelLauncher

friend class SyclKernelLauncher
friend

Documentation des données membres

◆ m_command

RunCommand& Arcane::Accelerator::Impl::RunCommandLaunchInfo::m_command
private

◆ m_exec_policy

eExecutionPolicy Arcane::Accelerator::Impl::RunCommandLaunchInfo::m_exec_policy = eExecutionPolicy::Sequential
private

◆ m_has_exec_begun

bool Arcane::Accelerator::Impl::RunCommandLaunchInfo::m_has_exec_begun = false
private

◆ m_is_notify_end_kernel_done

bool Arcane::Accelerator::Impl::RunCommandLaunchInfo::m_is_notify_end_kernel_done = false
private

◆ m_kernel_launch_args

KernelLaunchArgs Arcane::Accelerator::Impl::RunCommandLaunchInfo::m_kernel_launch_args
private

◆ m_loop_run_info

ForLoopRunInfo Arcane::Accelerator::Impl::RunCommandLaunchInfo::m_loop_run_info
private

◆ m_queue_impl

impl::RunQueueImpl* Arcane::Accelerator::Impl::RunCommandLaunchInfo::m_queue_impl = nullptr
private

◆ m_total_loop_size

Int64 Arcane::Accelerator::Impl::RunCommandLaunchInfo::m_total_loop_size = 0
private

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