CudaComputeNonbonded.C File Reference

#include <algorithm>
#include <map>
#include <vector>
#include "NamdTypes.h"
#include "charm++.h"
#include "Patch.h"
#include "PatchMap.h"
#include "ProxyMgr.h"
#include "LJTable.h"
#include "Node.h"
#include "ObjectArena.h"
#include "ReductionMgr.h"
#include "CudaComputeNonbonded.h"
#include "WorkDistrib.h"
#include "HomePatch.h"
#include "Priorities.h"
#include "ComputePmeCUDAMgr.h"
#include "DeviceCUDA.h"

Go to the source code of this file.

Classes

struct  pid_sortop_reverse_priority
struct  cr_sortop_distance
struct  cr_sortop_reverse_priority
struct  exlist_sortop

Defines

#define CUDA_DEBUG_EVENT   171
#define CUDA_VDW_KERNEL   172
#define CUDA_GBIS1_KERNEL   173
#define CUDA_GBIS2_KERNEL   174
#define CUDA_GBIS3_KERNEL   175
#define SET_EXCL(EXCL, BASE, DIFF)   (EXCL)[((BASE)+(DIFF))>>5] |= (1<<(((BASE)+(DIFF))&31))

Functions

void CcdCallBacksReset (void *ignored, double curWallTime)
int findHomePatchPe (PatchIDList *rankPatchIDs, PatchID pid)
void findProxyPatchPes (std::vector< int > &proxyPatchPes, PatchID pid)
static bool sortop_bitreverse (int a, int b)

Variables

__thread DeviceCUDAdeviceCUDA


Define Documentation

#define CUDA_DEBUG_EVENT   171

Referenced by CudaComputeNonbonded::CudaComputeNonbonded().

#define CUDA_GBIS1_KERNEL   173

Referenced by CudaComputeNonbonded::CudaComputeNonbonded().

#define CUDA_GBIS2_KERNEL   174

Referenced by CudaComputeNonbonded::CudaComputeNonbonded().

#define CUDA_GBIS3_KERNEL   175

Referenced by CudaComputeNonbonded::CudaComputeNonbonded().

#define CUDA_VDW_KERNEL   172

Referenced by CudaComputeNonbonded::CudaComputeNonbonded().

#define SET_EXCL ( EXCL,
BASE,
DIFF   )     (EXCL)[((BASE)+(DIFF))>>5] |= (1<<(((BASE)+(DIFF))&31))


Function Documentation

void CcdCallBacksReset ( void *  ignored,
double  curWallTime 
)

int findHomePatchPe ( PatchIDList rankPatchIDs,
PatchID  pid 
)

Definition at line 351 of file CudaComputeNonbonded.C.

Referenced by CudaComputeNonbonded::assignPatches().

00351                                                             {
00352   // for (int i=0;i < rankPatchIDs.size();i++) {
00353   for (int i=0;i < CkMyNodeSize();i++) {
00354     if (rankPatchIDs[i].find(pid) != -1) return CkNodeFirst(CkMyNode()) + i;
00355   }
00356   return -1;
00357 }

void findProxyPatchPes ( std::vector< int > &  proxyPatchPes,
PatchID  pid 
)

Definition at line 362 of file CudaComputeNonbonded.C.

References PatchMap::ObjectOnPe().

Referenced by CudaComputeNonbonded::assignPatches().

00362                                                                    {
00363   proxyPatchPes.clear();
00364   for (int i=0;i < CkMyNodeSize();i++) {
00365     int pe = CkNodeFirst(CkMyNode()) + i;
00366     if (PatchMap::ObjectOnPe(pe)->patch(pid) != NULL)
00367       proxyPatchPes.push_back(pe);
00368   }
00369 }

static bool sortop_bitreverse ( int  a,
int  b 
) [inline, static]

Definition at line 1551 of file CudaComputeNonbonded.C.

01551                                                    {
01552   if ( a == b ) return 0; 
01553   for ( int bit = 1; bit; bit *= 2 ) {
01554     if ( (a&bit) != (b&bit) ) return ((a&bit) < (b&bit));
01555   }
01556   return 0;
01557 }


Variable Documentation

__thread DeviceCUDA* deviceCUDA

Definition at line 18 of file DeviceCUDA.C.


Generated on Tue Nov 21 01:17:16 2017 for NAMD by  doxygen 1.4.7