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 (unsigned int iGrid) |
void | sendForcesToNeighbors () |
void | recvForcesFromNeighbor (PmeForcePencilMsg *msg) |
void | mergeForcesOnPatch (int homePatchIndex) |
void | sendForcesToPatch (PmeForceMsg *forceMsg) |
void | gatherForceDoneSubset (int first, int last) |
bool | isGridEnabled (unsigned int i) const |
Definition at line 420 of file ComputePmeCUDAMgr.h.
ComputePmeCUDADevice::ComputePmeCUDADevice | ( | ) |
ComputePmeCUDADevice::ComputePmeCUDADevice | ( | CkMigrateMessage * | m | ) |
ComputePmeCUDADevice::~ComputePmeCUDADevice | ( | ) |
void ComputePmeCUDADevice::activate_pencils | ( | ) |
Definition at line 1189 of file ComputePmeCUDAMgr.C.
References PmeStartMsg::dataGrid, PmeStartMsg::dataSizes, PmeStartMsg::enabledGrid, and NUM_GRID_MAX.
void ComputePmeCUDADevice::gatherForce | ( | ) |
Definition at line 1770 of file ComputePmeCUDAMgr.C.
References CUDA_PME_SPREADCHARGE_EVENT, NUM_GRID_MAX, Node::Object(), Node::simParameters, and simParams.
void ComputePmeCUDADevice::gatherForceDone | ( | unsigned int | iGrid | ) |
Definition at line 1816 of file ComputePmeCUDAMgr.C.
References CUDA_PME_GATHERFORCE_EVENT, gatherForceDoneLoop(), NUM_GRID_MAX, Node::Object(), sendForcesToNeighbors(), Node::simParameters, and SimParameters::useCkLoop.
void ComputePmeCUDADevice::gatherForceDoneSubset | ( | int | first, |
int | last | ||
) |
Definition at line 1797 of file ComputePmeCUDAMgr.C.
References mergeForcesOnPatch().
Referenced by gatherForceDoneLoop().
int ComputePmeCUDADevice::getDeviceID | ( | ) |
Definition at line 1159 of file ComputePmeCUDAMgr.C.
CProxy_ComputePmeCUDAMgr ComputePmeCUDADevice::getMgrProxy | ( | ) |
Definition at line 1163 of file ComputePmeCUDAMgr.C.
cudaStream_t ComputePmeCUDADevice::getStream | ( | ) |
Definition at line 1155 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 1050 of file ComputePmeCUDAMgr.C.
References createStream(), cudaCheck, DebugM, endi(), NUM_GRID_MAX, Node::Object(), Node::simParameters, simParams, PmeGrid::yBlocks, and PmeGrid::zBlocks.
void ComputePmeCUDADevice::initializePatches | ( | int | numHomePatches_in | ) |
Definition at line 1235 of file ComputePmeCUDAMgr.C.
References PmeGrid::yBlocks, and PmeGrid::zBlocks.
bool ComputePmeCUDADevice::isGridEnabled | ( | unsigned int | i | ) | const |
Definition at line 1167 of file ComputePmeCUDAMgr.C.
void ComputePmeCUDADevice::mergeForcesOnPatch | ( | int | homePatchIndex | ) |
Definition at line 1982 of file ComputePmeCUDAMgr.C.
References Node::Object(), sendForcesToPatch(), Node::simParameters, simParams, CudaForce::x, CudaForce::y, and CudaForce::z.
Referenced by gatherForceDoneSubset().
void ComputePmeCUDADevice::recvAtoms | ( | PmeAtomMsg * | msg | ) |
Definition at line 1267 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, Node::Object(), PmeAtomMsg::pe, PmeForceMsg::pe, PRIORITY_SIZE, sendAtomsToNeighbors(), Node::simParameters, simParams, PmeAtomMsg::simulationStep, CudaAtom::x, CudaAtom::y, PmeGrid::yBlocks, CudaAtom::z, PmeGrid::zBlocks, and PmeForceMsg::zeroCopy.
void ComputePmeCUDADevice::recvAtomsFromNeighbor | ( | PmeAtomPencilMsg * | msg | ) |
Definition at line 1574 of file ComputePmeCUDAMgr.C.
References PmeAtomPencilMsg::atoms, PmeAtomPencilMsg::doEnergy, PmeAtomPencilMsg::doVirial, PmeAtomPencilMsg::lattice, NAMD_bug(), PmeAtomPencilMsg::numAtoms, Node::Object(), registerRecvAtomsFromNeighbor(), Node::simParameters, simParams, PmeAtomPencilMsg::simulationStep, PmeAtomPencilMsg::srcY, PmeAtomPencilMsg::srcZ, PmeGrid::yBlocks, and PmeGrid::zBlocks.
void ComputePmeCUDADevice::recvForcesFromNeighbor | ( | PmeForcePencilMsg * | msg | ) |
Definition at line 1927 of file ComputePmeCUDAMgr.C.
References NAMD_bug(), PmeForcePencilMsg::srcY, PmeForcePencilMsg::srcZ, PmeGrid::yBlocks, and PmeGrid::zBlocks.
void ComputePmeCUDADevice::registerNeighbor | ( | ) |
Definition at line 1258 of file ComputePmeCUDAMgr.C.
void ComputePmeCUDADevice::registerRecvAtomsFromNeighbor | ( | ) |
Definition at line 1625 of file ComputePmeCUDAMgr.C.
References spreadCharge().
Referenced by recvAtomsFromNeighbor(), and sendAtomsToNeighbors().
void ComputePmeCUDADevice::sendAtomsToNeighbor | ( | int | y, |
int | z, | ||
int | atomIval | ||
) |
Definition at line 1478 of file ComputePmeCUDAMgr.C.
References PmeAtomPencilMsg::atoms, PmeAtomPencilMsg::chargeFactors1, PmeAtomPencilMsg::chargeFactors2, PmeAtomPencilMsg::chargeFactors3, PmeAtomPencilMsg::chargeFactors4, PmeAtomPencilMsg::chargeFactors5, PmeAtomPencilMsg::doEnergy, PmeAtomPencilMsg::doVirial, PmeAtomPencilMsg::lattice, PmeAtomPencilMsg::numAtoms, Node::Object(), PRIORITY_SIZE, Node::simParameters, simParams, PmeAtomPencilMsg::simulationStep, PmeAtomPencilMsg::srcY, PmeAtomPencilMsg::srcZ, PmeAtomPencilMsg::y, PmeGrid::yBlocks, PmeAtomPencilMsg::z, and PmeGrid::zBlocks.
void ComputePmeCUDADevice::sendAtomsToNeighbors | ( | ) |
Definition at line 1463 of file ComputePmeCUDAMgr.C.
References registerRecvAtomsFromNeighbor().
Referenced by recvAtoms().
void ComputePmeCUDADevice::sendForcesToNeighbors | ( | ) |
Definition at line 1877 of file ComputePmeCUDAMgr.C.
References PmeForcePencilMsg::force, PmeForcePencilMsg::force2, PmeForcePencilMsg::force3, PmeForcePencilMsg::force4, PmeForcePencilMsg::force5, PmeForcePencilMsg::numAtoms, Node::Object(), PRIORITY_SIZE, Node::simParameters, simParams, PmeForcePencilMsg::srcY, PmeForcePencilMsg::srcZ, PmeForcePencilMsg::y, PmeGrid::yBlocks, PmeForcePencilMsg::z, and PmeGrid::zBlocks.
Referenced by gatherForceDone().
void ComputePmeCUDADevice::sendForcesToPatch | ( | PmeForceMsg * | forceMsg | ) |
Definition at line 2156 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 1647 of file ComputePmeCUDAMgr.C.
References PmeRunMsg::doEnergy, PmeRunMsg::doVirial, PmeRunMsg::lattice, NUM_GRID_MAX, PmeRunMsg::numStrayAtoms, Node::Object(), CudaAtom::q, Node::simParameters, simParams, PmeRunMsg::simulationStep, msm::swap(), CudaAtom::x, CudaAtom::y, and CudaAtom::z.
Referenced by registerRecvAtomsFromNeighbor().