Friday, November 15, 2019

Re: How to tell whether gnuradio is using NEON or not?

Hi Amr,

that just either means that the kernel has no NEON implementation so
far, so generic is the only choice, or, and that's *good* news, the
compiler has gotten so smart that it outranks hand-written code.

Best regards,
Marcus

On Fri, 2019-11-15 at 14:01 +0300, Amr Bekhit wrote:
> Going back to this problem, I recently set up a fresh Raspberry Pi 4
> system using Ubuntu Server 19.10 and compiled GNU Radio v3.7.13.5 from
> source, which also compiled the built in Volk. I then ran volk_profile
> and was surprised to find that the generic machine was very often
> faster than NEON, and that most of the entries in volk_config
> preferred the generic machine. This seems incorrect - what could the
> mistake be?
>
> ==================================================
> Here are the build settings:
>
> ubuntu@ubuntu:~$ uname -a
> Linux ubuntu 5.3.0-1012-raspi2 #14-Ubuntu SMP Mon Nov 11 10:06:55 UTC
> 2019 aarch64 aarch64 aarch64 GNU/Linux
>
> ubuntu@ubuntu:~$ volk-config-info --version
> 2.0
>
> ubuntu@ubuntu:~$ volk-config-info --cc
> cc (Ubuntu 9.2.1-9ubuntu2) 9.2.1 20191008
>
> ubuntu@ubuntu:~$ volk-config-info --cflags
> /usr/bin/cc:::-O3 -DNDEBUG -std=gnu99 -fvisibility=hidden
> -Wsign-compare -Wall -Wno-uninitialized -Wall
> /usr/bin/c++:::-O3 -DNDEBUG -fvisibility=hidden -Wsign-compare -Wall
> -Wno-uninitialized -Wall
> generic_orc:::GNU:::-O3 -DNDEBUG -std=gnu99 -fvisibility=hidden
> -Wsign-compare -Wall -Wno-uninitialized -Wall
> neon_orc:::GNU:::-O3 -DNDEBUG -std=gnu99 -fvisibility=hidden
> -Wsign-compare -Wall -Wno-uninitialized -Wall
> -funsafe-math-optimizations
> neonv8:::GNU:::-O3 -DNDEBUG -std=gnu99 -fvisibility=hidden
> -Wsign-compare -Wall -Wno-uninitialized -Wall
> -funsafe-math-optimizations -funsafe-math-optimizations
>
> ubuntu@ubuntu:~$ volk-config-info --avail-machines
> generic_orc;neon_orc;neonv8;
>
> volk-config-info --machine
> neon_orc
>
> ==================================================
> Here's the output of volk_profile:
>
> ubuntu@ubuntu:~$ volk_profile
> RUN_VOLK_TESTS: volk_64u_popcntpuppet_64u(131071,1987)
> generic completed in 1312.04 ms
> neon completed in 1378.97 ms
> Best aligned arch: generic
> Best unaligned arch: generic
> RUN_VOLK_TESTS: volk_64u_popcntpuppet_64u(131071,1987)
> generic completed in 1292.81 ms
> neon completed in 1390.73 ms
> Best aligned arch: generic
> Best unaligned arch: generic
> RUN_VOLK_TESTS: volk_64u_popcntpuppet_64u(131071,1987)
> generic completed in 1311.04 ms
> neon completed in 1397.88 ms
> Best aligned arch: generic
> Best unaligned arch: generic
> RUN_VOLK_TESTS: volk_16u_byteswappuppet_16u(131071,1987)
> generic completed in 224.223 ms
> neon completed in 278.588 ms
> neon_table completed in 359.529 ms
> Best aligned arch: generic
> Best unaligned arch: generic
> RUN_VOLK_TESTS: volk_32u_byteswappuppet_32u(131071,1987)
> generic completed in 425.049 ms
> neon completed in 752.16 ms
> Best aligned arch: generic
> Best unaligned arch: generic
> RUN_VOLK_TESTS: volk_32u_popcntpuppet_32u(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_64u_byteswappuppet_64u(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_32fc_s32fc_rotatorpuppet_32fc(131071,1987)
> generic completed in 2390.53 ms
> neon completed in 927.447 ms
> Best aligned arch: neon
> Best unaligned arch: neon
> RUN_VOLK_TESTS: volk_8u_conv_k7_r2puppet_8u(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_32f_x2_fm_detectpuppet_32f(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_16ic_s32f_deinterleave_real_32f(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_16ic_deinterleave_real_8i(131071,1987)
> generic completed in 118.046 ms
> neon completed in 108.788 ms
> u_orc completed in 133.196 ms
> Best aligned arch: neon
> Best unaligned arch: neon
> RUN_VOLK_TESTS: volk_16ic_deinterleave_16i_x2(131071,1987)
> generic completed in 279.341 ms
> u_orc completed in 625.402 ms
> Best aligned arch: generic
> Best unaligned arch: generic
> RUN_VOLK_TESTS: volk_16ic_s32f_deinterleave_32f_x2(131071,1987)
> generic completed in 602.508 ms
> neon completed in 611.587 ms
> u_orc completed in 5000.92 ms
> Best aligned arch: generic
> Best unaligned arch: generic
> RUN_VOLK_TESTS: volk_16ic_deinterleave_real_16i(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_16ic_magnitude_16i(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_16ic_s32f_magnitude_32f(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_16ic_convert_32fc(131071,1987)
> generic completed in 599.708 ms
> neon completed in 604.177 ms
> Best aligned arch: generic
> Best unaligned arch: generic
> RUN_VOLK_TESTS: volk_16ic_x2_multiply_16ic(131071,1987)
> generic completed in 498.56 ms
> neon completed in 679.4 ms
> Best aligned arch: generic
> Best unaligned arch: generic
> RUN_VOLK_TESTS: volk_16ic_x2_dot_prod_16ic(131071,1987)
> generic completed in 1834.92 ms
> neon completed in 501 ms
> neon_vma completed in 493.526 ms
> neon_optvma completed in 463.412 ms
> Best aligned arch: neon_optvma
> Best unaligned arch: neon_optvma
> RUN_VOLK_TESTS: volk_16i_s32f_convert_32f(131071,1987)
> generic completed in 293.52 ms
> neon completed in 298.105 ms
> a_generic completed in 292.449 ms
> Best aligned arch: a_generic
> Best unaligned arch: generic
> RUN_VOLK_TESTS: volk_16i_convert_8i(131071,1987)
> generic completed in 73.3278 ms
> neon completed in 68.9267 ms
> a_generic completed in 71.4697 ms
> Best aligned arch: neon
> Best unaligned arch: neon
> RUN_VOLK_TESTS: volk_16i_32fc_dot_prod_32fc(131071,1987)
> generic completed in 615.96 ms
> neon completed in 527.004 ms
> Best aligned arch: neon
> Best unaligned arch: neon
> RUN_VOLK_TESTS: volk_32f_accumulator_s32f(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_32f_x2_add_32f(131071,1987)
> generic completed in 417.242 ms
> u_neon completed in 459.361 ms
> a_generic completed in 430.394 ms
> u_orc completed in 734.159 ms
> Best aligned arch: generic
> Best unaligned arch: generic
> RUN_VOLK_TESTS: volk_32f_index_max_16u(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_32f_index_max_32u(131071,1987)
> neon completed in 238.318 ms
> generic completed in 1046.45 ms
> Best aligned arch: neon
> Best unaligned arch: neon
> RUN_VOLK_TESTS: volk_32fc_32f_multiply_32fc(131071,1987)
> generic completed in 979.376 ms
> neon completed in 996.54 ms
> u_orc completed in 3279.32 ms
> Best aligned arch: generic
> Best unaligned arch: generic
> RUN_VOLK_TESTS: volk_32fc_32f_add_32fc(131071,1987)
> generic completed in 984.833 ms
> neon completed in 1064.82 ms
> Best aligned arch: generic
> Best unaligned arch: generic
> RUN_VOLK_TESTS: volk_32f_log2_32f(131071,1987)
> generic completed in 5455.96 ms
> neon completed in 1064.43 ms
> u_generic completed in 5461.32 ms
> Best aligned arch: neon
> Best unaligned arch: neon
> RUN_VOLK_TESTS: volk_32f_expfast_32f(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_32f_x2_pow_32f(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_32f_sin_32f(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_32f_cos_32f(131071,1987)
> generic_fast completed in 18612.3 ms
> generic completed in 4382.14 ms
> Best aligned arch: generic
> Best unaligned arch: generic
> RUN_VOLK_TESTS: volk_32f_tan_32f(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_32f_atan_32f(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_32f_asin_32f(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_32f_acos_32f(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_32fc_s32f_power_32fc(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_32f_s32f_calc_spectral_noise_floor_32f(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_32fc_s32f_atan2_32f(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_32fc_x2_conjugate_dot_prod_32fc(131071,1987)
> generic completed in 1532.56 ms
> neon completed in 1106.66 ms
> a_generic completed in 2066.88 ms
> Best aligned arch: neon
> Best unaligned arch: neon
> RUN_VOLK_TESTS: volk_32fc_deinterleave_32f_x2(131071,1987)
> neon completed in 756.809 ms
> generic completed in 767.769 ms
> Best aligned arch: neon
> Best unaligned arch: neon
> RUN_VOLK_TESTS: volk_32fc_deinterleave_64f_x2(131071,1987)
> generic completed in 1389.85 ms
> a_generic completed in 1400.86 ms
> Best aligned arch: generic
> Best unaligned arch: generic
> RUN_VOLK_TESTS: volk_32fc_s32f_deinterleave_real_16i(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_32fc_deinterleave_imag_32f(131071,1987)
> neon completed in 441.163 ms
> generic completed in 422.426 ms
> Best aligned arch: generic
> Best unaligned arch: generic
> RUN_VOLK_TESTS: volk_32fc_deinterleave_real_32f(131071,1987)
> generic completed in 438.523 ms
> neon completed in 415.926 ms
> Best aligned arch: neon
> Best unaligned arch: neon
> RUN_VOLK_TESTS: volk_32fc_deinterleave_real_64f(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_32fc_x2_dot_prod_32fc(131071,1987)
> generic completed in 1570.41 ms
> a_generic completed in 1572.01 ms
> neon completed in 1132.08 ms
> neon_opttests completed in 1153.34 ms
> neon_optfma completed in 1175.58 ms
> neon_optfmaunroll completed in 1154.33 ms
> Best aligned arch: neon
> Best unaligned arch: neon
> RUN_VOLK_TESTS: volk_32fc_32f_dot_prod_32fc(131071,1987)
> generic completed in 794.31 ms
> neon_unroll completed in 656.159 ms
> a_neon completed in 703.999 ms
> Best aligned arch: neon_unroll
> Best unaligned arch: neon_unroll
> RUN_VOLK_TESTS: volk_32fc_index_max_16u(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_32fc_index_max_32u(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_32fc_s32f_magnitude_16i(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_32fc_magnitude_32f(131071,1987)
> generic completed in 1344.41 ms
> a_generic completed in 1348.79 ms
> neon completed in 663.512 ms
> neon_fancy_sweet completed in 1048.68 ms
> u_orc completed in 7007.45 ms
> Best aligned arch: neon
> Best unaligned arch: neon
> RUN_VOLK_TESTS: volk_32fc_magnitude_squared_32f(131071,1987)
> generic completed in 464.834 ms
> neon completed in 442.933 ms
> a_generic completed in 468.742 ms
> Best aligned arch: neon
> Best unaligned arch: neon
> RUN_VOLK_TESTS: volk_32fc_x2_add_32fc(131071,1987)
> generic completed in 1304.72 ms
> u_neon completed in 1389.05 ms
> Best aligned arch: generic
> Best unaligned arch: generic
> RUN_VOLK_TESTS: volk_32fc_x2_multiply_32fc(131071,1987)
> generic completed in 1409.98 ms
> a_generic completed in 1413.46 ms
> neon completed in 1520.76 ms
> neon_opttests completed in 1485.1 ms
> u_orc completed in 10901.5 ms
> Best aligned arch: generic
> Best unaligned arch: generic
> RUN_VOLK_TESTS: volk_32fc_x2_multiply_conjugate_32fc(131071,1987)
> generic completed in 1473.7 ms
> neon completed in 1400.47 ms
> a_generic completed in 1410.57 ms
> Best aligned arch: neon
> Best unaligned arch: neon
> RUN_VOLK_TESTS: volk_32fc_x2_divide_32fc(131071,1987)
> generic completed in 4654.99 ms
> neon completed in 1538.07 ms
> a_generic completed in 4610.52 ms
> Best aligned arch: neon
> Best unaligned arch: neon
> RUN_VOLK_TESTS: volk_32fc_conjugate_32fc(131071,1987)
> generic completed in 692.597 ms
> a_neon completed in 745.557 ms
> a_generic completed in 710.663 ms
> Best aligned arch: generic
> Best unaligned arch: generic
> RUN_VOLK_TESTS: volk_32f_s32f_convert_16i(131071,1987)
> generic completed in 1047.8 ms
> a_generic completed in 1011.45 ms
> Best aligned arch: a_generic
> Best unaligned arch: generic
> RUN_VOLK_TESTS: volk_32f_s32f_convert_32i(131071,1987)
> generic completed in 1340.11 ms
> a_generic completed in 1339.13 ms
> Best aligned arch: a_generic
> Best unaligned arch: generic
> RUN_VOLK_TESTS: volk_32f_convert_64f(131071,1987)
> generic completed in 583.843 ms
> a_generic completed in 588.458 ms
> Best aligned arch: generic
> Best unaligned arch: generic
> RUN_VOLK_TESTS: volk_32f_s32f_convert_8i(131071,1987)
> generic completed in 2473.93 ms
> a_generic completed in 2471.33 ms
> Best aligned arch: a_generic
> Best unaligned arch: generic
> RUN_VOLK_TESTS: volk_32fc_convert_16ic(131071,1987)
> neon completed in 1015.05 ms
> generic completed in 1905.8 ms
> Best aligned arch: neon
> Best unaligned arch: neon
> RUN_VOLK_TESTS: volk_32fc_s32f_power_spectrum_32f(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_32fc_x2_square_dist_32f(131071,1987)
> neon completed in 491.918 ms
> generic completed in 505.449 ms
> Best aligned arch: neon
> Best unaligned arch: neon
> RUN_VOLK_TESTS: volk_32fc_x2_s32f_square_dist_scalar_mult_32f(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_32f_x2_divide_32f(131071,1987)
> neon completed in 647.064 ms
> generic completed in 835.493 ms
> u_orc completed in 957.734 ms
> Best aligned arch: neon
> Best unaligned arch: neon
> RUN_VOLK_TESTS: volk_32f_x2_dot_prod_32f(131071,1987)
> generic completed in 269.021 ms
> a_generic completed in 268.722 ms
> neonopts completed in 285.479 ms
> neon completed in 294.744 ms
> Best aligned arch: a_generic
> Best unaligned arch: generic
> RUN_VOLK_TESTS: volk_32f_x2_s32f_interleave_16ic(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_32f_x2_interleave_32fc(131071,1987)
> neon completed in 721.654 ms
> generic completed in 691.68 ms
> Best aligned arch: generic
> Best unaligned arch: generic
> RUN_VOLK_TESTS: volk_32f_x2_max_32f(131071,1987)
> neon completed in 473.203 ms
> generic completed in 451.642 ms
> u_orc completed in 1608.17 ms
> Best aligned arch: generic
> Best unaligned arch: generic
> RUN_VOLK_TESTS: volk_32f_x2_min_32f(131071,1987)
> neon completed in 430.892 ms
> generic completed in 444.284 ms
> u_orc completed in 1611.04 ms
> Best aligned arch: neon
> Best unaligned arch: neon
> RUN_VOLK_TESTS: volk_32f_x2_multiply_32f(131071,1987)
> generic completed in 428.57 ms
> neon completed in 408.373 ms
> a_generic completed in 408.361 ms
> u_orc completed in 731.975 ms
> Best aligned arch: a_generic
> Best unaligned arch: neon
> RUN_VOLK_TESTS: volk_32f_64f_multiply_64f(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_32f_64f_add_64f(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_32f_s32f_normalize(131071,1987)
> generic completed in 130.015 ms
> u_orc completed in 1178.13 ms
> Best aligned arch: generic
> Best unaligned arch: generic
> RUN_VOLK_TESTS: volk_32f_s32f_power_32f(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_32f_sqrt_32f(131071,1987)
> neon completed in 296.611 ms
> generic completed in 5976.84 ms
> u_orc completed in 6750.64 ms
> Best aligned arch: neon
> Best unaligned arch: neon
> RUN_VOLK_TESTS: volk_32f_s32f_stddev_32f(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_32f_stddev_and_mean_32f_x2(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_32f_x2_subtract_32f(131071,1987)
> generic completed in 406.498 ms
> neon completed in 433.911 ms
> u_orc completed in 732.846 ms
> Best aligned arch: generic
> Best unaligned arch: generic
> RUN_VOLK_TESTS: volk_32f_x3_sum_of_poly_32f(131071,1987)
> generic completed in 634.575 ms
> a_neon completed in 2061.01 ms
> neonvert completed in 490.082 ms
> Best aligned arch: neonvert
> Best unaligned arch: neonvert
> RUN_VOLK_TESTS: volk_32i_x2_and_32i(131071,1987)
> neon completed in 422.807 ms
> generic completed in 428.645 ms
> u_orc completed in 444.265 ms
> Best aligned arch: neon
> Best unaligned arch: neon
> RUN_VOLK_TESTS: volk_32i_s32f_convert_32f(131071,1987)
> generic completed in 300.06 ms
> a_generic completed in 283.176 ms
> Best aligned arch: a_generic
> Best unaligned arch: generic
> RUN_VOLK_TESTS: volk_32i_x2_or_32i(131071,1987)
> neon completed in 439.93 ms
> generic completed in 428.727 ms
> u_orc completed in 433.152 ms
> Best aligned arch: generic
> Best unaligned arch: generic
> RUN_VOLK_TESTS: volk_32f_x2_dot_prod_16i(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_64f_convert_32f(131071,1987)
> generic completed in 423.005 ms
> a_generic completed in 437.134 ms
> Best aligned arch: generic
> Best unaligned arch: generic
> RUN_VOLK_TESTS: volk_64f_x2_max_64f(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_64f_x2_min_64f(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_64f_x2_multiply_64f(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_64f_x2_add_64f(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_8ic_deinterleave_16i_x2(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_8ic_s32f_deinterleave_32f_x2(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_8ic_deinterleave_real_16i(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_8ic_s32f_deinterleave_real_32f(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_8ic_deinterleave_real_8i(131071,1987)
> generic completed in 70.8281 ms
> neon completed in 69.4261 ms
> Best aligned arch: neon
> Best unaligned arch: neon
> RUN_VOLK_TESTS: volk_8ic_x2_multiply_conjugate_16ic(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_8ic_x2_s32f_multiply_conjugate_32fc(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_8i_convert_16i(131071,1987)
> generic completed in 91.0259 ms
> a_generic completed in 110.315 ms
> neon completed in 133.381 ms
> u_orc completed in 143.8 ms
> Best aligned arch: generic
> Best unaligned arch: generic
> RUN_VOLK_TESTS: volk_8i_s32f_convert_32f(131071,1987)
> generic completed in 270.502 ms
> neon completed in 367.175 ms
> a_generic completed in 290.766 ms
> u_orc completed in 509.698 ms
> Best aligned arch: generic
> Best unaligned arch: generic
> RUN_VOLK_TESTS: volk_32fc_s32fc_multiply_32fc(131071,1987)
> generic completed in 797.236 ms
> neon completed in 757.058 ms
> a_generic completed in 814.727 ms
> Best aligned arch: neon
> Best unaligned arch: neon
> RUN_VOLK_TESTS: volk_32f_s32f_multiply_32f(131071,1987)
> generic completed in 298.884 ms
> u_neon completed in 294.732 ms
> a_generic completed in 300.687 ms
> u_orc completed in 551.695 ms
> Best aligned arch: u_neon
> Best unaligned arch: u_neon
> RUN_VOLK_TESTS: volk_32f_binary_slicer_32i(131071,1987)
> generic completed in 297.662 ms
> generic_branchless completed in 296.843 ms
> Best aligned arch: generic_branchless
> Best unaligned arch: generic_branchless
> RUN_VOLK_TESTS: volk_32f_binary_slicer_8i(131071,1987)
> generic completed in 137.043 ms
> generic_branchless completed in 146.456 ms
> neon completed in 272.934 ms
> Best aligned arch: generic
> Best unaligned arch: generic
> RUN_VOLK_TESTS: volk_32u_reverse_32u(131071,1987)
> dword_shuffle completed in 8374.95 ms
> byte_shuffle completed in 9276.91 ms
> lut completed in 1143.03 ms
> 2001magic completed in 3280.09 ms
> 1972magic completed in 5270.06 ms
> bintree_permute_top_down completed in 848.799 ms
> bintree_permute_bottom_up completed in 869.021 ms
> Best aligned arch: bintree_permute_top_down
> Best unaligned arch: bintree_permute_top_down
> RUN_VOLK_TESTS: volk_32f_tanh_32f(131071,1987)
> generic completed in 18682.3 ms
> series completed in 2138.05 ms
> Best aligned arch: series
> Best unaligned arch: series
> RUN_VOLK_TESTS: volk_32f_s32f_mod_rangepuppet_32f(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_8u_x3_encodepolarpuppet_8u(131071,1987)
> no architectures to test
> RUN_VOLK_TESTS: volk_32f_8u_polarbutterflypuppet_32f(131071,1987)
> no architectures to test
> Creating "/home/ubuntu/.volk"...
> Writing /home/ubuntu/.volk/volk_config...
>
> ==================================================
> Likewise, the contents of volk_config:
>
> #this file is generated by volk_profile.
> #the function name is followed by the preferred architecture.
> volk_64u_popcnt generic generic
> volk_64u_popcnt generic generic
> volk_64u_popcnt generic generic
> volk_16u_byteswap generic generic
> volk_32u_byteswap generic generic
> volk_32fc_s32fc_x2_rotator_32fc neon neon
> volk_16ic_deinterleave_real_8i neon neon
> volk_16ic_deinterleave_16i_x2 generic generic
> volk_16ic_s32f_deinterleave_32f_x2 generic generic
> volk_16ic_convert_32fc generic generic
> volk_16ic_x2_multiply_16ic generic generic
> volk_16ic_x2_dot_prod_16ic neon_optvma neon_optvma
> volk_16i_s32f_convert_32f a_generic generic
> volk_16i_convert_8i neon neon
> volk_16i_32fc_dot_prod_32fc neon neon
> volk_32f_x2_add_32f generic generic
> volk_32f_index_max_32u neon neon
> volk_32fc_32f_multiply_32fc generic generic
> volk_32fc_32f_add_32fc generic generic
> volk_32f_log2_32f neon neon
> volk_32f_cos_32f generic generic
> volk_32fc_x2_conjugate_dot_prod_32fc neon neon
> volk_32fc_deinterleave_32f_x2 neon neon
> volk_32fc_deinterleave_64f_x2 generic generic
> volk_32fc_deinterleave_imag_32f generic generic
> volk_32fc_deinterleave_real_32f neon neon
> volk_32fc_x2_dot_prod_32fc neon neon
> volk_32fc_32f_dot_prod_32fc neon_unroll neon_unroll
> volk_32fc_magnitude_32f neon neon
> volk_32fc_magnitude_squared_32f neon neon
> volk_32fc_x2_add_32fc generic generic
> volk_32fc_x2_multiply_32fc generic generic
> volk_32fc_x2_multiply_conjugate_32fc neon neon
> volk_32fc_x2_divide_32fc neon neon
> volk_32fc_conjugate_32fc generic generic
> volk_32f_s32f_convert_16i a_generic generic
> volk_32f_s32f_convert_32i a_generic generic
> volk_32f_convert_64f generic generic
> volk_32f_s32f_convert_8i a_generic generic
> volk_32fc_convert_16ic neon neon
> volk_32fc_x2_square_dist_32f neon neon
> volk_32f_x2_divide_32f neon neon
> volk_32f_x2_dot_prod_32f a_generic generic
> volk_32f_x2_interleave_32fc generic generic
> volk_32f_x2_max_32f generic generic
> volk_32f_x2_min_32f neon neon
> volk_32f_x2_multiply_32f a_generic neon
> volk_32f_s32f_normalize generic generic
> volk_32f_sqrt_32f neon neon
> volk_32f_x2_subtract_32f generic generic
> volk_32f_x3_sum_of_poly_32f neonvert neonvert
> volk_32i_x2_and_32i neon neon
> volk_32i_s32f_convert_32f a_generic generic
> volk_32i_x2_or_32i generic generic
> volk_64f_convert_32f generic generic
> volk_8ic_deinterleave_real_8i neon neon
> volk_8i_convert_16i generic generic
> volk_8i_s32f_convert_32f generic generic
> volk_32fc_s32fc_multiply_32fc neon neon
> volk_32f_s32f_multiply_32f u_neon u_neon
> volk_32f_binary_slicer_32i generic_branchless generic_branchless
> volk_32f_binary_slicer_8i generic generic
> volk_32u_reverse_32u bintree_permute_top_down bintree_permute_top_down
> volk_32f_tanh_32f series series
>
> On Mon, 4 Nov 2019 at 17:38, Barry Jackson <zen25000@zen.co.uk> wrote:
> > On 03/11/2019 16:39, Gregory Ratcliff wrote:
> > > Please keep us updated on your progress. This is something I was thinking to do with aviation monitoring. Stream each channel at the airport, time shift to fill in silence giving priority to the tower and approach streams.
> >
> > Have you tried rtl-airband?
> > I have it running 24/7 on a Pi2 which also runs fr24 ADS-B tracking
> > uploading to FlightRadar24.
> > It has two rtl-sdr dongles one for ADS B and one for VHF air traffic.
> > The air traffic dongle scans around six frequencies continually and
> > streams to pulseaudio servers on whichever machine I happen to be using.
> > It also streams using an icecast streaming server on the RPi2, which I
> > can access on my smartphone browser.
> > It's been running for years now, but needs aggressive logrotate :)
> >
> > Barry
> >

No comments:

Post a Comment