Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arccore::IMemoryAllocator3abstract

Interface de la version 3 de IMemoryAllocator. Plus de détails...

#include </__w/arcaneframework.github.io/arcaneframework.github.io/framework/arccore/src/collections/arccore/collections/IMemoryAllocator.h>

+ Graphe d'héritage de Arccore::IMemoryAllocator3:
+ Graphe de collaboration de Arccore::IMemoryAllocator3:

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
 

Description détaillée

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.

Documentation des définitions de type membres

◆ BaseClass

Documentation des fonctions membres

◆ adjustCapacity()

size_t Arccore::IMemoryAllocator3::adjustCapacity ( size_t  wanted_capacity,
size_t  element_size 
)
finalprivatevirtual

Implémente Arccore::IMemoryAllocator.

Définition à la ligne 464 du fichier MemoryAllocator.cc.

◆ adjustedCapacity()

virtual Int64 Arccore::IMemoryAllocator3::adjustedCapacity ( MemoryAllocationArgs  args,
Int64  wanted_capacity,
Int64  element_size 
) const
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.

◆ allocate() [1/2]

virtual AllocatedMemoryInfo Arccore::IMemoryAllocator3::allocate ( MemoryAllocationArgs  args,
Int64  new_size 
)
pure virtual

Alloue de la mémoire pour new_size octets et retourne le pointeur.

La sémantique est équivalent à malloc():

  • new_size peut valoir zéro et dans ce cas le pointeur retourné est soit nul, soit une valeur spécifique
  • le pointeur retourné peut être nul si la mémoire n'a pas pu être allouée.

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.

◆ allocate() [2/2]

void * Arccore::IMemoryAllocator3::allocate ( size_t  new_size)
finalprivatevirtual

Implémente Arccore::IMemoryAllocator.

Définition à la ligne 449 du fichier MemoryAllocator.cc.

◆ deallocate() [1/2]

virtual void Arccore::IMemoryAllocator3::deallocate ( MemoryAllocationArgs  args,
AllocatedMemoryInfo  ptr 
)
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.

◆ deallocate() [2/2]

void Arccore::IMemoryAllocator3::deallocate ( void *  ptr)
finalprivatevirtual

Implémente Arccore::IMemoryAllocator.

Définition à la ligne 459 du fichier MemoryAllocator.cc.

◆ guarantedAlignment() [1/2]

size_t Arccore::IMemoryAllocator3::guarantedAlignment ( )
finalprivatevirtual

Implémente Arccore::IMemoryAllocator.

Définition à la ligne 469 du fichier MemoryAllocator.cc.

◆ guarantedAlignment() [2/2]

virtual size_t Arccore::IMemoryAllocator3::guarantedAlignment ( MemoryAllocationArgs  args) const
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.

◆ hasRealloc() [1/2]

bool Arccore::IMemoryAllocator3::hasRealloc ( ) const
finalprivatevirtual

Implémente Arccore::IMemoryAllocator.

Définition à la ligne 444 du fichier MemoryAllocator.cc.

◆ hasRealloc() [2/2]

virtual bool Arccore::IMemoryAllocator3::hasRealloc ( MemoryAllocationArgs  ) const
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.

◆ reallocate() [1/2]

virtual AllocatedMemoryInfo Arccore::IMemoryAllocator3::reallocate ( MemoryAllocationArgs  args,
AllocatedMemoryInfo  current_ptr,
Int64  new_size 
)
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():

  • current_ptr peut-être nul auquel cas cet appel est équivalent à allocate().
  • le pointeur retourné peut être nul si la mémoire n'a pas pu être alloué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.

◆ reallocate() [2/2]

void * Arccore::IMemoryAllocator3::reallocate ( void *  current_ptr,
size_t  new_size 
)
finalprivatevirtual

Implémente Arccore::IMemoryAllocator.

Définition à la ligne 454 du fichier MemoryAllocator.cc.


La documentation de cette classe a été générée à partir des fichiers suivants :