| version 1.1 | version 1.2 |
|---|
| |
| | |
| class CudaPmeKSpaceCompute : public PmeKSpaceCompute { | class CudaPmeKSpaceCompute : public PmeKSpaceCompute { |
| private: | private: |
| int cuda_arch; | |
| int deviceID; | int deviceID; |
| cudaStream_t stream; | cudaStream_t stream; |
| // Device memory versions of (bm1, bm2, bm3) | // Device memory versions of (bm1, bm2, bm3) |
| |
| CudaPmePencilZ* pencilZPtr; | CudaPmePencilZ* pencilZPtr; |
| public: | public: |
| CudaPmeKSpaceCompute(PmeGrid pmeGrid, const int permutation, | CudaPmeKSpaceCompute(PmeGrid pmeGrid, const int permutation, |
| const int jblock, const int kblock, double kappa, int cuda_arch, int deviceID, cudaStream_t stream); | const int jblock, const int kblock, double kappa, |
| | int deviceID, cudaStream_t stream); |
| ~CudaPmeKSpaceCompute(); | ~CudaPmeKSpaceCompute(); |
| void solve(Lattice &lattice, const bool doEnergy, const bool doVirial, float* data); | void solve(Lattice &lattice, const bool doEnergy, const bool doVirial, float* data); |
| // void waitEnergyAndVirial(); | // void waitEnergyAndVirial(); |
| |
| | |
| class CudaPmeRealSpaceCompute : public PmeRealSpaceCompute { | class CudaPmeRealSpaceCompute : public PmeRealSpaceCompute { |
| private: | private: |
| int cuda_arch; | |
| #ifndef DISABLE_CUDA_TEXTURE_OBJECTS | |
| bool gridTexObjActive; | bool gridTexObjActive; |
| cudaTextureObject_t gridTexObj; | cudaTextureObject_t gridTexObj; |
| #endif | |
| int tex_data_len; | int tex_data_len; |
| float* tex_data; | float* tex_data; |
| int deviceID; | int deviceID; |
| |
| static void cuda_gatherforce_check(void *arg, double walltime); | static void cuda_gatherforce_check(void *arg, double walltime); |
| public: | public: |
| CudaPmeRealSpaceCompute(PmeGrid pmeGrid, const int jblock, const int kblock, | CudaPmeRealSpaceCompute(PmeGrid pmeGrid, const int jblock, const int kblock, |
| int cuda_arch, int deviceID, cudaStream_t stream); | int deviceID, cudaStream_t stream); |
| ~CudaPmeRealSpaceCompute(); | ~CudaPmeRealSpaceCompute(); |
| void copyAtoms(const int numAtoms, const CudaAtom* atoms); | void copyAtoms(const int numAtoms, const CudaAtom* atoms); |
| void spreadCharge(Lattice &lattice); | void spreadCharge(Lattice &lattice); |