15#if ALPAKA_LANG_CUDA || ALPAKA_LANG_HIP
19 namespace unifiedCudaHip
24 __device__
void operator()()
const
39 template<alpaka::concepts::DeviceKind T_DeviceKind>
48 template<
typename T,
typename T_Acc>
49 requires alpaka::concepts::UnifiedCudaHipExecutor<ALPAKA_TYPEOF(std::declval<T_Acc>()[object::exec])>
52 __device__
decltype(
auto)
operator()(
auto const& acc)
const
61 extern __shared__ std::byte shMem
alignas(std::max_align_t)[];
62 return reinterpret_cast<T*
>(shMem);
66 template<
typename T,
size_t T_uniqueId,
typename T_Acc>
67 requires alpaka::concepts::UnifiedCudaHipExecutor<ALPAKA_TYPEOF(std::declval<T_Acc>()[object::exec])>
70 __device__
decltype(
auto)
operator()(
auto const& acc)
const
73 __shared__ uint8_t shMem
alignas(
alignof(T))[
sizeof(T)];
74 return *(
reinterpret_cast<T*
>(shMem));
functionality which is usable on the accelerator compute device from within a kernel.