OpenMP to FPGA Offloading Prototype Using OpenCL SDK

Field-programmable gate arrays (FPGAs) are of great interest for future high-performance computing and data analytics systems, since they are capable of efficient, highly-parallel data processing. Even though high-level synthesis became more popular in the last years, the effort of porting existing scientific software onto FPGAs is still considerable. We propose to use OpenMP target offloading as a solution, which we implement in a first prototype, making use of the preexisting OpenCL SDK of the FPGA vendor. Early results demonstrate the feasibility of this approach and also reveal that further optimizations will be necessary such that code can be written in an FPGA-agnostic way.

[1]  Tarek A. El-Ghazawi,et al.  The Promise of High-Performance Reconfigurable Computing , 2008, Computer.

[2]  Artur Podobas Accelerating Parallel Computations with OpenMP-Driven System-on-Chip Generation for FPGAs , 2014, 2014 IEEE 8th International Symposium on Embedded Multicore/Manycore SoCs.

[3]  Weng-Fai Wong,et al.  Generating hardware from OpenMP programs , 2006, 2006 IEEE International Conference on Field Programmable Technology.

[4]  Jason Helge Anderson,et al.  From software threads to parallel hardware in high-level synthesis for FPGAs , 2013, 2013 International Conference on Field-Programmable Technology (FPT).

[5]  Amar Shan,et al.  Heterogeneous processing: a strategy for augmenting moore's law , 2006 .

[6]  Guido Araujo,et al.  Automatic Offloading of Cluster Accelerators , 2018, 2018 IEEE 26th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM).

[7]  Eduard Ayguadé,et al.  OpenMP extensions for FPGA accelerators , 2009, 2009 International Symposium on Systems, Architectures, Modeling, and Simulation.

[8]  Yohann Uguen,et al.  PyGA: a Python to FPGA compiler prototype , 2018, Proceedings of the 5th ACM SIGPLAN International Workshop on Artificial Intelligence and Empirical Methods for Software Engineering and Parallel Computing Systems.

[9]  John Shalf,et al.  Exascale Computing Technology Challenges , 2010, VECPAR.

[10]  Andreas Koch,et al.  OpenMP device offloading to FPGA accelerators , 2017, 2017 IEEE 28th International Conference on Application-specific Systems, Architectures and Processors (ASAP).

[11]  Mats Brorsson,et al.  Empowering OpenMP with automatically generated hardware , 2016, 2016 International Conference on Embedded Computer Systems: Architectures, Modeling and Simulation (SAMOS).