These benchmarks are real-time throughput measurements of blocks, measured in
samples per second, under both LuaRadio and GNU Radio. Equivalent blocks from
LuaRadio and GNU Radio are compared, and the results are normalized to GNU
Radio performance. Benchmark results are included for two platforms: an Intel
i5 desktop and the Raspberry Pi 3. The benchmark suites can be found in the
benchmarks/
folder of the project.
Generally speaking, LuaRadio performance is on the same order as GNU Radio performance. In computationally expensive blocks, like filters, LuaRadio has matching or slightly better performance to GNU Radio. In other cases, LuaRadio has 30% to 80% the performance of GNU Radio, but this is typically for blocks that are already in the very high throughput territory, e.g. hundreds to thousands of megasamples per second on an Intel i5 desktop. Analogous observations hold for the Raspberry Pi 3.
Some blocks in LuaRadio, like the SignalSource
, have not yet been optimized
with library accelerated implementations. These blocks will see more comparable
throughput results to GNU Radio with future performance improvements.
These benchmarks are implemented by measuring the number of samples produced by the entire benchmark flow graph over a duration of time. The resulting throughput includes the overhead of the source blocks, as well as the framework’s overhead of serializing samples between blocks. However, the block under test is the limiting factor by several orders of magnitude (see benchmarks of the sources alone for validation of this), so the throughput of the benchmark flow graph corresponds roughly to the throughput of the block.
These results do not reflect the performance degradation that occurs after all available processor cores are utilized in a larger flow graph. Instead, these benchmarks represent a block’s approximate throughput on a platform, if one CPU core were dedicated entirely to it. Nonetheless, the benchmarks still give a good idea of whether or not a block will present a real-time bottleneck to a flow graph with a certain upstream sample rate.
The benchmarks are sensitive to CPU load by external processes, and are specific to the platform. Your actual results may vary, but the overall performance relationship between LuaRadio and GNU Radio should remain similar.
LuaRadio version 0.4.0 GNU Radio version 3.7.10 CPU model Intel(R) Core(TM) i5-4570T CPU @ 2.90GHz CPU count 4 Architecture x64 Operating System Linux LuaRadio features fftw3f, volk, liquid
LuaRadio version 0.4.0 GNU Radio version 3.7.10 CPU model ARMv7 Processor rev 4 (v7l) CPU count 4 Architecture arm Operating System Linux LuaRadio features fftw3f, volk, liquid