Arcane  v3.15.0.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 <arcane/accelerator/core/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.
 
KernelLaunchArgs kernelLaunchArgs () const
 Informations sur le nombre de block/thread/grille du noyau à lancer.
 
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 _threadBlockInfo (const void *func, Int64 shared_memory_size) const
 Informations dynamiques sur le nombre de block/thread/grille du noyau à lancer.
 
NativeStream _internalNativeStream ()
 
void _doEndKernelLaunch ()
 
KernelLaunchArgs _computeKernelLaunchArgs () const
 Calcule le nombre de block/thread/grille du noyau en fonction de full_size.
 
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

template<typename SyclKernel , typename Lambda , typename LambdaArgs , typename... ReducerArgs>
void _applyKernelSYCL (impl::RunCommandLaunchInfo &launch_info, SyclKernel kernel, Lambda &func, const LambdaArgs &args, const ReducerArgs &... reducer_args)
 
template<typename CudaKernel , typename Lambda , typename LambdaArgs , typename... RemainingArgs>
void _applyKernelCUDA (impl::RunCommandLaunchInfo &launch_info, const CudaKernel &kernel, Lambda &func, const LambdaArgs &args, const RemainingArgs &... other_args)
 Fonction générique pour exécuter un kernel CUDA.
 
template<typename HipKernel , typename Lambda , typename LambdaArgs , typename... RemainingArgs>
void _applyKernelHIP (impl::RunCommandLaunchInfo &launch_info, const HipKernel &kernel, const Lambda &func, const LambdaArgs &args, const RemainingArgs &... other_args)
 Fonction générique pour exécuter un kernel HIP.
 

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 core/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 33 du fichier RunCommandLaunchInfo.cc.

◆ ~RunCommandLaunchInfo()

Arcane::Accelerator::impl::RunCommandLaunchInfo::~RunCommandLaunchInfo ( )

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

Documentation des fonctions membres

◆ _addSyclEvent()

void Arcane::Accelerator::impl::RunCommandLaunchInfo::_addSyclEvent ( void sycl_event_ptr)
private

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

◆ _computeKernelLaunchArgs()

KernelLaunchArgs Arcane::Accelerator::impl::RunCommandLaunchInfo::_computeKernelLaunchArgs ( ) const
private

Calcule le nombre de block/thread/grille du noyau en fonction de full_size.

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

◆ _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 160 du fichier RunCommandLaunchInfo.cc.

◆ _doEndKernelLaunch()

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

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

◆ _internalNativeStream()

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

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

◆ _threadBlockInfo()

KernelLaunchArgs Arcane::Accelerator::impl::RunCommandLaunchInfo::_threadBlockInfo ( const void func,
Int64  shared_memory_size 
) const
private

Informations dynamiques sur le nombre de block/thread/grille du noyau à lancer.

Ces informations sont calculées à partir de méthodes fournies par le runtime accélérateur sous-jacent.

Définition à la ligne 171 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 62 du fichier RunCommandLaunchInfo.cc.

Références ARCANE_FATAL.

◆ computeParallelLoopOptions()

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

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

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

◆ 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 81 du fichier RunCommandLaunchInfo.cc.

Références ARCANE_FATAL.

◆ executionPolicy()

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

Définition à la ligne 61 du fichier core/RunCommandLaunchInfo.h.

◆ kernelLaunchArgs()

KernelLaunchArgs Arcane::Accelerator::impl::RunCommandLaunchInfo::kernelLaunchArgs ( ) const
inline

Informations sur le nombre de block/thread/grille du noyau à lancer.

Cette valeur n'est valide que pour si la commande est associée à un accélérateur.

Définition à la ligne 84 du fichier core/RunCommandLaunchInfo.h.

◆ loopRunInfo()

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

Informations d'exécution de la boucle.

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

Définition à la ligne 95 du fichier core/RunCommandLaunchInfo.h.

◆ totalLoopSize()

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

Taille totale de la boucle.

Définition à la ligne 98 du fichier core/RunCommandLaunchInfo.h.

Documentation des fonctions amies et associées

◆ _applyKernelCUDA

template<typename CudaKernel , typename Lambda , typename LambdaArgs , typename... RemainingArgs>
void _applyKernelCUDA ( impl::RunCommandLaunchInfo launch_info,
const CudaKernel kernel,
Lambda func,
const LambdaArgs args,
const RemainingArgs &...  other_args 
)
friend

Fonction générique pour exécuter un kernel CUDA.

Paramètres
kernelnoyau CUDA
funcfonction à exécuter par le noyau
argsarguments de la fonction lambda

TODO: Tester si Lambda est bien une fonction, le SFINAE étant peu lisible : typename std::enable_if_t<std::is_function_v<std::decay_t<Lambda> > >* = nullptr attendons les concepts c++20 (requires)

Définition à la ligne 313 du fichier KernelLauncher.h.

◆ _applyKernelHIP

template<typename HipKernel , typename Lambda , typename LambdaArgs , typename... RemainingArgs>
void _applyKernelHIP ( impl::RunCommandLaunchInfo launch_info,
const HipKernel kernel,
const Lambda func,
const LambdaArgs args,
const RemainingArgs &...  other_args 
)
friend

Fonction générique pour exécuter un kernel HIP.

Paramètres
kernelnoyau HIP
funcfonction à exécuter par le noyau
argsarguments de la fonction lambda

Définition à la ligne 341 du fichier KernelLauncher.h.

Documentation des données membres

◆ m_command

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

Définition à la ligne 102 du fichier core/RunCommandLaunchInfo.h.

◆ m_exec_policy

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

Définition à la ligne 105 du fichier core/RunCommandLaunchInfo.h.

◆ m_has_exec_begun

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

Définition à la ligne 103 du fichier core/RunCommandLaunchInfo.h.

◆ m_is_notify_end_kernel_done

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

Définition à la ligne 104 du fichier core/RunCommandLaunchInfo.h.

◆ m_kernel_launch_args

KernelLaunchArgs Arcane::Accelerator::impl::RunCommandLaunchInfo::m_kernel_launch_args
private

Définition à la ligne 106 du fichier core/RunCommandLaunchInfo.h.

◆ m_loop_run_info

ForLoopRunInfo Arcane::Accelerator::impl::RunCommandLaunchInfo::m_loop_run_info
private

Définition à la ligne 107 du fichier core/RunCommandLaunchInfo.h.

◆ m_queue_impl

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

Définition à la ligne 109 du fichier core/RunCommandLaunchInfo.h.

◆ m_total_loop_size

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

Définition à la ligne 108 du fichier core/RunCommandLaunchInfo.h.


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