Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::Accelerator::Cuda::BlockAllocatorWrapper

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

+ Graphe de collaboration de Arcane::Accelerator::Cuda::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 doAllocate (void *ptr, size_t new_size)
 

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 87 du fichier CudaAccelerator.cc.

Documentation des fonctions membres

◆ _computeNextMultiple()

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

Définition à la ligne 161 du fichier CudaAccelerator.cc.

◆ adjustedCapacity()

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

Définition à la ligne 106 du fichier CudaAccelerator.cc.

◆ doAllocate()

void Arcane::Accelerator::Cuda::BlockAllocatorWrapper::doAllocate ( void ptr,
size_t  new_size 
)
inline

Définition à la ligne 136 du fichier CudaAccelerator.cc.

◆ dumpStats()

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

Définition à la ligne 99 du fichier CudaAccelerator.cc.

◆ initialize()

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

Définition à la ligne 91 du fichier CudaAccelerator.cc.

Documentation des données membres

◆ m_block_size

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

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

Définition à la ligne 150 du fichier CudaAccelerator.cc.

◆ m_do_block_allocate

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

Indique si l'allocation en utilisant m_block_size.

Définition à la ligne 152 du fichier CudaAccelerator.cc.

◆ m_nb_allocate

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

Nombre d'allocations.

Définition à la ligne 154 du fichier CudaAccelerator.cc.

◆ m_nb_unaligned_allocate

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

Nombre d'allocations non alignées.

Définition à la ligne 156 du fichier CudaAccelerator.cc.


La documentation de cette classe a été générée à partir du fichier suivant :