1 #ifndef _QUDA_INTERNAL_H
2 #define _QUDA_INTERNAL_H
5 #include <cuda_runtime.h>
10 #if ((defined(QMP_COMMS) || defined(MPI_COMMS)) && !defined(MULTI_GPU))
11 #error "MULTI_GPU must be enabled to use MPI or QMP"
14 #if (!defined(QMP_COMMS) && !defined(MPI_COMMS) && defined(MULTI_GPU))
15 #error "MPI or QMP must be enabled to use MULTI_GPU"
30 #define MAX_SHORT 32767.0f
32 #define TEX_ALIGN_REQ (512*2) //Fermi, factor 2 comes from even/odd
33 #define ALIGNMENT_ADJUST(n) ( (n+TEX_ALIGN_REQ-1)/TEX_ALIGN_REQ*TEX_ALIGN_REQ)
42 #if (__COMPUTE_CAPABILITY__ >= 300) && (CUDA_VERSION >= 5000)
43 #define USE_TEXTURE_OBJECTS
79 extern pthread_mutex_t pthread_mutex;
86 #define REAL(a) (*((double*)&a))
87 #define IMAG(a) (*((double*)&a+1))
91 typedef std::complex<double>
Complex;
121 gettimeofday(&
start, NULL);
127 gettimeofday(&
stop, NULL);
131 last = ds + 0.000001*dus;
222 #endif // _QUDA_INTERNAL_H
enum QudaPrecision_s QudaPrecision
static std::string pname[]
cudaDeviceProp deviceProp
std::complex< double > Complex
TimeProfile(std::string fname)
void Stop(QudaProfileType idx)
Main header file for the QUDA library.
double Last(QudaProfileType idx)
void Start(QudaProfileType idx)
#define QUDA_MAX_DIM
Maximum number of dimensions supported by QUDA. In practice, no routines make use of more than 5...
Timer profile[QUDA_PROFILE_COUNT]