[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] [gnuradio] 01/16: volk: add regex option to profile
From: |
git |
Subject: |
[Commit-gnuradio] [gnuradio] 01/16: volk: add regex option to profile |
Date: |
Sun, 16 Feb 2014 21:11:20 +0000 (UTC) |
This is an automated email from the git hooks/post-receive script.
trondeau pushed a commit to branch master
in repository gnuradio.
commit 9b37687d6ebd89c6c582be233c5ddac1390b80ed
Author: Nathan West <address@hidden>
Date: Tue Jan 28 17:40:27 2014 -0600
volk: add regex option to profile
If the given regex does not match any substring in a kernel name
then return 0 from run_volk_tests, otherwise execute the tests.
Defaults to a regex of .* to run everything, and no regex which
also runs everything for QA.
---
volk/apps/volk_profile.cc | 212 ++++++++++++++++++++++++----------------------
volk/lib/qa_utils.cc | 9 +-
volk/lib/qa_utils.h | 6 +-
3 files changed, 123 insertions(+), 104 deletions(-)
diff --git a/volk/apps/volk_profile.cc b/volk/apps/volk_profile.cc
index 3986cb6..103dfdc 100644
--- a/volk/apps/volk_profile.cc
+++ b/volk/apps/volk_profile.cc
@@ -19,119 +19,131 @@ int main(int argc, char *argv[]) {
boost::program_options::options_description desc("Options");
desc.add_options()
("help,h", "Print help messages")
- ("benchmark,b", boost::program_options::value<bool>()->default_value(
false ), "run all kernels (benchmark mode)");
- //("benchmark,b",
boost::program_options::value<bool>(&benchmark_mode)->default_value( false ),
"run all kernels (benchmark mode)");
+ ("benchmark,b",
+ boost::program_options::value<bool>()->default_value( false ),
+ "Run all kernels (benchmark mode)")
+ ("tests-regex,R",
+ boost::program_options::value<std::string>(),
+ "Run tests matching regular expression.")
+ ;
boost::program_options::variables_map vm;
- bool benchmark_mode = false;
+ bool benchmark_mode;
+ std::string kernel_regex;
try {
-
boost::program_options::store(boost::program_options::parse_command_line(argc,
argv, desc), vm);
+
boost::program_options::store(boost::program_options::parse_command_line(argc,
argv, desc), vm);
boost::program_options::notify(vm);
- benchmark_mode =
vm.count("benchmark")?vm["benchmark"].as<bool>():false;
+ benchmark_mode, kernel_regex =
vm.count("benchmark")?vm["benchmark"].as<bool>():false;
+ if ( vm.count("tests-regex" ) ) {
+ kernel_regex = vm["tests-regex"].as<std::string>();
+ }
+ else {
+ kernel_regex = ".*";
+ }
} catch (boost::program_options::error& error) {
std::cerr << "Error: " << error.what() << std::endl << std::endl;
std::cerr << desc << std::endl;
return 1;
}
/** --help option
- */
- if ( vm.count("help") )
- {
- std::cout << "Basic Command Line Parameter App" << std::endl
- << desc << std::endl;
- return 0;
- }
+*/
+ if ( vm.count("help") )
+ {
+ std::cout << "The VOLK profiler." << std::endl
+ << desc << std::endl;
+ return 0;
+ }
std::vector<std::string> results;
- //VOLK_PROFILE(volk_16i_x5_add_quad_16i_x4, 1e-4, 2046, 10000, &results,
benchmark_mode);
- //VOLK_PROFILE(volk_16i_branch_4_state_8, 1e-4, 2046, 10000, &results,
benchmark_mode);
- VOLK_PUPPET_PROFILE(volk_32fc_s32fc_rotatorpuppet_32fc,
volk_32fc_s32fc_x2_rotator_32fc, 1e-2, (lv_32fc_t)lv_cmake(0.953939201, 0.3),
20462, 10000, &results, benchmark_mode);
- VOLK_PROFILE(volk_16ic_s32f_deinterleave_real_32f, 1e-5, 32768.0, 204602,
10000, &results, benchmark_mode);
- VOLK_PROFILE(volk_16ic_deinterleave_real_8i, 0, 0, 204602, 10000,
&results, benchmark_mode);
- VOLK_PROFILE(volk_16ic_deinterleave_16i_x2, 0, 0, 204602, 10000, &results,
benchmark_mode);
- VOLK_PROFILE(volk_16ic_s32f_deinterleave_32f_x2, 1e-4, 32768.0, 204602,
1000, &results, benchmark_mode);
- VOLK_PROFILE(volk_16ic_deinterleave_real_16i, 0, 0, 204602, 10000,
&results, benchmark_mode);
- VOLK_PROFILE(volk_16ic_magnitude_16i, 1, 0, 204602, 100, &results,
benchmark_mode);
- VOLK_PROFILE(volk_16ic_s32f_magnitude_32f, 1e-5, 32768.0, 204602, 1000,
&results, benchmark_mode);
- VOLK_PROFILE(volk_16i_s32f_convert_32f, 1e-4, 32768.0, 204602, 10000,
&results, benchmark_mode);
- VOLK_PROFILE(volk_16i_convert_8i, 0, 0, 204602, 10000, &results,
benchmark_mode);
- //VOLK_PROFILE(volk_16i_max_star_16i, 0, 0, 204602, 10000, &results,
benchmark_mode);
- //VOLK_PROFILE(volk_16i_max_star_horizontal_16i, 0, 0, 204602, 10000,
&results, benchmark_mode);
- //VOLK_PROFILE(volk_16i_permute_and_scalar_add, 1e-4, 0, 2046, 10000,
&results, benchmark_mode);
- //VOLK_PROFILE(volk_16i_x4_quad_max_star_16i, 1e-4, 0, 2046, 10000,
&results, benchmark_mode);
- VOLK_PROFILE(volk_16u_byteswap, 0, 0, 204602, 10000, &results,
benchmark_mode);
- VOLK_PROFILE(volk_16i_32fc_dot_prod_32fc, 1e-4, 0, 204602, 10000,
&results, benchmark_mode);
- VOLK_PROFILE(volk_32f_accumulator_s32f, 1e-4, 0, 204602, 10000, &results,
benchmark_mode);
- VOLK_PROFILE(volk_32f_x2_add_32f, 1e-4, 0, 204602, 10000, &results,
benchmark_mode);
- VOLK_PROFILE(volk_32fc_32f_multiply_32fc, 1e-4, 0, 204602, 1000, &results,
benchmark_mode);
- VOLK_PROFILE(volk_32fc_s32f_power_32fc, 1e-4, 0, 204602, 50, &results,
benchmark_mode);
- VOLK_PROFILE(volk_32f_s32f_calc_spectral_noise_floor_32f, 1e-4, 20.0,
204602, 1000, &results, benchmark_mode);
- VOLK_PROFILE(volk_32fc_s32f_atan2_32f, 1e-4, 10.0, 204602, 100, &results,
benchmark_mode);
- //VOLK_PROFILE(volk_32fc_x2_conjugate_dot_prod_32fc, 1e-4, 0, 2046, 10000,
&results, benchmark_mode);
- VOLK_PROFILE(volk_32fc_x2_conjugate_dot_prod_32fc, 1e-4, 0, 204602, 10000,
&results, benchmark_mode);
- VOLK_PROFILE(volk_32fc_deinterleave_32f_x2, 1e-4, 0, 204602, 1000,
&results, benchmark_mode);
- VOLK_PROFILE(volk_32fc_deinterleave_64f_x2, 1e-4, 0, 204602, 1000,
&results, benchmark_mode);
- VOLK_PROFILE(volk_32fc_s32f_deinterleave_real_16i, 0, 32768, 204602,
10000, &results, benchmark_mode);
- VOLK_PROFILE(volk_32fc_deinterleave_imag_32f, 1e-4, 0, 204602, 5000,
&results, benchmark_mode);
- VOLK_PROFILE(volk_32fc_deinterleave_real_32f, 1e-4, 0, 204602, 5000,
&results, benchmark_mode);
- VOLK_PROFILE(volk_32fc_deinterleave_real_64f, 1e-4, 0, 204602, 1000,
&results, benchmark_mode);
- VOLK_PROFILE(volk_32fc_x2_dot_prod_32fc, 1e-4, 0, 204602, 10000, &results,
benchmark_mode);
- VOLK_PROFILE(volk_32fc_32f_dot_prod_32fc, 1e-4, 0, 204602, 10000,
&results, benchmark_mode);
- VOLK_PROFILE(volk_32fc_index_max_16u, 3, 0, 204602, 10000, &results,
benchmark_mode);
- VOLK_PROFILE(volk_32fc_s32f_magnitude_16i, 1, 32768, 204602, 100,
&results, benchmark_mode);
- VOLK_PROFILE(volk_32fc_magnitude_32f, 1e-4, 0, 204602, 1000, &results,
benchmark_mode);
- VOLK_PROFILE(volk_32fc_magnitude_squared_32f, 1e-4, 0, 204602, 1000,
&results, benchmark_mode);
- VOLK_PROFILE(volk_32fc_x2_multiply_32fc, 1e-4, 0, 204602, 1000, &results,
benchmark_mode);
- VOLK_PROFILE(volk_32fc_x2_multiply_conjugate_32fc, 1e-4, 0, 204602, 1000,
&results, benchmark_mode);
- VOLK_PROFILE(volk_32fc_conjugate_32fc, 1e-4, 0, 204602, 1000, &results,
benchmark_mode);
- VOLK_PROFILE(volk_32f_s32f_convert_16i, 1, 32768, 204602, 10000, &results,
benchmark_mode);
- VOLK_PROFILE(volk_32f_s32f_convert_32i, 1, 1<<31, 204602, 10000, &results,
benchmark_mode);
- VOLK_PROFILE(volk_32f_convert_64f, 1e-4, 0, 204602, 10000, &results,
benchmark_mode);
- VOLK_PROFILE(volk_32f_s32f_convert_8i, 1, 128, 204602, 10000, &results,
benchmark_mode);
- //VOLK_PROFILE(volk_32fc_s32f_x2_power_spectral_density_32f, 1e-4, 2046,
10000, &results, benchmark_mode);
- VOLK_PROFILE(volk_32fc_s32f_power_spectrum_32f, 1e-4, 0, 20462, 100,
&results, benchmark_mode);
- VOLK_PROFILE(volk_32fc_x2_square_dist_32f, 1e-4, 0, 204602, 10000,
&results, benchmark_mode);
- VOLK_PROFILE(volk_32fc_x2_s32f_square_dist_scalar_mult_32f, 1e-4, 10,
204602, 10000, &results, benchmark_mode);
- VOLK_PROFILE(volk_32f_x2_divide_32f, 1e-4, 0, 204602, 2000, &results,
benchmark_mode);
- VOLK_PROFILE(volk_32f_x2_dot_prod_32f, 1e-4, 0, 204602, 5000, &results,
benchmark_mode);
- VOLK_PROFILE(volk_32f_x2_dot_prod_16i, 1e-4, 0, 204602, 5000, &results,
benchmark_mode);
- //VOLK_PROFILE(volk_32f_s32f_32f_fm_detect_32f, 1e-4, 2046, 10000,
&results, benchmark_mode);
- VOLK_PROFILE(volk_32f_index_max_16u, 3, 0, 204602, 5000, &results,
benchmark_mode);
- VOLK_PROFILE(volk_32f_x2_s32f_interleave_16ic, 1, 32768, 204602, 3000,
&results, benchmark_mode);
- VOLK_PROFILE(volk_32f_x2_interleave_32fc, 0, 0, 204602, 5000, &results,
benchmark_mode);
- VOLK_PROFILE(volk_32f_x2_max_32f, 1e-4, 0, 204602, 2000, &results,
benchmark_mode);
- VOLK_PROFILE(volk_32f_x2_min_32f, 1e-4, 0, 204602, 2000, &results,
benchmark_mode);
- VOLK_PROFILE(volk_32f_x2_multiply_32f, 1e-4, 0, 204602, 10000, &results,
benchmark_mode);
- VOLK_PROFILE(volk_32f_s32f_normalize, 1e-4, 100, 204602, 10000, &results,
benchmark_mode);
- VOLK_PROFILE(volk_32f_s32f_power_32f, 1e-4, 4, 204602, 100, &results,
benchmark_mode);
- VOLK_PROFILE(volk_32f_sqrt_32f, 1e-4, 0, 204602, 100, &results,
benchmark_mode);
- VOLK_PROFILE(volk_32f_s32f_stddev_32f, 1e-4, 100, 204602, 3000, &results,
benchmark_mode);
- VOLK_PROFILE(volk_32f_stddev_and_mean_32f_x2, 1e-4, 0, 204602, 3000,
&results, benchmark_mode);
- VOLK_PROFILE(volk_32f_x2_subtract_32f, 1e-4, 0, 204602, 5000, &results,
benchmark_mode);
- VOLK_PROFILE(volk_32f_x3_sum_of_poly_32f, 1e-2, 0, 204602, 5000, &results,
benchmark_mode);
- VOLK_PROFILE(volk_32i_x2_and_32i, 0, 0, 204602, 10000, &results,
benchmark_mode);
- VOLK_PROFILE(volk_32i_s32f_convert_32f, 1e-4, 100, 204602, 10000,
&results, benchmark_mode);
- VOLK_PROFILE(volk_32i_x2_or_32i, 0, 0, 204602, 10000, &results,
benchmark_mode);
- VOLK_PROFILE(volk_32u_byteswap, 0, 0, 204602, 2000, &results,
benchmark_mode);
- //VOLK_PROFILE(volk_32u_popcnt, 0, 0, 2046, 10000, &results,
benchmark_mode);
- VOLK_PROFILE(volk_64f_convert_32f, 1e-4, 0, 204602, 10000, &results,
benchmark_mode);
- VOLK_PROFILE(volk_64f_x2_max_64f, 1e-4, 0, 204602, 1000, &results,
benchmark_mode);
- VOLK_PROFILE(volk_64f_x2_min_64f, 1e-4, 0, 204602, 1000, &results,
benchmark_mode);
- VOLK_PROFILE(volk_64u_byteswap, 0, 0, 204602, 1000, &results,
benchmark_mode);
- //VOLK_PROFILE(volk_64u_popcnt, 0, 0, 2046, 10000, &results,
benchmark_mode);
- VOLK_PROFILE(volk_8ic_deinterleave_16i_x2, 0, 0, 204602, 3000, &results,
benchmark_mode);
- VOLK_PROFILE(volk_8ic_s32f_deinterleave_32f_x2, 1e-4, 100, 204602, 3000,
&results, benchmark_mode);
- VOLK_PROFILE(volk_8ic_deinterleave_real_16i, 0, 256, 204602, 3000,
&results, benchmark_mode);
- VOLK_PROFILE(volk_8ic_s32f_deinterleave_real_32f, 1e-4, 100, 204602, 3000,
&results, benchmark_mode);
- VOLK_PROFILE(volk_8ic_deinterleave_real_8i, 0, 0, 204602, 10000, &results,
benchmark_mode);
- VOLK_PROFILE(volk_8ic_x2_multiply_conjugate_16ic, 0, 0, 204602, 400,
&results, benchmark_mode);
- VOLK_PROFILE(volk_8ic_x2_s32f_multiply_conjugate_32fc, 1e-4, 100, 204602,
400, &results, benchmark_mode);
- VOLK_PROFILE(volk_8i_convert_16i, 0, 0, 204602, 20000, &results,
benchmark_mode);
- VOLK_PROFILE(volk_8i_s32f_convert_32f, 1e-4, 100, 204602, 2000, &results,
benchmark_mode);
- //VOLK_PROFILE(volk_32fc_s32fc_multiply_32fc, 1e-4, lv_32fc_t(1.0, 0.5),
204602, 1000, &results, benchmark_mode);
- VOLK_PROFILE(volk_32fc_s32fc_multiply_32fc, 1e-4, 0, 204602, 1000,
&results, benchmark_mode);
- VOLK_PROFILE(volk_32f_s32f_multiply_32f, 1e-4, 1.0, 204602, 10000,
&results, benchmark_mode);
+ //VOLK_PROFILE(volk_16i_x5_add_quad_16i_x4, 1e-4, 2046, 10000, &results,
benchmark_mode, kernel_regex);
+ //VOLK_PROFILE(volk_16i_branch_4_state_8, 1e-4, 2046, 10000, &results,
benchmark_mode, kernel_regex);
+ VOLK_PUPPET_PROFILE(volk_32fc_s32fc_rotatorpuppet_32fc,
volk_32fc_s32fc_x2_rotator_32fc, 1e-2, (lv_32fc_t)lv_cmake(0.953939201, 0.3),
20462, 10000, &results, benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_16ic_s32f_deinterleave_real_32f, 1e-5, 32768.0, 204602,
10000, &results, benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_16ic_deinterleave_real_8i, 0, 0, 204602, 10000,
&results, benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_16ic_deinterleave_16i_x2, 0, 0, 204602, 10000, &results,
benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_16ic_s32f_deinterleave_32f_x2, 1e-4, 32768.0, 204602,
1000, &results, benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_16ic_deinterleave_real_16i, 0, 0, 204602, 10000,
&results, benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_16ic_magnitude_16i, 1, 0, 204602, 100, &results,
benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_16ic_s32f_magnitude_32f, 1e-5, 32768.0, 204602, 1000,
&results, benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_16i_s32f_convert_32f, 1e-4, 32768.0, 204602, 10000,
&results, benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_16i_convert_8i, 0, 0, 204602, 10000, &results,
benchmark_mode, kernel_regex);
+ //VOLK_PROFILE(volk_16i_max_star_16i, 0, 0, 204602, 10000, &results,
benchmark_mode, kernel_regex);
+ //VOLK_PROFILE(volk_16i_max_star_horizontal_16i, 0, 0, 204602, 10000,
&results, benchmark_mode, kernel_regex);
+ //VOLK_PROFILE(volk_16i_permute_and_scalar_add, 1e-4, 0, 2046, 10000,
&results, benchmark_mode, kernel_regex);
+ //VOLK_PROFILE(volk_16i_x4_quad_max_star_16i, 1e-4, 0, 2046, 10000,
&results, benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_16u_byteswap, 0, 0, 204602, 10000, &results,
benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_16i_32fc_dot_prod_32fc, 1e-4, 0, 204602, 10000,
&results, benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32f_accumulator_s32f, 1e-4, 0, 204602, 10000, &results,
benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32f_x2_add_32f, 1e-4, 0, 204602, 10000, &results,
benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32fc_32f_multiply_32fc, 1e-4, 0, 204602, 1000, &results,
benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32fc_s32f_power_32fc, 1e-4, 0, 204602, 50, &results,
benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32f_s32f_calc_spectral_noise_floor_32f, 1e-4, 20.0,
204602, 1000, &results, benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32fc_s32f_atan2_32f, 1e-4, 10.0, 204602, 100, &results,
benchmark_mode, kernel_regex);
+ //VOLK_PROFILE(volk_32fc_x2_conjugate_dot_prod_32fc, 1e-4, 0, 2046, 10000,
&results, benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32fc_x2_conjugate_dot_prod_32fc, 1e-4, 0, 204602, 10000,
&results, benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32fc_deinterleave_32f_x2, 1e-4, 0, 204602, 1000,
&results, benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32fc_deinterleave_64f_x2, 1e-4, 0, 204602, 1000,
&results, benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32fc_s32f_deinterleave_real_16i, 0, 32768, 204602,
10000, &results, benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32fc_deinterleave_imag_32f, 1e-4, 0, 204602, 5000,
&results, benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32fc_deinterleave_real_32f, 1e-4, 0, 204602, 5000,
&results, benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32fc_deinterleave_real_64f, 1e-4, 0, 204602, 1000,
&results, benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32fc_x2_dot_prod_32fc, 1e-4, 0, 204602, 10000, &results,
benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32fc_32f_dot_prod_32fc, 1e-4, 0, 204602, 10000,
&results, benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32fc_index_max_16u, 3, 0, 204602, 10000, &results,
benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32fc_s32f_magnitude_16i, 1, 32768, 204602, 100,
&results, benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32fc_magnitude_32f, 1e-4, 0, 204602, 1000, &results,
benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32fc_magnitude_squared_32f, 1e-4, 0, 204602, 1000,
&results, benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32fc_x2_multiply_32fc, 1e-4, 0, 204602, 1000, &results,
benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32fc_x2_multiply_conjugate_32fc, 1e-4, 0, 204602, 1000,
&results, benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32fc_conjugate_32fc, 1e-4, 0, 204602, 1000, &results,
benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32f_s32f_convert_16i, 1, 32768, 204602, 10000, &results,
benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32f_s32f_convert_32i, 1, 1<<31, 204602, 10000, &results,
benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32f_convert_64f, 1e-4, 0, 204602, 10000, &results,
benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32f_s32f_convert_8i, 1, 128, 204602, 10000, &results,
benchmark_mode, kernel_regex);
+ //VOLK_PROFILE(volk_32fc_s32f_x2_power_spectral_density_32f, 1e-4, 2046,
10000, &results, benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32fc_s32f_power_spectrum_32f, 1e-4, 0, 20462, 100,
&results, benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32fc_x2_square_dist_32f, 1e-4, 0, 204602, 10000,
&results, benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32fc_x2_s32f_square_dist_scalar_mult_32f, 1e-4, 10,
204602, 10000, &results, benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32f_x2_divide_32f, 1e-4, 0, 204602, 2000, &results,
benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32f_x2_dot_prod_32f, 1e-4, 0, 204602, 5000, &results,
benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32f_x2_dot_prod_16i, 1e-4, 0, 204602, 5000, &results,
benchmark_mode, kernel_regex);
+ //VOLK_PROFILE(volk_32f_s32f_32f_fm_detect_32f, 1e-4, 2046, 10000,
&results, benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32f_index_max_16u, 3, 0, 204602, 5000, &results,
benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32f_x2_s32f_interleave_16ic, 1, 32768, 204602, 3000,
&results, benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32f_x2_interleave_32fc, 0, 0, 204602, 5000, &results,
benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32f_x2_max_32f, 1e-4, 0, 204602, 2000, &results,
benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32f_x2_min_32f, 1e-4, 0, 204602, 2000, &results,
benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32f_x2_multiply_32f, 1e-4, 0, 204602, 10000, &results,
benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32f_s32f_normalize, 1e-4, 100, 204602, 10000, &results,
benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32f_s32f_power_32f, 1e-4, 4, 204602, 100, &results,
benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32f_sqrt_32f, 1e-4, 0, 204602, 100, &results,
benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32f_s32f_stddev_32f, 1e-4, 100, 204602, 3000, &results,
benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32f_stddev_and_mean_32f_x2, 1e-4, 0, 204602, 3000,
&results, benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32f_x2_subtract_32f, 1e-4, 0, 204602, 5000, &results,
benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32f_x3_sum_of_poly_32f, 1e-2, 0, 204602, 5000, &results,
benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32i_x2_and_32i, 0, 0, 204602, 10000, &results,
benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32i_s32f_convert_32f, 1e-4, 100, 204602, 10000,
&results, benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32i_x2_or_32i, 0, 0, 204602, 10000, &results,
benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32u_byteswap, 0, 0, 204602, 2000, &results,
benchmark_mode, kernel_regex);
+ //VOLK_PROFILE(volk_32u_popcnt, 0, 0, 2046, 10000, &results,
benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_64f_convert_32f, 1e-4, 0, 204602, 10000, &results,
benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_64f_x2_max_64f, 1e-4, 0, 204602, 1000, &results,
benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_64f_x2_min_64f, 1e-4, 0, 204602, 1000, &results,
benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_64u_byteswap, 0, 0, 204602, 1000, &results,
benchmark_mode, kernel_regex);
+ //VOLK_PROFILE(volk_64u_popcnt, 0, 0, 2046, 10000, &results,
benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_8ic_deinterleave_16i_x2, 0, 0, 204602, 3000, &results,
benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_8ic_s32f_deinterleave_32f_x2, 1e-4, 100, 204602, 3000,
&results, benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_8ic_deinterleave_real_16i, 0, 256, 204602, 3000,
&results, benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_8ic_s32f_deinterleave_real_32f, 1e-4, 100, 204602, 3000,
&results, benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_8ic_deinterleave_real_8i, 0, 0, 204602, 10000, &results,
benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_8ic_x2_multiply_conjugate_16ic, 0, 0, 204602, 400,
&results, benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_8ic_x2_s32f_multiply_conjugate_32fc, 1e-4, 100, 204602,
400, &results, benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_8i_convert_16i, 0, 0, 204602, 20000, &results,
benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_8i_s32f_convert_32f, 1e-4, 100, 204602, 2000, &results,
benchmark_mode, kernel_regex);
+ //VOLK_PROFILE(volk_32fc_s32fc_multiply_32fc, 1e-4, lv_32fc_t(1.0, 0.5),
204602, 1000, &results, benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32fc_s32fc_multiply_32fc, 1e-4, 0, 204602, 1000,
&results, benchmark_mode, kernel_regex);
+ VOLK_PROFILE(volk_32f_s32f_multiply_32f, 1e-4, 1.0, 204602, 10000,
&results, benchmark_mode, kernel_regex);
char path[1024];
volk_get_config_path(path);
diff --git a/volk/lib/qa_utils.cc b/volk/lib/qa_utils.cc
index 8b95d7d..8007fe7 100644
--- a/volk/lib/qa_utils.cc
+++ b/volk/lib/qa_utils.cc
@@ -3,6 +3,7 @@
#include <boost/foreach.hpp>
#include <boost/assign/list_of.hpp>
#include <boost/tokenizer.hpp>
+#include <boost/xpressive/xpressive.hpp>
#include <iostream>
#include <vector>
#include <list>
@@ -322,8 +323,14 @@ bool run_volk_tests(volk_func_desc_t desc,
int iter,
std::vector<std::string> *best_arch_vector = 0,
std::string puppet_master_name = "NULL",
- bool benchmark_mode
+ bool benchmark_mode,
+ std::string kernel_regex
) {
+ boost::xpressive::sregex kernel_expression =
boost::xpressive::sregex::compile(kernel_regex);
+ if( !boost::xpressive::regex_search(name, kernel_expression) ) {
+ // in this case we have a regex and are only looking to test one kernel
+ return false;
+ }
std::cout << "RUN_VOLK_TESTS: " << name << "(" << vlen << "," << iter <<
")" << std::endl;
// The multiply and lv_force_cast_hf are work arounds for GNU Radio bugs
582 and 583
diff --git a/volk/lib/qa_utils.h b/volk/lib/qa_utils.h
index 0ede962..fc1a023 100644
--- a/volk/lib/qa_utils.h
+++ b/volk/lib/qa_utils.h
@@ -21,12 +21,12 @@ volk_type_t volk_type_from_string(std::string);
float uniform(void);
void random_floats(float *buf, unsigned n);
-bool run_volk_tests(volk_func_desc_t, void(*)(), std::string, float,
lv_32fc_t, int, int, std::vector<std::string> *, std::string, bool
benchmark_mode=false);
+bool run_volk_tests(volk_func_desc_t, void(*)(), std::string, float,
lv_32fc_t, int, int, std::vector<std::string> *, std::string, bool
benchmark_mode=false, std::string kernel_regex="");
#define VOLK_RUN_TESTS(func, tol, scalar, len, iter)
BOOST_AUTO_TEST_CASE(func##_test) {
BOOST_CHECK_EQUAL(run_volk_tests(func##_get_func_desc(), (void
(*)())func##_manual, std::string(#func), tol, scalar, len, iter, 0, "NULL"),
0); }
-#define VOLK_PROFILE(func, tol, scalar, len, iter, results, bnmode)
run_volk_tests(func##_get_func_desc(), (void (*)())func##_manual,
std::string(#func), tol, scalar, len, iter, results, "NULL", bnmode)
-#define VOLK_PUPPET_PROFILE(func, puppet_master_func, tol, scalar, len, iter,
results, bnmode) run_volk_tests(func##_get_func_desc(), (void
(*)())func##_manual, std::string(#func), tol, scalar, len, iter, results,
std::string(#puppet_master_func), bnmode)
+#define VOLK_PROFILE(func, tol, scalar, len, iter, results, bnmode,
kernel_regex) run_volk_tests(func##_get_func_desc(), (void (*)())func##_manual,
std::string(#func), tol, scalar, len, iter, results, "NULL", bnmode,
kernel_regex)
+#define VOLK_PUPPET_PROFILE(func, puppet_master_func, tol, scalar, len, iter,
results, bnmode, kernel_regex) run_volk_tests(func##_get_func_desc(), (void
(*)())func##_manual, std::string(#func), tol, scalar, len, iter, results,
std::string(#puppet_master_func), bnmode, kernel_regex)
typedef void (*volk_fn_1arg)(void *, unsigned int, const char*); //one input,
operate in place
typedef void (*volk_fn_2arg)(void *, void *, unsigned int, const char*);
typedef void (*volk_fn_3arg)(void *, void *, void *, unsigned int, const
char*);
- [Commit-gnuradio] [gnuradio] branch master updated (295ba35 -> cf8997c), git, 2014/02/16
- [Commit-gnuradio] [gnuradio] 05/16: grc: move xterm pref to Constants.py, git, 2014/02/16
- [Commit-gnuradio] [gnuradio] 07/16: runtime: warn when dropping asynchronous messages due to full asynch message queue, increase default asynch max buffer depth to 8192, git, 2014/02/16
- [Commit-gnuradio] [gnuradio] 08/16: Merge remote-tracking branch 'nwest/volk-regex', git, 2014/02/16
- [Commit-gnuradio] [gnuradio] 01/16: volk: add regex option to profile,
git <=
- [Commit-gnuradio] [gnuradio] 09/16: Merge remote-tracking branch 'mbant/hpd-timing2', git, 2014/02/16
- [Commit-gnuradio] [gnuradio] 02/16: digital: HPD now supports time- and other special tags, can mark rx-time of packets, git, 2014/02/16
- [Commit-gnuradio] [gnuradio] 11/16: Merge remote-tracking branch 'riatsila/patch-3', git, 2014/02/16
- [Commit-gnuradio] [gnuradio] 04/16: grc: For "No GUI" option, you can now choose which terminal type you like, git, 2014/02/16
- [Commit-gnuradio] [gnuradio] 13/16: logger: setup logger for the tpb scheduler; fixes a swig issue when logger is not present., git, 2014/02/16
- [Commit-gnuradio] [gnuradio] 03/16: digital: HPD consume-behaviour adapted to allow for trigger jitter, git, 2014/02/16
- [Commit-gnuradio] [gnuradio] 10/16: Merge remote-tracking branch 'gnuradio-wg-grc/grc_config_xterm', git, 2014/02/16
- [Commit-gnuradio] [gnuradio] 06/16: grc: format xml fail msg to support python 2.6, git, 2014/02/16
- [Commit-gnuradio] [gnuradio] 12/16: Merge branch 'maint', git, 2014/02/16
- [Commit-gnuradio] [gnuradio] 14/16: blocks: random_pdu (speedup, also allow a byte mask), message_strobe_random (new block, send messages with a known timing distribution), git, 2014/02/16