commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] [gnuradio] 02/06: Merge branch 'volk-qa-fixes'


From: git
Subject: [Commit-gnuradio] [gnuradio] 02/06: Merge branch 'volk-qa-fixes'
Date: Tue, 28 Jan 2014 20:10:59 +0000 (UTC)

This is an automated email from the git hooks/post-receive script.

jcorgan pushed a commit to branch master
in repository gnuradio.

commit e00ff5b4d38815da48aa958acb41588851497cb5
Merge: 8211786 eac6823
Author: Sylvain Munaut <address@hidden>
Date:   Tue Jan 28 20:35:03 2014 +0100

    Merge branch 'volk-qa-fixes'
    
    Conflicts:
        volk/apps/volk_profile.cc

 volk/apps/volk_profile.cc                          |  2 +-
 .../volk/volk_32fc_s32fc_rotatorpuppet_32fc.h      | 21 +++---
 .../kernels/volk/volk_32fc_s32fc_x2_rotator_32fc.h | 31 +++++---
 volk/lib/qa_utils.cc                               | 84 ++++++++++++++++++++--
 volk/lib/testqa.cc                                 |  2 +-
 5 files changed, 115 insertions(+), 25 deletions(-)

diff --cc volk/apps/volk_profile.cc
index 037d630,893cb55..20a70fa
--- a/volk/apps/volk_profile.cc
+++ b/volk/apps/volk_profile.cc
@@@ -16,122 -15,98 +16,122 @@@
  namespace fs = boost::filesystem;
  
  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)");
 +    boost::program_options::variables_map vm;
 +    bool benchmark_mode = false;
 +    try {
 +        
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;
 +    } 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;
 +      }
  
 -    std::vector<std::string> results;
  
 -    //VOLK_PROFILE(volk_16i_x5_add_quad_16i_x4, 1e-4, 2046, 10000, &results);
 -    //VOLK_PROFILE(volk_16i_branch_4_state_8, 1e-4, 2046, 10000, &results);
 -    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);
 -    VOLK_PROFILE(volk_16ic_s32f_deinterleave_real_32f, 1e-5, 32768.0, 204602, 
10000, &results);
 -    VOLK_PROFILE(volk_16ic_deinterleave_real_8i, 0, 0, 204602, 10000, 
&results);
 -    VOLK_PROFILE(volk_16ic_deinterleave_16i_x2, 0, 0, 204602, 10000, 
&results);
 -    VOLK_PROFILE(volk_16ic_s32f_deinterleave_32f_x2, 1e-4, 32768.0, 204602, 
1000, &results);
 -    VOLK_PROFILE(volk_16ic_deinterleave_real_16i, 0, 0, 204602, 10000, 
&results);
 -    VOLK_PROFILE(volk_16ic_magnitude_16i, 1, 0, 204602, 100, &results);
 -    VOLK_PROFILE(volk_16ic_s32f_magnitude_32f, 1e-5, 32768.0, 204602, 1000, 
&results);
 -    VOLK_PROFILE(volk_16i_s32f_convert_32f, 1e-4, 32768.0, 204602, 10000, 
&results);
 -    VOLK_PROFILE(volk_16i_convert_8i, 0, 0, 204602, 10000, &results);
 -    //VOLK_PROFILE(volk_16i_max_star_16i, 0, 0, 204602, 10000, &results);
 -    //VOLK_PROFILE(volk_16i_max_star_horizontal_16i, 0, 0, 204602, 10000, 
&results);
 -    //VOLK_PROFILE(volk_16i_permute_and_scalar_add, 1e-4, 0, 2046, 10000, 
&results);
 -    //VOLK_PROFILE(volk_16i_x4_quad_max_star_16i, 1e-4, 0, 2046, 10000, 
&results);
 -    VOLK_PROFILE(volk_16u_byteswap, 0, 0, 204602, 10000, &results);
 -    VOLK_PROFILE(volk_16i_32fc_dot_prod_32fc, 1e-4, 0, 204602, 10000, 
&results);
 -    VOLK_PROFILE(volk_32f_accumulator_s32f, 1e-4, 0, 204602, 10000, &results);
 -    VOLK_PROFILE(volk_32f_x2_add_32f, 1e-4, 0, 204602, 10000, &results);
 -    VOLK_PROFILE(volk_32fc_32f_multiply_32fc, 1e-4, 0, 204602, 1000, 
&results);
 -    VOLK_PROFILE(volk_32fc_s32f_power_32fc, 1e-4, 0, 204602, 50, &results);
 -    VOLK_PROFILE(volk_32f_s32f_calc_spectral_noise_floor_32f, 1e-4, 20.0, 
204602, 1000, &results);
 -    VOLK_PROFILE(volk_32fc_s32f_atan2_32f, 1e-4, 10.0, 204602, 100, &results);
 -    //VOLK_PROFILE(volk_32fc_x2_conjugate_dot_prod_32fc, 1e-4, 0, 2046, 
10000, &results);
 -    VOLK_PROFILE(volk_32fc_x2_conjugate_dot_prod_32fc, 1e-4, 0, 204602, 
10000, &results);
 -    VOLK_PROFILE(volk_32fc_deinterleave_32f_x2, 1e-4, 0, 204602, 1000, 
&results);
 -    VOLK_PROFILE(volk_32fc_deinterleave_64f_x2, 1e-4, 0, 204602, 1000, 
&results);
 -    VOLK_PROFILE(volk_32fc_s32f_deinterleave_real_16i, 0, 32768, 204602, 
10000, &results);
 -    VOLK_PROFILE(volk_32fc_deinterleave_imag_32f, 1e-4, 0, 204602, 5000, 
&results);
 -    VOLK_PROFILE(volk_32fc_deinterleave_real_32f, 1e-4, 0, 204602, 5000, 
&results);
 -    VOLK_PROFILE(volk_32fc_deinterleave_real_64f, 1e-4, 0, 204602, 1000, 
&results);
 -    VOLK_PROFILE(volk_32fc_x2_dot_prod_32fc, 1e-4, 0, 204602, 10000, 
&results);
 -    VOLK_PROFILE(volk_32fc_32f_dot_prod_32fc, 1e-4, 0, 204602, 10000, 
&results);
 -    VOLK_PROFILE(volk_32fc_index_max_16u, 3, 0, 204602, 10000, &results);
 -    VOLK_PROFILE(volk_32fc_s32f_magnitude_16i, 1, 32768, 204602, 100, 
&results);
 -    VOLK_PROFILE(volk_32fc_magnitude_32f, 1e-4, 0, 204602, 1000, &results);
 -    VOLK_PROFILE(volk_32fc_magnitude_squared_32f, 1e-4, 0, 204602, 1000, 
&results);
 -    VOLK_PROFILE(volk_32fc_x2_multiply_32fc, 1e-4, 0, 204602, 1000, &results);
 -    VOLK_PROFILE(volk_32fc_x2_multiply_conjugate_32fc, 1e-4, 0, 204602, 1000, 
&results);
 -    VOLK_PROFILE(volk_32fc_conjugate_32fc, 1e-4, 0, 204602, 1000, &results);
 -    VOLK_PROFILE(volk_32f_s32f_convert_16i, 1, 32768, 204602, 10000, 
&results);
 -    VOLK_PROFILE(volk_32f_s32f_convert_32i, 1, 1<<31, 204602, 10000, 
&results);
 -    VOLK_PROFILE(volk_32f_convert_64f, 1e-4, 0, 204602, 10000, &results);
 -    VOLK_PROFILE(volk_32f_s32f_convert_8i, 1, 128, 204602, 10000, &results);
 -    //VOLK_PROFILE(volk_32fc_s32f_x2_power_spectral_density_32f, 1e-4, 2046, 
10000, &results);
 -    VOLK_PROFILE(volk_32fc_s32f_power_spectrum_32f, 1e-4, 0, 20462, 100, 
&results);
 -    VOLK_PROFILE(volk_32fc_x2_square_dist_32f, 1e-4, 0, 204602, 10000, 
&results);
 -    VOLK_PROFILE(volk_32fc_x2_s32f_square_dist_scalar_mult_32f, 1e-4, 10, 
204602, 10000, &results);
 -    VOLK_PROFILE(volk_32f_x2_divide_32f, 1e-4, 0, 204602, 2000, &results);
 -    VOLK_PROFILE(volk_32f_x2_dot_prod_32f, 1e-4, 0, 204602, 5000, &results);
 -    VOLK_PROFILE(volk_32f_x2_dot_prod_16i, 1e-4, 0, 204602, 5000, &results);
 -    //VOLK_PROFILE(volk_32f_s32f_32f_fm_detect_32f, 1e-4, 2046, 10000, 
&results);
 -    VOLK_PROFILE(volk_32f_index_max_16u, 3, 0, 204602, 5000, &results);
 -    VOLK_PROFILE(volk_32f_x2_s32f_interleave_16ic, 1, 32768, 204602, 3000, 
&results);
 -    VOLK_PROFILE(volk_32f_x2_interleave_32fc, 0, 0, 204602, 5000, &results);
 -    VOLK_PROFILE(volk_32f_x2_max_32f, 1e-4, 0, 204602, 2000, &results);
 -    VOLK_PROFILE(volk_32f_x2_min_32f, 1e-4, 0, 204602, 2000, &results);
 -    VOLK_PROFILE(volk_32f_x2_multiply_32f, 1e-4, 0, 204602, 10000, &results);
 -    VOLK_PROFILE(volk_32f_s32f_normalize, 1e-4, 100, 204602, 10000, &results);
 -    VOLK_PROFILE(volk_32f_s32f_power_32f, 1e-4, 4, 204602, 100, &results);
 -    VOLK_PROFILE(volk_32f_sqrt_32f, 1e-4, 0, 204602, 100, &results);
 -    VOLK_PROFILE(volk_32f_s32f_stddev_32f, 1e-4, 100, 204602, 3000, &results);
 -    VOLK_PROFILE(volk_32f_stddev_and_mean_32f_x2, 1e-4, 0, 204602, 3000, 
&results);
 -    VOLK_PROFILE(volk_32f_x2_subtract_32f, 1e-4, 0, 204602, 5000, &results);
 -    VOLK_PROFILE(volk_32f_x3_sum_of_poly_32f, 1e-4, 0, 204602, 5000, 
&results);
 -    VOLK_PROFILE(volk_32i_x2_and_32i, 0, 0, 204602, 10000, &results);
 -    VOLK_PROFILE(volk_32i_s32f_convert_32f, 1e-4, 100, 204602, 10000, 
&results);
 -    VOLK_PROFILE(volk_32i_x2_or_32i, 0, 0, 204602, 10000, &results);
 -    VOLK_PROFILE(volk_32u_byteswap, 0, 0, 204602, 2000, &results);
 -    //VOLK_PROFILE(volk_32u_popcnt, 0, 0, 2046, 10000, &results);
 -    VOLK_PROFILE(volk_64f_convert_32f, 1e-4, 0, 204602, 10000, &results);
 -    VOLK_PROFILE(volk_64f_x2_max_64f, 1e-4, 0, 204602, 1000, &results);
 -    VOLK_PROFILE(volk_64f_x2_min_64f, 1e-4, 0, 204602, 1000, &results);
 -    VOLK_PROFILE(volk_64u_byteswap, 0, 0, 204602, 1000, &results);
 -    //VOLK_PROFILE(volk_64u_popcnt, 0, 0, 2046, 10000, &results);
 -    VOLK_PROFILE(volk_8ic_deinterleave_16i_x2, 0, 0, 204602, 3000, &results);
 -    VOLK_PROFILE(volk_8ic_s32f_deinterleave_32f_x2, 1e-4, 100, 204602, 3000, 
&results);
 -    VOLK_PROFILE(volk_8ic_deinterleave_real_16i, 0, 256, 204602, 3000, 
&results);
 -    VOLK_PROFILE(volk_8ic_s32f_deinterleave_real_32f, 1e-4, 100, 204602, 
3000, &results);
 -    VOLK_PROFILE(volk_8ic_deinterleave_real_8i, 0, 0, 204602, 10000, 
&results);
 -    VOLK_PROFILE(volk_8ic_x2_multiply_conjugate_16ic, 0, 0, 204602, 400, 
&results);
 -    VOLK_PROFILE(volk_8ic_x2_s32f_multiply_conjugate_32fc, 1e-4, 100, 204602, 
400, &results);
 -    VOLK_PROFILE(volk_8i_convert_16i, 0, 0, 204602, 20000, &results);
 -    VOLK_PROFILE(volk_8i_s32f_convert_32f, 1e-4, 100, 204602, 2000, &results);
 -    //VOLK_PROFILE(volk_32fc_s32fc_multiply_32fc, 1e-4, lv_32fc_t(1.0, 0.5), 
204602, 1000, &results);
 -    VOLK_PROFILE(volk_32fc_s32fc_multiply_32fc, 1e-4, 0, 204602, 1000, 
&results);
 -    VOLK_PROFILE(volk_32f_s32f_multiply_32f, 1e-4, 1.0, 204602, 10000, 
&results);
 +    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(.95393, .3), 20462, 
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-4, 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);
  
      char path[1024];
      volk_get_config_path(path);
diff --cc volk/lib/qa_utils.cc
index 336a4ab,8baf8f8..8b95d7d
--- a/volk/lib/qa_utils.cc
+++ b/volk/lib/qa_utils.cc
@@@ -265,13 -321,19 +321,20 @@@ bool run_volk_tests(volk_func_desc_t de
                      int vlen,
                      int iter,
                      std::vector<std::string> *best_arch_vector = 0,
 -                    std::string puppet_master_name = "NULL"
 +                    std::string puppet_master_name = "NULL",
 +                    bool benchmark_mode
                     ) {
 -    std::cout << "RUN_VOLK_TESTS: " << name << std::endl;
 +    std::cout << "RUN_VOLK_TESTS: " << name << "(" << vlen << "," << iter << 
")" << std::endl;
  
-     const float tol_f = tol;
-     const unsigned int tol_i = static_cast<unsigned int>(tol);
+     // The multiply and lv_force_cast_hf are work arounds for GNU Radio bugs 
582 and 583
+     // The bug is the casting/assignment below do not happen, which results 
in false
+     // positives when testing for errors in fcompare and icompare.
+     // Since this only happens on armhf (reported for Cortex A9 and A15) 
combined with
+     // the following fixes it is suspected to be a compiler bug. 
+     // Bug 1272024 on launchpad has been filed with Linaro GCC.
+     const float tol_f = tol*1.0000001;
+     const unsigned int tol_i = static_cast<const unsigned int>(tol);
+     lv_force_cast_hf( tol_i, tol_f );
  
      //first let's get a list of available architectures for the test
      std::vector<std::string> arch_list = get_arch_list(desc);



reply via email to

[Prev in Thread] Current Thread [Next in Thread]