14#include "arcane/accelerator/hip/HipAccelerator.h"
16#include "arcane/utils/PlatformUtils.h"
17#include "arcane/utils/Array.h"
18#include "arcane/utils/TraceInfo.h"
19#include "arcane/utils/NotSupportedException.h"
20#include "arcane/utils/FatalErrorException.h"
21#include "arcane/utils/IMemoryAllocator.h"
25namespace Arcane::Accelerator::Hip
34arcaneCheckHipErrors(
const TraceInfo& ti,hipError_t e)
37 ARCANE_FATAL(
"HIP Error trace={0} e={1} str={2}",ti,e,hipGetErrorString(e));
42arcaneCheckHipErrorsNoThrow(
const TraceInfo& ti,hipError_t e)
46 String str = String::format(
"HIP Error trace={0} e={1} str={2}",ti,e,hipGetErrorString(e));
48 ex.explain(std::cerr);
69 ARCANE_CHECK_HIP(_allocate(&out,
new_size, args));
72 ARCANE_FATAL(
"Bad alignment for HIP allocator: offset={0}", (a % 128));
84 ARCANE_CHECK_HIP_NOTHROW(_deallocate(
ptr.baseAddress(), args));
107 return ::hipFree(
ptr);
125 return ::hipHostFree(
ptr);
143 return ::hipFree(
ptr);
161getHipMemoryAllocator()
167getHipDeviceMemoryAllocator()
173getHipUnifiedMemoryAllocator()
175 return &unified_memory_hip_memory_allocator;
179getHipHostPinnedMemoryAllocator()
181 return &host_pinned_hip_memory_allocator;
#define ARCANE_FATAL(...)
Macro envoyant une exception FatalErrorException.
Classe de base d'un allocateur spécifique pour 'Hip'.
AllocatedMemoryInfo allocate(MemoryAllocationArgs args, Int64 new_size) override
Alloue de la mémoire pour new_size octets et retourne le pointeur.
AllocatedMemoryInfo reallocate(MemoryAllocationArgs args, AllocatedMemoryInfo current_ptr, Int64 new_size) override
Réalloue de la mémoire pour new_size octets et retourne le pointeur.
void deallocate(MemoryAllocationArgs args, AllocatedMemoryInfo ptr) override
Libère la mémoire dont l'adresse de base est ptr.
bool hasRealloc(MemoryAllocationArgs) const override
Indique si l'allocateur supporte la sémantique de realloc.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Allocateur mémoire avec alignement mémoire spécifique.
Informations sur une zone mémoire allouée.
Exception lorsqu'une erreur fatale est survenue.
Interface d'un allocateur pour la mémoire.
Classe contenant des informations pour spécialiser les allocations.
Chaîne de caractères unicode.
Espace de nom de Arccore.
std::int64_t Int64
Type entier signé sur 64 bits.