14#include "arcane/utils/internal/MemoryRessourceMng.h"
16#include "arcane/utils/FatalErrorException.h"
17#include "arcane/utils/PlatformUtils.h"
18#include "arcane/utils/Array.h"
19#include "arcane/utils/MemoryView.h"
20#include "arcane/utils/MemoryAllocator.h"
45 return "UnifiedMemory";
62extern "C++" ARCANE_UTILS_EXPORT std::ostream&
85 ARCANE_FATAL(
"Source buffer is not accessible from host and no copier provided (location={0})",
89 ARCANE_FATAL(
"Destination buffer is not accessible from host and no copier provided (location={0})",
101: m_default_memory_copier(new DefaultHostMemoryCopier())
102, m_copier(m_default_memory_copier.get())
114int MemoryRessourceMng::
118 if (x <= 0 || x >= NB_MEMORY_RESSOURCE)
119 ARCANE_FATAL(
"Invalid value '{0}'. Valid range is '1' to '{1}'", x, NB_MEMORY_RESSOURCE - 1);
129 int x = _checkValidRessource(
r);
134 if (!a && !m_is_accelerator) {
143 ARCANE_FATAL(
"Allocator for ressource '{0}' is not available",
r);
163 int x = _checkValidRessource(
r);
164 m_allocators[x] = allocator;
170void MemoryRessourceMng::
#define ARCANE_FATAL(...)
Macro envoyant une exception FatalErrorException.
File d'exécution pour un accélérateur.
void copy(ConstMemoryView from, eMemoryRessource from_mem, MutableMemoryView to, eMemoryRessource to_mem, const RunQueue *queue) override
Copie les données de from vers to avec la queue queue.
Interface pour les copies mémoire avec support des accélérateurs.
virtual void copy(ConstMemoryView from, eMemoryRessource from_mem, MutableMemoryView to, eMemoryRessource to_mem, const RunQueue *queue)=0
Copie les données de from vers to avec la queue queue.
Gestion des ressources mémoire pour les CPU et accélérateurs.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
IMemoryAllocator * getAllocator(eMemoryRessource r) override
Allocateur mémoire pour la ressource r.
void setAllocator(eMemoryRessource r, IMemoryAllocator *allocator) override
Positionne l'allocateur pour la ressource r.
static void genericCopy(ConstMemoryView from, MutableMemoryView to)
Copie générique utilisant platform::getDataMemoryRessourceMng()
static AlignedMemoryAllocator * Simd()
Allocateur garantissant l'alignement pour utiliser la vectorisation sur la plateforme cible.
Interface d'un allocateur pour la mémoire.
std::ostream & operator<<(std::ostream &o, eExecutionPolicy exec_policy)
Affiche le nom de la politique d'exécution.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
eMemoryRessource
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.