Arcane  v4.1.0.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::Accelerator::BlockAllocatorWrapper

Classe commune pour gérer l'allocation par bloc. Plus de détails...

#include <arcane/accelerator/core/internal/AcceleratorMemoryAllocatorBase.h>

+ Graphe de collaboration de Arcane::Accelerator::BlockAllocatorWrapper:

Fonctions membres publiques

void initialize (Int64 block_size, bool do_block_alloc)
 
void dumpStats (std::ostream &ostr, const String &name)
 
Int64 adjustedCapacity (Int64 wanted_capacity, Int64 element_size) const
 
void notifyDoAllocate (void *ptr)
 

Fonctions membres privées statiques

static Int64 _computeNextMultiple (Int64 n, Int64 multiple)
 

Attributs privés

Int64 m_block_size = 128
 Taille d'un bloc. L'allocation sera un multiple de cette taille.
 
bool m_do_block_allocate = true
 Indique si l'allocation en utilisant m_block_size.
 
std::atomic< Int32m_nb_allocate = 0
 Nombre d'allocations.
 
std::atomic< Int32m_nb_unaligned_allocate = 0
 Nombre d'allocations non alignées.
 

Description détaillée

Classe commune pour gérer l'allocation par bloc.

Cette classe permet de garantir qu'on alloue la mémoire sur des multiples de la taille d'un bloc. Cela est notamment utilisé pour la mémoire unifiée ce qui permet d'éviter des effets de bord entre les allocations pour les transferts entre l'accélérateur CPU et l'hôte.

Par défaut on alloue un multiple de 128 octets.

Définition à la ligne 50 du fichier AcceleratorMemoryAllocatorBase.h.

Documentation des fonctions membres

◆ _computeNextMultiple()

static Int64 Arcane::Accelerator::BlockAllocatorWrapper::_computeNextMultiple ( Int64 n,
Int64 multiple )
inlinestaticprivate

Définition à la ligne 119 du fichier AcceleratorMemoryAllocatorBase.h.

◆ adjustedCapacity()

Int64 Arcane::Accelerator::BlockAllocatorWrapper::adjustedCapacity ( Int64 wanted_capacity,
Int64 element_size ) const
inline

Définition à la ligne 64 du fichier AcceleratorMemoryAllocatorBase.h.

◆ dumpStats()

void Arcane::Accelerator::BlockAllocatorWrapper::dumpStats ( std::ostream & ostr,
const String & name )

Définition à la ligne 33 du fichier AcceleratorMemoryAllocatorBase.cc.

◆ initialize()

void Arcane::Accelerator::BlockAllocatorWrapper::initialize ( Int64 block_size,
bool do_block_alloc )
inline

Définition à la ligne 54 du fichier AcceleratorMemoryAllocatorBase.h.

◆ notifyDoAllocate()

void Arcane::Accelerator::BlockAllocatorWrapper::notifyDoAllocate ( void * ptr)
inline

Définition à la ligne 94 du fichier AcceleratorMemoryAllocatorBase.h.

Documentation des données membres

◆ m_block_size

Int64 Arcane::Accelerator::BlockAllocatorWrapper::m_block_size = 128
private

Taille d'un bloc. L'allocation sera un multiple de cette taille.

Définition à la ligne 108 du fichier AcceleratorMemoryAllocatorBase.h.

◆ m_do_block_allocate

bool Arcane::Accelerator::BlockAllocatorWrapper::m_do_block_allocate = true
private

Indique si l'allocation en utilisant m_block_size.

Définition à la ligne 110 du fichier AcceleratorMemoryAllocatorBase.h.

◆ m_nb_allocate

std::atomic<Int32> Arcane::Accelerator::BlockAllocatorWrapper::m_nb_allocate = 0
private

Nombre d'allocations.

Définition à la ligne 112 du fichier AcceleratorMemoryAllocatorBase.h.

◆ m_nb_unaligned_allocate

std::atomic<Int32> Arcane::Accelerator::BlockAllocatorWrapper::m_nb_unaligned_allocate = 0
private

Nombre d'allocations non alignées.

Définition à la ligne 114 du fichier AcceleratorMemoryAllocatorBase.h.


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