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); |