DFT-EFE
 
Loading...
Searching...
No Matches
DeviceAPICalls.h
Go to the documentation of this file.
1#ifdef DFTEFE_WITH_DEVICE
2
3# ifndef dftefeDeviceAPICalls_H
4# define dftefeDeviceAPICalls_H
5
6# include "TypeConfig.h"
8# include <iostream>
9
10namespace dftefe
11{
12 namespace utils
13 {
15 deviceReset();
16
18 deviceMemGetInfo(std::size_t *free, std::size_t *total);
19
21 getDeviceCount(int *count);
22
24 getDevice(int *deviceId);
25
27 setDevice(int deviceId);
28
30 deviceMalloc(void **devPtr, std::size_t size);
31
33 deviceMemset(void *devPtr, int value, std::size_t count);
34
41 template <typename ValueType>
42 void
43 deviceSetValue(ValueType *devPtr, ValueType value, std::size_t size);
44
46 deviceFree(void *devPtr);
47
49 hostPinnedMalloc(void **hostPtr, std::size_t size);
50
52 hostPinnedFree(void *hostPtr);
53
59 deviceMemcpyD2H(void *dst, const void *src, std::size_t count);
60
66 deviceMemcpyD2D(void *dst, const void *src, std::size_t count);
67
73 deviceMemcpyH2D(void *dst, const void *src, std::size_t count);
74
80 deviceMemcpyD2H_2D(void * dst,
81 std::size_t dpitch,
82 const void *src,
83 std::size_t spitch,
84 std::size_t width,
85 std::size_t height);
86
92 deviceMemcpyD2D_2D(void * dst,
93 std::size_t dpitch,
94 const void *src,
95 std::size_t spitch,
96 std::size_t width,
97 std::size_t height);
98
104 deviceMemcpyH2D_2D(void * dst,
105 std::size_t dpitch,
106 const void *src,
107 std::size_t spitch,
108 std::size_t width,
109 std::size_t height);
110
115 deviceSynchronize();
116
122 deviceMemcpyAsyncD2H(void * dst,
123 const void * src,
124 std::size_t count,
126
132 deviceMemcpyAsyncD2D(void * dst,
133 const void * src,
134 std::size_t count,
136
142 deviceMemcpyAsyncH2D(void * dst,
143 const void * src,
144 std::size_t count,
146
147
149 deviceStreamCreate(deviceStream_t &pStream, const bool nonBlocking = false);
150
152 deviceStreamDestroy(deviceStream_t &stream);
153
155 deviceStreamSynchronize(deviceStream_t &stream);
156
158 deviceEventCreate(deviceEvent_t &pEvent);
159
161 deviceEventDestroy(deviceEvent_t &event);
162
164 deviceEventRecord(deviceEvent_t &event,
166
168 deviceEventSynchronize(deviceEvent_t &event);
169
171 deviceStreamWaitEvent(deviceStream_t &stream,
172 deviceEvent_t & event,
173 unsigned int flags = 0);
174
175 void
176 printPointerLocation(const void *ptr);
177 } // namespace utils
178} // namespace dftefe
179
180# endif // dftefeDeviceAPICalls_H
181#endif // DFTEFE_WITH_DEVICE
static cudaStream_t defaultStream
Definition: DeviceTypeConfig.cu.h:62
cudaError_t deviceError_t
Definition: DeviceTypeConfig.cu.h:26
cudaStream_t deviceStream_t
Definition: DeviceTypeConfig.cu.h:27
cudaEvent_t deviceEvent_t
Definition: DeviceTypeConfig.cu.h:28
dealii includes
Definition: AtomFieldDataSpherical.cpp:31