14 template<
typename TDev,
typename TSfinae =
void>
21 #if(ALPAKA_DEBUG >= ALPAKA_DEBUG_FULL)
28 #if defined(ALPAKA_ACC_GPU_CUDA_ENABLED) || defined(ALPAKA_ACC_GPU_HIP_ENABLED)
31 template<
typename TApi>
34 # if(ALPAKA_DEBUG >= ALPAKA_DEBUG_FULL)
44 template<
typename TDev>
50 template<
typename TQueue,
typename TSfinae =
void>
54 template<
typename TDev>
57 static constexpr
bool value =
true;
61 template<
typename TDev>
64 static constexpr
bool value =
false;
67 #if defined(ALPAKA_ACC_GPU_CUDA_ENABLED) || defined(ALPAKA_ACC_GPU_HIP_ENABLED)
70 template<
typename TApi>
73 static constexpr
bool value =
true;
77 template<
typename TApi>
80 static constexpr
bool value =
false;
84 #ifdef ALPAKA_ACC_SYCL_ENABLED
85 # ifdef ALPAKA_SYCL_ONEAPI_CPU
90 # if(ALPAKA_DEBUG >= ALPAKA_DEBUG_FULL)
91 using type = alpaka::QueueCpuSyclBlocking;
93 using type = alpaka::QueueCpuSyclNonBlocking;
100 static constexpr
auto value =
true;
106 static constexpr
auto value =
false;
109 # ifdef ALPAKA_SYCL_ONEAPI_FPGA
112 struct DefaultQueueType<
alpaka::DevFpgaSyclIntel>
114 # if(ALPAKA_DEBUG >= ALPAKA_DEBUG_FULL)
115 using type = alpaka::QueueFpgaSyclIntelBlocking;
117 using type = alpaka::QueueFpgaSyclIntelNonBlocking;
124 static constexpr
auto value =
true;
130 static constexpr
auto value =
false;
133 # ifdef ALPAKA_SYCL_ONEAPI_GPU
136 struct DefaultQueueType<
alpaka::DevGpuSyclIntel>
138 # if(ALPAKA_DEBUG >= ALPAKA_DEBUG_FULL)
139 using type = alpaka::QueueGpuSyclIntelBlocking;
141 using type = alpaka::QueueGpuSyclIntelNonBlocking;
148 static constexpr
auto value =
true;
154 static constexpr
auto value =
false;
161 template<
typename TQueue>
166 std::tuple<DevCpu, QueueCpuBlocking>,
167 std::tuple<DevCpu, QueueCpuNonBlocking>
168 #ifdef ALPAKA_ACC_GPU_CUDA_ENABLED
170 std::tuple<DevCudaRt, QueueCudaRtBlocking>,
171 std::tuple<DevCudaRt, QueueCudaRtNonBlocking>
173 #ifdef ALPAKA_ACC_GPU_HIP_ENABLED
175 std::tuple<DevHipRt, QueueHipRtBlocking>,
176 std::tuple<DevHipRt, QueueHipRtNonBlocking>
178 #ifdef ALPAKA_ACC_SYCL_ENABLED
179 # ifdef ALPAKA_SYCL_ONEAPI_CPU
181 std::tuple<alpaka::DevCpuSycl, alpaka::QueueCpuSyclBlocking>,
182 std::tuple<alpaka::DevCpuSycl, alpaka::QueueCpuSyclNonBlocking>
184 # ifdef ALPAKA_SYCL_ONEAPI_FPGA
186 std::tuple<alpaka::DevFpgaSyclIntel, alpaka::QueueFpgaSyclIntelBlocking>,
187 std::tuple<alpaka::DevFpgaSyclIntel, alpaka::QueueFpgaSyclIntelNonBlocking>
189 # ifdef ALPAKA_SYCL_ONEAPI_GPU
191 std::tuple<alpaka::DevGpuSyclIntel, alpaka::QueueGpuSyclIntelBlocking>,
192 std::tuple<alpaka::DevGpuSyclIntel, alpaka::QueueGpuSyclIntelNonBlocking>
trait::IsBlockingQueue< TQueue > IsBlockingQueue
The queue type that should be used for the given accelerator.
std::tuple< std::tuple< DevCpu, QueueCpuBlocking >, std::tuple< DevCpu, QueueCpuNonBlocking >, std::tuple< DevCudaRt, QueueCudaRtBlocking >, std::tuple< DevCudaRt, QueueCudaRtNonBlocking > > TestQueues
A std::tuple holding tuples of devices and corresponding queue types.
typename trait::DefaultQueueType< TDev >::type DefaultQueue
The queue type that should be used for the given device.
The alpaka accelerator library.
QueueGenericThreadsBlocking< DevCpu > QueueCpuBlocking
QueueGenericThreadsNonBlocking< DevCpu > QueueCpuNonBlocking
The default queue type trait for devices.
The blocking queue trait.