I would say, just remember that gr-osmosdr is not intended only to x86, but also for ARM and other archs that does not even have SIMD. Also there are some x86 nowadays that does not have AVX code. The LUT solution is the "generic" one that works average on all platforms (calculate on the fly for any arch that does not have SIMD conversion will make a great performance loss).
Lucas
Em 09/07/2018 13:35, Alain Carlucci escreveu:
Hi,
I have submitted a pull request on Github[1] which improves the performance of the hackrf source. With this patch the conversion int8_t -> float is done in realtime instead of looking up values in the "_lut" lookup table. In this way the compiler is able to generate AVX/SSE code (-O3 -march=native) to perform the conversion.
In [2] you can find a benchmark to show the differences. Using -Ofast (or -O3) and -march=native I get ~2.8x using an Intel i7 (4th gen) and 3.1x on a Core i5 (6th gen).
Gqrx with the patched library can play a WFM radio without any interruption even with just 3 buffers (option="hackrf=0,buffers=3").
Best regards, Alain
[1] https://github.com/osmocom/gr-osmosdr/pull/14 [2] https://gist.github.com/carpikes/cad029c338605f70d9f687aeee447db4