Tools for comparative benchmarking of GNU Radio flowgraphs
The goal of this project is to provide comparative benchmarking tools for arbitrary GNU Radio flowgraphs, so that changes to the hardware, accelerated blocks, scheduler can be analyzed as variables are changed.
There have been several projects focused on gathering benchmarking info from running GNU Radio flowgraphs.
Same as any other GR OOT module with the addition of
cpuset
matplotlib
https://github.com/osh/gr-benchmark
https://github.com/bastibl/gr-sched
Bastian Bloessl, Marcus Müller and Matthias Hollick, “Benchmarking and Profiling the GNU Radio Scheduler,” Proceedings of 9th GNU Radio Conference (GRCon 2019), Huntsville, AL, Sep 2019.
Hitefield, Seth David. A Defense-In-Depth Security Architecture for Software Defined Radio Systems. Diss. Virginia Tech, 2020.
Below is the basic usage to obtain a plot
- Shield a set of CPUs (edit the script to suit your hardware)
./utils/scripts/create_cpuset.sh
- Iterate over a benchmarking flowgraph
apps/iterate_flowgraph.py time /share/git/gr-bench/bench/bm_copy.py --iters 10 --vars samples:[1000000000,] nblocks:[4,8,16,32,64,128,256]
- Plot the results
python3 utils/plot/plot_single.py apps/results/bm_copy.py_results_200212_184320.json -x nblocks -y tput