10#ifdef ALPAKA_ACC_SYCL_ENABLED
15 template<
typename TElem,
typename TDim,
typename TIdx, concepts::Tag TTag>
16 struct ConstBufType<DevGenericSycl<TTag>, TElem, TDim, TIdx>
18 using type = ConstBufGenericSycl<TElem, TDim, TIdx, TTag>;
22 template<
typename TElem,
typename TDim,
typename TIdx, concepts::Tag TTag>
23 struct DevType<ConstBufGenericSycl<TElem, TDim, TIdx, TTag>>
25 using type = DevGenericSycl<TTag>;
29 template<
typename TElem,
typename TDim,
typename TIdx, concepts::Tag TTag>
30 struct GetDev<ConstBufGenericSycl<TElem, TDim, TIdx, TTag>>
34 return buf.m_spBufImpl->m_dev;
39 template<
typename TElem,
typename TDim,
typename TIdx, concepts::Tag TTag>
40 struct DimType<ConstBufGenericSycl<TElem, TDim, TIdx, TTag>>
46 template<
typename TElem,
typename TDim,
typename TIdx, concepts::Tag TTag>
47 struct ElemType<ConstBufGenericSycl<TElem, TDim, TIdx, TTag>>
49 using type = TElem
const;
53 template<
typename TElem,
typename TDim,
typename TIdx, concepts::Tag TTag>
54 struct GetExtents<ConstBufGenericSycl<TElem, TDim, TIdx, TTag>>
56 ALPAKA_FN_HOST auto operator()(ConstBufGenericSycl<TElem, TDim, TIdx, TTag>
const& buf)
const
58 return buf.m_spBufImpl->m_extentElements;
63 template<
typename TElem,
typename TDim,
typename TIdx, concepts::Tag TTag>
64 struct GetPtrNative<ConstBufGenericSycl<TElem, TDim, TIdx, TTag>>
69 return buf.m_spBufImpl->m_pMem;
74 template<
typename TElem,
typename TDim,
typename TIdx, concepts::Tag TTag>
75 struct GetPtrDev<ConstBufGenericSycl<TElem, TDim, TIdx, TTag>, DevGenericSycl<TTag>>
78 ConstBufGenericSycl<TElem, TDim, TIdx, TTag>
const& buf,
79 DevGenericSycl<TTag>
const& dev) -> TElem
const*
83 return buf.m_spBufImpl->m_pMem;
87 throw std::runtime_error(
"The buffer is not accessible from the given device!");
93 template<
typename TElem,
typename TDim,
typename TIdx, concepts::Tag TTag>
94 struct GetOffsets<ConstBufGenericSycl<TElem, TDim, TIdx, TTag>>
96 ALPAKA_FN_HOST auto operator()(ConstBufGenericSycl<TElem, TDim, TIdx, TTag>
const&)
const -> Vec<TDim, TIdx>
103 template<
typename TElem,
typename TDim,
typename TIdx, concepts::Tag TTag>
104 struct IdxType<ConstBufGenericSycl<TElem, TDim, TIdx, TTag>>
110 template<
typename TElem,
typename TDim,
typename TIdx, concepts::Tag TTag>
111 struct GetPtrDev<BufCpu<TElem, TDim, TIdx>, DevGenericSycl<TTag>>
113 static auto getPtrDev(BufCpu<TElem, TDim, TIdx>
const& buf, DevGenericSycl<TTag>
const&) -> TElem
const*
120 template<
typename TElem,
typename TDim,
typename TIdx, concepts::Tag TTag>
121 struct MakeConstBuf<ConstBufGenericSycl<TElem, TDim, TIdx, TTag>>
124 -> ConstBufGenericSycl<TElem, TDim, TIdx, TTag>
130 -> ConstBufGenericSycl<TElem, TDim, TIdx, TTag>
ALPAKA_NO_HOST_ACC_WARNING static ALPAKA_FN_HOST_ACC constexpr auto zeros() -> Vec< TDim, TVal >
Zero value constructor.
ALPAKA_FN_HOST auto makeConstBuf(TBuf const &buf)
Creates a constant buffer from the given mutable buffer.
ALPAKA_FN_HOST auto getPtrNative(TView const &view) -> Elem< TView > const *
Gets the native pointer of the memory view.
ALPAKA_FN_HOST auto getDev(T const &t)
ALPAKA_FN_HOST auto getPtrDev(TView const &view, TDev const &dev) -> Elem< TView > const *
Gets the pointer to the view on the given device.