alpaka
Abstraction Library for Parallel Kernel Acceleration
Loading...
Searching...
No Matches
MemoryOrderGenericSycl.hpp
Go to the documentation of this file.
1/* Copyright 2025 Tapish Narwal
2 * SPDX-License-Identifier: MPL-2.0
3 */
4
5#pragma once
6
8
9#include <concepts>
10
11#ifdef ALPAKA_ACC_SYCL_ENABLED
12
13# include <sycl/sycl.hpp>
14
15namespace alpaka
16{
17
18 struct MemOrderSycl
19 {
20 template<MemoryOrder TMemOrder>
21 static constexpr auto get(TMemOrder)
22 {
23 if constexpr(std::same_as<TMemOrder, mem_order::SeqCst>)
24 {
25 return sycl::memory_order::seq_cst;
26 }
27 if constexpr(std::same_as<TMemOrder, mem_order::AcqRel>)
28 {
29 return sycl::memory_order::acq_rel;
30 }
31 if constexpr(std::same_as<TMemOrder, mem_order::Release>)
32 {
33 return sycl::memory_order::release;
34 }
35 if constexpr(std::same_as<TMemOrder, mem_order::Acquire>)
36 {
37 return sycl::memory_order::acquire;
38 }
39 if constexpr(std::same_as<TMemOrder, mem_order::Relaxed>)
40 {
41 return sycl::memory_order::relaxed;
42 }
43 }
44 };
45
46} // namespace alpaka
47
48#endif
The alpaka accelerator library.