QUDA  v0.7.0
A library for QCD on GPUs
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
util_quda.cpp
Go to the documentation of this file.
1 #include <cstdlib>
2 #include <cstdio>
3 #include <cstring>
4 #include <stack>
5 #include <sys/time.h>
6 
7 #include <enum_quda.h>
8 #include <util_quda.h>
9 
10 
11 static const size_t MAX_PREFIX_SIZE = 100;
12 
13 static QudaVerbosity verbosity_ = QUDA_SUMMARIZE;
14 static char prefix_[MAX_PREFIX_SIZE] = "";
15 static FILE *outfile_ = stdout;
16 
17 static const int MAX_BUFFER_SIZE = 1000;
18 static char buffer_[MAX_BUFFER_SIZE] = "";
19 
20 QudaVerbosity getVerbosity() { return verbosity_; }
21 char *getOutputPrefix() { return prefix_; }
22 FILE *getOutputFile() { return outfile_; }
23 
24 void setVerbosity(QudaVerbosity verbosity)
25 {
26  verbosity_ = verbosity;
27 }
28 
29 
30 static QudaTune tune_;
31 
32 QudaTune getTuning() { return tune_; }
34 {
35  tune_ = tune;
36 }
37 
38 void setOutputPrefix(const char *prefix)
39 {
40  strncpy(prefix_, prefix, MAX_PREFIX_SIZE);
41  prefix_[MAX_PREFIX_SIZE-1] = '\0';
42 }
43 
44 void setOutputFile(FILE *outfile)
45 {
46  outfile_ = outfile;
47 }
48 
49 
50 static std::stack<QudaVerbosity> vstack;
51 
53 {
54  vstack.push(getVerbosity());
55  setVerbosity(verbosity);
56 
57  if (vstack.size() > 10) {
58  warningQuda("Verbosity stack contains %u elements. Is there a missing popVerbosity() somewhere?",
59  static_cast<unsigned int>(vstack.size()));
60  }
61 }
62 
64 {
65  if (vstack.empty()) {
66  errorQuda("popVerbosity() called with empty stack");
67  }
68  setVerbosity(vstack.top());
69  vstack.pop();
70 }
71 
72 char *getPrintBuffer() { return buffer_; }
void setOutputFile(FILE *outfile)
Definition: util_quda.cpp:44
QudaTune getTuning()
Definition: util_quda.cpp:32
#define errorQuda(...)
Definition: util_quda.h:73
void pushVerbosity(QudaVerbosity verbosity)
Definition: util_quda.cpp:52
FILE * getOutputFile()
Definition: util_quda.cpp:22
void setOutputPrefix(const char *prefix)
Definition: util_quda.cpp:38
#define warningQuda(...)
Definition: util_quda.h:84
void popVerbosity()
Definition: util_quda.cpp:63
void setTuning(QudaTune tune)
Definition: util_quda.cpp:33
bool tune
Definition: blas_test.cu:28
char * getOutputPrefix()
Definition: util_quda.cpp:21
void setVerbosity(QudaVerbosity verbosity)
Definition: util_quda.cpp:24
enum QudaTune_s QudaTune
QudaVerbosity getVerbosity()
Definition: util_quda.cpp:20
char * getPrintBuffer()
Definition: util_quda.cpp:72
enum QudaVerbosity_s QudaVerbosity