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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Adept: Adept Benchmark Suite. http://www.adept-project.eu/benchmarks.html
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
Barcelona Supercomputing Center: Nanos++. https://pm.bsc.es/nanox
Barcelona Supercomputing Center: OmpSs@FPGA. https://pm.bsc.es/ompss-at-fpga
Barcelona Supercomputing Center: Repository of the Mercurium C/C++/Fortran source-to-source compiler. https://www.github.com/bsc-pm/mcxx
Barcelona Supercomputing Center: The OmpSs Programming Model. https://pm.bsc.es/ompss
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
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
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
Canis, A., Choi, J., Chen, Y.T., Hsiao, H.: LegUp High-Level Synthesis. http://legup.eecg.utoronto.ca/
Ceissler, C.: HardCloud Github Wiki. https://github.com/omphardcloud/hardcloud/wiki
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
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
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
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
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
Impulse Accelerated Technologies: Impulse CoDeveloper. http://web.archive.org/web/20180827120514/impulseaccelerated.com/tools.html
Intel Corporation: Intel FPGA SDK for OpenCL. https://www.intel.de/content/www/de/de/software/programmable/sdk-for-opencl/overview.html
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
Intel Corporation: Intel Quartus Prime. https://www.intel.de/content/www/de/de/software/programmable/quartus-prime/overview.html
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
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
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
Lattner, C., The Clang Team: Clang: a C language family frontend for LLVM. https://clang.llvm.org/
LegUp Computing: LegUp. http://www.legupcomputing.com/
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
Lin, C., Guyer, S., Jimenez, D.: The C-Breeze Compiler Infrastructure. https://www.cs.utexas.edu/users/c-breeze/
LLVM Team: llvm-gcc - LLVM C front-end. https://releases.llvm.org/2.9/docs/CommandGuide/html/llvmgcc.html
Mentor: Handel-C. https://www.mentor.com/products/fpga/handel-c/
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
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
Schulte, C., Lagerkvist, M., Tack, G.: Gecode. https://www.gecode.org
Silicon Graphics: Reconfigurable Application-Specific Computing User’s Guide, March 2006. https://irix7.com/techpubs/007-4718-004.pdf
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
The GCC Team: GCC, the GNU Compiler Collection. https://gcc.gnu.org/
The LLVM Team: The LLVM Compiler Infrastructure. https://llvm.org/
Xilinx: MicroBlaze Soft Processor Core. https://www.xilinx.com/products/design-tools/microblaze.html
Xilinx: Partial Reconfiguration in the Vivado Design Suite. https://www.xilinx.com/products/design-tools/vivado/implementation/partial-reconfiguration.html
Xilinx: Platform Studio and the Embedded Development Kit (EDK). https://www.xilinx.com/products/design-tools/platform.html
Xilinx: Vivado Design Suite. https://www.xilinx.com/products/design-tools/vivado.html#documentation
Xilinx: Zynq-7000 SoC Data Sheet. https://www.xilinx.com/support/documentation/data_sheets/ds190-Zynq-7000-Overview.pdf
Yviquel, H., Hahnfeld, J.: libomptarget - OpenMP offloading runtime libraries for Clang. https://github.com/clang-omp/libomptarget
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
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this paper
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)