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>
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 ForLoopRunInfo & | loopRunInfo () 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) |
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. | |
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.
Définition à la ligne 50 du fichier core/RunCommandLaunchInfo.h.
Arcane::Accelerator::impl::RunCommandLaunchInfo::RunCommandLaunchInfo | ( | RunCommand & | command, |
Int64 | total_loop_size | ||
) |
Définition à la ligne 33 du fichier RunCommandLaunchInfo.cc.
Arcane::Accelerator::impl::RunCommandLaunchInfo::~RunCommandLaunchInfo | ( | ) |
Définition à la ligne 51 du fichier RunCommandLaunchInfo.cc.
|
private |
Définition à la ligne 180 du fichier RunCommandLaunchInfo.cc.
|
private |
Calcule le nombre de block/thread/grille du noyau en fonction de full_size.
Définition à la ligne 119 du fichier RunCommandLaunchInfo.cc.
|
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.
|
private |
Définition à la ligne 92 du fichier RunCommandLaunchInfo.cc.
|
private |
Définition à la ligne 108 du fichier RunCommandLaunchInfo.cc.
|
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.
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.
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.
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.
|
inline |
Définition à la ligne 61 du fichier core/RunCommandLaunchInfo.h.
|
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.
|
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.
|
inline |
Taille totale de la boucle.
Définition à la ligne 98 du fichier core/RunCommandLaunchInfo.h.
|
friend |
Fonction générique pour exécuter un kernel CUDA.
kernel | noyau CUDA |
func | fonction à exécuter par le noyau |
args | arguments 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.
|
friend |
Fonction générique pour exécuter un kernel HIP.
kernel | noyau HIP |
func | fonction à exécuter par le noyau |
args | arguments de la fonction lambda |
Définition à la ligne 341 du fichier KernelLauncher.h.
|
private |
Définition à la ligne 102 du fichier core/RunCommandLaunchInfo.h.
|
private |
Définition à la ligne 105 du fichier core/RunCommandLaunchInfo.h.
Définition à la ligne 103 du fichier core/RunCommandLaunchInfo.h.
Définition à la ligne 104 du fichier core/RunCommandLaunchInfo.h.
|
private |
Définition à la ligne 106 du fichier core/RunCommandLaunchInfo.h.
|
private |
Définition à la ligne 107 du fichier core/RunCommandLaunchInfo.h.
|
private |
Définition à la ligne 109 du fichier core/RunCommandLaunchInfo.h.
|
private |
Définition à la ligne 108 du fichier core/RunCommandLaunchInfo.h.