12#ifdef ALPAKA_ACC_SYCL_ENABLED 
   14#    include <sycl/sycl.hpp> 
   21        struct DevGlobalTrait<TagCpuSycl, T>
 
   24            using Type = sycl::ext::oneapi::experimental::device_global<T>;
 
   28        struct DevGlobalTrait<TagGpuSyclIntel, T>
 
   31            using Type = sycl::ext::oneapi::experimental::device_global<T>;
 
   35        struct DevGlobalTrait<TagFpgaSyclIntel, T>
 
   38            using Type = sycl::ext::oneapi::experimental::device_global<T>;
 
   42        struct DevGlobalTrait<TagGenericSycl, T>
 
   45            using Type = sycl::ext::oneapi::experimental::device_global<T>;
 
   50    template<
typename TDev, 
bool TBlocking, 
typename TViewDst, 
typename TTypeSrc>
 
   52        detail::QueueGenericSyclBase<TDev, TBlocking>& queue,
 
   54        sycl::ext::oneapi::experimental::device_global<TTypeSrc> 
const& viewSrc)
 
   56        queue.getNativeHandle().memcpy(
reinterpret_cast<void*
>(
getPtrNative(viewDst)), viewSrc);
 
   60    template<
typename TDev, 
bool TBlocking, 
typename TTypeDst, 
typename TViewSrc>
 
   62        detail::QueueGenericSyclBase<TDev, TBlocking>& queue,
 
   63        sycl::ext::oneapi::experimental::device_global<TTypeDst>& viewDst,
 
   64        TViewSrc 
const& viewSrc)
 
   66        queue.getNativeHandle().memcpy(viewDst, 
reinterpret_cast<void const*
>(
getPtrNative(viewSrc)));
 
   70    template<
typename TDev, 
bool TBlocking, 
typename TViewDst, 
typename TTypeSrc, 
typename TExtent>
 
   72        detail::QueueGenericSyclBase<TDev, TBlocking>& queue,
 
   74        sycl::ext::oneapi::experimental::device_global<TTypeSrc> 
const& viewSrc,
 
   78        auto size = 
static_cast<std::size_t
>(
getHeight(extent)) * 
static_cast<std::size_t
>(
getDepth(extent))
 
   79                    * 
static_cast<std::size_t
>(
getWidth(extent)) * 
sizeof(
Elem);
 
   80        queue.getNativeHandle().memcpy(
reinterpret_cast<void*
>(
getPtrNative(viewDst)), viewSrc, size);
 
   84    template<
typename TDev, 
bool TBlocking, 
typename TTypeDst, 
typename TViewSrc, 
typename TExtent>
 
   86        detail::QueueGenericSyclBase<TDev, TBlocking>& queue,
 
   87        sycl::ext::oneapi::experimental::device_global<TTypeDst>& viewDst,
 
   88        TViewSrc 
const& viewSrc,
 
   92        auto size = 
static_cast<std::size_t
>(
getHeight(extent)) * 
static_cast<std::size_t
>(
getDepth(extent))
 
   93                    * 
static_cast<std::size_t
>(
getWidth(extent)) * 
sizeof(
Elem);
 
   94        queue.getNativeHandle().memcpy(viewDst, 
reinterpret_cast<void const*
>(
getPtrNative(viewSrc)), size);
 
The alpaka accelerator library.
 
ALPAKA_FN_HOST auto memcpy(TQueue &queue, alpaka::detail::DevGlobalImplGeneric< TTag, TTypeDst > &viewDst, TViewSrc const &viewSrc) -> void
 
ALPAKA_NO_HOST_ACC_WARNING ALPAKA_FN_HOST_ACC auto getHeight(TExtent const &extent=TExtent()) -> Idx< TExtent >
 
ALPAKA_FN_HOST auto getPtrNative(TView const &view) -> Elem< TView > const *
Gets the native pointer of the memory view.
 
std::remove_volatile_t< typename trait::ElemType< TView >::type > Elem
The element type trait alias template to remove the ::type.
 
ALPAKA_NO_HOST_ACC_WARNING ALPAKA_FN_HOST_ACC auto getDepth(TExtent const &extent=TExtent()) -> Idx< TExtent >
 
ALPAKA_NO_HOST_ACC_WARNING ALPAKA_FN_HOST_ACC auto getWidth(TExtent const &extent=TExtent()) -> Idx< TExtent >