ComputeCUDAMgr.h

Go to the documentation of this file.
00001 #ifndef COMPUTECUDAMGR_H
00002 #define COMPUTECUDAMGR_H
00003 #include <vector>
00004 #include "CudaUtils.h"
00005 #include "ComputeCUDAMgr.decl.h"
00006 #include "CudaNonbondedTables.h"
00007 #include "CudaComputeNonbonded.h"
00008 #ifdef BONDED_CUDA
00009 #include "ComputeBondedCUDA.h"
00010 #endif
00011 #ifdef NAMD_CUDA
00012 
00013 class ComputeCUDAMgr : public CBase_ComputeCUDAMgr {
00014 public:
00015   // ComputeCUDAMgr_SDAG_CODE;
00016         ComputeCUDAMgr();
00017         ComputeCUDAMgr(CkMigrateMessage *);
00018         ~ComputeCUDAMgr();
00019         void initialize(CkQdMsg *msg);
00020         void initialize_devices(CkQdMsg *msg);
00021   static ComputeCUDAMgr* getComputeCUDAMgr();
00022   CudaComputeNonbonded* createCudaComputeNonbonded(ComputeID c);
00023   CudaComputeNonbonded* getCudaComputeNonbonded();
00024 #ifdef BONDED_CUDA
00025   ComputeBondedCUDA* createComputeBondedCUDA(ComputeID c, ComputeMgr* computeMgr);
00026   ComputeBondedCUDA* getComputeBondedCUDA();
00027 #endif
00028 private:
00029 
00030   // Number of CUDA devices on this node that are used in computation
00031   int numDevices;
00032   std::vector<CudaNonbondedTables*> cudaNonbondedTablesList;
00033   std::vector<CudaComputeNonbonded*> cudaComputeNonbondedList;
00034 #ifdef BONDED_CUDA
00035   std::vector<ComputeBondedCUDA*> computeBondedCUDAList;
00036 #endif
00037 };
00038 
00039 #else // NAMD_CUDA
00040 
00041 class ComputeCUDAMgr : public CBase_ComputeCUDAMgr {
00042 };
00043 
00044 #endif // NAMD_CUDA
00045 #endif // COMPUTECUDAMGR_H

Generated on Fri Sep 22 01:17:11 2017 for NAMD by  doxygen 1.4.7