Interface de la version 3 de IMemoryAllocator. Plus de détails...
Fonctions membres publiques | |
virtual bool | hasRealloc (MemoryAllocationArgs) const |
Indique si l'allocateur supporte la sémantique de realloc. | |
virtual AllocatedMemoryInfo | allocate (MemoryAllocationArgs args, Int64 new_size)=0 |
Alloue de la mémoire pour new_size octets et retourne le pointeur. | |
virtual AllocatedMemoryInfo | reallocate (MemoryAllocationArgs args, AllocatedMemoryInfo current_ptr, Int64 new_size)=0 |
Réalloue de la mémoire pour new_size octets et retourne le pointeur. | |
virtual void | deallocate (MemoryAllocationArgs args, AllocatedMemoryInfo ptr)=0 |
Libère la mémoire dont l'adresse de base est ptr. | |
virtual Int64 | adjustedCapacity (MemoryAllocationArgs args, Int64 wanted_capacity, Int64 element_size) const =0 |
Ajuste la capacité suivant la taille d'élément. | |
virtual size_t | guarantedAlignment (MemoryAllocationArgs args) const =0 |
Valeur de l'alignement garanti par l'allocateur. | |
Fonctions membres publiques hérités de Arccore::IMemoryAllocator | |
virtual | ~IMemoryAllocator ()=default |
Détruit l'allocateur. | |
virtual void | notifyMemoryArgsChanged (MemoryAllocationArgs old_args, MemoryAllocationArgs new_args, AllocatedMemoryInfo ptr) |
Notifie du changement des arguments spécifiques à l'instance. | |
virtual void | copyMemory (MemoryAllocationArgs args, AllocatedMemoryInfo destination, AllocatedMemoryInfo source) |
Copie la mémoire entre deux zones. | |
Types privés | |
using | BaseClass = IMemoryAllocator |
Fonctions membres privées | |
bool | hasRealloc () const final |
void * | allocate (size_t new_size) final |
void * | reallocate (void *current_ptr, size_t new_size) final |
void | deallocate (void *ptr) final |
size_t | adjustCapacity (size_t wanted_capacity, size_t element_size) final |
size_t | guarantedAlignment () final |
Interface de la version 3 de IMemoryAllocator.
Elle contient les mêmes méthodes que IMemoryAllocator mais avec un argument supplémentaire qui permet de spécialiser les allocations.
Définition à la ligne 169 du fichier arccore/src/collections/arccore/collections/IMemoryAllocator.h.
|
private |
Définition à la ligne 172 du fichier arccore/src/collections/arccore/collections/IMemoryAllocator.h.
|
finalprivatevirtual |
Implémente Arccore::IMemoryAllocator.
Définition à la ligne 464 du fichier MemoryAllocator.cc.
|
pure virtual |
Ajuste la capacité suivant la taille d'élément.
Cette méthode est utilisée pour éventuellement modifié le nombre d'éléments alloués suivant leur taille. Cela permet par exemple pour les allocateurs alignés de garantir que le nombre d'éléments alloués est un multiple de cet alignement.
Réimplémentée à partir de Arccore::IMemoryAllocator.
Implémenté dans Arcane::Accelerator::Cuda::CudaMemoryAllocatorBase, Arccore::AlignedMemoryAllocator3, TesterMemoryAllocatorV3, et Arccore::DefaultMemoryAllocator3.
|
pure virtual |
Alloue de la mémoire pour new_size octets et retourne le pointeur.
La sémantique est équivalent à malloc():
Réimplémentée à partir de Arccore::IMemoryAllocator.
Implémenté dans Arccore::DefaultMemoryAllocator3, Arccore::AlignedMemoryAllocator3, Arcane::Accelerator::Cuda::CudaMemoryAllocatorBase, Arcane::Accelerator::Hip::HipMemoryAllocatorBase, Arcane::Accelerator::Sycl::SyclMemoryAllocatorBase, Arccore::AlignedMemoryAllocator3, TesterMemoryAllocatorV3, et Arccore::DefaultMemoryAllocator3.
|
finalprivatevirtual |
Implémente Arccore::IMemoryAllocator.
Définition à la ligne 449 du fichier MemoryAllocator.cc.
|
pure virtual |
Libère la mémoire dont l'adresse de base est ptr.
Le pointeur ptr doit avoir été alloué via l'appel à allocate() ou reallocate() de cette instance.
La sémantique de cette méthode équivalente à free() et donc ptr peut être nul auquel cas aucune opération n'est effectuée.
Réimplémentée à partir de Arccore::IMemoryAllocator.
Implémenté dans Arcane::Accelerator::Cuda::CudaMemoryAllocatorBase, Arccore::DefaultMemoryAllocator3, Arccore::AlignedMemoryAllocator3, Arcane::Accelerator::Hip::HipMemoryAllocatorBase, Arcane::Accelerator::Sycl::SyclMemoryAllocatorBase, Arccore::AlignedMemoryAllocator3, TesterMemoryAllocatorV3, et Arccore::DefaultMemoryAllocator3.
|
finalprivatevirtual |
Implémente Arccore::IMemoryAllocator.
Définition à la ligne 459 du fichier MemoryAllocator.cc.
|
finalprivatevirtual |
Implémente Arccore::IMemoryAllocator.
Définition à la ligne 469 du fichier MemoryAllocator.cc.
|
pure virtual |
Valeur de l'alignement garanti par l'allocateur.
Cette méthode permet de s'assurer qu'un allocateur a un alignement suffisant pour certaines opérations comme la vectorisation par exemple.
S'il n'y a aucune garantie, retourne 0.
Réimplémentée à partir de Arccore::IMemoryAllocator.
Implémenté dans Arccore::DefaultMemoryAllocator3, Arccore::AlignedMemoryAllocator3, TesterMemoryAllocatorV3, Arccore::DefaultMemoryAllocator3, et Arccore::AlignedMemoryAllocator3.
|
finalprivatevirtual |
Implémente Arccore::IMemoryAllocator.
Définition à la ligne 444 du fichier MemoryAllocator.cc.
|
inlinevirtual |
Indique si l'allocateur supporte la sémantique de realloc.
Les allocateurs par défaut du C (malloc/realloc/free) supportent évidemment le realloc mais ce n'est pas forcément le cas des allocateurs spécifiques avec alignement mémoire (comme par exemple posix_memalign).
Réimplémentée à partir de Arccore::IMemoryAllocator.
Réimplémentée dans Arccore::DefaultMemoryAllocator3, Arccore::AlignedMemoryAllocator3, TesterMemoryAllocatorV3, Arcane::Accelerator::Cuda::CudaMemoryAllocatorBase, Arcane::Accelerator::Hip::HipMemoryAllocatorBase, Arcane::Accelerator::Sycl::SyclMemoryAllocatorBase, Arccore::DefaultMemoryAllocator3, et Arccore::AlignedMemoryAllocator3.
Définition à la ligne 184 du fichier arccore/src/collections/arccore/collections/IMemoryAllocator.h.
|
pure virtual |
Réalloue de la mémoire pour new_size octets et retourne le pointeur.
Le pointeur current_ptr doit avoir été alloué via l'appel à allocate() ou reallocate() de cette instance.
La sémantique de cette méthode est équivalente à realloc():
Réimplémentée à partir de Arccore::IMemoryAllocator.
Implémenté dans Arcane::Accelerator::Cuda::CudaMemoryAllocatorBase, Arccore::DefaultMemoryAllocator3, Arccore::AlignedMemoryAllocator3, Arcane::Accelerator::Hip::HipMemoryAllocatorBase, Arcane::Accelerator::Sycl::SyclMemoryAllocatorBase, Arccore::AlignedMemoryAllocator3, TesterMemoryAllocatorV3, et Arccore::DefaultMemoryAllocator3.
|
finalprivatevirtual |
Implémente Arccore::IMemoryAllocator.
Définition à la ligne 454 du fichier MemoryAllocator.cc.