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 : public internal::ViewAccessOps<BufGenericSycl<TElem, TDim, TIdx, TTag>>
28 {
29 using TBufImpl = detail::BufGenericSyclImpl<TElem, TDim, TIdx, TTag>;
30
31 public:
32 template<typename TExtent, typename Deleter>
33 ALPAKA_FN_HOST BufGenericSycl(
34 DevGenericSycl<TTag> const& dev,
35 TElem* const pMem,
36 Deleter deleter,
37 TExtent const& extent)
38 : m_spBufImpl{std::make_shared<TBufImpl>(dev, pMem, std::move(deleter), extent)}
39 {
40 }
41
42 public:
43 std::shared_ptr<TBufImpl> m_spBufImpl;
44 };
45} // namespace alpaka
46
52
53#endif
#define ALPAKA_FN_HOST
Definition Common.hpp:40
The alpaka accelerator library.
STL namespace.