alpaka
Abstraction Library for Parallel Kernel Acceleration
Loading...
Searching...
No Matches
ConstBufCpu.hpp
Go to the documentation of this file.
1
/* Copyright 2022 Alexander Matthes, Axel Huebl, Benjamin Worpitz, Andrea Bocci, Jan Stephan, Bernhard Manfred Gruber
2
* SPDX-License-Identifier: MPL-2.0
3
*/
4
5
#pragma once
6
7
#include "
alpaka/core/ApiCudaRt.hpp
"
8
#include "
alpaka/core/ApiHipRt.hpp
"
9
#include "
alpaka/core/Cuda.hpp
"
10
#include "
alpaka/core/Hip.hpp
"
11
#include "
alpaka/core/Vectorize.hpp
"
12
#include "
alpaka/dev/DevCpu.hpp
"
13
#include "
alpaka/dev/Traits.hpp
"
14
#include "
alpaka/mem/alloc/AllocCpuAligned.hpp
"
15
#include "
alpaka/mem/buf/Traits.hpp
"
16
#include "
alpaka/mem/buf/cpu/BufCpuImpl.hpp
"
17
#include "
alpaka/mem/view/ViewAccessOps.hpp
"
18
#include "
alpaka/meta/DependentFalseType.hpp
"
19
#include "
alpaka/platform/PlatformCpu.hpp
"
20
#include "
alpaka/vec/Vec.hpp
"
21
22
#include <functional>
23
#include <memory>
24
#include <type_traits>
25
#include <utility>
26
27
namespace
alpaka
28
{
29
// Predeclaration of BufCpu
30
template
<
typename
TElem,
typename
TDim,
typename
TIdx>
31
class
BufCpu;
32
33
//! The CPU memory buffer.
34
template
<
typename
TElem,
typename
TDim,
typename
TIdx>
35
class
ConstBufCpu
:
public
internal::ViewAccessOps
<ConstBufCpu<TElem, TDim, TIdx>>
36
{
37
public
:
38
template
<
typename
TExtent,
typename
Deleter>
39
ALPAKA_FN_HOST
ConstBufCpu
(
DevCpu
const
& dev, TElem* pMem, Deleter deleter, TExtent
const
& extent)
40
: m_spBufImpl{
41
std
::make_shared<detail::BufCpuImpl<TElem, TDim, TIdx>>(dev, pMem,
std
::move(deleter), extent)}
42
{
43
}
44
45
ALPAKA_FN_HOST
ConstBufCpu
(
BufCpu<TElem, TDim, TIdx>
const
& buf) : m_spBufImpl{buf.m_spBufImpl}
46
{
47
}
48
49
ALPAKA_FN_HOST
ConstBufCpu
(
BufCpu<TElem, TDim, TIdx>
&& buf) : m_spBufImpl{
std
::move(buf.m_spBufImpl)}
50
{
51
}
52
53
private
:
54
std::shared_ptr<detail::BufCpuImpl<TElem, TDim, TIdx>> m_spBufImpl;
55
56
friend
alpaka::trait::GetDev<ConstBufCpu<TElem, TDim, TIdx>
>;
57
friend
alpaka::trait::GetExtents<ConstBufCpu<TElem, TDim, TIdx>
>;
58
friend
alpaka::trait::GetPtrNative<ConstBufCpu<TElem, TDim, TIdx>
>;
59
friend
alpaka::trait::GetPtrDev<ConstBufCpu<TElem, TDim, TIdx>
,
DevCpu
>;
60
};
61
62
}
// namespace alpaka
AllocCpuAligned.hpp
ApiCudaRt.hpp
ApiHipRt.hpp
BufCpuImpl.hpp
Cuda.hpp
DependentFalseType.hpp
DevCpu.hpp
Hip.hpp
PlatformCpu.hpp
Vec.hpp
Vectorize.hpp
ViewAccessOps.hpp
alpaka::BufCpu
The CPU memory buffer template implementing muting accessors.
Definition
BufCpu.hpp:24
alpaka::ConstBufCpu
The CPU memory buffer.
Definition
ConstBufCpu.hpp:36
alpaka::ConstBufCpu::ConstBufCpu
ALPAKA_FN_HOST ConstBufCpu(BufCpu< TElem, TDim, TIdx > &&buf)
Definition
ConstBufCpu.hpp:49
alpaka::ConstBufCpu::ConstBufCpu
ALPAKA_FN_HOST ConstBufCpu(BufCpu< TElem, TDim, TIdx > const &buf)
Definition
ConstBufCpu.hpp:45
alpaka::ConstBufCpu::ConstBufCpu
ALPAKA_FN_HOST ConstBufCpu(DevCpu const &dev, TElem *pMem, Deleter deleter, TExtent const &extent)
Definition
ConstBufCpu.hpp:39
alpaka::DevCpu
The CPU device handle.
Definition
DevCpu.hpp:56
ALPAKA_FN_HOST
#define ALPAKA_FN_HOST
Definition
Common.hpp:40
Traits.hpp
Traits.hpp
alpaka
The alpaka accelerator library.
Definition
AccCpuOmp2Blocks.hpp:49
std
STL namespace.
alpaka::internal::ViewAccessOps
Definition
ViewAccessOps.hpp:36
alpaka::trait::GetDev
The device get trait.
Definition
Traits.hpp:27
alpaka::trait::GetExtents
The GetExtents trait for getting the extents of an object as an alpaka::Vec.
Definition
Traits.hpp:37
alpaka::trait::GetPtrDev
The pointer on device get trait.
Definition
Traits.hpp:58
alpaka::trait::GetPtrNative
The native pointer get trait.
Definition
Traits.hpp:54
include
alpaka
mem
buf
cpu
ConstBufCpu.hpp
Generated on Wed Jun 4 2025 11:30:59 for alpaka by
1.9.8