alpaka
Abstraction Library for Parallel Kernel Acceleration
Loading...
Searching...
No Matches
BufGenericSycl.hpp
Go to the documentation of this file.
1/* Copyright 2025 Anton Reinhard
2 * SPDX-License-Identifier: MPL-2.0
3 */
4
5#pragma once
6
14#include "alpaka/vec/Vec.hpp"
15
16#include <functional>
17#include <memory>
18#include <type_traits>
19#include <utility>
20
21#ifdef ALPAKA_ACC_SYCL_ENABLED
22
23namespace alpaka
24{
25 //! The generic memory buffer template implementing muting accessors.
26 template<typename TElem, typename TDim, typename TIdx, concepts::Tag TTag>
27 class BufGenericSycl
28 : public internal::ViewAccessorType<DevGenericSycl<TTag>, BufGenericSycl<TElem, TDim, TIdx, TTag>>
29 {
30 using TBufImpl = detail::BufGenericSyclImpl<TElem, TDim, TIdx, TTag>;
31
32 public:
33 template<typename TExtent, typename Deleter>
34 ALPAKA_FN_HOST BufGenericSycl(
35 DevGenericSycl<TTag> const& dev,
36 TElem* const pMem,
37 Deleter deleter,
38 TExtent const& extent)
39 : m_spBufImpl{std::make_shared<TBufImpl>(dev, pMem, std::move(deleter), extent)}
40 {
41 }
42
43 public:
44 std::shared_ptr<TBufImpl> m_spBufImpl;
45 };
46} // namespace alpaka
47
53
54#endif
#define ALPAKA_FN_HOST
Definition Common.hpp:40
typename ViewAccessor< TDev >::template AccessorType< TView > ViewAccessorType
The alpaka accelerator library.
STL namespace.