Arcane  v3.16.0.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de l'espace de nommage Arcane::MemoryUtils

Espace de noms pour les fonctions de gestion mémoire et des allocateurs. Plus de détails...

Fonctions

IMemoryRessourceMngsetDataMemoryResourceMng (IMemoryRessourceMng *mng)
 Positionne le gestionnaire de ressource mémoire pour les données.
 
IMemoryRessourceMnggetDataMemoryResourceMng ()
 Gestionnaire de ressource mémoire pour les données.
 
IMemoryAllocatorsetAcceleratorHostMemoryAllocator (IMemoryAllocator *a)
 Positionne l'allocateur spécifique pour les accélérateurs.
 
void setDefaultDataMemoryResource (eMemoryResource mem_resource)
 Positionne la ressource mémoire utilisée pour l'allocateur mémoire des données.
 
eMemoryResource getDefaultDataMemoryResource ()
 Ressource mémoire utilisée par l'allocateur par défaut pour les données.
 
eMemoryResource getMemoryResourceFromName (const String &name)
 Retourne la ressource mémoire par son nom.
 
IMemoryAllocatorgetDefaultDataAllocator ()
 Allocateur par défaut pour les données.
 
MemoryAllocationOptions getDefaultDataAllocator (eMemoryLocationHint hint)
 Allocateur par défaut pour les données avec informations sur la localisation attendue.
 
IMemoryAllocatorgetDeviceOrHostAllocator ()
 Retourne l'allocateur sur l'hôte ou sur le device.
 
MemoryAllocationOptions getAllocatorForMostlyReadOnlyData ()
 Allocateur par défaut pour les données essentiellement en lecture.
 
IMemoryAllocatorgetAcceleratorHostMemoryAllocator ()
 Allocateur spécifique pour les accélérateurs.
 
MemoryAllocationOptions getAllocationOptions (eMemoryResource mem_resource)
 Allocation par défaut pour la ressource mem_resource.
 
IMemoryAllocatorgetAllocator (eMemoryResource mem_resource)
 Allocateur par défaut pour la ressource mem_resource.
 
template<typename DataType>
Int32 checkResizeArrayWithCapacity (Array< DataType > &array, Int64 new_size, bool force_resize)
 Redimensionne un tableau en ajoutant une réserve de mémoire.
 
template<typename DataType>
Int32 checkResizeArrayWithCapacity (Array< DataType > &array, Int64 new_size)
 Redimensionne un tableau en ajoutant une réserve de mémoire.
 
void copy (MutableMemoryView destination, eMemoryResource destination_mem, ConstMemoryView source, eMemoryResource source_mem, const RunQueue *queue=nullptr)
 Copie de source vers destination en utilisant la file queue.
 
void copy (MutableMemoryView destination, ConstMemoryView source, const RunQueue *queue=nullptr)
 Copie de source vers destination en utilisant la file queue.
 
template<typename DataType>
void copy (Span< DataType > destination, Span< const DataType > source, const RunQueue *queue=nullptr)
 Copie de source vers destination en utilisant la file queue.
 
template<typename DataType>
void copy (SmallSpan< DataType > destination, SmallSpan< const DataType > source, const RunQueue *queue=nullptr)
 Copie de source vers destination en utilisant la file queue.
 

Description détaillée

Espace de noms pour les fonctions de gestion mémoire et des allocateurs.

Documentation des fonctions

◆ checkResizeArrayWithCapacity() [1/2]

template<typename DataType>
Int32 Arcane::MemoryUtils::checkResizeArrayWithCapacity ( Array< DataType > & array,
Int64 new_size )
inline

Redimensionne un tableau en ajoutant une réserve de mémoire.

Cet appel est équivalent à checkResizeArrayWithCapacity(array, new_size, false).

Définition à la ligne 197 du fichier MemoryUtils.h.

Références checkResizeArrayWithCapacity().

+ Voici le graphe d'appel pour cette fonction :

◆ checkResizeArrayWithCapacity() [2/2]

template<typename DataType>
Int32 Arcane::MemoryUtils::checkResizeArrayWithCapacity ( Array< DataType > & array,
Int64 new_size,
bool force_resize )
inline

Redimensionne un tableau en ajoutant une réserve de mémoire.

Le tableau array est redimensionné uniquement si new_size est supérieure à la taille actuelle du tableau ou si force_resize est vrai.

Si le tableau est redimensionné, on réserve une capacité supplémentaire pour éviter de réallouer à chaque fois.

Valeurs retournées
2si on a réalloué via reserve()
1si on a re-dimensionné sans réallouer.
0si aucune opération n'a eu lieu.

Définition à la ligne 174 du fichier MemoryUtils.h.

Références Arcane::AbstractArray< T >::capacity(), Arcane::AbstractArray< T >::largeSize(), Arcane::Array< DataType >::reserve(), et Arcane::Array< DataType >::resize().

Référencé par Arcane::ItemGroupImpl::addItems(), Arcane::MeshUtils::checkResizeArray(), et checkResizeArrayWithCapacity().

+ Voici le graphe d'appel pour cette fonction :
+ Voici le graphe des appelants de cette fonction :

◆ copy() [1/4]

void Arcane::MemoryUtils::copy ( MutableMemoryView destination,
ConstMemoryView source,
const RunQueue * queue = nullptr )
inline

Copie de source vers destination en utilisant la file queue.

Définition à la ligne 221 du fichier MemoryUtils.h.

Références copy(), et Arcane::Unknown.

+ Voici le graphe d'appel pour cette fonction :

◆ copy() [2/4]

void Arcane::MemoryUtils::copy ( MutableMemoryView destination,
eMemoryResource destination_mem,
ConstMemoryView source,
eMemoryResource source_mem,
const RunQueue * queue = nullptr )

Copie de source vers destination en utilisant la file queue.

Il est possible de spécifier la ressource mémoire où se trouve la source et la destination. Si on ne les connait pas, il est préférable d'utiliser la surcharge copy(MutableMemoryView destination, ConstMemoryView source, const RunQueue* queue).

Définition à la ligne 213 du fichier MemoryUtils.cc.

Références Arcane::IMemoryResourceMng::_internal(), et getDataMemoryResourceMng().

Référencé par Arcane::ItemGroupImpl::addItems(), copy(), copy(), copy(), Arcane::Materials::MeshMaterialVariableCommonStaticImpl< ThatClass >::getReference(), et Arcane::ItemVector::ItemVector().

+ Voici le graphe d'appel pour cette fonction :
+ Voici le graphe des appelants de cette fonction :

◆ copy() [3/4]

template<typename DataType>
void Arcane::MemoryUtils::copy ( SmallSpan< DataType > destination,
SmallSpan< const DataType > source,
const RunQueue * queue = nullptr )
inline

Copie de source vers destination en utilisant la file queue.

Définition à la ligne 241 du fichier MemoryUtils.h.

Références copy().

+ Voici le graphe d'appel pour cette fonction :

◆ copy() [4/4]

template<typename DataType>
void Arcane::MemoryUtils::copy ( Span< DataType > destination,
Span< const DataType > source,
const RunQueue * queue = nullptr )
inline

Copie de source vers destination en utilisant la file queue.

Définition à la ligne 232 du fichier MemoryUtils.h.

Références Arcane::asBytes(), Arcane::asWritableBytes(), et copy().

+ Voici le graphe d'appel pour cette fonction :

◆ getAcceleratorHostMemoryAllocator()

IMemoryAllocator * Arcane::MemoryUtils::getAcceleratorHostMemoryAllocator ( )

Allocateur spécifique pour les accélérateurs.

Obsolète
Use MemoryUtils::getDefaultDataAllocator() instead.

Définition à la ligne 178 du fichier MemoryUtils.cc.

Référencé par Arcane::platform::getAcceleratorHostMemoryAllocator().

+ Voici le graphe des appelants de cette fonction :

◆ getAllocationOptions()

MemoryAllocationOptions Arcane::MemoryUtils::getAllocationOptions ( eMemoryResource mem_resource)

Allocation par défaut pour la ressource mem_resource.

Lève une exception si aucune allocateur n'est disponible pour la ressource (par exemple si on demande eMemoryResource::Device et qu'il n'y a pas de support pour les accélérateurs.

La ressource eMemoryResource::UnifiedMemory est toujours disponible. Si aucun runtime accélérateur n'est chargé, alors c'est équivalent à eMemoryResource::Host.

Définition à la ligne 160 du fichier MemoryUtils.cc.

Références getAllocator().

+ Voici le graphe d'appel pour cette fonction :

◆ getAllocator()

IMemoryAllocator * Arcane::MemoryUtils::getAllocator ( eMemoryResource mem_resource)

Allocateur par défaut pour la ressource mem_resource.

Voir également
getAllocationOptions().

Définition à la ligne 151 du fichier MemoryUtils.cc.

Références getDataMemoryResourceMng().

Référencé par getAllocationOptions().

+ Voici le graphe d'appel pour cette fonction :
+ Voici le graphe des appelants de cette fonction :

◆ getAllocatorForMostlyReadOnlyData()

MemoryAllocationOptions Arcane::MemoryUtils::getAllocatorForMostlyReadOnlyData ( )

Allocateur par défaut pour les données essentiellement en lecture.

Cet appel est équivalent à getDefaultDataAllocator(eMemoryLocationHint::HostAndDeviceMostlyRead).

Définition à la ligne 169 du fichier MemoryUtils.cc.

Références getDefaultDataAllocator(), et Arcane::HostAndDeviceMostlyRead.

+ Voici le graphe d'appel pour cette fonction :

◆ getDataMemoryResourceMng()

IMemoryRessourceMng * Arcane::MemoryUtils::getDataMemoryResourceMng ( )

Gestionnaire de ressource mémoire pour les données.

Il est garanti que l'alignement est au moins celui retourné par AlignedMemoryAllocator::Simd().

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

Référencé par copy(), Arcane::MemoryResourceMng::genericCopy(), getAllocator(), Arcane::platform::getDataMemoryRessourceMng(), getDefaultDataAllocator(), et getDeviceOrHostAllocator().

+ Voici le graphe des appelants de cette fonction :

◆ getDefaultDataAllocator() [1/2]

IMemoryAllocator * Arcane::MemoryUtils::getDefaultDataAllocator ( )

Allocateur par défaut pour les données.

L'allocateur par défaut pour les données est un allocateur qui permet d'accéder à la zone mémoire à la fois par l'hôte et l'accélérateur.

Il est possible de récupérer la ressource mémoire associée via getDefaultDataMemoryResource();

Cet appel est équivalent à getAllocator(getDefaultDataMemoryResource()).

Il est garanti que l'alignement est au moins celui retourné par AlignedMemoryAllocator::Simd().

Définition à la ligne 120 du fichier MemoryUtils.cc.

Références getDataMemoryResourceMng(), et getDefaultDataMemoryResource().

Référencé par Arcane::ItemGroupImpl::_initChildrenByTypeV2(), getAllocatorForMostlyReadOnlyData(), getDefaultDataAllocator(), et Arcane::platform::getDefaultDataAllocator().

+ Voici le graphe d'appel pour cette fonction :
+ Voici le graphe des appelants de cette fonction :

◆ getDefaultDataAllocator() [2/2]

MemoryAllocationOptions Arcane::MemoryUtils::getDefaultDataAllocator ( eMemoryLocationHint hint)

Allocateur par défaut pour les données avec informations sur la localisation attendue.

Cette fonction retourne l'allocateur de getDefaulDataAllocator() mais ajoute les informations de gestion mémoire spécifiées par hint.

Définition à la ligne 142 du fichier MemoryUtils.cc.

Références getDefaultDataAllocator().

+ Voici le graphe d'appel pour cette fonction :

◆ getDefaultDataMemoryResource()

eMemoryResource Arcane::MemoryUtils::getDefaultDataMemoryResource ( )

Ressource mémoire utilisée par l'allocateur par défaut pour les données.

Par défaut, si un runtime accélérateur est initialisé, la ressource associé est eMemoryResource::UnifiedMemory. Sinon, il s'agit de eMemoryResource::Host.

Voir également
getDefaultDataAllocator();

Définition à la ligne 54 du fichier MemoryUtils.cc.

Référencé par Arcane::Accelerator::arcaneInitializeRunner(), Arcane::MemoryResourceMng::getAllocator(), et getDefaultDataAllocator().

+ Voici le graphe des appelants de cette fonction :

◆ getDeviceOrHostAllocator()

IMemoryAllocator * Arcane::MemoryUtils::getDeviceOrHostAllocator ( )

Retourne l'allocateur sur l'hôte ou sur le device.

Si un runtime accélérateur est initialisé, l'allocateur retourné permet d'allouer en utilisant la mémoire de l'accélérateur par défaut (eMemoryResource::Device). Sinon, utilise l'allocateur de l'hôte (eMemoryResource::Host).

Définition à la ligne 129 du fichier MemoryUtils.cc.

Références Arcane::Device, Arcane::IMemoryResourceMng::getAllocator(), getDataMemoryResourceMng(), et Arcane::Host.

+ Voici le graphe d'appel pour cette fonction :

◆ getMemoryResourceFromName()

eMemoryResource Arcane::MemoryUtils::getMemoryResourceFromName ( const String & name)

Retourne la ressource mémoire par son nom.

Le nom correspond au nom de la valeur de l'énumération (par exemple 'Device' pour eMemoryResource::Device.

Si name est nul, retourn eMemoryResource::Unknown. Si name ne correspondant pas à une valeur valide, lève une exception.

Définition à la ligne 72 du fichier MemoryUtils.cc.

Références ARCANE_FATAL, Arcane::Device, Arcane::Host, Arcane::HostPinned, Arcane::String::null(), Arcane::UnifiedMemory, et Arcane::Unknown.

Référencé par Arcane::ArcaneMain::_checkAutoDetectAccelerator().

+ Voici le graphe d'appel pour cette fonction :
+ Voici le graphe des appelants de cette fonction :

◆ setAcceleratorHostMemoryAllocator()

IMemoryAllocator * Arcane::MemoryUtils::setAcceleratorHostMemoryAllocator ( IMemoryAllocator * a)

Positionne l'allocateur spécifique pour les accélérateurs.

Retourne l'ancien allocateur utilisé. L'allocateur spécifié doit rester valide durant toute la durée de vie de l'application.

Définition à la ligne 187 du fichier MemoryUtils.cc.

Référencé par Arcane::platform::setAcceleratorHostMemoryAllocator().

+ Voici le graphe des appelants de cette fonction :

◆ setDataMemoryResourceMng()

IMemoryRessourceMng * Arcane::MemoryUtils::setDataMemoryResourceMng ( IMemoryRessourceMng * mng)

Positionne le gestionnaire de ressource mémoire pour les données.

Le gestionnaire doit rester valide durant toute l'exécution du programme.

Retourne l'ancien gestionnaire.

Définition à la ligne 96 du fichier MemoryUtils.cc.

Références ARCANE_CHECK_POINTER.

Référencé par Arcane::platform::setDataMemoryRessourceMng().

+ Voici le graphe des appelants de cette fonction :

◆ setDefaultDataMemoryResource()

void Arcane::MemoryUtils::setDefaultDataMemoryResource ( eMemoryResource mem_resource)

Positionne la ressource mémoire utilisée pour l'allocateur mémoire des données.

Voir également
getDefaultDataMemoryResource();

Définition à la ligne 63 du fichier MemoryUtils.cc.

Référencé par Arcane::ArcaneMain::_checkAutoDetectAccelerator().

+ Voici le graphe des appelants de cette fonction :