NAMD
Classes | Macros | Functions
CudaPmeSolverUtil.h File Reference
#include <stdio.h>
#include <cuda.h>
#include <cufft.h>
#include "PmeSolverUtil.h"
#include "CudaUtils.h"
#include "CudaPmeSolverUtilKernel.h"

Go to the source code of this file.

Classes

class  CudaFFTCompute
 
class  CudaPmeKSpaceCompute
 
class  CudaPmeRealSpaceCompute
 
class  CudaPmeTranspose
 

Macros

#define cufftCheck(stmt)
 

Functions

void writeComplexToDisk (const float2 *d_data, const int size, const char *filename, cudaStream_t stream)
 
void writeHostComplexToDisk (const float2 *h_data, const int size, const char *filename)
 
void writeRealToDisk (const float *d_data, const int size, const char *filename, cudaStream_t stream)
 

Macro Definition Documentation

#define cufftCheck (   stmt)
Value:
do { \
cufftResult err = stmt; \
if (err != CUFFT_SUCCESS) { \
char msg[128]; \
sprintf(msg, "%s in file %s, function %s\n", #stmt,__FILE__,__FUNCTION__); \
cudaDie(msg); \
} \
} while(0)
if(ComputeNonbondedUtil::goMethod==2)
void cudaDie(const char *msg, cudaError_t err=cudaSuccess)
Definition: CudaUtils.C:9

Definition at line 24 of file CudaPmeSolverUtil.h.

Referenced by CudaFFTCompute::backward(), CudaFFTCompute::forward(), and CudaFFTCompute::~CudaFFTCompute().

Function Documentation

void writeComplexToDisk ( const float2 d_data,
const int  size,
const char *  filename,
cudaStream_t  stream 
)

Definition at line 18 of file CudaPmeSolverUtil.C.

References cudaCheck, stream, x, and y.

18  {
19  fprintf(stderr, "writeComplexToDisk %d %s\n", size, filename);
20  float2* h_data = new float2[size];
21  copy_DtoH<float2>(d_data, h_data, size, stream);
22  cudaCheck(cudaStreamSynchronize(stream));
23  FILE *handle = fopen(filename, "w");
24  for (int i=0;i < size;i++)
25  fprintf(handle, "%f %f\n", h_data[i].x, h_data[i].y);
26  fclose(handle);
27  delete [] h_data;
28 }
__thread cudaStream_t stream
gridSize y
#define cudaCheck(stmt)
Definition: CudaUtils.h:95
gridSize x
void writeHostComplexToDisk ( const float2 h_data,
const int  size,
const char *  filename 
)

Definition at line 30 of file CudaPmeSolverUtil.C.

References x, and y.

30  {
31  FILE *handle = fopen(filename, "w");
32  for (int i=0;i < size;i++)
33  fprintf(handle, "%f %f\n", h_data[i].x, h_data[i].y);
34  fclose(handle);
35 }
gridSize y
gridSize x
void writeRealToDisk ( const float *  d_data,
const int  size,
const char *  filename,
cudaStream_t  stream 
)

Definition at line 37 of file CudaPmeSolverUtil.C.

References cudaCheck, and stream.

37  {
38  fprintf(stderr, "writeRealToDisk %d %s\n", size, filename);
39  float* h_data = new float[size];
40  copy_DtoH<float>(d_data, h_data, size, stream);
41  cudaCheck(cudaStreamSynchronize(stream));
42  FILE *handle = fopen(filename, "w");
43  for (int i=0;i < size;i++)
44  fprintf(handle, "%f\n", h_data[i]);
45  fclose(handle);
46  delete [] h_data;
47 }
__thread cudaStream_t stream
#define cudaCheck(stmt)
Definition: CudaUtils.h:95