34 #define printfQuda(...) do { \
35 sprintf(getPrintBuffer(), __VA_ARGS__); \
36 if (comm_rank() == 0) { \
37 fprintf(getOutputFile(), "%s", getOutputPrefix()); \
38 fprintf(getOutputFile(), "%s", getPrintBuffer()); \
39 fflush(getOutputFile()); \
43 #define errorQuda(...) do { \
44 fprintf(getOutputFile(), "%sERROR: ", getOutputPrefix()); \
45 fprintf(getOutputFile(), __VA_ARGS__); \
46 fprintf(getOutputFile(), " (rank %d, host %s, " __FILE__ ":%d in %s())\n", \
47 comm_rank(), comm_hostname(), __LINE__, __func__); \
48 fprintf(getOutputFile(), "%s last kernel called was (name=%s,volume=%s,aux=%s)\n", \
49 getOutputPrefix(), getLastTuneKey().name, \
50 getLastTuneKey().volume, getLastTuneKey().aux); \
51 fflush(getOutputFile()); \
55 #define warningQuda(...) do { \
56 sprintf(getPrintBuffer(), __VA_ARGS__); \
57 if (comm_rank() == 0) { \
58 fprintf(getOutputFile(), "%sWARNING: ", getOutputPrefix()); \
59 fprintf(getOutputFile(), "%s", getPrintBuffer()); \
60 fprintf(getOutputFile(), "\n"); \
61 fflush(getOutputFile()); \
67 #define printfQuda(...) do { \
68 fprintf(getOutputFile(), "%s", getOutputPrefix()); \
69 fprintf(getOutputFile(), __VA_ARGS__); \
70 fflush(getOutputFile()); \
73 #define errorQuda(...) do { \
74 fprintf(getOutputFile(), "%sERROR: ", getOutputPrefix()); \
75 fprintf(getOutputFile(), __VA_ARGS__); \
76 fprintf(getOutputFile(), " (" __FILE__ ":%d in %s())\n", \
77 __LINE__, __func__); \
78 fprintf(getOutputFile(), "%s last kernel called was (name=%s,volume=%s,aux=%s)\n", \
79 getOutputPrefix(), getLastTuneKey().name, \
80 getLastTuneKey().volume, getLastTuneKey().aux); \
84 #define warningQuda(...) do { \
85 fprintf(getOutputFile(), "%sWARNING: ", getOutputPrefix()); \
86 fprintf(getOutputFile(), __VA_ARGS__); \
87 fprintf(getOutputFile(), "\n"); \
88 fflush(getOutputFile()); \
94 #define checkCudaErrorNoSync() do { \
95 cudaError_t error = cudaGetLastError(); \
96 if (error != cudaSuccess) \
97 errorQuda("(CUDA) %s", cudaGetErrorString(error)); \
103 #define checkCudaError() do { \
104 cudaDeviceSynchronize(); \
105 checkCudaErrorNoSync(); \
110 #define checkCudaError() checkCudaErrorNoSync()
115 #endif // _UTIL_QUDA_H
QudaVerbosity getVerbosity()
void setOutputPrefix(const char *prefix)
void setTuning(QudaTune tune)
void pushVerbosity(QudaVerbosity verbosity)
enum QudaVerbosity_s QudaVerbosity
void setOutputFile(FILE *outfile)
void setVerbosity(const QudaVerbosity verbosity)