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 "CudaUtils.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 | 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 2495 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 2496 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 5010 of file ComputePme.C.
#define EVENT_STRIDE 10 |
Definition at line 2497 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 540 of file ComputePme.C.
Referenced by ComputePmeMgr::ComputePmeMgr().
Referenced by ComputePmeMgr::initialize_computes().
void CcdCallBacksReset | ( | void * | ignored, |
double | curWallTime | ||
) |
int compare_bit_reversed | ( | int | a, |
int | b | ||
) |
Definition at line 344 of file ComputePme.C.
void cuda_check_pme_charges | ( | void * | arg, |
double | walltime | ||
) |
Definition at line 3493 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().
void cuda_check_pme_forces | ( | void * | arg, |
double | walltime | ||
) |
Definition at line 2503 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 67 of file ComputePme.C.
References NAMD_die().
Referenced by ComputePmeMgr::ComputePmeMgr(), ComputePme::doWork(), ComputePmeMgr::initialize(), ComputePmeMgr::initialize_computes(), and ComputePmeMgr::ungridCalc().
|
static |
Definition at line 267 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 318 of file ComputePme.C.
References WorkDistrib::peDiffuseOrdering.
Referenced by ComputePmeMgr::initialize().
ResizeArray<ComputePme*>& getComputes | ( | ComputePmeMgr * | mgr | ) |
Definition at line 613 of file ComputePme.C.
References ComputePmeMgr::pmeComputes.
Referenced by ComputeQM::saveResults().
int isPmeProcessor | ( | int | p | ) |
Definition at line 624 of file ComputePme.C.
References Node::Object(), pencilPMEProcessors, Node::simParameters, and simParams.
|
inline |
Definition at line 353 of file ComputePme.C.
Referenced by sortop_bit_reversed::operator()(), and ijpair_sortop_bit_reversed::operator()().
void Pme_init | ( | ) |
Definition at line 880 of file ComputePme.C.
|
inlinestatic |
Definition at line 1960 of file ComputePme.C.
References ComputePmeMgr::sendTransSubset().
Referenced by ComputePmeMgr::sendTrans().
|
inlinestatic |
Definition at line 2390 of file ComputePme.C.
References ComputePmeMgr::sendUngridSubset().
Referenced by ComputePmeMgr::sendUngrid().
|
inlinestatic |
Definition at line 2204 of file ComputePme.C.
References ComputePmeMgr::sendUntransSubset().
Referenced by ComputePmeMgr::sendUntrans().
|
inlinestatic |
Definition at line 5771 of file ComputePme.C.
References PmeXPencil::send_subset_untrans().
Referenced by PmeXPencil::send_untrans().
|
inlinestatic |
Definition at line 5208 of file ComputePme.C.
Referenced by PmeZPencil::backward_fft(), PmeXPencil::backward_fft(), PmeZPencil::forward_fft(), and PmeXPencil::forward_fft().
|
inlinestatic |
Definition at line 5946 of file ComputePme.C.
References PmeYPencil::backward_subset_fft().
Referenced by PmeYPencil::backward_fft().
|
inlinestatic |
Definition at line 5437 of file ComputePme.C.
References PmeYPencil::forward_subset_fft().
Referenced by PmeYPencil::forward_fft().
|
inlinestatic |
Definition at line 5489 of file ComputePme.C.
References PmeYPencil::send_subset_trans().
Referenced by PmeYPencil::send_trans().
|
inlinestatic |
Definition at line 6005 of file ComputePme.C.
References PmeYPencil::send_subset_untrans().
Referenced by PmeYPencil::send_untrans().
|
inlinestatic |
Definition at line 5273 of file ComputePme.C.
References PmeZPencil::send_subset_trans().
Referenced by PmeZPencil::send_trans().
|
inlinestatic |
Definition at line 6241 of file ComputePme.C.
References PmeZPencil::send_subset_ungrid().
Referenced by PmeZPencil::send_all_ungrid().
__thread DeviceCUDA* deviceCUDA |
Definition at line 23 of file DeviceCUDA.C.
Referenced by ComputePme::doWork(), ComputePmeMgr::initialize(), ComputePmeMgr::initialize_computes(), ComputePmeMgr::initialize_pencils(), and ComputePmeMgr::ungridCalc().
char* pencilPMEProcessors |
Definition at line 133 of file ComputePme.C.
Referenced by ComputePmeMgr::initialize(), and isPmeProcessor().