Advertisement

OpenMP on FPGAs—A Survey

  • Florian MayerEmail author
  • Marius Knaust
  • Michael Philippsen
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11718)

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.

Notes

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

References

  1. 1.
    Adept: Adept Benchmark Suite. http://www.adept-project.eu/benchmarks.html
  2. 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. 3.
    Barcelona Supercomputing Center: Nanos++. https://pm.bsc.es/nanox
  4. 4.
    Barcelona Supercomputing Center: OmpSs@FPGA. https://pm.bsc.es/ompss-at-fpga
  5. 5.
    Barcelona Supercomputing Center: Repository of the Mercurium C/C++/Fortran source-to-source compiler. https://www.github.com/bsc-pm/mcxx
  6. 6.
    Barcelona Supercomputing Center: The OmpSs Programming Model. https://pm.bsc.es/ompss
  7. 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 2018Google Scholar
  8. 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 2009Google Scholar
  9. 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 2011Google Scholar
  10. 10.
    Canis, A., Choi, J., Chen, Y.T., Hsiao, H.: LegUp High-Level Synthesis. http://legup.eecg.utoronto.ca/
  11. 11.
    Ceissler, C.: HardCloud Github Wiki. https://github.com/omphardcloud/hardcloud/wiki
  12. 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 2018Google Scholar
  13. 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 2013Google Scholar
  14. 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 2013Google Scholar
  15. 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 2014Google Scholar
  16. 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 2013Google Scholar
  17. 17.
    Impulse Accelerated Technologies: Impulse CoDeveloper. http://web.archive.org/web/20180827120514/impulseaccelerated.com/tools.html
  18. 18.
  19. 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. 20.
  21. 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 2019Google Scholar
  22. 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 2015Google Scholar
  23. 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 2019Google Scholar
  24. 24.
    Lattner, C., The Clang Team: Clang: a C language family frontend for LLVM. https://clang.llvm.org/
  25. 25.
    LegUp Computing: LegUp. http://www.legupcomputing.com/
  26. 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 2006Google Scholar
  27. 27.
    Lin, C., Guyer, S., Jimenez, D.: The C-Breeze Compiler Infrastructure. https://www.cs.utexas.edu/users/c-breeze/
  28. 28.
  29. 29.
  30. 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 2014Google Scholar
  31. 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 2016Google Scholar
  32. 32.
    Schulte, C., Lagerkvist, M., Tack, G.: Gecode. https://www.gecode.org
  33. 33.
    Silicon Graphics: Reconfigurable Application-Specific Computing User’s Guide, March 2006. https://irix7.com/techpubs/007-4718-004.pdf
  34. 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 2017Google Scholar
  35. 35.
    The GCC Team: GCC, the GNU Compiler Collection. https://gcc.gnu.org/
  36. 36.
    The LLVM Team: The LLVM Compiler Infrastructure. https://llvm.org/
  37. 37.
    Xilinx: MicroBlaze Soft Processor Core. https://www.xilinx.com/products/design-tools/microblaze.html
  38. 38.
  39. 39.
    Xilinx: Platform Studio and the Embedded Development Kit (EDK). https://www.xilinx.com/products/design-tools/platform.html
  40. 40.
  41. 41.
  42. 42.
    Yviquel, H., Hahnfeld, J.: libomptarget - OpenMP offloading runtime libraries for Clang. https://github.com/clang-omp/libomptarget

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  • Florian Mayer
    • 1
    Email author
  • Marius Knaust
    • 2
  • Michael Philippsen
    • 1
  1. 1.Programming Systems GroupFriedrich-Alexander University Erlangen-Nürnberg (FAU)ErlangenGermany
  2. 2.Zuse Institute BerlinBerlinGermany

Personalised recommendations