Skip to main content
Log in

Efficient heterogeneous programming with FPGAs using the Controller model

  • Published:
The Journal of Supercomputing Aims and scope Submit manuscript

Abstract

The Controller model is a heterogeneous parallel programming model implemented as a library. It transparently manages the coordination, communication and kernel launching details on different heterogeneous computing devices. It exploits native or vendor specific programming models and compilers, such as OpenMP, CUDA or OpenCL, thus enabling the potential performance obtained by using them. This work discusses the integration of FPGAs in the Controller model, using high-level synthesis tools and OpenCL. A new Controller backend for FPGAs is presented based on a previous OpenCL backend for GPUs. We discuss new configuration parameters for FPGA kernels and key ideas to adapt the original OpenCL backend while maintaining the portability of the original model. We present an experimental study to compare performance and development effort metrics obtained with the Controller model, Intel oneAPI and reference codes directly programmed with OpenCL. The results show that using the Controller library has advantages and drawbacks compared with Intel oneAPI, while compared with OpenCL it highly reduces the programming effort with negligible performance overhead.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2

Similar content being viewed by others

References

  1. McNamara M (2008) IEEE standard verilog hardware description language. https://www.verilog.com/IEEEVerilog.html. Accessed 9 Jun 2020

  2. IEEE Design Automation Standards Committee and others (2008) Std 1076–2008. IEEE Standard VHDL Language Reference Manual, IEEE, New York

    Google Scholar 

  3. Intel (2019) Intel FPGA SDK for OpenCL Programming Guide. https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/opencl-sdk/archives/aocl_programming_guide-20-1.pdf. Accessed 15 Aug 2020

  4. Xilinx (2019) SDAccel Programmers Guide. https://www.xilinx.com/support/documentation/sw_manuals/xilinx2018_3/ug1277-sdaccel-programmers-guide.pdf. Accessed 15 Aug 2020

  5. Intel (2020) Intel oneAPI Specs. https://www.oneapi.com/spec/. Accessed 12 Sept 2020

  6. Keryell R, Rovatsou M, Howes L (2020) SYCL specification—generic heterogeneous computing for modern C++. https://www.khronos.org/registry/SYCL/specs/sycl-1.2.1.pdf. Accessed 15 Aug 2020

  7. Moreton-Fernandez A, Ortega-Arranz H, Gonzalez-Escribano A (2018) Controllers: an abstraction to ease the use of hardware accelerators. Int J High Perfor Comput Appl 32(6):838–853

    Article  Google Scholar 

  8. Moreton-Fernandez A, Gonzalez-Escribano A, Llanos DR (2019) Multi-device controllers: a library to simplify parallel heterogeneous programming. Int J Parallel Progr 47(1):94–113

    Article  Google Scholar 

  9. Rodriguez-Canal G, Torres Y, Gonzalez-Escribano A (2020) Integrating FPGAs in a heterogeneous and portable parallel programming model (Poster). In: Int. Conf. for HPC, Networking, Storage and Analysis (SC’20). https://sc20.supercomputing.org/proceedings/tech_poster/poster_files/rpost145s2-file3.pdf

  10. Nozal R, Bosque JL, Beivide R (2020) EngineCL: usability and performance in heterogeneous computing. Fut Gen Comput Syst 107:522–537

    Article  Google Scholar 

  11. Parnassos I et al (2017) A programming model and runtime system for approximation-aware heterogeneous computing. In: 2017 27th International Conference on Field Programmable Logic and Applications (FPL). IEEE, pp 1–4

  12. Alpay A, Heuveline V (2020) SYCL beyond OpenCL: the architecture, current state and future direction of hipSYCL. In: Proceedings of the International Workshop on OpenCL, IWOCL ’20. NY, USA). Association for Computing Machinery, New York

  13. Bosch J et al (2018) Application Acceleration on FPGAs with OmpSs@FPGA. In: 2018 Int. Conf. on Field-Programmable Tech. IEEE, pp 70–77

  14. Wang C, Li X, Zhang J, Chen P, Feng X, Zhou X (2012) FPM: a flexible programming model for MPSoC on FPGA. In: 2012 IEEE 26th International Parallel and Distributed Processing Symposium Workshops PhD Forum, pp 477–484

  15. Ozkan MA et al (2020) AnyHLS: high-level synthesis with partial evaluation. https://arxiv.org/pdf/2002.05796.pdf. Accessed 12 Sept 2020

  16. Lee S, Kim J, Vetter JS (2016) OpenACC to FPGA: A Framework for Directive-Based High-Performance Reconfigurable Computing. In 2016 IEEE International Parallel and Distributed Processing Symposium (IPDPS), pp 544–554

  17. Zohouri HR (2018) High performance computing with FPGAs and OpenCL. ArXiv preprint arXiv:1810.09773

  18. Zohouri HR, Maruyama N, Smith A, Matsuda M, Matsuoka S (2016) Evaluating and optimizing OpenCL kernels for high performance computing with FPGAs. In: SC’16: Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis. IEEE, pp 409–420

  19. Pouchet L-N, Grauer-Gray S (2015) PolyBench: the polyhedral benchmark suite (2011). http://www-roc.inria.fr/~pouchet/software/polybench

  20. Zohouri HR et al (2020) Rodinia’s Hotspot v7. https://github.com/fpga-opencl-benchmarks/rodinia_fpga/blob/master/opencl/hotspot/hotspot_kernel_v7.cl. Accessed 12 Sept 2020

  21. McCabe TJ (1976) A complexity measure. IEEE Trans Softw Eng 4:308–320

    Article  MathSciNet  Google Scholar 

  22. Halstead MH et al (1977) Elements of software science, vol 7. Elsevier, New York

    MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Arturo Gonzalez-Escribano.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

This research has been partially supported by the Spanish Ministerio de Economía, Industria y Competitividad and by the ERDF program of the European Union, PCAS Project (TIN2017-88614-R); by Junta de Castilla y Leon - FEDER Grants, PROPHET and PROPHET-2 Projects (VA082P17, VA226P20); MECD (Beca de Colaboración, Spain), ScottishPower Masters Scholarship, and Salvador de Madariaga/Fulbright Scholar Grant (PRX17/00674).

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Rodriguez-Canal, G., Torres, Y., Andújar, F.J. et al. Efficient heterogeneous programming with FPGAs using the Controller model. J Supercomput 77, 13995–14010 (2021). https://doi.org/10.1007/s11227-021-03792-7

Download citation

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11227-021-03792-7

Keywords

Navigation