12 #if defined(ALPAKA_ACC_GPU_CUDA_ENABLED) || defined(ALPAKA_ACC_GPU_HIP_ENABLED)
41 typename std::enable_if_t<
42 # if defined(ALPAKA_ACC_GPU_CUDA_ENABLED)
43 (std::is_same_v<TTag, TagGpuCudaRt> && std::is_same_v<TApi, ApiCudaRt>)
45 (std::is_same_v<TTag, TagGpuHipRt> && std::is_same_v<TApi, ApiHipRt>)
55 using Type = std::remove_const_t<std::remove_all_extents_t<TTypeSrc>>;
56 using TypeExt = std::remove_const_t<TTypeSrc>;
58 TypeExt* pMemAcc(
nullptr);
60 TApi::getSymbolAddress(
reinterpret_cast<void**
>(&pMemAcc), *(
const_cast<TypeExt*
>(&viewSrc))));
77 typename std::enable_if_t<
78 # if defined(ALPAKA_ACC_GPU_CUDA_ENABLED)
79 (std::is_same_v<TTag, TagGpuCudaRt> && std::is_same_v<TApi, ApiCudaRt>)
81 (std::is_same_v<TTag, TagGpuHipRt> && std::is_same_v<TApi, ApiHipRt>)
89 TViewSrc
const& viewSrc)
91 using Type = std::remove_const_t<std::remove_all_extents_t<TTypeDst>>;
92 using TypeExt = std::remove_const_t<TTypeDst>;
94 Type* pMemAcc(
nullptr);
96 TApi::getSymbolAddress(
reinterpret_cast<void**
>(&pMemAcc), *(
const_cast<TypeExt*
>(&viewDst))));
114 typename std::enable_if_t<
115 # if defined(ALPAKA_ACC_GPU_CUDA_ENABLED)
116 (std::is_same_v<TTag, TagGpuCudaRt> && std::is_same_v<TApi, ApiCudaRt>)
118 (std::is_same_v<TTag, TagGpuHipRt> && std::is_same_v<TApi, ApiHipRt>)
129 using Type = std::remove_const_t<std::remove_all_extents_t<TTypeSrc>>;
130 using TypeExt = std::remove_const_t<TTypeSrc>;
131 Type* pMemAcc(
nullptr);
133 TApi::getSymbolAddress(
reinterpret_cast<void**
>(&pMemAcc), *(
const_cast<TypeExt*
>(&viewSrc))));
136 reinterpret_cast<Type*
>(pMemAcc),
150 typename std::enable_if_t<
151 # if defined(ALPAKA_ACC_GPU_CUDA_ENABLED)
152 (std::is_same_v<TTag, TagGpuCudaRt> && std::is_same_v<TApi, ApiCudaRt>)
154 (std::is_same_v<TTag, TagGpuHipRt> && std::is_same_v<TApi, ApiHipRt>)
162 TViewSrc
const& viewSrc,
165 using Type = std::remove_const_t<std::remove_all_extents_t<TTypeDst>>;
166 using TypeExt = std::remove_const_t<TTypeDst>;
167 Type* pMemAcc(
nullptr);
169 TApi::getSymbolAddress(
reinterpret_cast<void**
>(&pMemAcc), *(
const_cast<TypeExt*
>(&viewDst))));
172 reinterpret_cast<Type*
>(pMemAcc),
The alpaka accelerator library.
typename trait::IdxType< T >::type Idx
ALPAKA_FN_HOST auto memcpy(TQueue &queue, alpaka::detail::DevGlobalImplGeneric< TTag, TTypeDst > &viewDst, TViewSrc const &viewSrc) -> void
ALPAKA_FN_HOST auto createTaskMemcpy(TViewDstFwd &&viewDst, TViewSrc const &viewSrc, TExtent const &extent)
Creates a memory copy task.
ALPAKA_NO_HOST_ACC_WARNING ALPAKA_FN_HOST_ACC auto getExtents(T const &object) -> Vec< Dim< T >, Idx< T >>
ALPAKA_FN_HOST auto getDev(T const &t)
ALPAKA_FN_HOST auto enqueue(TQueue &queue, TTask &&task) -> void
Queues the given task in the given queue.
typename trait::DimType< T >::type Dim
The dimension type trait alias template to remove the ::type.
The memory view to wrap plain pointers.