11#ifdef ALPAKA_ACC_SYCL_ENABLED
16 template<
typename TElem,
typename TDim,
typename TIdx, concepts::Tag TTag>
17 struct ConstBufType<DevGenericSycl<TTag>, TElem, TDim, TIdx>
19 using type = ConstBufGenericSycl<TElem, TDim, TIdx, TTag>;
23 template<
typename TElem,
typename TDim,
typename TIdx, concepts::Tag TTag>
24 struct DevType<ConstBufGenericSycl<TElem, TDim, TIdx, TTag>>
26 using type = DevGenericSycl<TTag>;
30 template<
typename TElem,
typename TDim,
typename TIdx, concepts::Tag TTag>
31 struct GetDev<ConstBufGenericSycl<TElem, TDim, TIdx, TTag>>
35 return buf.m_spBufImpl->m_dev;
40 template<
typename TElem,
typename TDim,
typename TIdx, concepts::Tag TTag>
41 struct DimType<ConstBufGenericSycl<TElem, TDim, TIdx, TTag>>
47 template<
typename TElem,
typename TDim,
typename TIdx, concepts::Tag TTag>
48 struct ElemType<ConstBufGenericSycl<TElem, TDim, TIdx, TTag>>
50 using type = TElem
const;
54 template<
typename TElem,
typename TDim,
typename TIdx, concepts::Tag TTag>
55 struct GetExtents<ConstBufGenericSycl<TElem, TDim, TIdx, TTag>>
57 ALPAKA_FN_HOST auto operator()(ConstBufGenericSycl<TElem, TDim, TIdx, TTag>
const& buf)
const
59 return buf.m_spBufImpl->m_extentElements;
64 template<
typename TElem,
typename TDim,
typename TIdx, concepts::Tag TTag>
65 struct GetPtrNative<ConstBufGenericSycl<TElem, TDim, TIdx, TTag>>
70 return buf.m_spBufImpl->m_pMem;
75 template<
typename TElem,
typename TDim,
typename TIdx, concepts::Tag TTag>
76 struct GetPtrDev<ConstBufGenericSycl<TElem, TDim, TIdx, TTag>, DevGenericSycl<TTag>>
79 ConstBufGenericSycl<TElem, TDim, TIdx, TTag>
const& buf,
80 DevGenericSycl<TTag>
const& dev) -> TElem
const*
84 return buf.m_spBufImpl->m_pMem;
88 throw std::runtime_error(
"The buffer is not accessible from the given device!");
94 template<
typename TElem,
typename TDim,
typename TIdx, concepts::Tag TTag>
95 struct GetOffsets<ConstBufGenericSycl<TElem, TDim, TIdx, TTag>>
97 ALPAKA_FN_HOST auto operator()(ConstBufGenericSycl<TElem, TDim, TIdx, TTag>
const&)
const -> Vec<TDim, TIdx>
104 template<
typename TElem,
typename TDim,
typename TIdx, concepts::Tag TTag>
105 struct IdxType<ConstBufGenericSycl<TElem, TDim, TIdx, TTag>>
111 template<
typename TElem,
typename TDim,
typename TIdx, concepts::Tag TTag>
112 struct GetPtrDev<BufCpu<TElem, TDim, TIdx>, DevGenericSycl<TTag>>
114 static auto getPtrDev(BufCpu<TElem, TDim, TIdx>
const& buf, DevGenericSycl<TTag>
const&) -> TElem
const*
121 template<
typename TElem,
typename TDim,
typename TIdx, concepts::Tag TTag>
122 struct MakeConstBuf<ConstBufGenericSycl<TElem, TDim, TIdx, TTag>>
125 -> ConstBufGenericSycl<TElem, TDim, TIdx, TTag>
131 -> 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.