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 <zen25...@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 >