12#ifndef ARCANE_UTILS_MEMORYUTILS_H
13#define ARCANE_UTILS_MEMORYUTILS_H
17#include "arcane/utils/MemoryRessource.h"
18#include "arcane/utils/MemoryView.h"
20#include "arccore/collections/MemoryAllocationArgs.h"
72extern "C++" ARCANE_UTILS_EXPORT IMemoryAllocator*
84extern "C++" ARCANE_UTILS_EXPORT MemoryAllocationOptions
97extern "C++" ARCANE_UTILS_EXPORT IMemoryAllocator*
108extern "C++" ARCANE_UTILS_EXPORT MemoryAllocationOptions
118extern "C++" ARCANE_DEPRECATED_REASON(
"Y2024: Use getDefaultDataAllocator() instead.")
119ARCANE_UTILS_EXPORT IMemoryAllocator*
135extern "C++" ARCANE_UTILS_EXPORT MemoryAllocationOptions
154 extern "C++" ARCANE_UTILS_EXPORT Int64
155 computeCapacity(Int64 size);
173template <
typename DataType>
inline Int32
178 if (new_size > s || force_resize) {
181 array.
reserve(impl::computeCapacity(new_size));
196template <
typename DataType>
inline Int32
211extern "C++" ARCANE_UTILS_EXPORT
void
212copy(MutableMemoryView destination, eMemoryResource destination_mem,
213 ConstMemoryView source, eMemoryResource source_mem,
221copy(MutableMemoryView destination, ConstMemoryView source,
const RunQueue* queue =
nullptr)
223 eMemoryResource mem_type = eMemoryResource::Unknown;
224 copy(destination, mem_type, source, mem_type, queue);
231template <
typename DataType>
inline void
234 ConstMemoryView input(asBytes(source));
235 MutableMemoryView output(asWritableBytes(destination));
236 copy(output, input, queue);
240template <
typename DataType>
inline void
File d'exécution pour un accélérateur.
Integer capacity() const
Capacité (nombre d'éléments alloués) du vecteur.
Int64 largeSize() const
Nombre d'éléments du vecteur (en 64 bits)
Classe de base des vecteurs 1D de données.
void reserve(Int64 new_capacity)
Réserve le mémoire pour new_capacity éléments.
void resize(Int64 s)
Change le nombre d'éléments du tableau à s.
Interface d'un allocateur pour la mémoire.
Vue d'un tableau d'éléments de type T.
Vue d'un tableau d'éléments de type T.
Espace de noms pour les fonctions de gestion mémoire et des allocateurs.
IMemoryAllocator * getDeviceOrHostAllocator()
Retourne l'allocateur sur l'hôte ou sur le device.
MemoryAllocationOptions getAllocatorForMostlyReadOnlyData()
Allocateur par défaut pour les données essentiellement en lecture.
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.
Int32 checkResizeArrayWithCapacity(Array< DataType > &array, Int64 new_size, bool force_resize)
Redimensionne un tableau en ajoutant une réserve de mémoire.
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.
eMemoryResource
Liste des ressources mémoire disponibles.