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
--
Lucas Teske
Teske Virtual System
GPG: BD29 7EF3 4CCB EB61 B790 06C3 351A 8000 DEAD CE11
GPG: 4A90 974B ACE0 A9A6 AF09 B3B1 6C39 C1C1 6A9D A7BE
GPG: BD09 9175 6DE8 37F4 08D3 B296 DE7A 51C3 87C9 27EE