 |
Vector Optimized Library of Kernels
3.3.0
Architecture-tuned implementations of math kernels
|
|
Go to the documentation of this file.
10 #ifndef VOLK_QA_UTILS_H
11 #define VOLK_QA_UTILS_H
14 #include <volk/volk.h>
57 std::map<std::string, volk_test_time_t>
results;
71 std::string _kernel_regex;
72 std::vector<float> _float_edge_cases;
73 std::vector<lv_32fc_t> _complex_edge_cases;
88 _absolute_mode(false),
96 void set_regex(std::string regex) { _kernel_regex = regex; };
99 _float_edge_cases = edge_cases;
103 _complex_edge_cases = edge_cases;
106 float tol() {
return _tol; };
108 unsigned int vlen() {
return _vlen; };
109 unsigned int iter() {
return _iter; };
116 return _complex_edge_cases;
122 t._absolute_mode =
true;
137 void (*_kernel_ptr)();
140 std::string _puppet_master_name;
145 std::string
name() {
return _name; };
150 void (*t_kernel_ptr)(),
154 _kernel_ptr(t_kernel_ptr),
157 _puppet_master_name(
"NULL"){};
160 void (*t_kernel_ptr)(),
165 _kernel_ptr(t_kernel_ptr),
183 const std::vector<float>& float_edge_cases = std::vector<float>(),
184 const std::vector<lv_32fc_t>& complex_edge_cases = std::vector<lv_32fc_t>());
190 std::vector<volk_test_results_t>* results = NULL,
191 std::string puppet_master_name =
"NULL");
201 std::vector<volk_test_results_t>* results = NULL,
202 std::string puppet_master_name =
"NULL",
203 bool absolute_mode =
false,
204 bool benchmark_mode =
false,
205 const std::vector<float>& float_edge_cases = std::vector<float>(),
206 const std::vector<lv_32fc_t>& complex_edge_cases = std::vector<lv_32fc_t>());
208 #define VOLK_PROFILE(func, test_params, results) \
209 run_volk_tests(func##_get_func_desc(), \
210 (void (*)())func##_manual, \
211 std::string(#func), \
215 #define VOLK_PUPPET_PROFILE(func, puppet_master_func, test_params, results) \
216 run_volk_tests(func##_get_func_desc(), \
217 (void (*)())func##_manual, \
218 std::string(#func), \
221 std::string(#puppet_master_func))
229 void*, float,
unsigned int,
const char*);
239 void*,
void*,
void*,
lv_32fc_t*,
unsigned int,
const char*);
241 #endif // VOLK_QA_UTILS_H
void set_regex(std::string regex)
Definition: qa_utils.h:96
Definition: qa_utils.h:42
void(* volk_fn_2arg)(void *, void *, unsigned int, const char *)
Definition: qa_utils.h:225
std::map< std::string, volk_test_time_t > results
Definition: qa_utils.h:57
Definition: qa_utils.h:51
volk_func_desc_t desc()
Definition: qa_utils.h:143
unsigned int vlen()
Definition: qa_utils.h:108
Definition: qa_utils.h:63
void load_random_data(void *data, volk_type_t type, unsigned int n, const std::vector< float > &float_edge_cases=std::vector< float >(), const std::vector< lv_32fc_t > &complex_edge_cases=std::vector< lv_32fc_t >())
Definition: qa_utils.cc:51
bool pass
Definition: qa_utils.h:47
std::string str
Definition: qa_utils.h:38
int size
Definition: qa_utils.h:37
void add_float_edge_cases(const std::vector< float > &edge_cases)
Definition: qa_utils.h:97
std::string name
Definition: qa_utils.h:44
volk_test_params_t make_tol(float tol)
Definition: qa_utils.h:125
bool is_scalar
Definition: qa_utils.h:34
std::string config_name
Definition: qa_utils.h:54
VOLK_API void
Call into a specific implementation given by name.
Definition: volk.tmpl.h:103
volk_test_params_t make_absolute(float tol)
Definition: qa_utils.h:118
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:758
Definition: qa_utils.h:134
void set_scalar(lv_32fc_t scalar)
Definition: qa_utils.h:92
void(*)() kernel_ptr()
Definition: qa_utils.h:144
std::string puppet_master_name()
Definition: qa_utils.h:146
double time
Definition: qa_utils.h:45
void(* volk_fn_4arg)(void *, void *, void *, void *, unsigned int, const char *)
Definition: qa_utils.h:227
double volk_test_get_warmup_ms()
Definition: qa_utils.cc:37
void set_tol(float tol)
Definition: qa_utils.h:91
unsigned int vlen
Definition: qa_utils.h:55
void(* volk_fn_3arg_s32fc)(void *, void *, void *, lv_32fc_t *, unsigned int, const char *)
Definition: qa_utils.h:238
std::string best_arch_u
Definition: qa_utils.h:59
bool is_complex
Definition: qa_utils.h:36
bool absolute_mode()
Definition: qa_utils.h:111
void(* volk_fn_3arg_s32f)(void *, void *, void *, float, unsigned int, const char *)
Definition: qa_utils.h:231
std::string name
Definition: qa_utils.h:53
void(* volk_fn_2arg_s32fc)(void *, void *, lv_32fc_t *, unsigned int, const char *)
Definition: qa_utils.h:237
void random_floats(float *buf, unsigned n)
data
Definition: plot_best_vs_generic.py:23
const std::vector< lv_32fc_t > & complex_edge_cases() const
Definition: qa_utils.h:114
unsigned int iter()
Definition: qa_utils.h:109
Definition: qa_utils.h:32
void volk_test_reset_warmup()
Definition: qa_utils.cc:39
volk_type_t volk_type_from_string(std::string)
Definition: qa_utils.cc:207
float tol()
Definition: qa_utils.h:106
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:77
bool benchmark_mode()
Definition: qa_utils.h:110
void(* volk_fn_3arg)(void *, void *, void *, unsigned int, const char *)
Definition: qa_utils.h:226
void(* volk_fn_2arg_s32f)(void *, void *, float, unsigned int, const char *)
Definition: qa_utils.h:230
bool is_signed
Definition: qa_utils.h:35
void add_complex_edge_cases(const std::vector< lv_32fc_t > &edge_cases)
Definition: qa_utils.h:101
std::string units
Definition: qa_utils.h:46
volk_test_params_t test_parameters()
Definition: qa_utils.h:147
__VOLK_DECL_BEGIN struct volk_func_desc volk_func_desc_t
Get description parameters for this kernel.
Definition: volk.tmpl.h:91
float complex lv_32fc_t
Definition: volk_complex.h:74
void volk_test_set_warmup_ms(double ms)
Definition: qa_utils.cc:38
std::string kernel_regex()
Definition: qa_utils.h:112
void set_benchmark(bool benchmark)
Definition: qa_utils.h:95
std::string name()
Definition: qa_utils.h:145
void(* volk_fn_1arg)(void *, unsigned int, const char *)
Definition: qa_utils.h:222
const std::vector< float > & float_edge_cases() const
Definition: qa_utils.h:113
void set_iter(unsigned int iter)
Definition: qa_utils.h:94
volk_test_case_t(volk_func_desc_t desc, void(*t_kernel_ptr)(), std::string name, std::string puppet_master_name, volk_test_params_t test_parameters)
Definition: qa_utils.h:159
unsigned int iter
Definition: qa_utils.h:56
bool is_float
Definition: qa_utils.h:33
volk_test_case_t(volk_func_desc_t desc, void(*t_kernel_ptr)(), std::string name, volk_test_params_t test_parameters)
Definition: qa_utils.h:149
void set_vlen(unsigned int vlen)
Definition: qa_utils.h:93
void(* volk_fn_1arg_s32f)(void *, float, unsigned int, const char *)
Definition: qa_utils.h:228
lv_32fc_t scalar()
Definition: qa_utils.h:107
void(* volk_fn_1arg_s32fc)(void *, lv_32fc_t *, unsigned int, const char *)
Definition: qa_utils.h:232
std::string best_arch_a
Definition: qa_utils.h:58