GNU Radio Benchmarks for Android
This is an Android app that benchmarks GNU Radio. Similar to our paper, it looks into the scaling behavior of the runtime environment for a large number of blocks. Please see the paper for more information on the experiment setup.
Besides runtime performance, it also compares the throughput of OpenCL accelerated blocks with upstream GNU Radio blocks. These measurements are adapted from gr-clenabled. Note that there is no Android OpenCL API, i.e., this requires some manual setup of the libraries (mainly copying OpenCL libraries from the phone into the toolchain on the PC, see the documentation of the GNU Radio Android toolchain).
Most of the GNU Radio blocks that are compared to OpenCL use Volk. So make sure to run volk profile before running the measurements.
The results stored as CSVs on External Storage (which might be an SD card or some internal storage).
Building the app requires the GNU Radio Android toolchain. Please see this repository for further instructions on how to build the toolchain and apps that use it.
Running the App
The app is minimalistic. There are only three buttons to start the three different measurements (runtime buffers, runtime async message, OpenCL vs CPU).
= Scaling of GNU Radio data streams on a OnePlus 5T smartphone vs a similar setup on a laptop with an i7.
Throughput of OpenCL kernels with increasing buffer sizes.
If you use this project, we would appreciate a reference to:
- Bastian Bloessl, Lars Baumgärtner and Matthias Hollick, “Hardware-Accelerated Real-Time Stream Data Processing on Android with GNU Radio,” Proceedings of 14th International Workshop on Wireless Network Testbeds, Experimental evaluation & Characterization (WiNTECH’20), London, UK, September 2020. [DOI, BibTeX, PDF and Details…]