21 #ifndef RAJA_MemUtils_SYCL_HPP
22 #define RAJA_MemUtils_SYCL_HPP
24 #include "RAJA/config.hpp"
26 #if defined(RAJA_ENABLE_SYCL)
34 #include <type_traits>
35 #include <unordered_map>
55 sycl_dim_t gridDim {0};
56 sycl_dim_t blockDim {0};
57 ::sycl::queue qu = ::sycl::queue();
58 bool setup_reducers =
false;
61 extern syclInfo g_status;
63 thread_local
extern syclInfo tl_status;
65 extern std::unordered_map<::sycl::queue, bool> g_queue_info_map;
70 struct PinnedAllocator
74 void* malloc(
size_t nbytes)
77 ::sycl::queue* q = ::camp::resources::Sycl::get_default().get_queue();
78 ptr = ::sycl::malloc_host(nbytes, *q);
86 ::sycl::queue* q = ::camp::resources::Sycl::get_default().get_queue();
87 ::sycl::free(ptr, *q);
93 struct DeviceAllocator
97 void* malloc(
size_t nbytes)
100 ::sycl::queue* q = ::camp::resources::Sycl::get_default().get_queue();
101 ptr = ::sycl::malloc_device(nbytes, *q);
109 ::sycl::queue* q = ::camp::resources::Sycl::get_default().get_queue();
110 ::sycl::free(ptr, *q);
117 struct DeviceZeroedAllocator
121 void* malloc(
size_t nbytes)
124 ::sycl::queue* q = ::camp::resources::Sycl::get_default().get_queue();
125 ptr = ::sycl::malloc_device(nbytes, *q);
126 q->memset(ptr, 0, nbytes);
134 ::sycl::queue* q = ::camp::resources::Sycl::get_default().get_queue();
135 ::sycl::free(ptr, *q);
140 using device_mempool_type = basic_mempool::MemPool<DeviceAllocator>;
141 using device_zeroed_mempool_type =
142 basic_mempool::MemPool<DeviceZeroedAllocator>;
143 using pinned_mempool_type = basic_mempool::MemPool<PinnedAllocator>;
RAJA header file containing an implementation of a memory pool.
Definition: AlignedRangeIndexSetBuilders.cpp:35
Header file containing RAJA SYCL policy definitions.
RAJA header file for handling different SYCL header include paths.
Header file for RAJA type definitions.