bastibl / android-benchmark

GNU Radio Benchmarks for Android

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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).

Installation

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).

Exemplary Results

= Scaling of GNU Radio data streams on a OnePlus 5T smartphone vs a similar setup on a laptop with an i7.

Buffer Scaling

Throughput of OpenCL kernels with increasing buffer sizes.

OpenCL vs CPU

Publication

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…]

About

GNU Radio Benchmarks for Android


Languages

Language:C++ 93.1%Language:Kotlin 5.7%Language:CMake 1.2%