DFT-EFE
 
Loading...
Searching...
No Matches
MemoryManager.h
Go to the documentation of this file.
1#ifndef dftefeMemoryManager_h
2#define dftefeMemoryManager_h
3
4#include "TypeConfig.h"
5#include "MemorySpaceType.h"
6
7namespace dftefe
8{
9 namespace utils
10 {
11 //
12 // MemoryManager
13 //
14 template <typename ValueType, MemorySpace memorySpace>
16 {
17 public:
18 static void
19 allocate(size_type size, ValueType **ptr);
20
21 static void
22 deallocate(ValueType *ptr);
23
24 static void
25 set(size_type size, ValueType *ptr, ValueType val);
26
27 static void
28 setZero(size_type size, ValueType *ptr);
29 };
30
31 template <typename ValueType>
32 class MemoryManager<ValueType, MemorySpace::HOST>
33 {
34 public:
35 static void
36 allocate(size_type size, ValueType **ptr);
37
38 static void
39 deallocate(ValueType *ptr);
40
41 static void
42 set(size_type size, ValueType *ptr, ValueType val);
43
44 static void
45 setZero(size_type size, ValueType *ptr);
46 };
47
48#ifdef DFTEFE_WITH_DEVICE
49 template <typename ValueType>
50 class MemoryManager<ValueType, MemorySpace::HOST_PINNED>
51 {
52 public:
53 static void
54 allocate(size_type size, ValueType **ptr);
55
56 static void
57 deallocate(ValueType *ptr);
58
59 static void
60 set(size_type size, ValueType *ptr, ValueType val);
61
62 static void
63 setZero(size_type size, ValueType *ptr);
64 };
65
66
67 template <typename ValueType>
68 class MemoryManager<ValueType, MemorySpace::DEVICE>
69 {
70 public:
71 static void
72 allocate(size_type size, ValueType **ptr);
73
74 static void
75 deallocate(ValueType *ptr);
76
77 static void
78 set(size_type size, ValueType *ptr, ValueType val);
79
80 static void
81 setZero(size_type size, ValueType *ptr);
82 };
83#endif // DFTEFE_WITH_DEVICE
84 } // namespace utils
85
86} // namespace dftefe
87
88#include "MemoryManager.t.cpp"
89
90#endif
Definition: MemoryManager.h:16
static void allocate(size_type size, ValueType **ptr)
static void set(size_type size, ValueType *ptr, ValueType val)
static void deallocate(ValueType *ptr)
static void setZero(size_type size, ValueType *ptr)
MemorySpace
Definition: MemorySpaceType.h:37
dealii includes
Definition: AtomFieldDataSpherical.cpp:31
unsigned int size_type
Definition: TypeConfig.h:8