Arcane  4.1.11.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
Référence du fichier RunCommandMaterialEnumerate.h

Types et macros pour gérer les énumérations des matériaux et milieux sur les accélérateurs. Plus de détails...

#include "arcane/core/Concurrency.h"
#include "arcane/core/materials/ComponentItemVectorView.h"
#include "arcane/core/materials/MaterialsCoreGlobal.h"
#include "arcane/core/materials/MatItem.h"
#include "arcane/core/materials/MatItemEnumerator.h"
#include "arcane/core/materials/ConstituentItemIndexedSelectionView.h"
#include "arcane/accelerator/KernelLauncher.h"
#include "arcane/accelerator/RunCommand.h"
#include "arcane/accelerator/RunCommandLaunchInfo.h"
#include "arccore/common/HostKernelRemainingArgsHelper.h"
+ Graphe des dépendances par inclusion de RunCommandMaterialEnumerate.h:
+ Ce graphe montre quels fichiers incluent directement ou indirectement ce fichier :

Aller au code source de ce fichier.

Classes

class  Arcane::Materials::ConstituentAndGlobalCellIteratorValue< ConstituentItemLocalIdType_ >
 Index d'une boucle accélérateur sur les matériaux ou milieux. Plus de détails...
 
struct  Arcane::Materials::ConstituentAndGlobalCellIteratorValue< ConstituentItemLocalIdType_ >::Data
 Structure interne simple pour éviter l'usage d'un std::tuple pour l'opérateur() Plus de détails...
 
class  Arcane::Accelerator::Impl::ConstituentRunCommandBase2< ContainerType_ >
 Classe de base pour les commandes sur les constituants. Plus de détails...
 
class  Arcane::Accelerator::Impl::AllEnvCellRunCommandContainer
 Conteneur pour une commande sur les AllEnvCell. Plus de détails...
 
class  Arcane::Accelerator::Impl::ConstituentCommandContainerBase
 Classe de base des conteneurs pour les command sur les constituants (sauf pour les AllEnvCell). Plus de détails...
 
class  Arcane::Accelerator::Impl::ConstituentRunCommandContainer< ConstituentItemLocalIdType_, ContainerCreateViewType_ >
 Conteneur contenant les informations nécessaires pour une commande sur les ConstituentItem. Plus de détails...
 
class  Arcane::Accelerator::Impl::ConstituentAndGlobalCellRunCommandContainer< ConstituentItemLocalIdType_, ContainerCreateViewType_ >
 Conteneur contenant les informations nécessaires pour une commande permettant d'accéder à la fois au ConstituentItem et à l'entité globale. Plus de détails...
 
class  Arcane::Accelerator::Impl::ConstituentIndexedSelectionRunCommandContainer< ConstituentItemLocalIdType_, ContainerCreateViewType_ >
 Conteneur pour les commande sur une sélection indexée de ConstituentItem. Plus de détails...
 
class  Arcane::Accelerator::Impl::GenericConstituentCommandArgs< ContainerType_, RemainingArgs >
 
class  Arcane::Accelerator::Impl::GenericConstituentCommand< ContainerType_, RemainingArgs >
 

Espaces de nommage

namespace  Arcane
 -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
 
namespace  Arcane::Materials
 Active toujours les traces dans les parties Arcane concernant les matériaux.
 
namespace  Arcane::Accelerator
 Espace de nom pour l'utilisation des accélérateurs.
 

Macros

#define A_RUNCOMMAND_MAT_ENUMERATE_BUILDER_HELPER(ConstituentItemNameType, env_or_mat_container, ...)
 
#define RUNCOMMAND_MAT_ENUMERATE(ConstituentItemNameType, iter_name, env_or_mat_container, ...)
 Macro pour itérer sur un matériau ou un milieu.
 

Définitions de type

using Arcane::Materials::EnvAndGlobalCellIteratorValue = ConstituentAndGlobalCellIteratorValue<EnvItemLocalId>
 Type de la valeur de l'itérateur pour RUNCOMMAND_MAT_ENUMERATE(EnvAndGlobalCell,...)
 
using Arcane::Materials::MatAndGlobalCellIteratorValue = ConstituentAndGlobalCellIteratorValue<MatItemLocalId>
 Type de la valeur de l'itérateur pour RUNCOMMAND_MAT_ENUMERATE(MatAndGlobalCell,...)
 
using Arcane::Accelerator::Impl::EnvCellRunCommandContainer = ConstituentRunCommandContainer<Arcane::Materials::EnvItemLocalId, Arcane::Materials::EnvCellVectorView>
 
using Arcane::Accelerator::Impl::MatCellRunCommandContainer = ConstituentRunCommandContainer<Arcane::Materials::MatItemLocalId, Arcane::Materials::MatCellVectorView>
 
using Arcane::Accelerator::Impl::EnvAndGlobalCellRunCommandContainer = ConstituentAndGlobalCellRunCommandContainer<Arcane::Materials::EnvItemLocalId, Arcane::Materials::EnvCellVectorView>
 
using Arcane::Accelerator::Impl::MatAndGlobalCellRunCommandContainer = ConstituentAndGlobalCellRunCommandContainer<Arcane::Materials::MatItemLocalId, Arcane::Materials::MatCellVectorView>
 
using Arcane::Accelerator::Impl::EnvIndexedSelectionRunCommandContainer = ConstituentIndexedSelectionRunCommandContainer<Arcane::Materials::EnvItemLocalId, Arcane::Materials::EnvCellVectorSelectionView>
 

Fonctions

template<typename ContainerType, typename Lambda, typename... RemainingArgs>
void Arcane::Accelerator::Impl::_doConstituentItemsLambda (Int32 base_index, Int32 size, ContainerType items, const Lambda &func, RemainingArgs... remaining_args)
 
template<typename ContainerType, typename Lambda, typename... RemainingArgs>
void Arcane::Accelerator::Impl::_applyConstituentCells (RunCommand &command, ContainerType items, const Lambda &func, const RemainingArgs &... remaining_args)
 Applique l'énumération func sur la liste d'entité items.
 
template<typename ConstituentCommandType, typename... RemainingArgs, typename Lambda>
void Arcane::Accelerator::Impl::operator<< (const GenericConstituentCommand< ConstituentCommandType, RemainingArgs... > &c, const Lambda &func)
 
template<typename ConstituentItemType, typename ConstituentItemContainerType, typename... RemainingArgs>
auto Arcane::Accelerator::Impl::makeExtendedConstituentItemEnumeratorLoop (ConstituentItemType x, const ConstituentItemContainerType &container, const RemainingArgs &... remaining_args)
 
Accelerator::Impl::EnvAndGlobalCellRunCommandContainer Arcane::Materials::arcaneCreateRunCommandMaterialContainer (Arcane::Materials::EnvAndGlobalCell, Arcane::Materials::IMeshEnvironment *env)
 Spécialisation pour une vue sur un milieu et la maille globale associée.
 
Accelerator::Impl::EnvAndGlobalCellRunCommandContainer Arcane::Materials::arcaneCreateRunCommandMaterialContainer (Arcane::Materials::EnvAndGlobalCell, Arcane::Materials::EnvCellVectorView view)
 
Accelerator::Impl::MatAndGlobalCellRunCommandContainer Arcane::Materials::arcaneCreateRunCommandMaterialContainer (MatAndGlobalCell, IMeshMaterial *mat)
 Spécialisation pour une vue sur un matériau et la maille globale associée.
 
Accelerator::Impl::MatAndGlobalCellRunCommandContainer Arcane::Materials::arcaneCreateRunCommandMaterialContainer (MatAndGlobalCell, MatCellVectorView mat)
 
Accelerator::Impl::AllEnvCellRunCommandContainer Arcane::Materials::arcaneCreateRunCommandMaterialContainer (AllEnvCell, AllEnvCellVectorView items)
 Spécialisation pour une vue sur les AllEvnCell.
 
Accelerator::Impl::EnvCellRunCommandContainer Arcane::Materials::arcaneCreateRunCommandMaterialContainer (EnvCell, IMeshEnvironment *env)
 Spécialisation pour une vue sur un milieu.
 
Accelerator::Impl::EnvCellRunCommandContainer Arcane::Materials::arcaneCreateRunCommandMaterialContainer (EnvCell, EnvCellVectorView view)
 
Accelerator::Impl::MatCellRunCommandContainer Arcane::Materials::arcaneCreateRunCommandMaterialContainer (MatCell, IMeshMaterial *mat)
 Spécialisation pour une vue sur un matériau.
 
Accelerator::Impl::MatCellRunCommandContainer Arcane::Materials::arcaneCreateRunCommandMaterialContainer (MatCell, MatCellVectorView view)
 
Accelerator::Impl::EnvIndexedSelectionRunCommandContainer Arcane::Materials::arcaneCreateRunCommandMaterialContainer (EnvCell, EnvCellVectorSelectionView view)
 
template<typename TraitsType, typename... RemainingArgs>
auto Arcane::Accelerator::operator<< (RunCommand &command, const Impl::GenericConstituentCommandArgs< TraitsType, RemainingArgs... > &args)
 
auto Arcane::Accelerator::operator<< (RunCommand &command, const Impl::MatAndGlobalCellRunCommandContainer &view)
 
auto Arcane::Accelerator::operator<< (RunCommand &command, const Impl::EnvAndGlobalCellRunCommandContainer &view)
 
auto Arcane::Accelerator::operator<< (RunCommand &command, const Impl::EnvCellRunCommandContainer &view)
 
auto Arcane::Accelerator::operator<< (RunCommand &command, const Impl::MatCellRunCommandContainer &view)
 

Description détaillée

Types et macros pour gérer les énumérations des matériaux et milieux sur les accélérateurs.

Définition dans le fichier RunCommandMaterialEnumerate.h.

Documentation des macros

◆ A_RUNCOMMAND_MAT_ENUMERATE_BUILDER_HELPER

#define A_RUNCOMMAND_MAT_ENUMERATE_BUILDER_HELPER ( ConstituentItemNameType,
env_or_mat_container,
... )
Valeur :
::Arcane::Accelerator::Impl::makeExtendedConstituentItemEnumeratorLoop(ConstituentItemNameType{}, env_or_mat_container __VA_OPT__(, __VA_ARGS__))

Définition à la ligne 737 du fichier RunCommandMaterialEnumerate.h.

◆ RUNCOMMAND_MAT_ENUMERATE

#define RUNCOMMAND_MAT_ENUMERATE ( ConstituentItemNameType,
iter_name,
env_or_mat_container,
... )
Valeur :
A_FUNCINFO << A_RUNCOMMAND_MAT_ENUMERATE_BUILDER_HELPER(ConstituentItemNameType, env_or_mat_container __VA_OPT__(, __VA_ARGS__)) \
<< [=] ARCCORE_HOST_DEVICE(typename decltype(A_RUNCOMMAND_MAT_ENUMERATE_BUILDER_HELPER(ConstituentItemNameType, env_or_mat_container __VA_OPT__(, __VA_ARGS__)))::IteratorValueType iter_name \
__VA_OPT__(ARCCORE_RUNCOMMAND_REMAINING_FOR_EACH(__VA_ARGS__)))

Macro pour itérer sur un matériau ou un milieu.

Paramètres
ConstituentItemNameTypeest le type de l'énumérateur.
iter_nameest le nom de l'itérateur
env_or_mat_containerest le conteneur sur lequel on itère.

Les paramètres supplémentaires sont utilisés pour les réductions (voir Réductions)

ConstituentItemNameType doit être une des valeurs suivantes:

  • EnvAndGlobalCell
  • EnvCell
  • MatAndGlobalCell
  • MatCell
  • AllEnvCell

Voir Utilisation pour les matériaux pour plus d'informations.

Définition à la ligne 760 du fichier RunCommandMaterialEnumerate.h.

Documentation des définitions de type

◆ EnvAndGlobalCellRunCommandContainer

◆ EnvCellRunCommandContainer

◆ EnvIndexedSelectionRunCommandContainer

◆ MatAndGlobalCellRunCommandContainer

◆ MatCellRunCommandContainer

Documentation des fonctions

◆ _applyConstituentCells()

template<typename ContainerType, typename Lambda, typename... RemainingArgs>
void Arcane::Accelerator::Impl::_applyConstituentCells ( RunCommand & command,
ContainerType items,
const Lambda & func,
const RemainingArgs &... remaining_args )

Applique l'énumération func sur la liste d'entité items.

Le conteneur peut être issu de:

  • EnvAndGlobalCellRunCommand
  • EnvCellRunCommand
  • MatAndGlobalCellRunCommand
  • MatCellRunCommand

Définition à la ligne 505 du fichier RunCommandMaterialEnumerate.h.

Références Arcane::arcaneParallelFor(), ARCCORE_FATAL, Arcane::Accelerator::Impl::RunCommandLaunchInfo::beginExecute(), Arcane::Accelerator::CUDA, Arcane::Accelerator::Impl::RunCommandLaunchInfo::endExecute(), Arcane::Accelerator::HIP, Arcane::Accelerator::Sequential, Arcane::Accelerator::SYCL, et Arcane::Accelerator::Thread.

◆ _doConstituentItemsLambda()

template<typename ContainerType, typename Lambda, typename... RemainingArgs>
void Arcane::Accelerator::Impl::_doConstituentItemsLambda ( Int32 base_index,
Int32 size,
ContainerType items,
const Lambda & func,
RemainingArgs... remaining_args )

Définition à la ligne 427 du fichier RunCommandMaterialEnumerate.h.

◆ makeExtendedConstituentItemEnumeratorLoop()

template<typename ConstituentItemType, typename ConstituentItemContainerType, typename... RemainingArgs>
auto Arcane::Accelerator::Impl::makeExtendedConstituentItemEnumeratorLoop ( ConstituentItemType x,
const ConstituentItemContainerType & container,
const RemainingArgs &... remaining_args )

Définition à la ligne 563 du fichier RunCommandMaterialEnumerate.h.

◆ operator<<()

template<typename ConstituentCommandType, typename... RemainingArgs, typename Lambda>
void Arcane::Accelerator::Impl::operator<< ( const GenericConstituentCommand< ConstituentCommandType, RemainingArgs... > & c,
const Lambda & func )

Définition à la ligne 547 du fichier RunCommandMaterialEnumerate.h.