Skip to main content

OpenMP on FPGAs—A Survey

  • Conference paper
  • First Online:
OpenMP: Conquering the Full Hardware Spectrum (IWOMP 2019)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 11718))

Included in the following conference series:

Abstract

Due to the ubiquity of OpenMP and the rise of FPGA-based accelerators in the HPC world, several research groups have attempted to bring the two together by building OpenMP-to-FPGA compilers. This paper is a survey of the current state of the art (with a focus on the OpenMP target pragma). It first introduces and explains a design space for the compilers. Design space dimensions include how FPGA infrastructure is generated, how work is distributed, and where/how target outlining is done. A table concisely condenses the available information on the surveyed projects which are also summarized and compared. The paper concludes with possible future research directions.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 59.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 74.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

References

  1. Adept: Adept Benchmark Suite. http://www.adept-project.eu/benchmarks.html

  2. Barcelona Supercomputing Center: Mercurium C/C++/Fortran source-to-source compiler. https://www.bsc.es/research-and-development/software-and-apps/software-list/mercurium-ccfortran-source-source-compiler

  3. Barcelona Supercomputing Center: Nanos++. https://pm.bsc.es/nanox

  4. Barcelona Supercomputing Center: OmpSs@FPGA. https://pm.bsc.es/ompss-at-fpga

  5. Barcelona Supercomputing Center: Repository of the Mercurium C/C++/Fortran source-to-source compiler. https://www.github.com/bsc-pm/mcxx

  6. Barcelona Supercomputing Center: The OmpSs Programming Model. https://pm.bsc.es/ompss

  7. Bosch, J., et al.: Application acceleration on FPGAs with OmpSs@FPGA. In: Proceedings of the International Conference on Field-Programmable Technology (FPT 2018), Naha, Japan, December 2018

    Google Scholar 

  8. Cabrera, D., Martorell, X., Gaydadjiev, G., Ayguade, E., Jiménez-González, D.: OpenMP extensions for FPGA accelerators. In: Proceedings of the International Conference on Systems, Architectures, Modeling and Simulation (SAMOS 2009), Samos, Greece, pp. 17–24, July 2009

    Google Scholar 

  9. Canis, A., et al.: LegUp: high-level synthesis for FPGA-based processor/accelerator systems. In: Proceedings of the International Symposium on Field Programmable Gate Arrays (FPGA 2011), Monterey, CA, pp. 33–36, February 2011

    Google Scholar 

  10. Canis, A., Choi, J., Chen, Y.T., Hsiao, H.: LegUp High-Level Synthesis. http://legup.eecg.utoronto.ca/

  11. Ceissler, C.: HardCloud Github Wiki. https://github.com/omphardcloud/hardcloud/wiki

  12. Ceissler, C., Nepomuceno, R., Pereira, M.M., Araujo, G.: Automatic offloading of cluster accelerators. In: Proceedings of the International Symposium on Field-Programmable Custom Computing Machines (FCCM 2018), Boulder, CO, p. 224, April 2018

    Google Scholar 

  13. Choi, J., Brown, S., Anderson, J.: From software threads to parallel hardware in high-level synthesis for FPGAs. In: Proceedings of the International Conference on Field-Programmable Technology (FPT 2013), Kyoto, Japan, pp. 270–277, January 2013

    Google Scholar 

  14. Cilardo, A., Gallo, L., Mazzeo, A., Mazzocca, N.: Efficient and scalable OpenMP-based system-level design. In: Proceedings of Design, Automation and Test in Europe (DATE 2013), Grenoble, France, pp. 988–991, March 2013

    Google Scholar 

  15. Filgueras, A., et al.: OmpSs@Zynq all-programmable SoC ecosystem. In: International Symposium on Field-Programmable Gate Arrays (FPGA 2014), Monterey, CA, pp. 137–146, February 2014

    Google Scholar 

  16. Halstead, R.J., Najjar, W.A.: Compiled multithreaded data paths on FPGAs for dynamic workloads. In: Proceedings of the International Conference on Compilers, Architecture and Synthesis for Embedded Systems (CASES 2013), Montreal, QC, pp. 21–30, September 2013

    Google Scholar 

  17. Impulse Accelerated Technologies: Impulse CoDeveloper. http://web.archive.org/web/20180827120514/impulseaccelerated.com/tools.html

  18. Intel Corporation: Intel FPGA SDK for OpenCL. https://www.intel.de/content/www/de/de/software/programmable/sdk-for-opencl/overview.html

  19. Intel Corporation: Intel FPGA SDK for OpenCL Board Support Package Floorplan Optimization Guide. https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/an/an824.pdf

  20. Intel Corporation: Intel Quartus Prime. https://www.intel.de/content/www/de/de/software/programmable/quartus-prime/overview.html

  21. Knaust, M., Mayer, F., Steinke, T.: OpenMP to FPGA offloading prototype using OpenCL SDK. In: Proceedings of the International Workshop High-Level Parallel Programming Models and Supportive Environment (HIPS 2019), Rio de Janeiro, Brazil, p. to appear, May 2019

    Google Scholar 

  22. Korinth, J., Chevallerie, D.d.l., Koch, A.: An open-source tool flow for the composition of reconfigurable hardware thread pool architectures. In: Proceedings of the International Symposium on Field-Programmable Custom Computing Machines (FCCM 2015), Vancouver, BC, pp. 195–198, May 2015

    Google Scholar 

  23. Korinth, J., Hofmann, J., Heinz, C., Koch, A.: The TaPaSCo open-source toolflow for the automated composition of task-based parallel reconfigurable computing systems. In: Proceedings of the International Symposium on Applied Reconfigurable Computing, (ARC 2019), Darmstadt, Germany, pp. 214–229, April 2019

    Google Scholar 

  24. Lattner, C., The Clang Team: Clang: a C language family frontend for LLVM. https://clang.llvm.org/

  25. LegUp Computing: LegUp. http://www.legupcomputing.com/

  26. Leow, Y., Ng, C., Wong, W.: Generating hardware from OpenMP programs. In: Proceedings of the International Conference on Field Programmable Technology (FPT 2006), Bangkok, Thailand, pp. 73–80, December 2006

    Google Scholar 

  27. Lin, C., Guyer, S., Jimenez, D.: The C-Breeze Compiler Infrastructure. https://www.cs.utexas.edu/users/c-breeze/

  28. LLVM Team: llvm-gcc - LLVM C front-end. https://releases.llvm.org/2.9/docs/CommandGuide/html/llvmgcc.html

  29. Mentor: Handel-C. https://www.mentor.com/products/fpga/handel-c/

  30. Podobas, A.: Accelerating parallel computations with OpenMP-driven system-on-chip generation for FPGAs. In: Proceedings of the International Symposium on Embedded Multicore/Manycore SoCs (MCSoC 2014), Aizu-Wakamatsu, Japan, pp. 149–156, September 2014

    Google Scholar 

  31. Podobas, A., Brorsson, M.: Empowering OpenMP with automatically generated hardware. In: Proceedings of the International Conference on Systems, Architectures, Modeling and Simulation (SAMOS 2016), Agios Konstantinos, Greece, pp. 245–252, January 2016

    Google Scholar 

  32. Schulte, C., Lagerkvist, M., Tack, G.: Gecode. https://www.gecode.org

  33. Silicon Graphics: Reconfigurable Application-Specific Computing User’s Guide, March 2006. https://irix7.com/techpubs/007-4718-004.pdf

  34. Sommer, L., Korinth, J., Koch, A.: OpenMP device offloading to FPGA accelerators. In: Proceedings of the International Conference on Application-specific Systems, Architectures and Processors (ASAP 2017), Seattle, WA, pp. 201–205, July 2017

    Google Scholar 

  35. The GCC Team: GCC, the GNU Compiler Collection. https://gcc.gnu.org/

  36. The LLVM Team: The LLVM Compiler Infrastructure. https://llvm.org/

  37. Xilinx: MicroBlaze Soft Processor Core. https://www.xilinx.com/products/design-tools/microblaze.html

  38. Xilinx: Partial Reconfiguration in the Vivado Design Suite. https://www.xilinx.com/products/design-tools/vivado/implementation/partial-reconfiguration.html

  39. Xilinx: Platform Studio and the Embedded Development Kit (EDK). https://www.xilinx.com/products/design-tools/platform.html

  40. Xilinx: Vivado Design Suite. https://www.xilinx.com/products/design-tools/vivado.html#documentation

  41. Xilinx: Zynq-7000 SoC Data Sheet. https://www.xilinx.com/support/documentation/data_sheets/ds190-Zynq-7000-Overview.pdf

  42. Yviquel, H., Hahnfeld, J.: libomptarget - OpenMP offloading runtime libraries for Clang. https://github.com/clang-omp/libomptarget

Download references

Acknowledgments

The authors acknowledge the financial support by the Federal Ministry of Education and Research of Germany in the framework of ORKA-HPC (project numbers 01IH17003C and 01IH17003D).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Florian Mayer .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Mayer, F., Knaust, M., Philippsen, M. (2019). OpenMP on FPGAs—A Survey. In: Fan, X., de Supinski, B., Sinnen, O., Giacaman, N. (eds) OpenMP: Conquering the Full Hardware Spectrum. IWOMP 2019. Lecture Notes in Computer Science(), vol 11718. Springer, Cham. https://doi.org/10.1007/978-3-030-28596-8_7

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-28596-8_7

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-28595-1

  • Online ISBN: 978-3-030-28596-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics