Publication

Directive-based, High-Level Programming and Optimizations for High-Performance Computing with FPGAs

Citation

Jacob B. Lambert, Seyong Lee, Jungwon Kim, Jeffrey S. Vetter, and Allen D. Malony, Directive-based, High-Level Programming and Optimizations for High-Performance Computing with FPGAs, ICS 2018: The 32nd ACM International Conference on Supercomputing, June 2018.

Abstract

Reconfigurable architectures like Field Programmable Gate Arrays (FPGAs) have been used for accelerating computations from several domains because of their unique combination of flexibility, performance, and power efficiency. However, FPGAs have not been widely used for high-performance computing (HPC), primarily due to their programming complexity and difficulties in optimizing performance. In this Directed Research Project, we present a directive-based, high-level optimization framework for HPC with FPGAs, which is built on top of an OpenACC-to-FPGA translation framework called OpenARC. We propose directive extensions and corresponding compile-time optimization techniques to enable the compiler to generate more efficient FPGA hardware configuration files. Empirical evaluation of the proposed framework on an Intel Stratix V FPGA with five OpenACC benchmarks from various application domains shows that FPGA-specific optimizations can lead to significant increases in performance across all tested applications. We also demonstrate that applying these high-level directive-based optimizations can allow OpenACC applications to perform similarly to lower-level OpenCL applications with handwritten FPGA-specific optimizations, and offer runtime and power performance benefits compared to CPUs and GPUs.

Read Publication