Gestion d'une commande sur accélérateur. Plus de détails...
Graphe de collaboration de Arcane::Accelerator::RunCommand:Fonctions membres publiques | |
| RunCommand (RunCommand &&command)=delete | |
| RunCommand (const RunCommand &)=delete | |
| RunCommand & | operator= (const RunCommand &)=delete |
| RunCommand & | operator= (RunCommand &&)=delete |
| eExecutionPolicy | executionPolicy () const |
| Politique d'exécution de la commande. | |
| RunCommand & | addTraceInfo (const TraceInfo &ti) |
| Positionne le informations de trace. | |
| RunCommand & | addKernelName (const String &v) |
| Positionne le nom du noyau. | |
| RunCommand & | addNbThreadPerBlock (Int32 v) |
| Positionne le nombre de thread par bloc pour les accélérateurs. | |
| RunCommand & | addNbStride (Int32 v) |
| Positionne le nombre de pas pour la décomposition de la boucle sur accélérateur/. | |
| Int32 | nbStride () const |
| Nombre de pas de décomposition de la boucle. | |
| const TraceInfo & | traceInfo () const |
| Informations pour les traces. | |
| const String & | kernelName () const |
| Nom du noyau. | |
| Int32 | nbThreadPerBlock () const |
| void | setParallelLoopOptions (const ParallelLoopOptions &opt) |
| Positionne la configuration des boucles multi-thread. | |
| const ParallelLoopOptions & | parallelLoopOptions () const |
| Configuration des boucles multi-thread. | |
Fonctions membres protégées | |
| RunCommand (const RunQueue &run_queue) | |
Fonctions membres privées | |
| void | _internalNotifyBeginLaunchKernel () |
| void | _internalNotifyEndLaunchKernel () |
| void | _internalNotifyBeginLaunchKernelSyclEvent (void *sycl_event_ptr) |
| ForLoopOneExecStat * | _internalCommandExecStat () |
| Impl::RunQueueImpl * | _internalQueueImpl () const |
| Impl::NativeStream | _internalNativeStream () const |
| Int32 | _addSharedMemory (Int32 size) |
| Int32 | _sharedMemory () const |
| void | _allocateReduceMemory (Int32 nb_grid) |
Fonctions membres privées statiques | |
| static Impl::RunCommandImpl * | _internalCreateImpl (Impl::RunQueueImpl *queue) |
| static void | _internalDestroyImpl (Impl::RunCommandImpl *p) |
Attributs privés | |
| Impl::RunCommandImpl * | m_p |
Amis | |
| class | ViewBuildInfo |
| template<typename T, Int32 Extent> | |
| class | LocalMemory |
| Impl::IReduceMemoryImpl * | Impl::internalGetOrCreateReduceMemoryImpl (RunCommand *command) |
| RunCommand | makeCommand (const RunQueue &run_queue) |
| Créé une commande associée à la file run_queue. | |
| RunCommand | makeCommand (const RunQueue *run_queue) |
| Créé une commande associée à la file run_queue. | |
| ARCCORE_COMMON_EXPORT RunCommand & | operator<< (RunCommand &command, const TraceInfo &trace_info) |
| Affichage des informations de la commande. | |
Gestion d'une commande sur accélérateur.
Une commande est associée à une file d'exécution (RunQueue) et sa durée de vie ne doit pas excéder celle de cette dernière.
Une commande est une opération qui sera exécutée sur l'accélérateur associé à l'instance de RunQueue utilisé lors de l'appel à makeCommand(). Sur un GPU, cela correspond à un noyau (kernel).
Pour plus d'informations, se reporter à la rubrique arcanedoc_parallel_accelerator_runcommand.
Définition à la ligne 45 du fichier arccore/src/common/arccore/common/accelerator/RunCommand.h.
| Arcane::Accelerator::RunCommand::~RunCommand | ( | ) |
Définition à la ligne 44 du fichier RunCommand.cc.
|
explicitprotected |
Définition à la ligne 34 du fichier RunCommand.cc.
Définition à la ligne 256 du fichier RunCommand.cc.
|
private |
Définition à la ligne 207 du fichier RunCommand.cc.
|
private |
Définition à la ligne 247 du fichier RunCommand.cc.
|
staticprivate |
Définition à la ligne 189 du fichier RunCommand.cc.
|
staticprivate |
Définition à la ligne 198 du fichier RunCommand.cc.
|
private |
Définition à la ligne 171 du fichier RunCommand.cc.
|
private |
Définition à la ligne 220 du fichier RunCommand.cc.
|
private |
Définition à la ligne 238 du fichier RunCommand.cc.
|
private |
Définition à la ligne 229 du fichier RunCommand.cc.
|
private |
Définition à la ligne 180 du fichier RunCommand.cc.
|
private |
Définition à la ligne 267 du fichier RunCommand.cc.
| RunCommand & Arcane::Accelerator::RunCommand::addKernelName | ( | const String & | v | ) |
Positionne le nom du noyau.
Ce nom est utilisé pour les traces ou pour le débug.
Définition à la ligne 104 du fichier RunCommand.cc.
| RunCommand & Arcane::Accelerator::RunCommand::addNbStride | ( | Int32 | v | ) |
Positionne le nombre de pas pour la décomposition de la boucle sur accélérateur/.
La valeur par défaut est 1, ce qui indique qu'on ne décompose pas la boucle. Cette méthode ne fait rien si la commande ne s'exécute pas sur accélérateur. Cette valeur n'est utilisée que pour les boucles classiques (RUNCOMMAND_LOOP()) ou sur les entités (RUNCOMMAND_ENUMERATE()).
Définition à la ligne 128 du fichier RunCommand.cc.
| RunCommand & Arcane::Accelerator::RunCommand::addNbThreadPerBlock | ( | Int32 | v | ) |
Positionne le nombre de thread par bloc pour les accélérateurs.
Si la valeur v est nulle, le choix par défaut est utilisé. Si la valeur v est positive, sa valeur minimale valide dépend de l'accélérateur. En général c'est au moins 32.
Définition à la ligne 114 du fichier RunCommand.cc.
| RunCommand & Arcane::Accelerator::RunCommand::addTraceInfo | ( | const TraceInfo & | ti | ) |
Positionne le informations de trace.
Ces informations sont utilisées pour les traces ou pour le débug. Les macros RUNCOMMAND_LOOP ou RUNCOMMAND_ENUMERATE appellent automatiquement cette méthode.
Définition à la ligne 94 du fichier RunCommand.cc.
Référencé par operator<<.
Voici le graphe des appelants de cette fonction :| eExecutionPolicy Arcane::Accelerator::RunCommand::executionPolicy | ( | ) | const |
Politique d'exécution de la commande.
Définition à la ligne 58 du fichier RunCommand.cc.
Référencé par Arcane::Accelerator::WorkGroupLoopRangeBase< IndexType_ >::setBlockSize().
Voici le graphe des appelants de cette fonction :| const String & Arcane::Accelerator::RunCommand::kernelName | ( | ) | const |
Nom du noyau.
Définition à la ligne 76 du fichier RunCommand.cc.
| Int32 Arcane::Accelerator::RunCommand::nbStride | ( | ) | const |
Nombre de pas de décomposition de la boucle.
Définition à la ligne 276 du fichier RunCommand.cc.
Référencé par Arcane::Accelerator::Impl::_applyGenericLoop(), et Arcane::Accelerator::impl::_applyItems().
Voici le graphe des appelants de cette fonction :| Int32 Arcane::Accelerator::RunCommand::nbThreadPerBlock | ( | ) | const |
Définition à la ligne 85 du fichier RunCommand.cc.
| const ParallelLoopOptions & Arcane::Accelerator::RunCommand::parallelLoopOptions | ( | ) | const |
Configuration des boucles multi-thread.
Définition à la ligne 152 du fichier RunCommand.cc.
| void Arcane::Accelerator::RunCommand::setParallelLoopOptions | ( | const ParallelLoopOptions & | opt | ) |
Positionne la configuration des boucles multi-thread.
Définition à la ligne 143 du fichier RunCommand.cc.
| const TraceInfo & Arcane::Accelerator::RunCommand::traceInfo | ( | ) | const |
Informations pour les traces.
Définition à la ligne 67 du fichier RunCommand.cc.
|
friend |
Définition à la ligne 51 du fichier arccore/src/common/arccore/common/accelerator/RunCommand.h.
|
friend |
Créé une commande associée à la file run_queue.
Définition à la ligne 285 du fichier arccore/src/common/arccore/common/accelerator/RunQueue.h.
|
friend |
Créé une commande associée à la file run_queue.
Définition à la ligne 295 du fichier arccore/src/common/arccore/common/accelerator/RunQueue.h.
Références ARCCORE_CHECK_POINTER.
|
friend |
Affichage des informations de la commande.
Définition à la ligne 162 du fichier RunCommand.cc.
Références addTraceInfo(), et operator<<.
Référencé par operator<<.
|
friend |
Définition à la ligne 50 du fichier arccore/src/common/arccore/common/accelerator/RunCommand.h.
|
private |
Définition à la ligne 164 du fichier arccore/src/common/arccore/common/accelerator/RunCommand.h.