16#include "arcane/utils/FatalErrorException.h"
17#include "arcane/utils/MemoryAllocator.h"
18#include "arcane/utils/IMemoryRessourceMng.h"
19#include "arcane/utils/String.h"
20#include "arcane/utils/internal/IMemoryRessourceMngInternal.h"
21#include "arcane/utils/internal/MemoryUtilsInternal.h"
22#include "arcane/utils/internal/MemoryResourceMng.h"
47 IMemoryRessourceMng* global_data_memory_resource_mng =
nullptr;
57 return global_data_memory_resource;
66 global_data_memory_resource = v;
80 else if (name ==
"Host")
82 else if (name ==
"HostPinned")
84 else if (name ==
"UnifiedMemory")
87 ARCANE_FATAL(
"Invalid name '{0}' for memory resource. Valid names are "
88 "'Device', 'Host', 'HostPinned' or 'UnifieMemory'.",
100 IMemoryRessourceMng* old = global_data_memory_resource_mng;
101 global_data_memory_resource_mng = mng;
111 IMemoryRessourceMng* a = global_data_memory_resource_mng;
113 return &global_default_data_memory_resource_mng;
181 return global_accelerator_host_memory_allocator;
191 global_accelerator_host_memory_allocator = a;
199computeCapacity(
Int64 size)
201 double d_size =
static_cast<double>(size);
202 double d_new_capacity = d_size * 1.8;
204 d_new_capacity = d_size * 1.2;
205 else if (size > 500000)
206 d_new_capacity = d_size * 1.5;
207 return static_cast<Int64>(d_new_capacity);
218 mrm->
_internal()->copy(source, destination_mem, destination, source_mem, queue);
#define ARCANE_CHECK_POINTER(ptr)
Macro retournant le pointeur ptr s'il est non nul ou lancant une exception s'il est nul.
#define ARCANE_FATAL(...)
Macro envoyant une exception FatalErrorException.
Fonctions de gestion mémoire et des allocateurs.
File d'exécution pour un accélérateur.
Interface d'un allocateur pour la mémoire.
virtual IMemoryRessourceMngInternal * _internal()=0
Interface interne.
virtual IMemoryAllocator * getAllocator(eMemoryResource r)=0
Allocateur mémoire pour la ressource r.
Options pour configurer les allocations.
Gestion des ressources mémoire pour les CPU et accélérateurs.
Chaîne de caractères unicode.
bool null() const
Retourne true si la chaîne est nulle.
IMemoryRessourceMng * setDataMemoryResourceMng(IMemoryRessourceMng *mng)
Positionne le gestionnaire de ressource mémoire pour les données.
IMemoryRessourceMng * getDataMemoryResourceMng()
Gestionnaire de ressource mémoire pour les données.
IMemoryAllocator * getDeviceOrHostAllocator()
Retourne l'allocateur sur l'hôte ou sur le device.
IMemoryAllocator * setAcceleratorHostMemoryAllocator(IMemoryAllocator *a)
Positionne l'allocateur spécifique pour les accélérateurs.
MemoryAllocationOptions getAllocatorForMostlyReadOnlyData()
Allocateur par défaut pour les données essentiellement en lecture.
void setDefaultDataMemoryResource(eMemoryResource mem_resource)
Positionne la ressource mémoire utilisée pour l'allocateur mémoire des données.
MemoryAllocationOptions getAllocationOptions(eMemoryResource mem_resource)
Allocation par défaut pour la ressource mem_resource.
IMemoryAllocator * getDefaultDataAllocator()
Allocateur par défaut pour les données.
eMemoryResource getMemoryResourceFromName(const String &name)
Retourne la ressource mémoire par son nom.
IMemoryAllocator * getAcceleratorHostMemoryAllocator()
Allocateur spécifique pour les accélérateurs.
IMemoryAllocator * getAllocator(eMemoryResource mem_resource)
Allocateur par défaut pour la ressource mem_resource.
eMemoryResource getDefaultDataMemoryResource()
Ressource mémoire utilisée par l'allocateur par défaut pour les données.
void copy(MutableMemoryView destination, eMemoryResource destination_mem, ConstMemoryView source, eMemoryResource source_mem, const RunQueue *queue=nullptr)
Copie de source vers destination en utilisant la file queue.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
std::int64_t Int64
Type entier signé sur 64 bits.
eMemoryLocationHint
Indices sur la localisation mémoire attendue.
@ HostAndDeviceMostlyRead
Indique que la donnée sera utilisée à la fois sur accélérateur et sur CPU et qu'elle ne sera pas souv...
Arcane::eMemoryResource eMemoryRessource
Typedef pour la version Arcane historique (avec 2's')
eMemoryResource
Liste des ressources mémoire disponibles.
@ HostPinned
Alloue sur l'hôte.
@ Unknown
Valeur inconnue ou non initialisée.
@ UnifiedMemory
Alloue en utilisant la mémoire unifiée.
@ Device
Alloue sur le device.