NAMD
|
#include <ComputePmeCUDAMgr.h>
Public Member Functions | |
ComputePmeCUDADevice () | |
ComputePmeCUDADevice (CkMigrateMessage *m) | |
~ComputePmeCUDADevice () | |
void | initialize (PmeGrid &pmeGrid_in, int pencilIndexY_in, int pencilIndexZ_in, int deviceID_in, int pmePencilType_in, CProxy_ComputePmeCUDAMgr mgrProxy_in, CProxy_PmeAtomFiler pmeAtomFiler_in) |
int | getDeviceID () |
cudaStream_t | getStream () |
CProxy_ComputePmeCUDAMgr | getMgrProxy () |
void | setPencilProxy (CProxy_CudaPmePencilXYZ pmePencilXYZ_in) |
void | setPencilProxy (CProxy_CudaPmePencilXY pmePencilXY_in) |
void | setPencilProxy (CProxy_CudaPmePencilX pmePencilX_in) |
void | activate_pencils () |
void | initializePatches (int numHomePatches_in) |
void | registerNeighbor () |
void | recvAtoms (PmeAtomMsg *msg) |
void | sendAtomsToNeighbors () |
void | sendAtomsToNeighbor (int y, int z, int atomIval) |
void | recvAtomsFromNeighbor (PmeAtomPencilMsg *msg) |
void | registerRecvAtomsFromNeighbor () |
void | spreadCharge () |
void | gatherForce () |
void | gatherForceDone () |
void | sendForcesToNeighbors () |
void | recvForcesFromNeighbor (PmeForcePencilMsg *msg) |
void | mergeForcesOnPatch (int homePatchIndex) |
void | sendForcesToPatch (PmeForceMsg *forceMsg) |
void | gatherForceDoneSubset (int first, int last) |
Definition at line 297 of file ComputePmeCUDAMgr.h.
ComputePmeCUDADevice::ComputePmeCUDADevice | ( | ) |
Definition at line 938 of file ComputePmeCUDAMgr.C.
ComputePmeCUDADevice::ComputePmeCUDADevice | ( | CkMigrateMessage * | m | ) |
Definition at line 959 of file ComputePmeCUDAMgr.C.
ComputePmeCUDADevice::~ComputePmeCUDADevice | ( | ) |
void ComputePmeCUDADevice::activate_pencils | ( | ) |
Definition at line 1097 of file ComputePmeCUDAMgr.C.
References PmeStartMsg::data, PmeStartMsg::dataSize, PmeRealSpaceCompute::getData(), and PmeRealSpaceCompute::getDataSize().
void ComputePmeCUDADevice::gatherForce | ( | ) |
Definition at line 1415 of file ComputePmeCUDAMgr.C.
References CUDA_PME_SPREADCHARGE_EVENT, and PmeRealSpaceCompute::gatherForce().
void ComputePmeCUDADevice::gatherForceDone | ( | ) |
Definition at line 1450 of file ComputePmeCUDAMgr.C.
References CUDA_PME_GATHERFORCE_EVENT, gatherForceDoneLoop(), Node::Object(), sendForcesToNeighbors(), Node::simParameters, and SimParameters::useCkLoop.
void ComputePmeCUDADevice::gatherForceDoneSubset | ( | int | first, |
int | last | ||
) |
Definition at line 1431 of file ComputePmeCUDAMgr.C.
References mergeForcesOnPatch().
Referenced by gatherForceDoneLoop().
int ComputePmeCUDADevice::getDeviceID | ( | ) |
Definition at line 1071 of file ComputePmeCUDAMgr.C.
CProxy_ComputePmeCUDAMgr ComputePmeCUDADevice::getMgrProxy | ( | ) |
Definition at line 1075 of file ComputePmeCUDAMgr.C.
cudaStream_t ComputePmeCUDADevice::getStream | ( | ) |
Definition at line 1067 of file ComputePmeCUDAMgr.C.
void ComputePmeCUDADevice::initialize | ( | PmeGrid & | pmeGrid_in, |
int | pencilIndexY_in, | ||
int | pencilIndexZ_in, | ||
int | deviceID_in, | ||
int | pmePencilType_in, | ||
CProxy_ComputePmeCUDAMgr | mgrProxy_in, | ||
CProxy_PmeAtomFiler | pmeAtomFiler_in | ||
) |
Definition at line 997 of file ComputePmeCUDAMgr.C.
References createStream(), cudaCheck, y, PmeGrid::yBlocks, z, and PmeGrid::zBlocks.
void ComputePmeCUDADevice::initializePatches | ( | int | numHomePatches_in | ) |
Definition at line 1116 of file ComputePmeCUDAMgr.C.
References y, PmeGrid::yBlocks, z, and PmeGrid::zBlocks.
void ComputePmeCUDADevice::mergeForcesOnPatch | ( | int | homePatchIndex | ) |
Definition at line 1584 of file ComputePmeCUDAMgr.C.
References sendForcesToPatch(), CudaForce::x, CudaForce::y, and CudaForce::z.
Referenced by gatherForceDoneSubset().
void ComputePmeCUDADevice::recvAtoms | ( | PmeAtomMsg * | msg | ) |
Definition at line 1148 of file ComputePmeCUDAMgr.C.
References PmeAtomMsg::atoms, PmeAtomMsg::compute, PmeForceMsg::compute, PmeAtomMsg::doEnergy, PmeAtomMsg::doVirial, PmeAtomFiler::fileAtoms(), PmeAtomFiler::getAtomIndex(), PmeAtomFiler::getNumAtoms(), PmeAtomMsg::lattice, NAMD_bug(), PmeAtomMsg::numAtoms, PmeForceMsg::numAtoms, PmeForceMsg::numStrayAtoms, PmeAtomMsg::pe, PmeForceMsg::pe, PRIORITY_SIZE, sendAtomsToNeighbors(), CudaAtom::x, CudaAtom::y, y, PmeGrid::yBlocks, CudaAtom::z, z, PmeGrid::zBlocks, and PmeForceMsg::zeroCopy.
void ComputePmeCUDADevice::recvAtomsFromNeighbor | ( | PmeAtomPencilMsg * | msg | ) |
Definition at line 1323 of file ComputePmeCUDAMgr.C.
References PmeAtomPencilMsg::atoms, PmeAtomPencilMsg::doEnergy, PmeAtomPencilMsg::doVirial, PmeAtomPencilMsg::lattice, NAMD_bug(), PmeAtomPencilMsg::numAtoms, registerRecvAtomsFromNeighbor(), PmeAtomPencilMsg::srcY, PmeAtomPencilMsg::srcZ, y, PmeGrid::yBlocks, z, and PmeGrid::zBlocks.
void ComputePmeCUDADevice::recvForcesFromNeighbor | ( | PmeForcePencilMsg * | msg | ) |
Definition at line 1529 of file ComputePmeCUDAMgr.C.
References NAMD_bug(), numPatches, PmeForcePencilMsg::srcY, PmeForcePencilMsg::srcZ, y, PmeGrid::yBlocks, z, and PmeGrid::zBlocks.
void ComputePmeCUDADevice::registerNeighbor | ( | ) |
Definition at line 1139 of file ComputePmeCUDAMgr.C.
void ComputePmeCUDADevice::registerRecvAtomsFromNeighbor | ( | ) |
Definition at line 1351 of file ComputePmeCUDAMgr.C.
References spreadCharge().
Referenced by recvAtomsFromNeighbor(), and sendAtomsToNeighbors().
void ComputePmeCUDADevice::sendAtomsToNeighbor | ( | int | y, |
int | z, | ||
int | atomIval | ||
) |
Definition at line 1295 of file ComputePmeCUDAMgr.C.
References atoms, PmeAtomPencilMsg::atoms, PmeAtomPencilMsg::doEnergy, PmeAtomPencilMsg::doVirial, PmeAtomPencilMsg::lattice, PmeAtomPencilMsg::numAtoms, PRIORITY_SIZE, PmeAtomPencilMsg::srcY, PmeAtomPencilMsg::srcZ, PmeAtomPencilMsg::y, PmeGrid::yBlocks, PmeAtomPencilMsg::z, and PmeGrid::zBlocks.
void ComputePmeCUDADevice::sendAtomsToNeighbors | ( | ) |
Definition at line 1280 of file ComputePmeCUDAMgr.C.
References registerRecvAtomsFromNeighbor(), y, and z.
Referenced by recvAtoms().
void ComputePmeCUDADevice::sendForcesToNeighbors | ( | ) |
Definition at line 1496 of file ComputePmeCUDAMgr.C.
References PmeForcePencilMsg::force, PmeForcePencilMsg::numAtoms, PRIORITY_SIZE, PmeForcePencilMsg::srcY, PmeForcePencilMsg::srcZ, PmeForcePencilMsg::y, y, PmeGrid::yBlocks, PmeForcePencilMsg::z, z, and PmeGrid::zBlocks.
Referenced by gatherForceDone().
void ComputePmeCUDADevice::sendForcesToPatch | ( | PmeForceMsg * | forceMsg | ) |
Definition at line 1691 of file ComputePmeCUDAMgr.C.
References PmeForceMsg::compute, Compute::localWorkMsg, PmeForceMsg::pe, and ComputePmeCUDA::storePmeForceMsg().
Referenced by mergeForcesOnPatch().
void ComputePmeCUDADevice::setPencilProxy | ( | CProxy_CudaPmePencilXYZ | pmePencilXYZ_in | ) |
void ComputePmeCUDADevice::setPencilProxy | ( | CProxy_CudaPmePencilXY | pmePencilXY_in | ) |
void ComputePmeCUDADevice::setPencilProxy | ( | CProxy_CudaPmePencilX | pmePencilX_in | ) |
void ComputePmeCUDADevice::spreadCharge | ( | ) |
Definition at line 1373 of file ComputePmeCUDAMgr.C.
References atoms, PmeRealSpaceCompute::copyAtoms(), PmeRunMsg::doEnergy, PmeRunMsg::doVirial, PmeRunMsg::lattice, PmeRunMsg::numStrayAtoms, PmeRealSpaceCompute::spreadCharge(), and msm::swap().
Referenced by registerRecvAtomsFromNeighbor().