gnuradio and gr-gsm:
cmake -DCMAKE_C_FLAGS="-mcpu=cortex-a53 -funsafe-math-optimizations -O2" -DCMAKE_CXX_FLAGS="-mcpu=cortex-a53 -funsafe-math-optimizations -O2" ../
libosmocore: ./configure CFLAGS="-mcpu=cortex-a53 -funsafe-math-optimizations -O2" CPPFLAGS="-mcpu=cortex-a53 -funsafe-math-optimizations -O2"
However, I'm not sure if:
1. Those are actually the optimal compiler flags
2. gr-gsm uses VOLK at all (in GR core blocks used or the OOT blocks)
3. gr-gsm can otherwise be optimised to use e.g. NEON (as with OsmoTRX)
Would be good to know if any further optimisation can easily be done (don't care if builds won't run on other CPUs). Also where the heavy lifting is being done, so that if we want to further optimise we know where efforts should be focused.
Also, running volk_profile seemed to pick generic machine for pretty much everything and no mention of NEON, which I thought I might see in the output.
Finally, this is on Debian/aarch64, but going to try with optimised source builds on stock 32-bit Raspbian also.
Regards,
Andrew
cmake -DCMAKE_C_FLAGS="-mcpu=cortex-a53 -funsafe-math-optimizations -O2" -DCMAKE_CXX_FLAGS="-mcpu=cortex-a53 -funsafe-math-optimizations -O2" ../
=>Success
make
/root/gnuradio-3.7.12.0/volk/kernels/volk/asm/neon/volk_32f_x2_dot_prod_32f_neonasm_opts.s: Assembler messages:
/root/gnuradio-3.7.12.0/volk/kernels/volk/asm/neon/volk_32f_x2_dot_prod_32f_neonasm_opts.s:46: Error: selected processor does not support `sbfx r11,r1,#2,#1' in ARM mode
volk/lib/CMakeFiles/volk_obj.dir/build.make:1462: recipe for target 'volk/lib/CMakeFiles/volk_obj.dir/__/kernels/volk/asm/neon/volk_32f_x2_dot_prod_32f_neonasm_opts.s.o' failed
make[2]: *** [volk/lib/CMakeFiles/volk_obj.dir/__/kernels/volk/asm/neon/volk_32f_x2_dot_prod_32f_neonasm_opts.s.o] Error 1
CMakeFiles/Makefile2:252: recipe for target 'volk/lib/CMakeFiles/volk_obj.dir/all' failed
make[1]: *** [volk/lib/CMakeFiles/volk_obj.dir/all] Error 2
Makefile:160: recipe for target 'all' failed
make: *** [all] Error 2