NAMD
|
#include <sfftw.h>
#include <srfftw.h>
#include <vector>
#include <algorithm>
#include <deque>
#include "InfoStream.h"
#include "Node.h"
#include "PatchMap.h"
#include "PatchMap.inl"
#include "AtomMap.h"
#include "ComputePme.h"
#include "ComputePmeMgr.decl.h"
#include "PmeBase.inl"
#include "PmeRealSpace.h"
#include "PmeKSpace.h"
#include "ComputeNonbondedUtil.h"
#include "PatchMgr.h"
#include "Molecule.h"
#include "ReductionMgr.h"
#include "ComputeMgr.h"
#include "ComputeMgr.decl.h"
#include "Debug.h"
#include "SimParameters.h"
#include "WorkDistrib.h"
#include "varsizemsg.h"
#include "Random.h"
#include "ckhashtable.h"
#include "Priorities.h"
#include "ComputeMoa.h"
#include "ComputeMoaMgr.decl.h"
#include "DeviceCUDA.h"
#include <cuda_runtime.h>
#include <cuda.h>
#include "ComputePmeCUDAKernel.h"
#include "ComputePmeMgr.def.h"
Go to the source code of this file.
Classes | |
class | PmeAckMsg |
class | PmeGridMsg |
class | PmeTransMsg |
class | PmeSharedTransMsg |
class | PmeUntransMsg |
class | PmeSharedUntransMsg |
class | PmeEvirMsg |
class | PmePencilMap |
struct | PmePencilInitMsgData |
class | PmePencilInitMsg |
struct | LocalPmeInfo |
struct | NodePmeInfo |
struct | sortop_bit_reversed |
struct | ijpair |
struct | ijpair_sortop_bit_reversed |
class | ComputePmeMgr |
struct | ComputePmeMgr::cuda_submit_charges_args |
class | NodePmeMgr |
class | PmePencil< T > |
class | PmeZPencil |
class | PmeYPencil |
class | PmeXPencil |
Macros | |
#define | fftwf_malloc fftw_malloc |
#define | fftwf_free fftw_free |
#define | MIN_DEBUG_LEVEL 3 |
#define | NUM_STREAMS 1 |
#define | CUDA_STREAM_CREATE(X) cudaStreamCreate(X) |
#define | CUDA_EVENT_ID_PME_CHARGES 80 |
#define | CUDA_EVENT_ID_PME_FORCES 81 |
#define | CUDA_EVENT_ID_PME_TICK 82 |
#define | CUDA_EVENT_ID_PME_COPY 83 |
#define | CUDA_EVENT_ID_PME_KERNEL 84 |
#define | count_limit 1000000 |
#define | CUDA_POLL(FN, ARG) CcdCallFnAfter(FN,ARG,0.1) |
#define | EVENT_STRIDE 10 |
#define | XCOPY(X) masterPmeMgr->X = X; |
#define | XCOPY(X) X = masterPmeMgr->X; |
#define | DEBUG_NODE_PAR_RECV 0 |
Functions | |
void | cuda_errcheck (const char *msg) |
static int | findRecipEvirPe () |
void | generatePmePeList2 (int *gridPeMap, int numGridPes, int *transPeMap, int numTransPes) |
int | compare_bit_reversed (int a, int b) |
bool | less_than_bit_reversed (int a, int b) |
ResizeArray< ComputePme * > & | getComputes (ComputePmeMgr *mgr) |
int | isPmeProcessor (int p) |
void | Pme_init () |
static void | PmeSlabSendTrans (int first, int last, void *result, int paraNum, void *param) |
static void | PmeSlabSendUntrans (int first, int last, void *result, int paraNum, void *param) |
static void | PmeSlabSendUngrid (int first, int last, void *result, int paraNum, void *param) |
void | CcdCallBacksReset (void *ignored, double curWallTime) |
void | cudaDie (const char *msg, cudaError_t err=cudaSuccess) |
void | cuda_check_pme_forces (void *arg, double walltime) |
void | cuda_check_pme_charges (void *arg, double walltime) |
static void | PmeXZPencilFFT (int first, int last, void *result, int paraNum, void *param) |
static void | PmeZPencilSendTrans (int first, int last, void *result, int paraNum, void *param) |
static void | PmeYPencilForwardFFT (int first, int last, void *result, int paraNum, void *param) |
static void | PmeYPencilSendTrans (int first, int last, void *result, int paraNum, void *param) |
static void | PmeXPencilSendUntrans (int first, int last, void *result, int paraNum, void *param) |
static void | PmeYPencilBackwardFFT (int first, int last, void *result, int paraNum, void *param) |
static void | PmeYPencilSendUntrans (int first, int last, void *result, int paraNum, void *param) |
static void | PmeZPencilSendUngrid (int first, int last, void *result, int paraNum, void *param) |
Variables | |
__thread DeviceCUDA * | deviceCUDA |
char * | pencilPMEProcessors |
#define count_limit 1000000 |
Definition at line 2475 of file ComputePme.C.
Referenced by cuda_check_pme_charges(), and cuda_check_pme_forces().
#define CUDA_EVENT_ID_PME_CHARGES 80 |
Referenced by ComputePmeMgr::ComputePmeMgr(), and cuda_check_pme_charges().
#define CUDA_EVENT_ID_PME_COPY 83 |
#define CUDA_EVENT_ID_PME_FORCES 81 |
Referenced by ComputePmeMgr::ComputePmeMgr(), and cuda_check_pme_forces().
#define CUDA_EVENT_ID_PME_KERNEL 84 |
#define CUDA_EVENT_ID_PME_TICK 82 |
Referenced by ComputePmeMgr::ComputePmeMgr(), and ComputePmeMgr::ungridCalc().
#define CUDA_POLL | ( | FN, | |
ARG | |||
) | CcdCallFnAfter(FN,ARG,0.1) |
Definition at line 2476 of file ComputePme.C.
Referenced by cuda_check_pme_charges(), cuda_check_pme_forces(), ComputePmeMgr::pollChargeGridReady(), and ComputePmeMgr::pollForcesReady().
Referenced by ComputePmeMgr::ComputePmeMgr().
#define DEBUG_NODE_PAR_RECV 0 |
Definition at line 4985 of file ComputePme.C.
#define EVENT_STRIDE 10 |
Definition at line 2477 of file ComputePme.C.
Referenced by cuda_check_pme_forces(), and ComputePmeMgr::ungridCalc().
#define fftwf_free fftw_free |
Definition at line 14 of file ComputePme.C.
Referenced by PmePencil< CBase_PmeZPencil >::~PmePencil().
#define fftwf_malloc fftw_malloc |
Copyright (c) 1995, 1996, 1997, 1998, 1999, 2000 by The Board of Trustees of the University of Illinois. All rights reserved.
Definition at line 13 of file ComputePme.C.
Referenced by PmeZPencil::fft_init(), PmeYPencil::fft_init(), and PmeXPencil::fft_init().
#define MIN_DEBUG_LEVEL 3 |
Definition at line 47 of file ComputePme.C.
#define NUM_STREAMS 1 |
Definition at line 520 of file ComputePme.C.
Referenced by ComputePmeMgr::ComputePmeMgr().
Referenced by ComputePmeMgr::initialize_computes().
int compare_bit_reversed | ( | int | a, |
int | b | ||
) |
Definition at line 324 of file ComputePme.C.
Referenced by pe_sortop_bit_reversed::operator()().
Definition at line 3463 of file ComputePme.C.
References CcdCallBacksReset(), ComputePmeMgr::charges_time, ComputePmeMgr::check_charges_count, count_limit, CUDA_EVENT_ID_PME_CHARGES, CUDA_POLL, cudaDie(), ComputePmeMgr::end_charges, ComputePmeMgr::saved_sequence, and ComputePmeMgr::sendChargeGridReady().
Referenced by ComputePmeMgr::pollChargeGridReady().
Definition at line 2483 of file ComputePme.C.
References CcdCallBacksReset(), ComputePmeMgr::check_forces_count, count_limit, CUDA_EVENT_ID_PME_FORCES, CUDA_POLL, cudaDie(), ComputePmeMgr::end_forces, EVENT_STRIDE, ComputePmeMgr::forces_count, ComputePmeMgr::forces_done_count, ComputePmeMgr::forces_time, WorkDistrib::messageEnqueueWork(), ComputePmeMgr::pmeComputes, and ComputePmeMgr::saved_sequence.
Referenced by ComputePmeMgr::pollForcesReady().
void cuda_errcheck | ( | const char * | msg | ) |
Definition at line 45 of file ComputeNonbondedCUDA.C.
References NAMD_die().
Referenced by ComputeNonbondedCUDA::ComputeNonbondedCUDA(), ComputePmeMgr::ComputePmeMgr(), cuda_bind_atom_params(), cuda_bind_atoms(), cuda_bind_exclusions(), cuda_bind_force_table(), cuda_bind_forces(), cuda_bind_GBIS_bornRad(), cuda_bind_GBIS_dEdaSum(), cuda_bind_GBIS_dHdrPrefix(), cuda_bind_GBIS_energy(), cuda_bind_GBIS_intRad(), cuda_bind_GBIS_psiSum(), cuda_bind_lj_table(), cuda_bind_patch_pairs(), cuda_bind_vdw_types(), cuda_bind_virials(), cuda_check_local_progress(), cuda_check_remote_progress(), cuda_GBIS_P1(), cuda_GBIS_P2(), cuda_GBIS_P3(), cuda_init(), cuda_nonbonded_forces(), ComputePme::doWork(), ComputeNonbondedCUDA::doWork(), ComputeNonbondedCUDA::finishReductions(), ComputePmeMgr::initialize(), ComputePmeMgr::initialize_computes(), and ComputePmeMgr::ungridCalc().
void cudaDie | ( | const char * | msg, |
cudaError_t | err = cudaSuccess |
||
) |
Definition at line 9 of file CudaUtils.C.
Referenced by copy3D_PeerDtoD_T(), cuda_check_local_progress(), cuda_check_pme_charges(), cuda_check_pme_forces(), cuda_check_progress(), cuda_check_remote_progress(), DeviceCUDA::initialize(), and read_CUDA_ARCH().
|
static |
Definition at line 247 of file ComputePme.C.
References NAMD_bug(), PatchMap::numPatchesOnNode(), and PatchMap::Object().
Referenced by PmeXPencil::evir_init(), and ComputePmeMgr::initialize().
void generatePmePeList2 | ( | int * | gridPeMap, |
int | numGridPes, | ||
int * | transPeMap, | ||
int | numTransPes | ||
) |
Definition at line 298 of file ComputePme.C.
References WorkDistrib::peDiffuseOrdering, and sort.
Referenced by ComputePmeMgr::initialize().
ResizeArray<ComputePme*>& getComputes | ( | ComputePmeMgr * | mgr | ) |
Definition at line 593 of file ComputePme.C.
References ComputePmeMgr::pmeComputes.
Referenced by ComputeQM::saveResults().
int isPmeProcessor | ( | int | p | ) |
Definition at line 604 of file ComputePme.C.
References Node::Object(), pencilPMEProcessors, Node::simParameters, simParams, and SimParameters::usePMECUDA.
|
inline |
Definition at line 333 of file ComputePme.C.
Referenced by sortop_bit_reversed::operator()(), and ijpair_sortop_bit_reversed::operator()().
void Pme_init | ( | ) |
Definition at line 860 of file ComputePme.C.
|
inlinestatic |
Definition at line 1940 of file ComputePme.C.
References ComputePmeMgr::sendTransSubset().
Referenced by ComputePmeMgr::sendTrans().
|
inlinestatic |
Definition at line 2370 of file ComputePme.C.
References ComputePmeMgr::sendUngridSubset().
Referenced by ComputePmeMgr::sendUngrid().
|
inlinestatic |
Definition at line 2184 of file ComputePme.C.
References ComputePmeMgr::sendUntransSubset().
Referenced by ComputePmeMgr::sendUntrans().
|
inlinestatic |
Definition at line 5746 of file ComputePme.C.
References PmeXPencil::send_subset_untrans().
Referenced by PmeXPencil::send_untrans().
|
inlinestatic |
Definition at line 5183 of file ComputePme.C.
Referenced by PmeZPencil::backward_fft(), PmeXPencil::backward_fft(), PmeZPencil::forward_fft(), and PmeXPencil::forward_fft().
|
inlinestatic |
Definition at line 5921 of file ComputePme.C.
References PmeYPencil::backward_subset_fft().
Referenced by PmeYPencil::backward_fft().
|
inlinestatic |
Definition at line 5412 of file ComputePme.C.
References PmeYPencil::forward_subset_fft().
Referenced by PmeYPencil::forward_fft().
|
inlinestatic |
Definition at line 5464 of file ComputePme.C.
References PmeYPencil::send_subset_trans().
Referenced by PmeYPencil::send_trans().
|
inlinestatic |
Definition at line 5980 of file ComputePme.C.
References PmeYPencil::send_subset_untrans().
Referenced by PmeYPencil::send_untrans().
|
inlinestatic |
Definition at line 5248 of file ComputePme.C.
References PmeZPencil::send_subset_trans().
Referenced by PmeZPencil::send_trans().
|
inlinestatic |
Definition at line 6216 of file ComputePme.C.
References PmeZPencil::send_subset_ungrid().
Referenced by PmeZPencil::send_all_ungrid().
__thread DeviceCUDA* deviceCUDA |
Definition at line 22 of file DeviceCUDA.C.
char* pencilPMEProcessors |
Definition at line 113 of file ComputePme.C.
Referenced by ComputePmeMgr::initialize(), and isPmeProcessor().