14#include "arcane/accelerator/sycl/SyclAccelerator.h"
15#include "arcane/accelerator/sycl/internal/SyclAcceleratorInternal.h"
17#include "arcane/utils/PlatformUtils.h"
18#include "arcane/utils/Array.h"
19#include "arcane/utils/TraceInfo.h"
20#include "arcane/utils/NotSupportedException.h"
21#include "arcane/utils/FatalErrorException.h"
22#include "arcane/utils/IMemoryAllocator.h"
26namespace Arcane::Accelerator::Sycl
34std::unique_ptr<sycl::queue> global_default_queue;
37 sycl::queue& _defaultQueue()
39 return *global_default_queue;
67 ARCANE_FATAL(
"Bad alignment for SYCL allocator: offset={0}", (a % 128));
74 q.submit([&](sycl::handler&
cgh) {
85 _deallocate(
ptr.baseAddress(), args,
q);
174getSyclMemoryAllocator()
176 return &unified_memory_sycl_memory_allocator;
180getSyclDeviceMemoryAllocator()
182 return &device_sycl_memory_allocator;
186getSyclUnifiedMemoryAllocator()
188 return &unified_memory_sycl_memory_allocator;
192getSyclHostPinnedMemoryAllocator()
194 return &host_pinned_sycl_memory_allocator;
201setSyclMemoryQueue(
const sycl::queue& memory_queue)
203 global_default_queue = std::make_unique<sycl::queue>(memory_queue);
#define ARCANE_FATAL(...)
Macro envoyant une exception FatalErrorException.
eMemoryResource memoryResource() const override
Ressource mémoire fournie par l'allocateur.
eMemoryResource memoryResource() const override
Ressource mémoire fournie par l'allocateur.
Classe de base d'un allocateur spécifique pour 'Sycl'.
bool hasRealloc(MemoryAllocationArgs) const override
Indique si l'allocateur supporte la sémantique de realloc.
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.
AllocatedMemoryInfo allocate(MemoryAllocationArgs args, Int64 new_size) override
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.
eMemoryResource memoryResource() const override
Ressource mémoire fournie par l'allocateur.
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.
Interface d'un allocateur pour la mémoire.
Classe contenant des informations pour spécialiser les allocations.
Espace de nom pour l'utilisation des accélérateurs.
Espace de nom de Arccore.
std::int64_t Int64
Type entier signé sur 64 bits.
eMemoryResource
Liste des ressources mémoire disponibles.