Espace de noms pour les fonctions de gestion mémoire et des allocateurs. Plus de détails...
Fonctions | |
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. | |
IMemoryAllocator * | getDefaultDataAllocator () |
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. | |
IMemoryAllocator * | getDeviceOrHostAllocator () |
Retourne l'allocateur sur l'hôte ou sur le device. | |
MemoryAllocationOptions | getAllocatorForMostlyReadOnlyData () |
Allocateur par défaut pour les données essentiellement en lecture. | |
IMemoryAllocator * | getAcceleratorHostMemoryAllocator () |
Allocateur spécifique pour les accélérateurs. | |
MemoryAllocationOptions | getAllocationOptions (eMemoryResource mem_resource) |
Allocation par défaut pour la ressource mem_resource. | |
IMemoryAllocator * | getAllocator (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. | |
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. | |
Espace de noms pour les fonctions de gestion mémoire et des allocateurs.
|
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.
2 | si on a réalloué via reserve() |
1 | si on a re-dimensionné sans réallouer. |
0 | si aucune opération n'a eu lieu. |
Définition à la ligne 175 du fichier MemoryUtils.h.
Références Arccore::AbstractArray< T >::capacity(), Arccore::AbstractArray< T >::largeSize(), Arccore::Array< T >::reserve(), et Arccore::Array< T >::resize().
Référencé par Arcane::ItemGroupImpl::addItems(), et Arcane::MeshUtils::checkResizeArray().
|
inline |
Copie de source vers destination en utilisant la file queue.
Définition à la ligne 209 du fichier MemoryUtils.h.
Références copy().
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).
Référencé par copy(), copy(), copy(), et Arcane::ItemVector::ItemVector().
|
inline |
Copie de source vers destination en utilisant la file queue.
Définition à la ligne 229 du fichier MemoryUtils.h.
Références copy().
|
inline |
Copie de source vers destination en utilisant la file queue.
Définition à la ligne 220 du fichier MemoryUtils.h.
Références copy().
IMemoryAllocator * Arcane::MemoryUtils::getAcceleratorHostMemoryAllocator | ( | ) |
Allocateur spécifique pour les accélérateurs.
Si non nul, cet allocateur permet d'allouer de la mémoire sur l'hôte en utilisant le runtime spécique de l'allocateur.
Définition à la ligne 178 du fichier MemoryUtils.cc.
Référencé par Arcane::platform::getAcceleratorHostMemoryAllocator().
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.
IMemoryAllocator * Arcane::MemoryUtils::getAllocator | ( | eMemoryResource | mem_resource | ) |
Allocateur par défaut pour la ressource mem_resource.
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().
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 getDefaultDataMemoryResource().
Référencé par getAllocatorForMostlyReadOnlyData(), Arcane::platform::getDefaultDataAllocator(), et getDefaultDataAllocator().
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().
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.
Définition à la ligne 54 du fichier MemoryUtils.cc.
Référencé par Arcane::Accelerator::arcaneInitializeRunner(), et getDefaultDataAllocator().
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::IMemoryResourceMng::getAllocator().
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, et Arccore::String::null().