Gestion des ressources mémoire pour les CPU et accélérateurs. Plus de détails...
#include <arcane/utils/internal/MemoryRessourceMng.h>
Fonctions membres publiques | |
IMemoryAllocator * | getAllocator (eMemoryRessource r) override |
Allocateur mémoire pour la ressource r. | |
IMemoryAllocator * | getAllocator (eMemoryRessource r, bool throw_if_not_found) override |
Allocateur mémoire pour la ressource r. | |
void | copy (ConstMemoryView from, eMemoryRessource from_mem, MutableMemoryView to, eMemoryRessource to_mem, const RunQueue *queue) override |
void | setAllocator (eMemoryRessource r, IMemoryAllocator *allocator) override |
Positionne l'allocateur pour la ressource r. | |
void | setCopier (IMemoryCopier *copier) override |
Positionne l'instance gérant les copies. | |
void | setIsAccelerator (bool v) override |
Indique si un accélérateur est disponible. | |
IMemoryRessourceMngInternal * | _internal () override |
Interface interne. | |
Fonctions membres publiques statiques | |
static void | genericCopy (ConstMemoryView from, MutableMemoryView to) |
Copie générique utilisant platform::getDataMemoryRessourceMng() | |
Fonctions membres privées | |
int | _checkValidRessource (eMemoryRessource r) |
Attributs privés | |
FixedArray< IMemoryAllocator *, NB_MEMORY_RESSOURCE > | m_allocators |
std::unique_ptr< IMemoryCopier > | m_default_memory_copier |
IMemoryCopier * | m_copier = nullptr |
bool | m_is_accelerator = false |
Gestion des ressources mémoire pour les CPU et accélérateurs.
Définition à la ligne 35 du fichier MemoryRessourceMng.h.
Arcane::MemoryRessourceMng::MemoryRessourceMng | ( | ) |
Définition à la ligne 99 du fichier MemoryRessourceMng.cc.
|
inlineprivate |
Définition à la ligne 114 du fichier MemoryRessourceMng.cc.
|
inlineoverridevirtual |
Interface interne.
Implémente Arcane::IMemoryRessourceMng.
Définition à la ligne 62 du fichier MemoryRessourceMng.h.
|
overridevirtual |
Implémente Arcane::IMemoryRessourceMngInternal.
Définition à la ligne 170 du fichier MemoryRessourceMng.cc.
|
static |
Copie générique utilisant platform::getDataMemoryRessourceMng()
Définition à la ligne 185 du fichier MemoryRessourceMng.cc.
Références Arcane::platform::getDataMemoryRessourceMng(), et Arcane::Unknown.
Référencé par Arcane::MessagePassing::SharedMemoryMessageRequest::copyFromSender().
|
overridevirtual |
Allocateur mémoire pour la ressource r.
Lève une exception si aucun allocateur pour la ressource v existe.
Implémente Arcane::IMemoryRessourceMng.
Définition à la ligne 151 du fichier MemoryRessourceMng.cc.
Références getAllocator().
Référencé par getAllocator().
|
overridevirtual |
Allocateur mémoire pour la ressource r.
Si aucun allocateur pour la ressoruce v existe, lève une exception si throw_if_not_found est vrai ou retourne nullptr si throw_if_not_found est faux.
Implémente Arcane::IMemoryRessourceMng.
Définition à la ligne 126 du fichier MemoryRessourceMng.cc.
Références ARCANE_FATAL, Arcane::platform::getAcceleratorHostMemoryAllocator(), Arcane::Host, Arcane::HostPinned, et Arcane::UnifiedMemory.
|
overridevirtual |
Positionne l'allocateur pour la ressource r.
Implémente Arcane::IMemoryRessourceMngInternal.
Définition à la ligne 160 du fichier MemoryRessourceMng.cc.
|
inlineoverridevirtual |
Positionne l'instance gérant les copies.
Implémente Arcane::IMemoryRessourceMngInternal.
Définition à la ligne 56 du fichier MemoryRessourceMng.h.
Indique si un accélérateur est disponible.
Implémente Arcane::IMemoryRessourceMngInternal.
Définition à la ligne 57 du fichier MemoryRessourceMng.h.
|
private |
Définition à la ligne 71 du fichier MemoryRessourceMng.h.
|
private |
Définition à la ligne 73 du fichier MemoryRessourceMng.h.
|
private |
Définition à la ligne 72 du fichier MemoryRessourceMng.h.
Définition à la ligne 74 du fichier MemoryRessourceMng.h.