1 #ifndef VOLK_QA_UTILS_H 2 #define VOLK_QA_UTILS_H 39 std::map<std::string, volk_test_time_t>
results;
52 std::string _kernel_regex;
56 bool benchmark_mode, std::string kernel_regex) :
57 _tol(tol), _scalar(scalar), _vlen(vlen), _iter(iter),
58 _benchmark_mode(benchmark_mode), _absolute_mode(false), _kernel_regex(kernel_regex) {};
62 void set_vlen(
unsigned int vlen) {_vlen=vlen;};
63 void set_iter(
unsigned int iter) {_iter=iter;};
65 void set_regex(std::string regex) {_kernel_regex=regex;};
67 float tol() {
return _tol;};
69 unsigned int vlen() {
return _vlen;};
70 unsigned int iter() {
return _iter;};
77 t._absolute_mode =
true;
93 std::string _puppet_master_name;
97 std::string
name() {
return _name;};
103 _desc(desc), _kernel_ptr(kernel_ptr), _name(name), _test_parameters(test_parameters),
104 _puppet_master_name(
"NULL")
109 _desc(desc), _kernel_ptr(kernel_ptr), _name(name), _test_parameters(test_parameters),
110 _puppet_master_name(puppet_master_name)
127 std::vector<volk_test_results_t> *results = NULL,
128 std::string puppet_master_name =
"NULL" 139 std::vector<volk_test_results_t> *results = NULL,
140 std::string puppet_master_name =
"NULL",
141 bool absolute_mode =
false,
142 bool benchmark_mode =
false 146 #define VOLK_RUN_TESTS(func, tol, scalar, len, iter) \ 147 BOOST_AUTO_TEST_CASE(func##_test) { \ 148 BOOST_CHECK_EQUAL(run_volk_tests( \ 149 func##_get_func_desc(), (void (*)())func##_manual, \ 150 std::string(#func), tol, scalar, len, iter, 0, "NULL"), \ 153 #define VOLK_PROFILE(func, test_params, results) run_volk_tests(func##_get_func_desc(), (void (*)())func##_manual, std::string(#func), test_params, results, "NULL") 154 #define VOLK_PUPPET_PROFILE(func, puppet_master_func, test_params, results) run_volk_tests(func##_get_func_desc(), (void (*)())func##_manual, std::string(#func), test_params, results, std::string(#puppet_master_func)) 166 #endif //VOLK_QA_UTILS_H bool pass
Definition: qa_utils.h:30
void set_iter(unsigned int iter)
Definition: qa_utils.h:63
bool is_scalar
Definition: qa_utils.h:18
bool is_complex
Definition: qa_utils.h:20
void set_tol(float tol)
Definition: qa_utils.h:60
bool run_volk_tests(volk_func_desc_t, void(*)(), std::string, volk_test_params_t, std::vector< volk_test_results_t > *results=NULL, std::string puppet_master_name="NULL")
Definition: qa_utils.cc:380
std::string str
Definition: qa_utils.h:22
void(* volk_fn_4arg)(void *, void *, void *, void *, unsigned int, const char *)
Definition: qa_utils.h:158
VOLK_API void
Call into a specific implementation given by name.
unsigned int iter()
Definition: qa_utils.h:70
std::string name()
Definition: qa_utils.h:97
void(* volk_fn_2arg_s32fc)(void *, void *, lv_32fc_t, unsigned int, const char *)
Definition: qa_utils.h:163
lv_32fc_t scalar()
Definition: qa_utils.h:68
volk_test_params_t(float tol, lv_32fc_t scalar, unsigned int vlen, unsigned int iter, bool benchmark_mode, std::string kernel_regex)
Definition: qa_utils.h:55
volk_func_desc_t desc()
Definition: qa_utils.h:95
void(* volk_fn_3arg_s32f)(void *, void *, void *, float, unsigned int, const char *)
Definition: qa_utils.h:161
std::string name
Definition: qa_utils.h:35
volk_test_case_t(volk_func_desc_t desc, void(*kernel_ptr)(), std::string name, volk_test_params_t test_parameters)
Definition: qa_utils.h:101
void set_regex(std::string regex)
Definition: qa_utils.h:65
bool absolute_mode()
Definition: qa_utils.h:72
volk_test_case_t(volk_func_desc_t desc, void(*kernel_ptr)(), std::string name, std::string puppet_master_name, volk_test_params_t test_parameters)
Definition: qa_utils.h:107
void set_vlen(unsigned int vlen)
Definition: qa_utils.h:62
void set_benchmark(bool benchmark)
Definition: qa_utils.h:64
Definition: qa_utils.h:16
void(* volk_fn_2arg_s32f)(void *, void *, float, unsigned int, const char *)
Definition: qa_utils.h:160
void(* volk_fn_3arg)(void *, void *, void *, unsigned int, const char *)
Definition: qa_utils.h:157
name
Definition: volk_arch_defs.py:68
void random_floats(float *buf, unsigned n)
unsigned int vlen
Definition: qa_utils.h:37
std::string units
Definition: qa_utils.h:29
void(*)() kernel_ptr()
Definition: qa_utils.h:96
__VOLK_DECL_BEGIN struct volk_func_desc volk_func_desc_t
Get description parameters for this kernel.
Definition: volk.tmpl.h:90
unsigned int iter
Definition: qa_utils.h:38
volk_test_params_t make_absolute(float tol)
Definition: qa_utils.h:74
float tol()
Definition: qa_utils.h:67
volk_test_params_t test_parameters()
Definition: qa_utils.h:99
std::string config_name
Definition: qa_utils.h:36
bool is_float
Definition: qa_utils.h:17
void(* volk_fn_1arg_s32fc)(void *, lv_32fc_t, unsigned int, const char *)
Definition: qa_utils.h:162
std::string best_arch_u
Definition: qa_utils.h:41
std::string best_arch_a
Definition: qa_utils.h:40
volk_type_t volk_type_from_string(std::string)
Definition: qa_utils.cc:99
volk_test_params_t make_tol(float tol)
Definition: qa_utils.h:80
float complex lv_32fc_t
Definition: volk_complex.h:61
void(* volk_fn_1arg)(void *, unsigned int, const char *)
Definition: qa_utils.h:155
void set_scalar(lv_32fc_t scalar)
Definition: qa_utils.h:61
std::string kernel_regex()
Definition: qa_utils.h:73
void(* volk_fn_3arg_s32fc)(void *, void *, void *, lv_32fc_t, unsigned int, const char *)
Definition: qa_utils.h:164
unsigned int vlen()
Definition: qa_utils.h:69
Definition: qa_utils.h:87
Definition: qa_utils.h:33
double time
Definition: qa_utils.h:28
bool benchmark_mode()
Definition: qa_utils.h:71
int size
Definition: qa_utils.h:21
std::string name
Definition: qa_utils.h:27
void(* volk_fn_2arg)(void *, void *, unsigned int, const char *)
Definition: qa_utils.h:156
std::string puppet_master_name()
Definition: qa_utils.h:98
Definition: qa_utils.h:25
Definition: qa_utils.h:44
void(* volk_fn_1arg_s32f)(void *, float, unsigned int, const char *)
Definition: qa_utils.h:159
std::map< std::string, volk_test_time_t > results
Definition: qa_utils.h:39
bool is_signed
Definition: qa_utils.h:19