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
145extern
"C++" ARCANE_UTILS_EXPORT IMemoryAllocator*
154 extern "C++" ARCANE_UTILS_EXPORT
Int64
155 computeCapacity(
Int64 size);
173template <
typename DataType>
inline Int32
178 if (new_size > s || force_resize) {
196template <
typename DataType>
inline Int32
211extern "C++" ARCANE_UTILS_EXPORT
void
221copy(MutableMemoryView destination, ConstMemoryView source,
const RunQueue* queue =
nullptr)
224 copy(destination, mem_type, source, mem_type, queue);
231template <
typename DataType>
inline void
234 ConstMemoryView input(
asBytes(source));
236 copy(output, input, queue);
240template <
typename DataType>
inline void
Int64 computeCapacity(Int64 size)
Calcule une capacité adaptée pour une taille de size.
Integer capacity() const
Capacité (nombre d'éléments alloués) du vecteur.
Int64 largeSize() const
Nombre d'éléments du vecteur (en 64 bits)
File d'exécution pour un accélérateur.
Classe de base des vecteurs 1D de données.
void resize(Int64 s)
Change le nombre d'éléments du tableau à s.
void reserve(Int64 new_capacity)
Réserve le mémoire pour new_capacity éléments.
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.
impl::SpanTypeFromSize< std::byte, SizeType >::SpanType asWritableBytes(const SpanImpl< DataType, SizeType, Extent > &s)
Converti la vue en un tableau d'octets modifiables.
std::int64_t Int64
Type entier signé sur 64 bits.
eMemoryLocationHint
Indices sur la localisation mémoire attendue.
impl::SpanTypeFromSize< conststd::byte, SizeType >::SpanType asBytes(const SpanImpl< DataType, SizeType, Extent > &s)
Converti la vue en un tableau d'octets non modifiables.
eMemoryResource
Liste des ressources mémoire disponibles.
@ Unknown
Valeur inconnue ou non initialisée.
std::int32_t Int32
Type entier signé sur 32 bits.