Abstract
As the variety of off-the-shelf processors expands, traditional implementation methods of systems for digital signal processing and communication are no longer adequate to achieve design objectives in a timely manner. There is a necessity for designers to easily track the changes in computing platforms, and apply them efficiently while reusing legacy code and optimized libraries that target specialized features in single processing units. In this context, we propose an integration workflow to schedule and implement Software Defined Radio (SDR) protocols that are developed using the GNU Radio environment on heterogeneous multiprocessor platforms. We show how to utilize Single Instruction Multiple Data (SIMD) units provided in Graphics Processing Units (GPUs) along with vector accelerators implemented in General Purpose Processors (GPPs). We augment a popular SDR framework (i.e, GNU Radio) with a library that seamlessly allows offloading of algorithm kernels mapped to the GPU without changing the original protocol description. Experimental results show how our approach can be used to efficiently explore design spaces for SDR system implementation, and examine the overhead of the integrated backend (software component) library.








Similar content being viewed by others
References
Adam, T.L., Chandy, K.M., Dickson, J.R. (1974). A comparison of list schedules for parallel processing systems. Communications of the ACM, 17(12), 685–690.
Applegate, D., & Cook, W. (1991). A computational study of the job-shop scheduling problem. ORSA Journal on Computing, 3(2), 149–156.
Berg, H., Brunelli, C., Lucking, U. (2008). Analyzing models of computation for software defined radio applications. In Proceedings of the international symposium on system-on-chip.
Bhattacharyya, S.S., Deprettere, E., Leupers, R., Takala, J. (Eds.) (2010). Handbook of signal processing systems. New York: Springer.
Bhattacharyya, S.S., Murthy, P.K., Lee, E.A. (1999). Synthesis of embedded software from synchronous dataflow specifications. Journal of VLSI Signal Processing Systems for Signal, Image, and Video Technology, 21(2), 151–166.
Bilsen, G., Engels, M., Lauwereins, R., Peperstraete, J.A. (1996). Cyclo-static dataflow. IEEE Transactions on Signal Processing, 44(2), 397–408.
Blossom, E. (2004). GNU Radio: tools for exploring the radio frequency spectrum. Linux Journal.
Buck, J.T. (1993). Scheduling dynamic dataflow graphs with bounded memory using the token flow model. Ph.D. thesis, Department of Electrical Engineering and Computer Sciences, University of California at Berkeley.
Chen, Y., Chakrabarti, C., Bhattacharyya, S., Bougard, B. (2009). Signal processing on platforms with multiple cores: part 1—overview and methodologies. IEEE Signal Processing Magazine, 26(6), 24–25. Guest Editors’ Introduction.
Chen, Y., Chakrabarti, C., Bhattacharyya, S., Bougard, B. (2010). Signal processing on platforms with multiple cores: part 2—design and applications. IEEE Signal Processing Magazine, 27(2), 20–21. Guest Editors’ Introduction.
Hormati, A.H., Choi, Y., Woh, M., Kudlur, M., Rabbah, R., Mudge, T., Mahlke, S. (2010). MacroSS: macro-SIMDization of streaming applications. In Symposium on architectural support for programming languages and operating systems (pp. 285–296).
Hsu, C., Ko, M., Bhattacharyya, S.S. (2005). Software synthesis from the dataflow interchange format. In Proceedings of the international workshop on software and compilers for embedded systems, Dallas, Texas (pp. 37–49).
Intel Corporation (2007). Intel SSE4 programming reference.
Ko, M., Shen, C., Bhattacharyya, S.S. (2008). Memory-constrained block processing for DSP software optimization. Journal of Signal Processing Systems 50(2), 163–177.
Lee, E.A., & Messerschmitt, D.G. (1987). Static scheduling of synchronous dataflow programs for digital signal processing. IEEE Transactions on Computers.
Lee, E.A., & Messerschmitt, D.G. (1987). Synchronous dataflow. Proceedings of the IEEE, 75(9), 1235–1245.
Lin, Y., Kudlur, M., Mahlke, S., Mudge, T. (2007). Hierarchical coarse-grained stream compilation for software defined radio. In Proceedings of the international conference on compilers, architecture, and synthesis of embedded systems (pp. 115–124).
Lin, Y., Mullenix, R., Woh, M., Mahlke, S., Mudge, T., Reid, A., Flautner, K. (2008). SPEX: a programming language for software defined radio. In Proceedings of the software defined radio technical conference and product exposition.
Makhorin, A. (2008). Modeling language GNU mathprog—language reference, draft edition, for GLPK version 4.34. Tech. Rep., Moscow Aviation Institute.
Marojevic, V., Balleste, X.R., Gelonch, A. (2008). A computing resource management framework for software-defined radios. IEEE Transactions on Computers, 57(10), 1399–1412.
Marwedel, P., & Goossens, G. (Eds.) (1995). Code generation for embedded processors. Kluwer Academic.
Niemann, R., & Marwedel, P. (1996). Hardware/software partitioning using integer programming. In Proceedings of the European design and test conference (pp. 473–479).
NVIDIA CUDA C Programming Guide (2012). Version 4.2.
Patel, H.D., & Shukla, S.K. (2005). Towards a heterogeneous simulation kernel for system-level models: a systemc kernel for synchronous data flow models. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 24(8), 1261–1271.
Plishker, W., Sane, N., Kiemb, M., Anand, K., Bhattacharyya, S.S. (2008). Functional DIF for rapid prototyping. In Proceedings of the international symposium on rapid system prototyping, Monterey, California (pp. 17–23).
Plishker, W., Zaki, G., Bhattacharyya, S.S., Clancy, C., Kuykendall, J. (2011). Applying graphics processor acceleration in a software defined radio prototyping environment. In Proceedings of the international symposium on rapid system prototyping, Karlsruhe, Germany (pp. 67–73).
Ritz, S., Pankert, M., Meyr, H. (1992). High level software synthesis for signal processing systems. In Proceedings of the international conference on application specific array processors.
Stuijk, S., Geilen, M.C.W., Basten, T. (2006). SDF3: SDF for free. In Proceedings of the international conference on application of concurrency to system design.
Tuttlebee, W. (2002). Software defined radio: Enabling technologies. New York: Wiley.
Yang, Y., Xiang, P., Kong, J., Zhou, H. (2010). A GPGPU compiler for memory optimization and parallelism management. In Proceedings of the ACM conference on programming language design and implementation (pp. 86–97).
Zaki, G., Plishker, W., Bhattacharyya, S., Clancy, C., Kuykendall, J. (2011). Vectorization and mapping of software defined radio applications on heterogeneous multi-processor platforms. In Proceedings of the IEEE workshop on signal processing systems, Beirut, Lebanon (pp. 31–36).
Zheng, K., Li, G., Huang, L. (2007). A weighted-selective scheduling scheme in an open software radio environment. In Proceedings of the IEEE pacific rim conference on communications, computers and signal processing (pp. 561–564).
Author information
Authors and Affiliations
Corresponding author
Additional information
This research was supported in part by the Laboratory for Telecommunications Sciences.
Rights and permissions
About this article
Cite this article
Zaki, G.F., Plishker, W., Bhattacharyya, S.S. et al. Integration of Dataflow-Based Heterogeneous Multiprocessor Scheduling Techniques in GNU Radio. J Sign Process Syst 70, 177–191 (2013). https://doi.org/10.1007/s11265-012-0696-0
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11265-012-0696-0