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) : 
    29                 CProxy_PmePencilXMap& 
xMap, CProxy_PmePencilXMap& 
yMap, CProxy_PmePencilXMap& 
zMap) : 
    66   CProxy_ComputePmeCUDADevice deviceProxy;
    73             for (
unsigned int iGrid = 0; iGrid < 
NUM_GRID_MAX; ++iGrid) {
    89             for (
unsigned int iGrid = 0; iGrid < 
NUM_GRID_MAX; ++iGrid) {
   101         CudaPmePencilXY_SDAG_CODE
   111         void start(
const CkCallback &);
   112         void setDeviceBuffers();
   113         std::array<float2*, NUM_GRID_MAX> getData(
const int i, 
const bool sameDevice);
   119         int numDeviceBuffers;
   120         int numGetDeviceBuffer;
   121         std::vector<DeviceBuffer> deviceBuffers;
   122   CProxy_ComputePmeCUDADevice deviceProxy;
   123   CProxy_CudaPmePencilZ pmePencilZ;
   124   CProxy_PmePencilXMap zMap;
   129         CudaPmePencilX_SDAG_CODE
   131         CudaPmePencilX(CkMigrateMessage *m) : numGetDeviceBuffer(0), eventCreated(false) {}
   139         void start(
const CkCallback &);
   140         void setDeviceBuffers();
   141         std::array<float2*, NUM_GRID_MAX> getData(
const int i, 
const bool sameDevice);
   147         int numDeviceBuffers;
   148         int numGetDeviceBuffer;
   149         std::vector<DeviceBuffer> deviceBuffers;
   150   CProxy_ComputePmeCUDADevice deviceProxy;
   151   CProxy_CudaPmePencilY pmePencilY;
   152   CProxy_PmePencilXMap yMap;
   157         CudaPmePencilY_SDAG_CODE
   158         CudaPmePencilY() : numGetDeviceBufferZ(0), numGetDeviceBufferX(0), eventCreated(false) {}
   159         CudaPmePencilY(CkMigrateMessage *m) : numGetDeviceBufferZ(0), numGetDeviceBufferX(0), eventCreated(false) {}
   168         void start(
const CkCallback &);
   169         void setDeviceBuffers();
   170         std::array<float2*, NUM_GRID_MAX> getDataForX(
const int i, 
const bool sameDevice);
   171         std::array<float2*, NUM_GRID_MAX> getDataForZ(
const int i, 
const bool sameDevice);
   178         int numGetDeviceBufferZ;
   179         int numGetDeviceBufferX;
   180         int numDeviceBuffersZ;
   181         int numDeviceBuffersX;
   182         std::vector<DeviceBuffer> deviceBuffersZ;
   183         std::vector<DeviceBuffer> deviceBuffersX;
   184   CProxy_CudaPmePencilX pmePencilX;
   185   CProxy_CudaPmePencilZ pmePencilZ;
   186   CProxy_PmePencilXMap xMap;
   187   CProxy_PmePencilXMap zMap;
   192         CudaPmePencilZ_SDAG_CODE
   193         CudaPmePencilZ() : numGetDeviceBufferY(0), numGetDeviceBufferXY(0), eventCreated(false) {}
   194         CudaPmePencilZ(CkMigrateMessage *m) : numGetDeviceBufferY(0), numGetDeviceBufferXY(0), eventCreated(false) {}
   203         void start(
const CkCallback &);
   204         void setDeviceBuffers();
   205         std::array<float2*, NUM_GRID_MAX> getData(
const int i, 
const bool sameDevice);
   211         int numDeviceBuffers;
   212         int numGetDeviceBufferY;
   213         std::vector<DeviceBuffer> deviceBuffers;
   214   CProxy_CudaPmePencilY pmePencilY;
   215   CProxy_PmePencilXMap yMap;
   218         int numGetDeviceBufferXY;
   219   CProxy_CudaPmePencilXY pmePencilXY;
   220   CProxy_PmePencilXYMap xyMap;
   224 #endif //CUDAPMESOLVER_H CProxy_PmePencilXMap zMap
 
void initialize(CudaPmeXInitMsg *msg)
 
void initialize(CudaPmeXYInitMsg *msg)
 
CudaPmePencilXYZ(CkMigrateMessage *m)
 
DeviceDataMsg(int i, cudaEvent_t event)
 
DeviceDataMsg(int i, cudaEvent_t event, std::array< float2 *, NUM_GRID_MAX > dataGrid)
 
CProxy_PmePencilXYMap xyMap
 
CProxy_ComputePmeCUDADevice deviceProxy
 
CudaPmePencilZ_SDAG_CODE CudaPmePencilZ()
 
CProxy_CudaPmePencilZ pmePencilZ
 
DeviceBuffer(int deviceID, bool isPeerDevice, std::array< float2 *, NUM_GRID_MAX > dataGrid)
 
CudaPmePencilX_SDAG_CODE CudaPmePencilX()
 
CProxy_PmePencilXMap xMap
 
void energyAndVirialDone(unsigned int iGrid)
 
CProxy_CudaPmePencilX pmePencilX
 
const unsigned int NUM_GRID_MAX
 
void initializeDevice(InitDeviceMsg2 *msg)
 
CProxy_ComputePmeCUDADevice deviceProxy
 
void initialize(CudaPmeXInitMsg *msg)
 
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)
 
InitDeviceMsg2(int deviceID, cudaStream_t stream, CProxy_ComputePmeCUDAMgr mgrProxy, CProxy_ComputePmeCUDADevice deviceProxy)
 
CudaPmePencilY_SDAG_CODE CudaPmePencilY()
 
InitDeviceMsg(CProxy_ComputePmeCUDADevice deviceProxy)
 
DeviceBuffer(int deviceID, bool isPeerDevice)
 
void initializeDevice(InitDeviceMsg2 *msg)
 
CProxy_CudaPmePencilZ pmePencilZ
 
void energyAndVirialDone(unsigned int iGrid)
 
CudaPmePencilY(CkMigrateMessage *m)
 
void initialize(CudaPmeXYZInitMsg *msg)
 
CProxy_CudaPmePencilY pmePencilY
 
void initialize(CudaPmeXInitMsg *msg)
 
void initializeDevice(InitDeviceMsg *msg)
 
CProxy_CudaPmePencilXY pmePencilXY
 
CProxy_ComputePmeCUDAMgr mgrProxy
 
CudaPmePencilX(CkMigrateMessage *m)
 
std::array< float2 *, NUM_GRID_MAX > dataGrid
 
CudaPmeXInitMsg(PmeGrid &pmeGrid, CProxy_CudaPmePencilX &pmePencilX, CProxy_CudaPmePencilY &pmePencilY, CProxy_CudaPmePencilZ &pmePencilZ, CProxy_PmePencilXMap &xMap, CProxy_PmePencilXMap &yMap, CProxy_PmePencilXMap &zMap)
 
std::array< float2 *, NUM_GRID_MAX > dataGrid
 
CudaPmeXYZInitMsg(PmeGrid &pmeGrid)
 
CudaPmePencilXY_SDAG_CODE CudaPmePencilXY()
 
CProxy_PmePencilXMap yMap
 
CudaPmePencilZ(CkMigrateMessage *m)