Classe commune pour gérer l'allocation par bloc. Plus de détails...
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< Int32 > | m_nb_allocate = 0 |
Nombre d'allocations. | |
std::atomic< Int32 > | m_nb_unaligned_allocate = 0 |
Nombre d'allocations non alignées. | |
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.
|
inlinestaticprivate |
Définition à la ligne 161 du fichier CudaAccelerator.cc.
|
inline |
Définition à la ligne 106 du fichier CudaAccelerator.cc.
|
inline |
Définition à la ligne 136 du fichier CudaAccelerator.cc.
|
inline |
Définition à la ligne 99 du fichier CudaAccelerator.cc.
|
inline |
Définition à la ligne 91 du fichier CudaAccelerator.cc.
|
private |
Taille d'un bloc. L'allocation sera un multiple de cette taille.
Définition à la ligne 150 du fichier CudaAccelerator.cc.
Indique si l'allocation en utilisant m_block_size.
Définition à la ligne 152 du fichier CudaAccelerator.cc.
|
private |
Nombre d'allocations.
Définition à la ligne 154 du fichier CudaAccelerator.cc.
|
private |
Nombre d'allocations non alignées.
Définition à la ligne 156 du fichier CudaAccelerator.cc.