1 #ifndef CUDAPMESOLVER_H
2 #define CUDAPMESOLVER_H
4 #include "CudaPmeSolver.decl.h"
6 #if defined(NAMD_CUDA) || defined(NAMD_HIP)
16 CProxy_PmePencilXYMap&
xyMap, CProxy_PmePencilXMap&
zMap) :
17 pmeGrid(pmeGrid), pmePencilXY(pmePencilXY), pmePencilZ(pmePencilZ), xyMap(xyMap), zMap(zMap) {}
29 CProxy_PmePencilXMap&
xMap, CProxy_PmePencilXMap&
yMap, CProxy_PmePencilXMap&
zMap) :
30 pmeGrid(pmeGrid), pmePencilX(pmePencilX), pmePencilY(pmePencilY), pmePencilZ(pmePencilZ),
31 xMap(xMap), yMap(yMap), zMap(zMap) {}
50 deviceID(deviceID), stream(stream), mgrProxy(mgrProxy) {}
65 CProxy_ComputePmeCUDADevice deviceProxy;
86 CudaPmePencilXY_SDAG_CODE
88 CudaPmePencilXY(CkMigrateMessage *m) : numGetDeviceBuffer(0), eventCreated(false) {}
96 void start(
const CkCallback &);
97 void setDeviceBuffers();
98 float2* getData(
const int i,
const bool sameDevice);
104 int numDeviceBuffers;
105 int numGetDeviceBuffer;
106 std::vector<DeviceBuffer> deviceBuffers;
107 CProxy_ComputePmeCUDADevice deviceProxy;
108 CProxy_CudaPmePencilZ pmePencilZ;
109 CProxy_PmePencilXMap zMap;
114 CudaPmePencilX_SDAG_CODE
116 CudaPmePencilX(CkMigrateMessage *m) : numGetDeviceBuffer(0), eventCreated(false) {}
124 void start(
const CkCallback &);
125 void setDeviceBuffers();
126 float2* getData(
const int i,
const bool sameDevice);
132 int numDeviceBuffers;
133 int numGetDeviceBuffer;
134 std::vector<DeviceBuffer> deviceBuffers;
135 CProxy_ComputePmeCUDADevice deviceProxy;
136 CProxy_CudaPmePencilY pmePencilY;
137 CProxy_PmePencilXMap yMap;
142 CudaPmePencilY_SDAG_CODE
143 CudaPmePencilY() : numGetDeviceBufferZ(0), numGetDeviceBufferX(0), eventCreated(false) {}
144 CudaPmePencilY(CkMigrateMessage *m) : numGetDeviceBufferZ(0), numGetDeviceBufferX(0), eventCreated(false) {}
153 void start(
const CkCallback &);
154 void setDeviceBuffers();
155 float2* getDataForX(
const int i,
const bool sameDevice);
156 float2* getDataForZ(
const int i,
const bool sameDevice);
163 int numGetDeviceBufferZ;
164 int numGetDeviceBufferX;
165 int numDeviceBuffersZ;
166 int numDeviceBuffersX;
167 std::vector<DeviceBuffer> deviceBuffersZ;
168 std::vector<DeviceBuffer> deviceBuffersX;
169 CProxy_CudaPmePencilX pmePencilX;
170 CProxy_CudaPmePencilZ pmePencilZ;
171 CProxy_PmePencilXMap xMap;
172 CProxy_PmePencilXMap zMap;
177 CudaPmePencilZ_SDAG_CODE
178 CudaPmePencilZ() : numGetDeviceBufferY(0), numGetDeviceBufferXY(0), eventCreated(false) {}
179 CudaPmePencilZ(CkMigrateMessage *m) : numGetDeviceBufferY(0), numGetDeviceBufferXY(0), eventCreated(false) {}
188 void start(
const CkCallback &);
189 void setDeviceBuffers();
190 float2* getData(
const int i,
const bool sameDevice);
196 int numDeviceBuffers;
197 int numGetDeviceBufferY;
198 std::vector<DeviceBuffer> deviceBuffers;
199 CProxy_CudaPmePencilY pmePencilY;
200 CProxy_PmePencilXMap yMap;
203 int numGetDeviceBufferXY;
204 CProxy_CudaPmePencilXY pmePencilXY;
205 CProxy_PmePencilXYMap xyMap;
209 #endif //CUDAPMESOLVER_H
CProxy_PmePencilXMap zMap
void initialize(CudaPmeXInitMsg *msg)
void initialize(CudaPmeXYInitMsg *msg)
CudaPmePencilXYZ(CkMigrateMessage *m)
CProxy_PmePencilXYMap xyMap
DeviceBuffer(int deviceID, bool isPeerDevice, float2 *data)
CudaPmePencilZ_SDAG_CODE CudaPmePencilZ()
CProxy_CudaPmePencilZ pmePencilZ
CudaPmePencilX_SDAG_CODE CudaPmePencilX()
CProxy_PmePencilXMap xMap
void energyAndVirialDone()
CProxy_CudaPmePencilX pmePencilX
void initializeDevice(InitDeviceMsg2 *msg)
CProxy_ComputePmeCUDADevice deviceProxy
void initialize(CudaPmeXInitMsg *msg)
void energyAndVirialDone()
CudaPmeXYInitMsg(PmeGrid &pmeGrid, CProxy_CudaPmePencilXY &pmePencilXY, CProxy_CudaPmePencilZ &pmePencilZ, CProxy_PmePencilXYMap &xyMap, CProxy_PmePencilXMap &zMap)
CudaPmePencilXY(CkMigrateMessage *m)
void initializeDevice(InitDeviceMsg *msg)
CProxy_PmePencilXMap zMap
void initializeDevice(InitDeviceMsg *msg)
CudaPmePencilY_SDAG_CODE CudaPmePencilY()
InitDeviceMsg2(int deviceID, cudaStream_t stream, CProxy_ComputePmeCUDAMgr mgrProxy)
InitDeviceMsg(CProxy_ComputePmeCUDADevice deviceProxy)
void initializeDevice(InitDeviceMsg2 *msg)
CProxy_CudaPmePencilZ pmePencilZ
CudaPmePencilY(CkMigrateMessage *m)
void initialize(CudaPmeXYZInitMsg *msg)
CProxy_CudaPmePencilY pmePencilY
DeviceDataMsg(int i, cudaEvent_t event, float2 *data)
void initialize(CudaPmeXInitMsg *msg)
void initializeDevice(InitDeviceMsg *msg)
CProxy_CudaPmePencilXY pmePencilXY
CProxy_ComputePmeCUDAMgr mgrProxy
CudaPmePencilX(CkMigrateMessage *m)
CudaPmeXInitMsg(PmeGrid &pmeGrid, CProxy_CudaPmePencilX &pmePencilX, CProxy_CudaPmePencilY &pmePencilY, CProxy_CudaPmePencilZ &pmePencilZ, CProxy_PmePencilXMap &xMap, CProxy_PmePencilXMap &yMap, CProxy_PmePencilXMap &zMap)
CudaPmeXYZInitMsg(PmeGrid &pmeGrid)
CudaPmePencilXY_SDAG_CODE CudaPmePencilXY()
CProxy_PmePencilXMap yMap
CudaPmePencilZ(CkMigrateMessage *m)