Object temporaire pour conserver les informations d'exécution d'une commande et regrouper les tests. Plus de détails...
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 ForLoopRunInfo & | loopRunInfo () 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 | |
| RunCommand & | m_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::RunQueueImpl * | m_queue_impl = nullptr |
Amis | |
| class | CudaKernelLauncher |
| class | HipKernelLauncher |
| class | SyclKernelLauncher |
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.
Définition à la ligne 44 du fichier arccore/src/common/arccore/common/accelerator/RunCommandLaunchInfo.h.
| Arcane::Accelerator::Impl::RunCommandLaunchInfo::RunCommandLaunchInfo | ( | RunCommand & | command, |
| Int64 | total_loop_size ) |
Définition à la ligne 35 du fichier RunCommandLaunchInfo.cc.
| Arcane::Accelerator::Impl::RunCommandLaunchInfo::~RunCommandLaunchInfo | ( | ) |
Définition à la ligne 53 du fichier RunCommandLaunchInfo.cc.
|
private |
Définition à la ligne 194 du fichier RunCommandLaunchInfo.cc.
|
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.
|
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 :
|
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 :
|
private |
Définition à la ligne 94 du fichier RunCommandLaunchInfo.cc.
|
private |
Définition à la ligne 110 du fichier RunCommandLaunchInfo.cc.
|
private |
Définition à la ligne 203 du fichier RunCommandLaunchInfo.cc.
|
private |
Définition à la ligne 212 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 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 :| 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 :| 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 :
|
inline |
Définition à la ligne 55 du fichier arccore/src/common/arccore/common/accelerator/RunCommandLaunchInfo.h.
|
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 :
|
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 :
|
friend |
Définition à la ligne 38 du fichier arccore/src/common/arccore/common/accelerator/RunCommandLaunchInfo.h.
|
friend |
Définition à la ligne 39 du fichier arccore/src/common/arccore/common/accelerator/RunCommandLaunchInfo.h.
|
friend |
Définition à la ligne 40 du fichier arccore/src/common/arccore/common/accelerator/RunCommandLaunchInfo.h.
|
private |
Définition à la ligne 89 du fichier arccore/src/common/arccore/common/accelerator/RunCommandLaunchInfo.h.
|
private |
Définition à la ligne 92 du fichier arccore/src/common/arccore/common/accelerator/RunCommandLaunchInfo.h.
|
private |
Définition à la ligne 90 du fichier arccore/src/common/arccore/common/accelerator/RunCommandLaunchInfo.h.
|
private |
Définition à la ligne 91 du fichier arccore/src/common/arccore/common/accelerator/RunCommandLaunchInfo.h.
|
private |
Définition à la ligne 93 du fichier arccore/src/common/arccore/common/accelerator/RunCommandLaunchInfo.h.
|
private |
Définition à la ligne 94 du fichier arccore/src/common/arccore/common/accelerator/RunCommandLaunchInfo.h.
|
private |
Définition à la ligne 96 du fichier arccore/src/common/arccore/common/accelerator/RunCommandLaunchInfo.h.
|
private |
Définition à la ligne 95 du fichier arccore/src/common/arccore/common/accelerator/RunCommandLaunchInfo.h.