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);
171getSyclMemoryAllocator()
177getSyclDeviceMemoryAllocator()
179 return &device_sycl_memory_allocator;
183getSyclUnifiedMemoryAllocator()
185 return &unified_memory_sycl_memory_allocator;
189getSyclHostPinnedMemoryAllocator()
191 return &host_pinned_sycl_memory_allocator;
198setSyclMemoryQueue(
const sycl::queue& memory_queue)
200 global_default_queue = std::make_unique<sycl::queue>(memory_queue);
#define ARCANE_FATAL(...)
Macro envoyant une exception FatalErrorException.
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.
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.