13 #ifdef ALPAKA_ACC_SYCL_ENABLED
15 # include <sycl/sycl.hpp>
20 class BlockSharedMemStGenericSycl
22 ,
public interface::Implements<ConceptBlockSharedSt, BlockSharedMemStGenericSycl>
25 BlockSharedMemStGenericSycl(sycl::local_accessor<std::byte> accessor)
26 : BlockSharedMemStMemberImpl(
27 reinterpret_cast<std::uint8_t*>(accessor.get_multi_ptr<sycl::access::decorated::no>().get()),
29 , m_accessor{accessor}
34 sycl::local_accessor<std::byte> m_accessor;
40 template<
typename T, std::
size_t TUniqueId>
41 struct DeclareSharedVar<T, TUniqueId, BlockSharedMemStGenericSycl>
43 static auto declareVar(BlockSharedMemStGenericSycl
const& smem) -> T&
45 auto* data = smem.template getVarPtr<T>(TUniqueId);
49 smem.template alloc<T>(TUniqueId);
50 data = smem.template getLatestVarPtr<T>();
58 struct FreeSharedVars<BlockSharedMemStGenericSycl>
60 static auto freeVars(BlockSharedMemStGenericSycl
const&) ->
void
#define ALPAKA_ASSERT(...)
The assert can be explicit disabled by defining NDEBUG.
Implementation of static block shared memory provider.
The alpaka accelerator library.